feat: initial commit
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
argo-repo-server.yaml
|
||||||
|
values.yaml
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
FROM alpine/k8s:1.28.3
|
||||||
|
|
||||||
|
RUN mkdir -p /home/argocd/cmp-server/config/
|
||||||
|
COPY plugin.yaml /home/argocd/cmp-server/config/
|
||||||
|
|
||||||
|
WORKDIR /plugin
|
||||||
|
COPY init.sh get-values.sh generate.sh ./
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
img=registry.gitlab.com/oceanbox/gitops-manifests/kustomize-helm-with-rewrite
|
||||||
|
tag=${1:-latest}
|
||||||
|
|
||||||
|
docker build -t $img:$tag .
|
||||||
|
docker push $img:$tag
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
export HOME=/tmp
|
||||||
|
|
||||||
|
echo $ARGOCD_APP_PARAMETERS | jq '.[] | select(.name == "helm-parameters") | .map' | yq -P -oy > parameters.yaml
|
||||||
|
cp parameters.yaml /tmp/$ARGOCD_APP_NAME-parameters.yaml
|
||||||
|
|
||||||
|
if [ -f chart -a $PARAM_CHART = "." ]; then
|
||||||
|
CHART=$(cat chart)
|
||||||
|
else
|
||||||
|
CHART=$PARAM_CHART
|
||||||
|
fi
|
||||||
|
|
||||||
|
helm template $PARAM_FLAGS \
|
||||||
|
-f values.yaml \
|
||||||
|
-f parameters.yaml \
|
||||||
|
-f $PARAM_ENV/values.yaml \
|
||||||
|
$ARGOCD_APP_NAME $CHART > ./base/_manifest.yaml
|
||||||
|
|
||||||
|
cp ./base/_manifest.yaml /tmp/$ARGOCD_APP_NAME-manifest.yaml
|
||||||
|
sed -i "$PARAM_REWRITE" ./base/_manifest.yaml
|
||||||
|
cp ./base/_manifest.yaml /tmp/$ARGOCD_APP_NAME-manifest-rw.yaml
|
||||||
|
|
||||||
|
kubectl kustomize $PARAM_ENV > /tmp/$ARGOCD_APP_NAME-manifest.yaml
|
||||||
|
cat /tmp/$ARGOCD_APP_NAME-manifest.yaml
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# cat << EOF
|
||||||
|
# [{
|
||||||
|
# "name": "values",
|
||||||
|
# "title": "Values",
|
||||||
|
# "collectionType": "map",
|
||||||
|
# "map": { "replicaCount": "1" }
|
||||||
|
# }]
|
||||||
|
# EOF
|
||||||
|
|
||||||
|
yq e -o=p values.yaml | jq --slurp --raw-input '
|
||||||
|
[{
|
||||||
|
name: "helm-parameters",
|
||||||
|
title: "Helm Parameters",
|
||||||
|
collectionType: "map",
|
||||||
|
map: split("\n") | map(capture("(?<key>.*) = (?<value>.*)")) | from_entries
|
||||||
|
}]'
|
||||||
|
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
export HOME=/tmp
|
||||||
|
|
||||||
|
helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||||
|
helm repo add cerbos https://download.cerbos.dev/helm-charts
|
||||||
|
helm repo add dapr https://dapr.github.io/helm-charts/
|
||||||
|
helm repo add ncsa https://opensource.ncsa.illinois.edu/charts
|
||||||
|
|
||||||
|
helm repo update
|
||||||
|
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: ConfigManagementPlugin
|
||||||
|
metadata:
|
||||||
|
name: kustomize-helm-with-rewrite
|
||||||
|
spec:
|
||||||
|
# version: v1.2
|
||||||
|
# The init command runs in the Application source directory at the beginning of each manifest generation. The init
|
||||||
|
# command can output anything. A non-zero status code will fail manifest generation.
|
||||||
|
init:
|
||||||
|
# Init always happens immediately before generate, but its output is not treated as manifests.
|
||||||
|
# This is a good place to, for example, download chart dependencies.
|
||||||
|
command: [ /bin/sh ]
|
||||||
|
args:
|
||||||
|
- /plugin/init.sh
|
||||||
|
# The generate command runs in the Application source directory each time manifests are generated. Standard output
|
||||||
|
# must be ONLY valid Kubernetes Objects in either YAML or JSON. A non-zero exit code will fail manifest generation.
|
||||||
|
# To write log messages from the command, write them to stderr, it will always be displayed.
|
||||||
|
# Error output will be sent to the UI, so avoid printing sensitive information (such as secrets).
|
||||||
|
generate:
|
||||||
|
command: [ /bin/sh ]
|
||||||
|
args:
|
||||||
|
- /plugin/generate.sh
|
||||||
|
|
||||||
|
# The discovery config is applied to a repository. If every configured discovery tool matches, then the plugin may be
|
||||||
|
# used to generate manifests for Applications using the repository. If the discovery config is omitted then the plugin
|
||||||
|
# will not match any application but can still be invoked explicitly by specifying the plugin name in the app spec.
|
||||||
|
# Only one of fileName, find.glob, or find.command should be specified. If multiple are specified then only the
|
||||||
|
# first (in that order) is evaluated.
|
||||||
|
# discover:
|
||||||
|
# fileName is a glob pattern (https://pkg.go.dev/path/filepath#Glob) that is applied to the Application's source
|
||||||
|
# directory. If there is a match, this plugin may be used for the Application.
|
||||||
|
# fileName: "./subdir/s*.yaml"
|
||||||
|
# find:
|
||||||
|
# This does the same thing as fileName, but it supports double-start (nested directory) glob patterns.
|
||||||
|
# glob: "**/Chart.yaml"
|
||||||
|
# The find command runs in the repository's root directory. To match, it must exit with status code 0 _and_
|
||||||
|
# produce non-empty output to standard out.
|
||||||
|
# command: [sh, -c, find . -name env.yaml]
|
||||||
|
# The parameters config describes what parameters the UI should display for an Application. It is up to the user to
|
||||||
|
# actually set parameters in the Application manifest (in spec.source.plugin.parameters). The announcements _only_
|
||||||
|
# inform the "Parameters" tab in the App Details page of the UI.
|
||||||
|
parameters:
|
||||||
|
# Static parameter announcements are sent to the UI for _all_ Applications handled by this plugin.
|
||||||
|
# Think of the `string`, `array`, and `map` values set here as "defaults". It is up to the plugin author to make
|
||||||
|
# sure that these default values actually reflect the plugin's behavior if the user doesn't explicitly set different
|
||||||
|
# values for those parameters.
|
||||||
|
static:
|
||||||
|
- name: env
|
||||||
|
title: Environment
|
||||||
|
tooltip: Kustomization env (directory in manifest folder)
|
||||||
|
required: true
|
||||||
|
itemType: string
|
||||||
|
collectionType: string
|
||||||
|
string: "staging"
|
||||||
|
- name: rewrite
|
||||||
|
title: Rewrite
|
||||||
|
tooltip: sed rewrite experssion
|
||||||
|
required: false
|
||||||
|
itemType: string
|
||||||
|
collectionType: string
|
||||||
|
string: ""
|
||||||
|
- name: chart
|
||||||
|
title: Chart
|
||||||
|
tooltip: Name or path of helm chart
|
||||||
|
required: false
|
||||||
|
itemType: string
|
||||||
|
collectionType: string
|
||||||
|
string: "."
|
||||||
|
- name: flags
|
||||||
|
title: Helm flags
|
||||||
|
tooltip: Extra helm flags
|
||||||
|
required: false
|
||||||
|
itemType: string
|
||||||
|
collectionType: string
|
||||||
|
string: ""
|
||||||
|
# All the fields above besides "string" apply to both the array and map type parameter announcements.
|
||||||
|
# - name: array-param
|
||||||
|
# # This field communicates the parameter's default value to the UI. Setting this field is optional.
|
||||||
|
# array: [default, items]
|
||||||
|
# collectionType: array
|
||||||
|
# - name: map-param
|
||||||
|
# # This field communicates the parameter's default value to the UI. Setting this field is optional.
|
||||||
|
# map:
|
||||||
|
# some: value
|
||||||
|
# collectionType: map
|
||||||
|
dynamic:
|
||||||
|
# The command is run in an Application's source directory. Standard output must be JSON matching the schema of the
|
||||||
|
# static parameter announcements list.
|
||||||
|
command: [ /bin/sh, /plugin/get-values.sh ]
|
||||||
|
|
||||||
|
# If set to `true` then the plugin receives repository files with original file mode. Dangerous since the repository
|
||||||
|
# might have executable files. Set to true only if you trust the CMP plugin authors.
|
||||||
|
preserveFileMode: false
|
||||||
|
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: ApplicationSet
|
||||||
|
metadata:
|
||||||
|
name: busynix
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
generators:
|
||||||
|
- list:
|
||||||
|
elements:
|
||||||
|
- cluster: https://kubernetes.default.svc
|
||||||
|
env: prod
|
||||||
|
hostname: busynix.srv.oceanbox.io
|
||||||
|
- cluster: https://kubernetes.default.svc
|
||||||
|
env: staging
|
||||||
|
hostname: busynix.yolo.oceanbox.io
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
name: '{{ env }}-busynix'
|
||||||
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: oceanbox
|
||||||
|
server: '{{ cluster }}'
|
||||||
|
project: atlantis
|
||||||
|
source:
|
||||||
|
path: busynix
|
||||||
|
plugin:
|
||||||
|
name: kustomize-helm-with-rewrite
|
||||||
|
parameters:
|
||||||
|
- name: env
|
||||||
|
string: '{{ env }}'
|
||||||
|
- name: hostname
|
||||||
|
string: '{{ hostname }}'
|
||||||
|
repoURL: https://gitlab.com/oceanbox/charts.git
|
||||||
|
targetRevision: HEAD
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: cerbos
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: atlantis
|
||||||
|
source:
|
||||||
|
repoURL: https://download.cerbos.dev/helm-charts
|
||||||
|
targetRevision: 0.33.0
|
||||||
|
chart: cerbos
|
||||||
|
helm:
|
||||||
|
values: |
|
||||||
|
replicaCount: 1
|
||||||
|
autoscaling:
|
||||||
|
enabled: false
|
||||||
|
minReplicas: 1
|
||||||
|
maxReplicas: 100
|
||||||
|
targetCPUUtilizationPercentage: 80
|
||||||
|
# targetMemoryUtilizationPercentage: 80
|
||||||
|
|
||||||
|
# Spec of the cert-manager certificate to create for the Cerbos deployment.
|
||||||
|
# If certSpec is not empty, a cert-manager.io/v1/Certificate resource will be created with its spec populated with values from certSpec.
|
||||||
|
# The certSpec value must be a valid Certificate spec. This Helm chart does not provide any defaults or inject any values into it.
|
||||||
|
# If cerbos.tlsSecretName is defined, it takes precedence over the generated certificate.
|
||||||
|
certManager:
|
||||||
|
certSpec: {}
|
||||||
|
|
||||||
|
# Cerbos service settings.
|
||||||
|
service:
|
||||||
|
type: ClusterIP
|
||||||
|
httpPort: 3592
|
||||||
|
grpcPort: 3593
|
||||||
|
httpNodePort: 13592
|
||||||
|
grpcNodePort: 13593
|
||||||
|
annotations: {}
|
||||||
|
|
||||||
|
envFrom:
|
||||||
|
- secretRef:
|
||||||
|
name: cerbos-gitlab-token
|
||||||
|
|
||||||
|
cerbos:
|
||||||
|
httpPort: 3592
|
||||||
|
grpcPort: 3593
|
||||||
|
tlsSecretName: ""
|
||||||
|
logLevel: INFO
|
||||||
|
config:
|
||||||
|
storage:
|
||||||
|
driver: "git"
|
||||||
|
git:
|
||||||
|
protocol: https
|
||||||
|
url: https://gitlab.com/oceanbox/cerbos
|
||||||
|
branch: main
|
||||||
|
subDir: policies
|
||||||
|
checkoutDir: /work
|
||||||
|
updatePollInterval: 60s
|
||||||
|
https:
|
||||||
|
username: cerbos
|
||||||
|
password: ${GITLAB_TOKEN}
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: atlantis
|
||||||
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
GITLAB_TOKEN: Z2xwYXQtOTZvWmVwdnNiSnYyMzVXUWVqTnM=
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: cerbos-gitlab-token
|
||||||
|
namespace: atlantis
|
||||||
|
type: Opaque
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: dex
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: atlantis
|
||||||
|
source:
|
||||||
|
repoURL: https://charts.dexidp.io
|
||||||
|
targetRevision: 0.16.0
|
||||||
|
chart: dex
|
||||||
|
helm:
|
||||||
|
values: |
|
||||||
|
replicaCount: 1
|
||||||
|
https:
|
||||||
|
enabled: false
|
||||||
|
grpc:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
configSecret:
|
||||||
|
create: true
|
||||||
|
name: ""
|
||||||
|
config: {}
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- name: web
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: oceanbox-dex
|
||||||
|
volumeMounts:
|
||||||
|
- name: web
|
||||||
|
mountPath: /srv/dex/web
|
||||||
|
envVars: []
|
||||||
|
|
||||||
|
service:
|
||||||
|
annotations: {}
|
||||||
|
type: ClusterIP
|
||||||
|
clusterIP: ""
|
||||||
|
ports:
|
||||||
|
http:
|
||||||
|
port: 5556
|
||||||
|
nodePort:
|
||||||
|
https:
|
||||||
|
port: 5554
|
||||||
|
nodePort:
|
||||||
|
grpc:
|
||||||
|
port: 5557
|
||||||
|
nodePort:
|
||||||
|
|
||||||
|
ingress:
|
||||||
|
enabled: true
|
||||||
|
className: nginx
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt-staging
|
||||||
|
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||||
|
hosts:
|
||||||
|
- host: idp.beta.oceanbox.io
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
tls:
|
||||||
|
- secretName: dex-tls
|
||||||
|
hosts:
|
||||||
|
- idp.beta.oceanbox.io
|
||||||
|
|
||||||
|
serviceMonitor:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: atlantis
|
||||||
|
|
||||||
@@ -0,0 +1,145 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: dex
|
||||||
|
namespace: atlantis
|
||||||
|
type: Opaque
|
||||||
|
stringData:
|
||||||
|
config.yaml: |
|
||||||
|
issuer: https://idp.oceanbox.io/dex
|
||||||
|
storage:
|
||||||
|
type: postgres
|
||||||
|
config:
|
||||||
|
host: oboxdb-rw
|
||||||
|
port: 5432
|
||||||
|
database: dex_db
|
||||||
|
user: dex
|
||||||
|
password: crafter keenness gilled sprinkled
|
||||||
|
ssl:
|
||||||
|
mode: disable
|
||||||
|
web:
|
||||||
|
http: 127.0.0.1:5556
|
||||||
|
telemetry:
|
||||||
|
http: 127.0.0.1:5558
|
||||||
|
grpc:
|
||||||
|
addr: 127.0.0.1:5557
|
||||||
|
frontend:
|
||||||
|
dir: /srv/dex/web
|
||||||
|
issuer: oceanbox
|
||||||
|
extra:
|
||||||
|
client_logo_url: "../theme/client-logo.png"
|
||||||
|
# enablePasswordDB: true
|
||||||
|
# staticPasswords:
|
||||||
|
# - email: "admin@oceanbox.io"
|
||||||
|
# hash: "$2y$12$2AUaWnDEpHxsfFyRzTwx8e8WtJtnhGJOujPjP3BXVVCJe3c.k2PjC"
|
||||||
|
# username: "admin"
|
||||||
|
# userID: "9a15441c-4d66-4b26-a0f6-4e619535ee8f"
|
||||||
|
oauth2:
|
||||||
|
responseTypes: [ "code" ]
|
||||||
|
skipApprovalScreen: true
|
||||||
|
alwaysShowLoginScreen: false
|
||||||
|
connectors:
|
||||||
|
- type: microsoft
|
||||||
|
id: oceanbox
|
||||||
|
name: oceanbox.io
|
||||||
|
config:
|
||||||
|
clientID: 43667ac0-37e1-422f-99fc-50a699bb255c
|
||||||
|
clientSecret: p1c8Q~H5LsnhUzVGhHxVzqompiC7949QpIqJrcNB
|
||||||
|
tenant: 3f737008-e9a0-4485-9d27-40329d288089
|
||||||
|
redirectURI: https://idp.oceanbox.io/dex/callback
|
||||||
|
onlySecurityGroups: true
|
||||||
|
groups:
|
||||||
|
- atlantis
|
||||||
|
- type: microsoft
|
||||||
|
id: salmar
|
||||||
|
name: salmar.no
|
||||||
|
config:
|
||||||
|
clientID: 3f6f1153-e5da-40eb-a2dd-ede6c7bf6058
|
||||||
|
clientSecret: rzC8Q~fc9ex6hBglFPAKCU4KJ1o82AQCQYdb~cI2
|
||||||
|
tenant: de10159d-2c09-4762-966c-e841d3391feb
|
||||||
|
redirectURI: https://idp.oceanbox.io/dex/callback
|
||||||
|
onlySecurityGroups: true
|
||||||
|
groups:
|
||||||
|
- Azure-Grp-App-Cloud-Oceanbox
|
||||||
|
- type: microsoft
|
||||||
|
id: aqua-kompetanse
|
||||||
|
name: aqua-kompetanse.no
|
||||||
|
config:
|
||||||
|
clientID: 9fd83910-1a21-4869-8a30-19fc32722ee2
|
||||||
|
clientSecret: Uer8Q~8LKuDNQVt1vHaMVXAzKSLssvVduH.2HcNC
|
||||||
|
tenant: 6cd538cc-6cba-463f-9d22-1e0eda9695e3
|
||||||
|
redirectURI: https://idp.oceanbox.io/dex/callback
|
||||||
|
onlySecurityGroups: true
|
||||||
|
groups:
|
||||||
|
- Oceanbox
|
||||||
|
- type: oidc
|
||||||
|
id: keycloak
|
||||||
|
name: default
|
||||||
|
config:
|
||||||
|
issuer: https://keycloak.dev.oceanbox.io/realms/Oceanbox
|
||||||
|
clientID: dex
|
||||||
|
clientSecret: 9c9LAMh7feQRNgHGYaUiASuZBd0JpQC4
|
||||||
|
redirectURI: https://idp.oceanbox.io/dex/callback
|
||||||
|
promptType: login
|
||||||
|
staticClients:
|
||||||
|
- id: atlantis
|
||||||
|
redirectURIs:
|
||||||
|
- 'https://maps.oceanbox.io/signin-oidc'
|
||||||
|
- 'https://maps.relic.oceanbox.io/signin-oidc'
|
||||||
|
name: 'Atlantis'
|
||||||
|
secret: KOJ6bDHzE5vdyfSrzgwLjtM5PzA809Zm
|
||||||
|
- id: atlantis_dev
|
||||||
|
redirectURIs:
|
||||||
|
- 'https://atlantis.dev.oceanbox.io/signin-oidc'
|
||||||
|
- 'https://jonas-tilt-atlantis.dev.oceanbox.io/signin-oidc'
|
||||||
|
- 'https://stig-tilt-atlantis.dev.oceanbox.io/signin-oidc'
|
||||||
|
- 'https://simkir-tilt-atlantis.dev.oceanbox.io/signin-oidc'
|
||||||
|
- 'https://atlantis.local.oceanbox.io:8080/signin-oidc'
|
||||||
|
name: 'Atlantis dev'
|
||||||
|
secret: 3QjfSPmAemjn34XVA2o1fvoS7I4gKvOR
|
||||||
|
- id: petimeter
|
||||||
|
redirectURIs:
|
||||||
|
- 'https://petimeter.svc.oceanbox.io/signin-oidc'
|
||||||
|
name: 'Petimeter dev'
|
||||||
|
secret: kkrKo3mmmseMnorf9qw3eklefkoOKFNs
|
||||||
|
- id: petimeter_dev
|
||||||
|
redirectURIs:
|
||||||
|
- 'https://petimeter.dev.oceanbox.io/signin-oidc'
|
||||||
|
- 'https://jonas-tilt-petimeter.dev.oceanbox.io/signin-oidc'
|
||||||
|
- 'https://stig-tilt-petimeter.dev.oceanbox.io/signin-oidc'
|
||||||
|
- 'https://simkir-tilt-petimeter.dev.oceanbox.io/signin-oidc'
|
||||||
|
- 'https://petimeter.local.oceanbox.io:8080/signin-oidc'
|
||||||
|
name: 'Petimeter dev'
|
||||||
|
secret: kfngKJF9EKVBnnvgkdmPfs0qw3rmjslk
|
||||||
|
- id: sorcerer
|
||||||
|
redirectURIs:
|
||||||
|
- 'https://sorcerer.ekman.oceanbox.io/signin-oidc'
|
||||||
|
- 'https://sorcerer.hpc.oceanbox.io/signin-oidc'
|
||||||
|
name: 'Sorcerer'
|
||||||
|
secret: sIUXxSQLaTJiLCQ9AqBhmEbAL9lubHGB
|
||||||
|
- id: sorcerer_dev
|
||||||
|
redirectURIs:
|
||||||
|
- 'https://dev.sorcerer.ekman.oceanbox.io/signin-oidc'
|
||||||
|
- 'https://sorcerer.ekman.oceanbox.io/signin-oidc'
|
||||||
|
- 'https://sorcerer.hpc.oceanbox.io/signin-oidc'
|
||||||
|
- 'https://jonas-tilt-sorcerer.ekman.oceanbox.io/signin-oidc'
|
||||||
|
- 'https://simkir-tilt-sorcerer.ekman.oceanbox.io/signin-oidc'
|
||||||
|
- 'https://s.local.oceanbox.io:11080/signin-oidc'
|
||||||
|
- 'https://sorcerer.local.oceanbox.io:11080/signin-oidc'
|
||||||
|
name: 'Sorcerer dev'
|
||||||
|
secret: cyrgDr1UzhQrJn8nRVqEt9BJ9mLk3OBy
|
||||||
|
- id: archmeister
|
||||||
|
redirectURIs:
|
||||||
|
- 'https://archmeister.svc.oceanbox.io/signin-oidc'
|
||||||
|
name: 'Archmeister'
|
||||||
|
secret: ieK3yak9zoh3yeewee8quahY6seiv7Ro
|
||||||
|
- id: archmeister_dev
|
||||||
|
redirectURIs:
|
||||||
|
- 'https://archmeister.dev.oceanbox.io/signin-oidc'
|
||||||
|
- 'https://jonas-archmeister.dev.oceanbox.io/signin-oidc'
|
||||||
|
- 'https://simkir-archmeister.dev.oceanbox.io/signin-oidc'
|
||||||
|
- 'https://r.local.oceanbox.io:11080/signin-oidc'
|
||||||
|
- 'https://archmeister.local.oceanbox.io:9080/signin-oidc'
|
||||||
|
name: 'Archmeister dev'
|
||||||
|
secret: Dae1eekeedeuKaoCiesh1Jei6aishe8I
|
||||||
|
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
name: pv-oceanbox-dex
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
capacity:
|
||||||
|
storage: 50M
|
||||||
|
mountOptions:
|
||||||
|
- vers=4.2
|
||||||
|
- soft
|
||||||
|
nfs:
|
||||||
|
path: /oceanbox/pv-oceanbox-dex
|
||||||
|
server: 10.255.241.210
|
||||||
|
persistentVolumeReclaimPolicy: Retain
|
||||||
|
volumeMode: Filesystem
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: oceanbox-dex
|
||||||
|
namespace: atlantis
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 50M
|
||||||
|
storageClassName: ""
|
||||||
|
volumeMode: Filesystem
|
||||||
|
volumeName: pv-oceanbox-dex
|
||||||
Submodule
+1
Submodule dex/templates added at 1fd8cd005f
@@ -0,0 +1,26 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: geoserver
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: gis
|
||||||
|
source:
|
||||||
|
repoURL: https://gitlab.com/oceanbox/charts.git
|
||||||
|
targetRevision: HEAD
|
||||||
|
path: geoserver
|
||||||
|
plugin:
|
||||||
|
name: kustomize-helm-with-rewrite
|
||||||
|
parameters:
|
||||||
|
- name: env
|
||||||
|
string: prod
|
||||||
|
- name: hostname
|
||||||
|
string: geoserver.srv.oceanbox.io
|
||||||
|
- name: flags
|
||||||
|
string: "--skip-tests"
|
||||||
|
- name: chart
|
||||||
|
string: ncsa/geoserver
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: geoserver
|
||||||
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1125
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,18 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: redis-nodeport
|
||||||
|
namespace: oceanbox
|
||||||
|
spec:
|
||||||
|
externalTrafficPolicy: Cluster
|
||||||
|
ports:
|
||||||
|
- name: redis
|
||||||
|
nodePort: 30379
|
||||||
|
port: 6379
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 6379
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/instance: redis
|
||||||
|
app.kubernetes.io/name: redis
|
||||||
|
sessionAffinity: None
|
||||||
|
type: NodePort
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: keycloak
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: atlantis
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: atlantis
|
||||||
|
source:
|
||||||
|
repoURL: https://charts.bitnami.com/bitnami
|
||||||
|
targetRevision: 18.3.3
|
||||||
|
chart: keycloak
|
||||||
|
helm:
|
||||||
|
values: |
|
||||||
|
auth:
|
||||||
|
adminPassword: en to tre fire
|
||||||
|
adminUser: admin
|
||||||
|
existingSecret: ""
|
||||||
|
managementPassword: ""
|
||||||
|
managementUser: manager
|
||||||
|
extraVolumeMounts:
|
||||||
|
- mountPath: /opt/bitnami/keycloak/themes/oceanbox
|
||||||
|
name: theme
|
||||||
|
extraVolumes:
|
||||||
|
- emptyDir: {}
|
||||||
|
name: theme
|
||||||
|
ingress:
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt-production
|
||||||
|
nginx.ingress.kubernetes.io/enable-cors: "true"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-buffer-size: 128k
|
||||||
|
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||||
|
enabled: true
|
||||||
|
extraHosts: []
|
||||||
|
extraPaths: []
|
||||||
|
hostname: auth.oceanbox.io
|
||||||
|
ingressClassName: nginx
|
||||||
|
path: /
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
selfSigned: false
|
||||||
|
servicePort: http
|
||||||
|
tls: true
|
||||||
|
initContainers: |
|
||||||
|
- name: keycloak-theme-provider
|
||||||
|
image: docker.io/juselius/oceanbox-theme:1.0
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
args:
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
echo "Copying theme..."
|
||||||
|
cp -R /theme/* /keycloak/themes/oceanbox
|
||||||
|
volumeMounts:
|
||||||
|
- name: theme
|
||||||
|
mountPath: /keycloak/themes/oceanbox
|
||||||
|
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: rabbitmq
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: atlantis
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: atlantis
|
||||||
|
source:
|
||||||
|
repoURL: https://charts.bitnami.com/bitnami
|
||||||
|
targetRevision: 12.9.0
|
||||||
|
chart: redis
|
||||||
|
helm:
|
||||||
|
values: |
|
||||||
|
auth:
|
||||||
|
erlangCookie: ""
|
||||||
|
existingErlangSecret: ""
|
||||||
|
existingPasswordSecret: ""
|
||||||
|
password: hunny-bunny
|
||||||
|
username: user
|
||||||
|
clusterDomain: cluster.local
|
||||||
|
ingress:
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt-production
|
||||||
|
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||||
|
nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
|
||||||
|
enabled: true
|
||||||
|
extraHosts: []
|
||||||
|
extraPaths: []
|
||||||
|
extraRules: []
|
||||||
|
hostname: rabbitmq.svc.oceanbox.io
|
||||||
|
ingressClassName: ""
|
||||||
|
path: /
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
secrets: []
|
||||||
|
selfSigned: false
|
||||||
|
tls: true
|
||||||
|
persistence:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
enabled: true
|
||||||
|
existingClaim: ""
|
||||||
|
size: 8Gi
|
||||||
|
storageClass: ""
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: redis
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: atlantis
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: atlantis
|
||||||
|
source:
|
||||||
|
repoURL: https://charts.bitnami.com/bitnami
|
||||||
|
targetRevision: 18.9.1
|
||||||
|
chart: redis
|
||||||
|
helm:
|
||||||
|
values: |
|
||||||
|
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: seq
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: atlantis
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: atlantis
|
||||||
|
source:
|
||||||
|
repoURL: https://helm.datalust.co
|
||||||
|
targetRevision: 2024.1.0
|
||||||
|
chart: seq
|
||||||
|
helm:
|
||||||
|
values: |
|
||||||
|
acceptEULA: "Y"
|
||||||
|
|
||||||
|
# Set this URL if you enable ingress and/or AAD authentication.
|
||||||
|
# Without this URL set to include HTTPS, Seq will try to set a login redirect
|
||||||
|
# URL with HTTP instead of HTTPS and AAD's registration requires HTTPS.
|
||||||
|
# The result is that you'll get an error during login:
|
||||||
|
# AADSTS50011: The reply url specified in the request does not match the reply urls configured for the application
|
||||||
|
# baseURI: https://my.public.url/
|
||||||
|
|
||||||
|
# Set this to create an admin user with given password hash at first run.
|
||||||
|
# See here for docs on how to create the password hash: https://blog.datalust.co/setting-an-initial-password-when-deploying-seq-to-docker/
|
||||||
|
# firstRunAdminUsername: "admin"
|
||||||
|
# firstRunAdminPasswordHash: ""
|
||||||
|
# firstRunRequireAuthenticationForHttpIngestion: true
|
||||||
|
|
||||||
|
# The complete Seq API and UI.
|
||||||
|
# This API can accept events and serve API requests.
|
||||||
|
ui:
|
||||||
|
service:
|
||||||
|
port: 80
|
||||||
|
ingress:
|
||||||
|
enabled: true
|
||||||
|
path: /
|
||||||
|
hosts:
|
||||||
|
- seq.beta.oceanbox.io
|
||||||
|
|
||||||
|
# The ingestion-only API.
|
||||||
|
# This API is a subset of ui that can only ingest events.
|
||||||
|
ingestion:
|
||||||
|
service:
|
||||||
|
port: 5341
|
||||||
|
ingress:
|
||||||
|
enabled: false
|
||||||
|
path: /
|
||||||
|
hosts:
|
||||||
|
- ingestion.seq.beta.oceanbox.io
|
||||||
|
|
||||||
|
# Accept events in the GELF format and forward them to Seq.
|
||||||
|
gelf:
|
||||||
|
enabled: false
|
||||||
|
image:
|
||||||
|
repository: datalust/seq-input-gelf
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
service:
|
||||||
|
port: 12201
|
||||||
|
# GELF can be ingested through either TCP or UDP
|
||||||
|
protocol: TCP
|
||||||
|
|
||||||
|
# Accept events in the Syslog format and forward them to Seq.
|
||||||
|
syslog:
|
||||||
|
enabled: false
|
||||||
|
image:
|
||||||
|
repository: datalust/seq-input-syslog
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
service:
|
||||||
|
port: 514
|
||||||
|
# Only UDP is currently supported for ingesting Syslog
|
||||||
|
protocol: UDP
|
||||||
|
|
||||||
|
service:
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
ingress:
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt-staging
|
||||||
|
nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
|
||||||
|
kubernetes.io/ingress.class: nginx
|
||||||
|
tls:
|
||||||
|
- secretName: seq-tls
|
||||||
|
hosts:
|
||||||
|
- seq.beta.oceanbox.io
|
||||||
|
labels: {}
|
||||||
|
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 2Gi
|
||||||
|
|
||||||
|
cache:
|
||||||
|
# The fraction of RAM that the cache should try fit within. Specifying a larger
|
||||||
|
# value may allow more events in RAM at the expense of potential instability.
|
||||||
|
# Setting it to `0` will disable the cache completely.
|
||||||
|
# 60% (`0.6`) is a good starting point for machines with up to ~8GB of RAM.
|
||||||
|
targetSize: 0.6
|
||||||
|
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
path: /data
|
||||||
|
subPath: ""
|
||||||
|
accessMode: ReadWriteOnce
|
||||||
|
size: 8Gi
|
||||||
|
|
||||||
|
serviceAccount:
|
||||||
|
create: false
|
||||||
|
name:
|
||||||
|
|
||||||
|
## Enable RBAC
|
||||||
|
rbac:
|
||||||
|
create: false
|
||||||
|
rules: []
|
||||||
|
|
||||||
|
livenessProbe:
|
||||||
|
enabled: true
|
||||||
|
failureThreshold: 3
|
||||||
|
initialDelaySeconds: 0
|
||||||
|
periodSeconds: 10
|
||||||
|
successThreshold: 1
|
||||||
|
timeoutSeconds: 1
|
||||||
|
|
||||||
|
readinessProbe:
|
||||||
|
enabled: true
|
||||||
|
failureThreshold: 3
|
||||||
|
initialDelaySeconds: 0
|
||||||
|
periodSeconds: 10
|
||||||
|
successThreshold: 1
|
||||||
|
timeoutSeconds: 1
|
||||||
|
|
||||||
|
startupProbe:
|
||||||
|
enabled: true
|
||||||
|
failureThreshold: 30
|
||||||
|
periodSeconds: 10
|
||||||
|
|
||||||
Reference in New Issue
Block a user