aboutsummaryrefslogtreecommitdiffstats
path: root/kubernetes/namespaces/tooling
diff options
context:
space:
mode:
authorGravatar Joe Banks <[email protected]>2024-04-15 12:45:57 +0100
committerGravatar Joe Banks <[email protected]>2024-04-15 12:46:20 +0100
commit9d0bbdfb9f7ef186d61b9074e782b036cabc576e (patch)
tree6f98353dea90f749defb3d86c8898edd2f86bd82 /kubernetes/namespaces/tooling
parentMove rTeX to apis namespace (diff)
Move metabase to tooling namespace
Diffstat (limited to 'kubernetes/namespaces/tooling')
-rw-r--r--kubernetes/namespaces/tooling/metabase/README.md14
-rw-r--r--kubernetes/namespaces/tooling/metabase/deployment.yaml36
-rw-r--r--kubernetes/namespaces/tooling/metabase/ingress.yaml25
-rw-r--r--kubernetes/namespaces/tooling/metabase/secrets.yamlbin0 -> 338 bytes
-rw-r--r--kubernetes/namespaces/tooling/metabase/service.yaml12
5 files changed, 87 insertions, 0 deletions
diff --git a/kubernetes/namespaces/tooling/metabase/README.md b/kubernetes/namespaces/tooling/metabase/README.md
new file mode 100644
index 0000000..b246d54
--- /dev/null
+++ b/kubernetes/namespaces/tooling/metabase/README.md
@@ -0,0 +1,14 @@
+# Metabase
+These manifests provision an instance of Metabase, our database analysis tool.
+
+## Secrets
+A single secret of name `metabase-env` is used with the following values:
+
+| Environment | Description |
+|--------------|-------------------------------------------|
+| MB_DB_DBNAME | Database name for internal metabase usage |
+| MB_DB_HOST | Address of PostgreSQL database |
+| MB_DB_TYPE | Always postgres |
+| MB_DB_PASS | Database user password |
+| MB_DB_PORT | Always 5432 |
+| MB_DB_USER | User for metabase internal |
diff --git a/kubernetes/namespaces/tooling/metabase/deployment.yaml b/kubernetes/namespaces/tooling/metabase/deployment.yaml
new file mode 100644
index 0000000..d55ac22
--- /dev/null
+++ b/kubernetes/namespaces/tooling/metabase/deployment.yaml
@@ -0,0 +1,36 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: metabase
+ namespace: tooling
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: metabase
+ template:
+ metadata:
+ labels:
+ app: metabase
+ spec:
+ securityContext:
+ fsGroup: 2000
+ runAsUser: 1000
+ runAsNonRoot: true
+ containers:
+ - name: metabase
+ image: metabase/metabase:latest
+ imagePullPolicy: Always
+ ports:
+ - containerPort: 3000
+ envFrom:
+ - secretRef:
+ name: metabase-env
+ volumeMounts:
+ - mountPath: /plugins
+ name: mb-plugins-volume
+ securityContext:
+ readOnlyRootFilesystem: true
+ volumes:
+ - name: mb-plugins-volume
+ emptyDir: {}
diff --git a/kubernetes/namespaces/tooling/metabase/ingress.yaml b/kubernetes/namespaces/tooling/metabase/ingress.yaml
new file mode 100644
index 0000000..b29bdd8
--- /dev/null
+++ b/kubernetes/namespaces/tooling/metabase/ingress.yaml
@@ -0,0 +1,25 @@
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ annotations:
+ nginx.ingress.kubernetes.io/auth-tls-verify-client: "on"
+ nginx.ingress.kubernetes.io/auth-tls-secret: "kube-system/mtls-client-crt-bundle"
+ nginx.ingress.kubernetes.io/auth-tls-error-page: "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
+ name: metabase
+ namespace: tooling
+spec:
+ tls:
+ - hosts:
+ - "*.pythondiscord.com"
+ secretName: pythondiscord.com-tls
+ rules:
+ - host: metabase.pythondiscord.com
+ http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: metabase
+ port:
+ number: 80
diff --git a/kubernetes/namespaces/tooling/metabase/secrets.yaml b/kubernetes/namespaces/tooling/metabase/secrets.yaml
new file mode 100644
index 0000000..909264d
--- /dev/null
+++ b/kubernetes/namespaces/tooling/metabase/secrets.yaml
Binary files differ
diff --git a/kubernetes/namespaces/tooling/metabase/service.yaml b/kubernetes/namespaces/tooling/metabase/service.yaml
new file mode 100644
index 0000000..76e2841
--- /dev/null
+++ b/kubernetes/namespaces/tooling/metabase/service.yaml
@@ -0,0 +1,12 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: metabase
+ namespace: tooling
+spec:
+ selector:
+ app: metabase
+ ports:
+ - protocol: TCP
+ port: 80
+ targetPort: 3000