Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions clusters/prod/apps/workbench/appset-guacamole.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: guacamole
namespace: argocd
spec:
goTemplate: true
goTemplateOptions: ["missingkey=error"]
generators:
- git:
repoURL: https://github.com/PilotDataPlatform/pilot-hdc-platform-gitops.git
revision: main
files:
- path: "clusters/prod/workbench/projects/*.yaml"
syncPolicy:
applicationsSync: create-update
template:
metadata:
name: 'guacamole-{{ .name }}'
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "13"
# NO finalizer — stateful app with PVC
spec:
project: default
source:
repoURL: https://github.com/PilotDataPlatform/pilot-hdc-platform-gitops.git
targetRevision: main
path: clusters/prod/workbench/guacamole-stack
helm:
valueFiles:
- ../../registry.yaml
- values.yaml
parameters:
- name: projectName
value: '{{ .name }}'
- name: domain
value: 'hdc.ebrains.eu'
destination:
server: https://kubernetes.default.svc
namespace: 'project-{{ .name }}'
syncPolicy:
automated:
prune: false
selfHeal: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
51 changes: 51 additions & 0 deletions clusters/prod/apps/workbench/appset-jupyterhub.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: jupyterhub
namespace: argocd
spec:
goTemplate: true
goTemplateOptions: ["missingkey=error"]
generators:
- git:
repoURL: https://github.com/PilotDataPlatform/pilot-hdc-platform-gitops.git
revision: main
files:
- path: "clusters/prod/workbench/projects/*.yaml"
syncPolicy:
applicationsSync: create-update
template:
metadata:
name: 'jupyterhub-{{ .name }}'
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "13"
# NO finalizer — stateful app (hub PVC + user PVCs)
spec:
project: default
source:
repoURL: https://github.com/PilotDataPlatform/pilot-hdc-platform-gitops.git
targetRevision: main
path: clusters/prod/workbench/jupyterhub
helm:
releaseName: jupyterhub
valueFiles:
- ../../registry.yaml
- values.yaml
parameters:
- name: projectName
value: '{{ .name }}'
- name: domain
value: 'hdc.ebrains.eu'
- name: jupyterhub.hub.baseUrl
value: '/workbench/{{ .name }}/j/'
destination:
server: https://kubernetes.default.svc
namespace: 'project-{{ .name }}'
syncPolicy:
automated:
prune: false
selfHeal: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
47 changes: 47 additions & 0 deletions clusters/prod/apps/workbench/appset-project-resources.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: project-resources
namespace: argocd
spec:
goTemplate: true
goTemplateOptions: ["missingkey=error"]
generators:
- git:
repoURL: https://github.com/PilotDataPlatform/pilot-hdc-platform-gitops.git
revision: main
files:
- path: "clusters/prod/workbench/projects/*.yaml"
syncPolicy:
applicationsSync: create-update
template:
metadata:
name: 'project-resources-{{ .name }}'
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "11"
# NO finalizer — manages PVCs
spec:
project: default
source:
repoURL: https://github.com/PilotDataPlatform/pilot-hdc-platform-gitops.git
targetRevision: main
path: clusters/prod/workbench/project-resources
helm:
releaseName: project-resources
valueFiles:
- ../../registry.yaml
- values.yaml
parameters:
- name: projectName
value: '{{ .name }}'
destination:
server: https://kubernetes.default.svc
namespace: 'project-{{ .name }}'
syncPolicy:
automated:
prune: false
selfHeal: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
49 changes: 49 additions & 0 deletions clusters/prod/apps/workbench/appset-superset.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: superset
namespace: argocd
spec:
goTemplate: true
goTemplateOptions: ["missingkey=error"]
generators:
- git:
repoURL: https://github.com/PilotDataPlatform/pilot-hdc-platform-gitops.git
revision: main
files:
- path: "clusters/prod/workbench/projects/*.yaml"
syncPolicy:
applicationsSync: create-update
template:
metadata:
name: 'superset-{{ .name }}'
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "13"
# NO finalizer — stateful app with PVC
spec:
project: default
source:
repoURL: https://github.com/PilotDataPlatform/pilot-hdc-platform-gitops.git
targetRevision: main
path: clusters/prod/workbench/superset
helm:
releaseName: superset
valueFiles:
- ../../registry.yaml
- values.yaml
parameters:
- name: projectName
value: '{{ .name }}'
- name: domain
value: 'hdc.ebrains.eu'
destination:
server: https://kubernetes.default.svc
namespace: 'project-{{ .name }}'
syncPolicy:
automated:
prune: false
selfHeal: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
8 changes: 8 additions & 0 deletions clusters/prod/workbench/guacamole-stack/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
apiVersion: v2
name: guacamole-stack
version: 0.1.0
dependencies:
- name: postgresql
version: "15.5.17"
repository: https://pilotdataplatform.github.io/helm-charts/
alias: guacamole-postgresql
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{{/*
Common labels
*/}}
{{- define "guacamole-stack.labels" -}}
helm.sh/chart: {{ .Chart.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: guacamole-configuration
labels:
app.kubernetes.io/name: guacamole
{{- include "guacamole-stack.labels" . | nindent 4 }}
data:
guacamole.properties: |
enable-environment-properties: true
postgresql-auto-create-accounts: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: guacamole
labels:
app.kubernetes.io/name: guacamole
{{- include "guacamole-stack.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.guacamole.replicaCount }}
selector:
matchLabels:
app.kubernetes.io/name: guacamole
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: guacamole
{{- include "guacamole-stack.labels" . | nindent 8 }}
spec:
imagePullSecrets:
- name: docker-registry-secret
containers:
- name: guacamole
image: "{{ .Values.global.imageRegistry }}/{{ .Values.guacamole.image.repository }}:{{ .Values.guacamole.image.tag }}"
imagePullPolicy: {{ .Values.guacamole.image.pullPolicy }}
ports:
- name: http
containerPort: 8080
protocol: TCP
env:
- name: GUACAMOLE_HOME
value: /etc/guacamole
- name: GUACD_HOSTNAME
value: guacd.{{ .Release.Namespace }}.svc.cluster.local
- name: GUACD_PORT
value: "4822"
- name: POSTGRES_HOSTNAME
value: postgres-guacamole.{{ .Release.Namespace }}.svc.cluster.local
- name: POSTGRES_PORT
value: "5432"
- name: POSTGRES_DATABASE
value: guacamole_db
- name: POSTGRES_USER
value: guacamole_user
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: guacamole-pg-credentials
key: password
- name: POSTGRES_ABSOLUTE_MAX_CONNECTIONS
value: "{{ .Values.guacamoleProperties.postgresqlAbsoluteMaxConnections }}"
- name: OPENID_AUTHORIZATION_ENDPOINT
value: https://{{ .Values.keycloakDomain }}/realms/hdc/protocol/openid-connect/auth
- name: OPENID_JWKS_ENDPOINT
value: https://{{ .Values.keycloakDomain }}/realms/hdc/protocol/openid-connect/certs
- name: OPENID_ISSUER
value: https://{{ .Values.keycloakDomain }}/realms/hdc
- name: OPENID_CLIENT_ID
value: guacamole-{{ .Values.projectName }}
- name: OPENID_REDIRECT_URI
value: https://{{ .Values.domain }}/workbench/{{ .Values.projectName }}/guacamole/
- name: OPENID_USERNAME_CLAIM_TYPE
value: {{ .Values.oidc.usernameClaim }}
- name: OPENID_SCOPE
value: {{ .Values.oidc.scope }}
volumeMounts:
- name: guacamole-config
mountPath: /etc/guacamole
livenessProbe:
httpGet:
path: /
port: http
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /
port: http
initialDelaySeconds: 15
periodSeconds: 5
resources:
{{- toYaml .Values.guacamole.resources | nindent 12 }}
volumes:
- name: guacamole-config
configMap:
name: guacamole-configuration
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
apiVersion: v1
kind: Service
metadata:
name: guacamole
labels:
app.kubernetes.io/name: guacamole
{{- include "guacamole-stack.labels" . | nindent 4 }}
spec:
type: ClusterIP
ports:
- port: 8080
targetPort: http
protocol: TCP
name: http
selector:
app.kubernetes.io/name: guacamole
app.kubernetes.io/instance: {{ .Release.Name }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: guacd
labels:
app.kubernetes.io/name: guacd
{{- include "guacamole-stack.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.guacd.replicaCount }}
selector:
matchLabels:
app.kubernetes.io/name: guacd
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: guacd
{{- include "guacamole-stack.labels" . | nindent 8 }}
spec:
imagePullSecrets:
- name: docker-registry-secret
containers:
- name: guacd
image: "{{ .Values.global.imageRegistry }}/{{ .Values.guacd.image.repository }}:{{ .Values.guacd.image.tag }}"
imagePullPolicy: {{ .Values.guacd.image.pullPolicy }}
ports:
- name: guacd
containerPort: 4822
protocol: TCP
livenessProbe:
tcpSocket:
port: guacd
initialDelaySeconds: 10
periodSeconds: 10
readinessProbe:
tcpSocket:
port: guacd
initialDelaySeconds: 5
periodSeconds: 5
resources:
{{- toYaml .Values.guacd.resources | nindent 12 }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
apiVersion: v1
kind: Service
metadata:
name: guacd
labels:
app.kubernetes.io/name: guacd
{{- include "guacamole-stack.labels" . | nindent 4 }}
spec:
type: ClusterIP
ports:
- port: 4822
targetPort: guacd
protocol: TCP
name: guacd
selector:
app.kubernetes.io/name: guacd
app.kubernetes.io/instance: {{ .Release.Name }}
Loading
Loading