From 4ba44ca64ce3b0a19bfba96c6acfc13fcb2c2fcf Mon Sep 17 00:00:00 2001 From: Joe Banks Date: Mon, 15 Apr 2024 12:28:47 +0100 Subject: Move blackbox to databases ns --- kubernetes/namespaces/databases/blackbox/README.md | 18 ++++++++ .../databases/blackbox/blackbox-configmap.yaml | 48 +++++++++++++++++++++ .../namespaces/databases/blackbox/cronjob.yaml | 40 +++++++++++++++++ .../namespaces/databases/blackbox/secrets.yaml | Bin 0 -> 628 bytes 4 files changed, 106 insertions(+) create mode 100644 kubernetes/namespaces/databases/blackbox/README.md create mode 100644 kubernetes/namespaces/databases/blackbox/blackbox-configmap.yaml create mode 100644 kubernetes/namespaces/databases/blackbox/cronjob.yaml create mode 100644 kubernetes/namespaces/databases/blackbox/secrets.yaml (limited to 'kubernetes/namespaces/databases') diff --git a/kubernetes/namespaces/databases/blackbox/README.md b/kubernetes/namespaces/databases/blackbox/README.md new file mode 100644 index 0000000..f53ef87 --- /dev/null +++ b/kubernetes/namespaces/databases/blackbox/README.md @@ -0,0 +1,18 @@ +# Blackbox +These manifests provision a CronJob for blackbox, our database backup tool. + +You can find the repository for blackbox at [lemonsaurus/blackbox](https://github.com/lemonsaurus/blackbox). + +## Secrets +blackbox requires the following secrets in a secret titled `blackbox-env`: + +| Variable | Description | +|--------------------------------|------------------------| +| **POSTGRES_USER** | Postgres username | +| **POSTGRES_PASSWORD** | Postgres password | +| **REDIS_PASSWORD** | Redis password | +| **MONGO_INITDB_ROOT_USERNAME** | MongoDB username | +| **MONGO_INITDB_ROOT_PASSWORD** | MongoDB password | +| **AWS_ACCESS_KEY_ID** | Access key for S3 | +| **AWS_SECRET_ACCESS_KEY** | Secret key for S3 | +| **DEVOPS_WEBHOOK** | Webhook for #dev-ops | diff --git a/kubernetes/namespaces/databases/blackbox/blackbox-configmap.yaml b/kubernetes/namespaces/databases/blackbox/blackbox-configmap.yaml new file mode 100644 index 0000000..9cdb6ad --- /dev/null +++ b/kubernetes/namespaces/databases/blackbox/blackbox-configmap.yaml @@ -0,0 +1,48 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: blackbox-config + namespace: databases +data: + blackbox.yaml: | + databases: + mongodb: + main_mongodb: + connection_string: mongodb://{{ MONGO_INITDB_ROOT_USERNAME }}:{{ MONGO_INITDB_ROOT_PASSWORD }}@mongodb.default.svc.cluster.local:27017 + postgres: + main_postgres: + username: {{ POSTGRES_USER }} + password: {{ POSTGRES_PASSWORD }} + host: postgres.default.svc.cluster.local + port: "5432" + redis: + main_redis: + password: {{ REDIS_PASSWORD }} + host: redis.default.svc.cluster.local + port: "6379" + + storage: + s3: + frankfurt_s3: + bucket: blackbox + endpoint: eu-central-1.linodeobjects.com + aws_access_key_id: {{ AWS_ACCESS_KEY_ID }} + aws_secret_access_key: {{ AWS_SECRET_ACCESS_KEY }} + newark_s3: + bucket: blackbox + endpoint: us-east-1.linodeobjects.com + aws_access_key_id: {{ AWS_ACCESS_KEY_ID }} + aws_secret_access_key: {{ AWS_SECRET_ACCESS_KEY }} + singapore_s3: + bucket: blackbox + endpoint: ap-south-1.linodeobjects.com + aws_access_key_id: {{ AWS_ACCESS_KEY_ID }} + aws_secret_access_key: {{ AWS_SECRET_ACCESS_KEY }} + + + notifiers: + discord: + dev_ops: + webhook: {{ DEVOPS_WEBHOOK }} + + retention_days: 7 diff --git a/kubernetes/namespaces/databases/blackbox/cronjob.yaml b/kubernetes/namespaces/databases/blackbox/cronjob.yaml new file mode 100644 index 0000000..7732aa9 --- /dev/null +++ b/kubernetes/namespaces/databases/blackbox/cronjob.yaml @@ -0,0 +1,40 @@ +apiVersion: batch/v1 +kind: CronJob +metadata: + name: blackbox + namespace: databases +spec: + schedule: "0 15 * * *" + jobTemplate: + spec: + template: + spec: + containers: + - name: blackbox + image: lemonsaurus/blackbox:main + imagePullPolicy: Always + envFrom: + - secretRef: + name: blackbox-env + env: + - name: BLACKBOX_CONFIG_PATH + value: "/blackbox/config_file/blackbox.yaml" + volumeMounts: + - mountPath: /blackbox/config_file + name: blackbox-config + - mountPath: /tmp + name: blackbox-tmp + securityContext: + readOnlyRootFilesystem: true + volumes: + - name: blackbox-config + configMap: + name: blackbox-config + - name: blackbox-tmp + emptyDir: {} + restartPolicy: OnFailure + nodeSelector: + # NOTE: This should be updated to match the highest spec + # instance that is being used by the cluster. + node.kubernetes.io/instance-type: g6-standard-4 + backoffLimit: 3 diff --git a/kubernetes/namespaces/databases/blackbox/secrets.yaml b/kubernetes/namespaces/databases/blackbox/secrets.yaml new file mode 100644 index 0000000..4255b48 Binary files /dev/null and b/kubernetes/namespaces/databases/blackbox/secrets.yaml differ -- cgit v1.2.3