Skip to content

Commit 66a5323

Browse files
committed
Add helm charts
1 parent e2c6a70 commit 66a5323

13 files changed

+244
-0
lines changed

k8s/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
values-*.yaml
2+
secrets-*.yaml

k8s/.helmignore

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Patterns to ignore when building packages.
2+
# This supports shell glob matching, relative path matching, and
3+
# negation (prefixed with !). Only one pattern per line.
4+
.DS_Store
5+
# Common VCS dirs
6+
.git/
7+
.gitignore
8+
.bzr/
9+
.bzrignore
10+
.hg/
11+
.hgignore
12+
.svn/
13+
# Common backup files
14+
*.swp
15+
*.bak
16+
*.tmp
17+
*.orig
18+
*~
19+
# Various IDEs
20+
.project
21+
.idea/
22+
*.tmproj
23+
.vscode/

k8s/Chart.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: v2
2+
name: swissgeol-viewer
3+
description:
4+
type: application
5+
version: 1.0.0
6+
appVersion: 1.0.0

k8s/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# swissgeol Viewer: Kubernetes Deploymnet
2+
This directory contains the [Helm](https://helm.sh/) charts used to deploy the Viewer application to Kubernetes.
3+
4+
## Making Changes

k8s/secrets.template.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Template for secret values used by the Helm files.
2+
3+
# Note that every secret needs to be nested below this `secret` key
4+
# so that we can properly encode them in template/secrets.yaml.
5+
secrets:
6+
# Database
7+
database_password:
8+
9+
# S3
10+
s3_access_key:
11+
s3_secret_key:

k8s/templates/NOTES.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*** {{ .Chart.Name }} is successfully installed ***

k8s/templates/deployment.api.yaml

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: {{ .Release.Name }}-api
5+
namespace: {{ .Release.Namespace }}
6+
annotations:
7+
keel.sh/policy: force
8+
keel.sh/match-tag: 'true'
9+
keel.sh/trigger: poll
10+
spec:
11+
replicas: 1
12+
selector:
13+
matchLabels:
14+
app: {{ .Release.Name }}-api
15+
template:
16+
metadata:
17+
labels:
18+
app: {{ .Release.Name }}-api
19+
spec:
20+
containers:
21+
- name: {{ .Release.Name }}-api
22+
image: {{ .Values.docker.api_image }}
23+
imagePullPolicy: Always
24+
ports:
25+
- containerPort: 3000
26+
livenessProbe:
27+
httpGet:
28+
path: /api/health_check
29+
port: http
30+
readinessProbe:
31+
httpGet:
32+
path: /api/health_check
33+
port: http
34+
env:
35+
- name: APP_PORT
36+
value: '3000'
37+
- name: ENV
38+
value: prod
39+
40+
# Database
41+
- name: PGHOST
42+
value: {{ .Values.database.host }}
43+
- name: PGPORT
44+
value: {{ .Values.database.port }}
45+
- name: PGDATABASE
46+
value: {{ .Values.database.name }}
47+
- name: PGUSER
48+
value: {{ .Values.database.user }}
49+
- name: PGPASSWORD
50+
valueFrom:
51+
secretKeyRef:
52+
name: {{ .Release.Name }}-secrets
53+
key: database_password
54+
55+
# S3
56+
- name: S3_ENDPOINT
57+
value: {{ .Values.s3.endpoint }}
58+
- name: S3_AWS_REGION
59+
value: {{ .Values.s3.region }}
60+
- name: S3_BUCKET
61+
value: {{ .Values.s3.bucket }}
62+
- name: PROJECTS_S3_BUCKET
63+
value: {{ .Values.s3.project_bucket }}
64+
- name: AWS_ACCESS_KEY_ID
65+
valueFrom:
66+
secretKeyRef:
67+
name: {{ .Release.Name }}-secrets
68+
key: s3_access_key
69+
- name: AWS_SECRET_ACCESS_KEY
70+
valueFrom:
71+
secretKeyRef:
72+
name: {{ .Release.Name }}-secrets
73+
key: s3_secret_key
74+
75+
# Cognito
76+
- name: COGNITO_AWS_REGION
77+
value: {{ .Values.cognito.region }}
78+
- name: COGNITO_CLIENT_ID
79+
value: {{ .Values.cognito.client_id }}
80+
- name: COGNITO_POOL_ID
81+
value: {{ .Values.cognito.pool_id }}
82+
- name: COGNITO_IDENTITY_POOL_ID
83+
value: {{ .Values.cognito.identity_pool_id }}
84+
85+
# ION
86+
- name: ION_DEFAULT_ACCESS_TOKEN
87+
value: {{ .Values.ion.default_access_token }}
88+
89+
imagePullSecrets:
90+
- name: {{ .Release.Namespace }}-registry

k8s/templates/deployment.ui.yaml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: {{ .Release.Name }}-ui
5+
namespace: {{ .Release.Namespace }}
6+
annotations:
7+
keel.sh/policy: force
8+
keel.sh/match-tag: 'true'
9+
keel.sh/trigger: poll
10+
spec:
11+
replicas: 1
12+
selector:
13+
matchLabels:
14+
app: {{ .Release.Name }}-ui
15+
template:
16+
metadata:
17+
labels:
18+
app: {{ .Release.Name }}-ui
19+
spec:
20+
containers:
21+
- name: {{ .Release.Name }}-ui
22+
image: {{ .Values.docker.ui_image }}
23+
imagePullPolicy: Always
24+
ports:
25+
- containerPort: 80
26+
imagePullSecrets:
27+
- name: {{ .Release.Namespace }}-registry
28+
29+
30+

k8s/templates/ingress-route.yaml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
apiVersion: traefik.containo.us/v1alpha1
2+
kind: IngressRoute
3+
metadata:
4+
name: {{ .Release.Name }}-routes
5+
namespace: {{ .Release.Namespace }}
6+
spec:
7+
entryPoints:
8+
- web
9+
routes:
10+
- kind: Rule
11+
match: Host(`{{ .Values.host }}`)
12+
priority: 100
13+
services:
14+
- name: {{ .Release.Name }}-ui
15+
port: 80
16+
- kind: Rule
17+
match: Host(`{{ .Values.host }}`) && PathPrefix(`/api`)
18+
priority: 120
19+
services:
20+
- name: {{ .Release.Name }}-api
21+
port: 3000

k8s/templates/secrets.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: v1
2+
kind: Secret
3+
metadata:
4+
name: {{ .Release.Name }}-secrets
5+
namespace: {{ .Release.Namespace }}
6+
type: Opaque
7+
stringData:
8+
{{- range $key, $value := .Values.secrets }}
9+
{{ $key }}: {{ $value | b64enc | quote }}
10+
{{- end }}

k8s/templates/service.api.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: {{ .Release.Name }}-api
5+
namespace: {{ .Release.Namespace }}
6+
spec:
7+
selector:
8+
app: {{ .Release.Name }}-api
9+
ports:
10+
- protocol: TCP
11+
port: 3000

k8s/templates/service.app.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: {{ .Release.Name }}-app
5+
namespace: {{ .Release.Namespace }}
6+
spec:
7+
selector:
8+
app: {{ .Release.Name }}-app
9+
ports:
10+
- protocol: TCP
11+
port: 80

k8s/values.template.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
docker:
2+
api_image:
3+
ui_image:
4+
5+
database:
6+
host:
7+
port:
8+
name:
9+
user:
10+
11+
s3:
12+
endpoint:
13+
region:
14+
bucket:
15+
project_bucket:
16+
17+
cognito:
18+
region:
19+
client_id:
20+
pool_id:
21+
identity_pool_id:
22+
23+
ion:
24+
default_access_token:

0 commit comments

Comments
 (0)