From cb25eca7df08e104aecf1c56db4c8ac274ecf095 Mon Sep 17 00:00:00 2001 From: ace Date: Wed, 10 Feb 2021 02:28:44 +0300 Subject: [PATCH] add mastodon --- mastodon/.helmignore | 23 +++ mastodon/Chart.yaml | 37 ++++ mastodon/charts/elasticsearch-14.2.1.tgz | Bin 0 -> 69401 bytes mastodon/charts/postgresql-10.2.7.tgz | Bin 0 -> 47696 bytes mastodon/charts/redis-12.7.4.tgz | Bin 0 -> 73613 bytes mastodon/readme.md | 44 ++++ mastodon/templates/NOTES.txt | 21 ++ mastodon/templates/_helpers.tpl | 79 +++++++ mastodon/templates/configmap-env.yaml | 69 +++++++ mastodon/templates/cronjob-media-remove.yaml | 73 +++++++ mastodon/templates/deployment-sidekiq.yaml | 101 +++++++++ mastodon/templates/deployment-streaming.yaml | 84 ++++++++ mastodon/templates/deployment-web.yaml | 105 ++++++++++ mastodon/templates/hpa.yaml | 28 +++ mastodon/templates/ingress.yaml | 41 ++++ mastodon/templates/job-assets-precompile.yaml | 73 +++++++ mastodon/templates/job-chewy-upgrade.yaml | 75 +++++++ mastodon/templates/job-create-admin.yaml | 80 +++++++ mastodon/templates/job-db-migrate.yaml | 73 +++++++ .../templates/job-set-admin-password.yaml | 74 +++++++ mastodon/templates/pvc-assets.yaml | 13 ++ mastodon/templates/pvc-system.yaml | 13 ++ mastodon/templates/secrets.yaml | 28 +++ mastodon/templates/service-streaming.yaml | 15 ++ mastodon/templates/service-web.yaml | 15 ++ mastodon/templates/serviceaccount.yaml | 12 ++ mastodon/templates/tests/test-connection.yaml | 15 ++ mastodon/values.yaml | 195 ++++++++++++++++++ 28 files changed, 1386 insertions(+) create mode 100644 mastodon/.helmignore create mode 100644 mastodon/Chart.yaml create mode 100644 mastodon/charts/elasticsearch-14.2.1.tgz create mode 100644 mastodon/charts/postgresql-10.2.7.tgz create mode 100644 mastodon/charts/redis-12.7.4.tgz create mode 100644 mastodon/readme.md create mode 100644 mastodon/templates/NOTES.txt create mode 100644 mastodon/templates/_helpers.tpl create mode 100644 mastodon/templates/configmap-env.yaml create mode 100644 mastodon/templates/cronjob-media-remove.yaml create mode 100644 mastodon/templates/deployment-sidekiq.yaml create mode 100644 mastodon/templates/deployment-streaming.yaml create mode 100644 mastodon/templates/deployment-web.yaml create mode 100644 mastodon/templates/hpa.yaml create mode 100644 mastodon/templates/ingress.yaml create mode 100644 mastodon/templates/job-assets-precompile.yaml create mode 100644 mastodon/templates/job-chewy-upgrade.yaml create mode 100644 mastodon/templates/job-create-admin.yaml create mode 100644 mastodon/templates/job-db-migrate.yaml create mode 100644 mastodon/templates/job-set-admin-password.yaml create mode 100644 mastodon/templates/pvc-assets.yaml create mode 100644 mastodon/templates/pvc-system.yaml create mode 100644 mastodon/templates/secrets.yaml create mode 100644 mastodon/templates/service-streaming.yaml create mode 100644 mastodon/templates/service-web.yaml create mode 100644 mastodon/templates/serviceaccount.yaml create mode 100644 mastodon/templates/tests/test-connection.yaml create mode 100644 mastodon/values.yaml diff --git a/mastodon/.helmignore b/mastodon/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/mastodon/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/mastodon/Chart.yaml b/mastodon/Chart.yaml new file mode 100644 index 0000000..715fc1b --- /dev/null +++ b/mastodon/Chart.yaml @@ -0,0 +1,37 @@ +apiVersion: v2 +name: mastodon +description: Mastodon is a free, open-source social network server based on ActivityPub. + +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 0.1.3 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +appVersion: 3.3.0 + +dependencies: + - name: elasticsearch + version: "14.2.1" + repository: https://charts.bitnami.com/bitnami + condition: elasticsearch.enabled + - name: postgresql + version: "10.2.7" + repository: https://charts.bitnami.com/bitnami + condition: postgresql.enabled + - name: redis + version: "12.7.2" + repository: https://charts.bitnami.com/bitnami + condition: redis.enabled diff --git a/mastodon/charts/elasticsearch-14.2.1.tgz b/mastodon/charts/elasticsearch-14.2.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0605dca8a4bc4224b3d2d5439cba5c975d9b43c0 GIT binary patch literal 69401 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 literal 0 HcmV?d00001 diff --git a/mastodon/charts/redis-12.7.4.tgz b/mastodon/charts/redis-12.7.4.tgz new file mode 100644 index 0000000000000000000000000000000000000000..13e3655e074f45c37d0196f7fc6e9788e44ec623 GIT binary patch literal 73613 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
    }la{G>bsKxP0)huVn2;Q&TB*`EsI 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 J)9e8B1pu#sHhKU6 literal 0 HcmV?d00001 diff --git a/mastodon/readme.md b/mastodon/readme.md new file mode 100644 index 0000000..804e980 --- /dev/null +++ b/mastodon/readme.md @@ -0,0 +1,44 @@ +# Introduction + +This is a [Helm](https://helm.sh/) chart for installing Mastodon into a +Kubernetes cluster. The basic usage is: + +``` +cp values.yaml.template values.yaml +edit values.yaml # configure required settings +helm dep update +helm upgrade --install my-mastodon ./ +``` + +This chart has been tested on Helm 3.0.1 and above. + +# Configuration + +The variables that _must_ be configured are: + +- `ingress.hostname`; even if you aren’t using an Ingress, this value is used to + set `LOCAL_DOMAIN`. + +- password and keys in the `secrets`, `postgresql`, and `redis` groups; if + left blank, some of those values will be autogenerated, but will not persist + across upgrades. + +- SMTP settings for your mailer in the `smtp` group. + +# Missing features + +Currently this chart does _not_ support: + +- Hidden services +- S3/Minio/GCS +- Single Sign-On +- Swift +- configurations using `WEB_DOMAIN` + +# Upgrading + +Because database migrations are managed as a Job separate from the Rails and +Sidekiq deployments, it’s possible they will occur in the wrong order. After +upgrading Mastodon versions, it may sometimes be necessary to manually delete +the Rails and Sidekiq pods so that they are recreated against the latest +migration. diff --git a/mastodon/templates/NOTES.txt b/mastodon/templates/NOTES.txt new file mode 100644 index 0000000..36cced6 --- /dev/null +++ b/mastodon/templates/NOTES.txt @@ -0,0 +1,21 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range $host := .Values.ingress.hosts }} + {{- range .paths }} + http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }} + {{- end }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "mastodon.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "mastodon.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "mastodon.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo http://$SERVICE_IP:{{ .Values.service.port }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "mastodon.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80 +{{- end }} diff --git a/mastodon/templates/_helpers.tpl b/mastodon/templates/_helpers.tpl new file mode 100644 index 0000000..5814a31 --- /dev/null +++ b/mastodon/templates/_helpers.tpl @@ -0,0 +1,79 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "mastodon.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "mastodon.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "mastodon.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "mastodon.labels" -}} +helm.sh/chart: {{ include "mastodon.chart" . }} +{{ include "mastodon.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "mastodon.selectorLabels" -}} +app.kubernetes.io/name: {{ include "mastodon.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "mastodon.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "mastodon.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} + +{{/* +Create a default fully qualified name for dependent services. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +*/}} +{{- define "mastodon.elasticsearch.fullname" -}} +{{- printf "%s-%s" .Release.Name "elasticsearch" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{- define "mastodon.redis.fullname" -}} +{{- printf "%s-%s" .Release.Name "redis" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{- define "mastodon.postgresql.fullname" -}} +{{- printf "%s-%s" .Release.Name "postgresql" | trunc 63 | trimSuffix "-" -}} +{{- end -}} diff --git a/mastodon/templates/configmap-env.yaml b/mastodon/templates/configmap-env.yaml new file mode 100644 index 0000000..528ccb5 --- /dev/null +++ b/mastodon/templates/configmap-env.yaml @@ -0,0 +1,69 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "mastodon.fullname" . }}-env + labels: + {{- include "mastodon.labels" . | nindent 4 }} +data: + {{- if .Values.postgresql.enabled }} + DB_HOST: {{ template "mastodon.postgresql.fullname" . }} + {{- else }} + DB_HOST: {{ .Values.postgresql.postgresqlHost }} + {{- end }} + DB_NAME: {{ .Values.postgresql.postgresqlDatabase }} + DB_POOL: {{ .Values.application.sidekiq.concurrency | quote }} + DB_PORT: "5432" + DB_USER: {{ .Values.postgresql.postgresqlUsername }} + DEFAULT_LOCALE: {{ .Values.locale }} + {{- if .Values.elasticsearch.enabled }} + ES_ENABLED: "true" + ES_HOST: {{ template "mastodon.elasticsearch.fullname" . }}-master + ES_PORT: "9200" + {{- end }} + LOCAL_DOMAIN: {{ .Values.ingress.hostname }} + # https://devcenter.heroku.com/articles/tuning-glibc-memory-behavior + MALLOC_ARENA_MAX: "2" + NODE_ENV: "production" + RAILS_ENV: "production" + REDIS_HOST: {{ template "mastodon.redis.fullname" . }}-master + REDIS_PORT: "6379" + {{- if .Values.smtp.auth_method }} + SMTP_AUTH_METHOD: {{ .Values.smtp.auth_method }} + {{- end }} + {{- if .Values.smtp.ca_file }} + SMTP_CA_FILE: {{ .Values.smtp.ca_file }} + {{- end }} + {{- if .Values.smtp.delivery_method }} + SMTP_DELIVERY_METHOD: {{ .Values.smtp.delivery_method }} + {{- end }} + {{- if .Values.smtp.domain }} + SMTP_DOMAIN: {{ .Values.smtp.domain }} + {{- end }} + {{- if .Values.smtp.enable_starttls_auto }} + SMTP_ENABLE_STARTTLS_AUTO: {{ .Values.smtp.enable_starttls_auto | quote }} + {{- end }} + {{- if .Values.smtp.from_address }} + SMTP_FROM_ADDRESS: {{ .Values.smtp.from_address }} + {{- end }} + {{- if .Values.smtp.login }} + SMTP_LOGIN: {{ .Values.smtp.login }} + {{- end }} + {{- if .Values.smtp.openssl_verify_mode }} + SMTP_OPENSSL_VERIFY_MODE: {{ .Values.smtp.openssl_verify_mode }} + {{- end }} + {{- if .Values.smtp.password }} + SMTP_PASSWORD: {{ .Values.smtp.password }} + {{- end }} + {{- if .Values.smtp.port }} + SMTP_PORT: {{ .Values.smtp.port | quote }} + {{- end }} + {{- if .Values.smtp.reply_to }} + SMTP_REPLY_TO: {{ .Values.smtp.reply_to }} + {{- end }} + {{- if .Values.smtp.server }} + SMTP_SERVER: {{ .Values.smtp.server }} + {{- end }} + {{- if .Values.smtp.tls }} + SMTP_TLS: {{ .Values.smtp.tls | quote }} + {{- end }} + STREAMING_CLUSTER_NUM: {{ .Values.application.streaming.workers | quote }} diff --git a/mastodon/templates/cronjob-media-remove.yaml b/mastodon/templates/cronjob-media-remove.yaml new file mode 100644 index 0000000..8d95c1e --- /dev/null +++ b/mastodon/templates/cronjob-media-remove.yaml @@ -0,0 +1,73 @@ +{{ if .Values.cron.removeMedia.enabled }} +apiVersion: batch/v1beta1 +kind: CronJob +metadata: + name: {{ include "mastodon.fullname" . }}-media-remove + labels: + {{- include "mastodon.labels" . | nindent 4 }} +spec: + schedule: {{ .Values.cron.removeMedia.schedule }} + jobTemplate: + spec: + template: + metadata: + name: {{ include "mastodon.fullname" . }}-media-remove + spec: + restartPolicy: OnFailure + # ensure we run on the same node as the other rails components; only + # required when using PVCs that are ReadWriteOnce + {{- if or (eq "ReadWriteOnce" .Values.persistence.assets.accessMode) (eq "ReadWriteOnce" .Values.persistence.system.accessMode) }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: component + operator: In + values: + - rails + topologyKey: kubernetes.io/hostname + {{- end }} + volumes: + - name: assets + persistentVolumeClaim: + claimName: {{ template "mastodon.fullname" . }}-assets + - name: system + persistentVolumeClaim: + claimName: {{ template "mastodon.fullname" . }}-system + containers: + - name: {{ include "mastodon.fullname" . }}-media-remove + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + command: + - bin/tootctl + - media + - remove + envFrom: + - configMapRef: + name: {{ include "mastodon.fullname" . }}-env + - secretRef: + name: {{ template "mastodon.fullname" . }} + env: + - name: "DB_PASS" + {{- if .Values.postgresql.enabled }} + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-postgresql + key: postgresql-password + {{- else }} + value: {{ .Values.postgresql.postgresqlPassword | quote }} + {{- end }} + - name: "REDIS_PASSWORD" + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-redis + key: redis-password + - name: "PORT" + value: {{ .Values.application.web.port | quote }} + volumeMounts: + - name: assets + mountPath: /opt/mastodon/public/assets + - name: system + mountPath: /opt/mastodon/public/system +{{- end }} diff --git a/mastodon/templates/deployment-sidekiq.yaml b/mastodon/templates/deployment-sidekiq.yaml new file mode 100644 index 0000000..d7d1c46 --- /dev/null +++ b/mastodon/templates/deployment-sidekiq.yaml @@ -0,0 +1,101 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "mastodon.fullname" . }}-sidekiq + labels: + {{- include "mastodon.labels" . | nindent 4 }} +spec: +{{- if not .Values.autoscaling.enabled }} + replicas: {{ .Values.replicaCount }} +{{- end }} + selector: + matchLabels: + {{- include "mastodon.selectorLabels" . | nindent 6 }} + component: rails + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + # roll the pods to pick up any db migrations + rollme: {{ randAlphaNum 5 | quote }} + {{- end }} + labels: + {{- include "mastodon.selectorLabels" . | nindent 8 }} + component: rails + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "mastodon.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + # ensure we run on the same node as the other rails components; only + # required when using PVCs that are ReadWriteOnce + {{- if or (eq "ReadWriteOnce" .Values.persistence.assets.accessMode) (eq "ReadWriteOnce" .Values.persistence.system.accessMode) }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: component + operator: In + values: + - rails + topologyKey: kubernetes.io/hostname + {{- end }} + volumes: + - name: assets + persistentVolumeClaim: + claimName: {{ template "mastodon.fullname" . }}-assets + - name: system + persistentVolumeClaim: + claimName: {{ template "mastodon.fullname" . }}-system + containers: + - name: {{ .Chart.Name }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + command: + - bundle + - exec + - sidekiq + - -c + - {{ .Values.application.sidekiq.concurrency | quote }} + envFrom: + - configMapRef: + name: {{ include "mastodon.fullname" . }}-env + - secretRef: + name: {{ template "mastodon.fullname" . }} + env: + - name: "DB_PASS" + {{- if .Values.postgresql.enabled }} + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-postgresql + key: postgresql-password + {{- else }} + value: {{ .Values.postgresql.postgresqlPassword | quote }} + {{- end }} + - name: "REDIS_PASSWORD" + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-redis + key: redis-password + volumeMounts: + - name: assets + mountPath: /opt/mastodon/public/assets + - name: system + mountPath: /opt/mastodon/public/system + resources: + {{- toYaml .Values.resources | nindent 12 }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/mastodon/templates/deployment-streaming.yaml b/mastodon/templates/deployment-streaming.yaml new file mode 100644 index 0000000..4bcd2e8 --- /dev/null +++ b/mastodon/templates/deployment-streaming.yaml @@ -0,0 +1,84 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "mastodon.fullname" . }}-streaming + labels: + {{- include "mastodon.labels" . | nindent 4 }} +spec: +{{- if not .Values.autoscaling.enabled }} + replicas: {{ .Values.replicaCount }} +{{- end }} + selector: + matchLabels: + {{- include "mastodon.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "mastodon.selectorLabels" . | nindent 8 }} + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "mastodon.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + containers: + - name: {{ .Chart.Name }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + command: + - node + - ./streaming + envFrom: + - configMapRef: + name: {{ include "mastodon.fullname" . }}-env + env: + - name: "DB_PASS" + {{- if .Values.postgresql.enabled }} + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-postgresql + key: postgresql-password + {{- else }} + value: {{ .Values.postgresql.postgresqlPassword | quote }} + {{- end }} + - name: "REDIS_PASSWORD" + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-redis + key: redis-password + - name: "PORT" + value: {{ .Values.application.streaming.port | quote }} + ports: + - name: streaming + containerPort: {{ .Values.application.streaming.port }} + protocol: TCP + livenessProbe: + httpGet: + path: /api/v1/streaming/health + port: streaming + readinessProbe: + httpGet: + path: /api/v1/streaming/health + port: streaming + resources: + {{- toYaml .Values.resources | nindent 12 }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/mastodon/templates/deployment-web.yaml b/mastodon/templates/deployment-web.yaml new file mode 100644 index 0000000..aa7d3a1 --- /dev/null +++ b/mastodon/templates/deployment-web.yaml @@ -0,0 +1,105 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "mastodon.fullname" . }}-web + labels: + {{- include "mastodon.labels" . | nindent 4 }} +spec: +{{- if not .Values.autoscaling.enabled }} + replicas: {{ .Values.replicaCount }} +{{- end }} + selector: + matchLabels: + {{- include "mastodon.selectorLabels" . | nindent 6 }} + component: rails + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + # roll the pods to pick up any db migrations + rollme: {{ randAlphaNum 5 | quote }} + {{- end }} + labels: + {{- include "mastodon.selectorLabels" . | nindent 8 }} + component: rails + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "mastodon.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + volumes: + - name: assets + persistentVolumeClaim: + claimName: {{ template "mastodon.fullname" . }}-assets + - name: system + persistentVolumeClaim: + claimName: {{ template "mastodon.fullname" . }}-system + containers: + - name: {{ .Chart.Name }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + command: + - bundle + - exec + - puma + - -C + - config/puma.rb + envFrom: + - configMapRef: + name: {{ include "mastodon.fullname" . }}-env + - secretRef: + name: {{ template "mastodon.fullname" . }} + env: + - name: "DB_PASS" + {{- if .Values.postgresql.enabled }} + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-postgresql + key: postgresql-password + {{- else }} + value: {{ .Values.postgresql.postgresqlPassword | quote }} + {{- end }} + - name: "REDIS_PASSWORD" + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-redis + key: redis-password + - name: "PORT" + value: {{ .Values.application.web.port | quote }} + volumeMounts: + - name: assets + mountPath: /opt/mastodon/public/assets + - name: system + mountPath: /opt/mastodon/public/system + ports: + - name: http + containerPort: {{ .Values.application.web.port }} + protocol: TCP + livenessProbe: + httpGet: + path: /health + port: http + readinessProbe: + httpGet: + path: /health + port: http + resources: + {{- toYaml .Values.resources | nindent 12 }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/mastodon/templates/hpa.yaml b/mastodon/templates/hpa.yaml new file mode 100644 index 0000000..3f9aa8a --- /dev/null +++ b/mastodon/templates/hpa.yaml @@ -0,0 +1,28 @@ +{{- if .Values.autoscaling.enabled }} +apiVersion: autoscaling/v2beta1 +kind: HorizontalPodAutoscaler +metadata: + name: {{ include "mastodon.fullname" . }} + labels: + {{- include "mastodon.labels" . | nindent 4 }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ include "mastodon.fullname" . }} + minReplicas: {{ .Values.autoscaling.minReplicas }} + maxReplicas: {{ .Values.autoscaling.maxReplicas }} + metrics: + {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} +{{- end }} diff --git a/mastodon/templates/ingress.yaml b/mastodon/templates/ingress.yaml new file mode 100644 index 0000000..947bf5b --- /dev/null +++ b/mastodon/templates/ingress.yaml @@ -0,0 +1,41 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "mastodon.fullname" . -}} +{{- $svcPort := .Values.service.port -}} +{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + {{- include "mastodon.labels" . | nindent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + rules: + - host: {{ .Values.ingress.hostname | quote }} + http: + paths: + - path: '/' + backend: + serviceName: {{ $fullName }}-web + servicePort: {{ $svcPort }} + - path: '/api/v1/streaming' + backend: + serviceName: {{ $fullName }}-streaming + servicePort: {{ .Values.application.streaming.port }} +{{- end }} diff --git a/mastodon/templates/job-assets-precompile.yaml b/mastodon/templates/job-assets-precompile.yaml new file mode 100644 index 0000000..e3aae0d --- /dev/null +++ b/mastodon/templates/job-assets-precompile.yaml @@ -0,0 +1,73 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "mastodon.fullname" . }}-assets-precompile + labels: + {{- include "mastodon.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": post-install + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded + "helm.sh/hook-weight": "-2" +spec: + template: + metadata: + name: {{ include "mastodon.fullname" . }}-assets-precompile + spec: + restartPolicy: Never + # ensure we run on the same node as the other rails components; only + # required when using PVCs that are ReadWriteOnce + {{- if or (eq "ReadWriteOnce" .Values.persistence.assets.accessMode) (eq "ReadWriteOnce" .Values.persistence.system.accessMode) }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: component + operator: In + values: + - rails + topologyKey: kubernetes.io/hostname + {{- end }} + volumes: + - name: assets + persistentVolumeClaim: + claimName: {{ template "mastodon.fullname" . }}-assets + - name: system + persistentVolumeClaim: + claimName: {{ template "mastodon.fullname" . }}-system + containers: + - name: {{ include "mastodon.fullname" . }}-assets-precompile + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + command: + - bash + - -c + - | + bundle exec rake assets:precompile && yarn cache clean + envFrom: + - configMapRef: + name: {{ include "mastodon.fullname" . }}-env + - secretRef: + name: {{ template "mastodon.fullname" . }} + env: + - name: "DB_PASS" + {{- if .Values.postgresql.enabled }} + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-postgresql + key: postgresql-password + {{- else }} + value: {{ .Values.postgresql.postgresqlPassword | quote }} + {{- end }} + - name: "REDIS_PASSWORD" + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-redis + key: redis-password + - name: "PORT" + value: {{ .Values.application.web.port | quote }} + volumeMounts: + - name: assets + mountPath: /opt/mastodon/public/assets + - name: system + mountPath: /opt/mastodon/public/system diff --git a/mastodon/templates/job-chewy-upgrade.yaml b/mastodon/templates/job-chewy-upgrade.yaml new file mode 100644 index 0000000..2bb3e66 --- /dev/null +++ b/mastodon/templates/job-chewy-upgrade.yaml @@ -0,0 +1,75 @@ +{{- if .Values.elasticsearch.enabled }} +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "mastodon.fullname" . }}-chewy-upgrade + labels: + {{- include "mastodon.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": post-install + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded + "helm.sh/hook-weight": "-1" +spec: + template: + metadata: + name: {{ include "mastodon.fullname" . }}-chewy-upgrade + spec: + restartPolicy: Never + # ensure we run on the same node as the other rails components; only + # required when using PVCs that are ReadWriteOnce + {{- if or (eq "ReadWriteOnce" .Values.persistence.assets.accessMode) (eq "ReadWriteOnce" .Values.persistence.system.accessMode) }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: component + operator: In + values: + - rails + topologyKey: kubernetes.io/hostname + {{- end }} + volumes: + - name: assets + persistentVolumeClaim: + claimName: {{ template "mastodon.fullname" . }}-assets + - name: system + persistentVolumeClaim: + claimName: {{ template "mastodon.fullname" . }}-system + containers: + - name: {{ include "mastodon.fullname" . }}-chewy-setup + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + command: + - bundle + - exec + - rake + - chewy:upgrade + envFrom: + - configMapRef: + name: {{ include "mastodon.fullname" . }}-env + - secretRef: + name: {{ template "mastodon.fullname" . }} + env: + - name: "DB_PASS" + {{- if .Values.postgresql.enabled }} + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-postgresql + key: postgresql-password + {{- else }} + value: {{ .Values.postgresql.postgresqlPassword | quote }} + {{- end }} + - name: "REDIS_PASSWORD" + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-redis + key: redis-password + - name: "PORT" + value: {{ .Values.application.web.port | quote }} + volumeMounts: + - name: assets + mountPath: /opt/mastodon/public/assets + - name: system + mountPath: /opt/mastodon/public/system +{{- end }} diff --git a/mastodon/templates/job-create-admin.yaml b/mastodon/templates/job-create-admin.yaml new file mode 100644 index 0000000..2d14140 --- /dev/null +++ b/mastodon/templates/job-create-admin.yaml @@ -0,0 +1,80 @@ +{{- if .Values.createAdmin.enabled }} +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "mastodon.fullname" . }}-create-admin + labels: + {{- include "mastodon.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": post-install + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded + "helm.sh/hook-weight": "-1" +spec: + template: + metadata: + name: {{ include "mastodon.fullname" . }}-create-admin + spec: + restartPolicy: Never + # ensure we run on the same node as the other rails components; only + # required when using PVCs that are ReadWriteOnce + {{- if or (eq "ReadWriteOnce" .Values.persistence.assets.accessMode) (eq "ReadWriteOnce" .Values.persistence.system.accessMode) }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: component + operator: In + values: + - rails + topologyKey: kubernetes.io/hostname + {{- end }} + volumes: + - name: assets + persistentVolumeClaim: + claimName: {{ template "mastodon.fullname" . }}-assets + - name: system + persistentVolumeClaim: + claimName: {{ template "mastodon.fullname" . }}-system + containers: + - name: {{ include "mastodon.fullname" . }}-create-admin + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + command: + - bin/tootctl + - accounts + - create + - {{ .Values.createAdmin.username }} + - --email + - {{ .Values.createAdmin.email }} + - --confirmed + - --role + - admin + envFrom: + - configMapRef: + name: {{ include "mastodon.fullname" . }}-env + - secretRef: + name: {{ template "mastodon.fullname" . }} + env: + - name: "DB_PASS" + {{- if .Values.postgresql.enabled }} + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-postgresql + key: postgresql-password + {{- else }} + value: {{ .Values.postgresql.postgresqlPassword | quote }} + {{- end }} + - name: "REDIS_PASSWORD" + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-redis + key: redis-password + - name: "PORT" + value: {{ .Values.application.web.port | quote }} + volumeMounts: + - name: assets + mountPath: /opt/mastodon/public/assets + - name: system + mountPath: /opt/mastodon/public/system +{{- end }} diff --git a/mastodon/templates/job-db-migrate.yaml b/mastodon/templates/job-db-migrate.yaml new file mode 100644 index 0000000..8501f79 --- /dev/null +++ b/mastodon/templates/job-db-migrate.yaml @@ -0,0 +1,73 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "mastodon.fullname" . }}-db-migrate + labels: + {{- include "mastodon.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": post-install,pre-upgrade + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded + "helm.sh/hook-weight": "-2" +spec: + template: + metadata: + name: {{ include "mastodon.fullname" . }}-db-migrate + spec: + restartPolicy: Never + # ensure we run on the same node as the other rails components; only + # required when using PVCs that are ReadWriteOnce + {{- if or (eq "ReadWriteOnce" .Values.persistence.assets.accessMode) (eq "ReadWriteOnce" .Values.persistence.system.accessMode) }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: component + operator: In + values: + - rails + topologyKey: kubernetes.io/hostname + {{- end }} + volumes: + - name: assets + persistentVolumeClaim: + claimName: {{ template "mastodon.fullname" . }}-assets + - name: system + persistentVolumeClaim: + claimName: {{ template "mastodon.fullname" . }}-system + containers: + - name: {{ include "mastodon.fullname" . }}-db-migrate + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + command: + - bundle + - exec + - rake + - db:migrate + envFrom: + - configMapRef: + name: {{ include "mastodon.fullname" . }}-env + - secretRef: + name: {{ template "mastodon.fullname" . }} + env: + - name: "DB_PASS" + {{- if .Values.postgresql.enabled }} + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-postgresql + key: postgresql-password + {{- else }} + value: {{ .Values.postgresql.postgresqlPassword | quote }} + {{- end }} + - name: "REDIS_PASSWORD" + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-redis + key: redis-password + - name: "PORT" + value: {{ .Values.application.web.port | quote }} + volumeMounts: + - name: assets + mountPath: /opt/mastodon/public/assets + - name: system + mountPath: /opt/mastodon/public/system diff --git a/mastodon/templates/job-set-admin-password.yaml b/mastodon/templates/job-set-admin-password.yaml new file mode 100644 index 0000000..45934fd --- /dev/null +++ b/mastodon/templates/job-set-admin-password.yaml @@ -0,0 +1,74 @@ +{{- if .Values.createAdmin.enabled }} +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "mastodon.fullname" . }}-set-admin-password + labels: + {{- include "mastodon.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": post-install + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded + "helm.sh/hook-weight": "100" +spec: + template: + metadata: + name: {{ include "mastodon.fullname" . }}-set-admin-password + spec: + restartPolicy: Never + # ensure we run on the same node as the other rails components; only + # required when using PVCs that are ReadWriteOnce + {{- if or (eq "ReadWriteOnce" .Values.persistence.assets.accessMode) (eq "ReadWriteOnce" .Values.persistence.system.accessMode) }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: component + operator: In + values: + - rails + topologyKey: kubernetes.io/hostname + {{- end }} + volumes: + - name: assets + persistentVolumeClaim: + claimName: {{ template "mastodon.fullname" . }}-assets + - name: system + persistentVolumeClaim: + claimName: {{ template "mastodon.fullname" . }}-system + containers: + - name: {{ include "mastodon.fullname" . }}-set-admin-password + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + command: + - "/bin/bash" + - "-c" + - "echo \"account=Account.find_by(username:'{{ .Values.createAdmin.username }}') ; user=User.find_by(account:account) ; user.password='{{ .Values.createAdmin.password }}' ; user.save!\" | rails c" + envFrom: + - configMapRef: + name: {{ include "mastodon.fullname" . }}-env + - secretRef: + name: {{ template "mastodon.fullname" . }} + env: + - name: "DB_PASS" + {{- if .Values.postgresql.enabled }} + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-postgresql + key: postgresql-password + {{- else }} + value: {{ .Values.postgresql.postgresqlPassword | quote }} + {{- end }} + - name: "REDIS_PASSWORD" + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-redis + key: redis-password + - name: "PORT" + value: {{ .Values.application.web.port | quote }} + volumeMounts: + - name: assets + mountPath: /opt/mastodon/public/assets + - name: system + mountPath: /opt/mastodon/public/system +{{- end }} diff --git a/mastodon/templates/pvc-assets.yaml b/mastodon/templates/pvc-assets.yaml new file mode 100644 index 0000000..5c53151 --- /dev/null +++ b/mastodon/templates/pvc-assets.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ template "mastodon.fullname" . }}-assets + labels: + {{- include "mastodon.labels" . | nindent 4 }} +spec: + accessModes: + - {{ .Values.persistence.system.accessMode }} + resources: + {{- toYaml .Values.persistence.assets.resources | nindent 4}} + storageClassName: {{ .Values.persistence.assets.storageClassName }} diff --git a/mastodon/templates/pvc-system.yaml b/mastodon/templates/pvc-system.yaml new file mode 100644 index 0000000..0285511 --- /dev/null +++ b/mastodon/templates/pvc-system.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ template "mastodon.fullname" . }}-system + labels: + {{- include "mastodon.labels" . | nindent 4 }} +spec: + accessModes: + - {{ .Values.persistence.system.accessMode }} + resources: + {{- toYaml .Values.persistence.system.resources | nindent 4}} + storageClassName: {{ .Values.persistence.system.storageClassName }} diff --git a/mastodon/templates/secrets.yaml b/mastodon/templates/secrets.yaml new file mode 100644 index 0000000..74f4b15 --- /dev/null +++ b/mastodon/templates/secrets.yaml @@ -0,0 +1,28 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ template "mastodon.fullname" . }} + labels: + {{- include "mastodon.labels" . | nindent 4 }} +type: Opaque +data: + {{- if not (empty .Values.secrets.secret_key_base) }} + SECRET_KEY_BASE: "{{ .Values.secrets.secret_key_base | b64enc }}" + {{- else }} + SECRET_KEY_BASE: {{ required "secret_key_base is required" .Values.secrets.secret_key_base }} + {{- end }} + {{- if not (empty .Values.secrets.otp_secret) }} + OTP_SECRET: "{{ .Values.secrets.otp_secret | b64enc }}" + {{- else }} + OTP_SECRET: {{ required "otp_secret is required" .Values.secrets.otp_secret }} + {{- end }} + {{- if not (empty .Values.secrets.vapid.private_key) }} + VAPID_PRIVATE_KEY: "{{ .Values.secrets.vapid.private_key | b64enc }}" + {{- else }} + VAPID_PRIVATE_KEY: {{ required "vapid.private_key is required" .Values.secrets.vapid.private_key }} + {{- end }} + {{- if not (empty .Values.secrets.vapid.public_key) }} + VAPID_PUBLIC_KEY: "{{ .Values.secrets.vapid.public_key | b64enc }}" + {{- else }} + VAPID_PUBLIC_KEY: {{ required "vapid.public_key is required" .Values.secrets.vapid.public_key }} + {{- end }} diff --git a/mastodon/templates/service-streaming.yaml b/mastodon/templates/service-streaming.yaml new file mode 100644 index 0000000..ff5dc13 --- /dev/null +++ b/mastodon/templates/service-streaming.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "mastodon.fullname" . }}-streaming + labels: + {{- include "mastodon.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.application.streaming.port }} + targetPort: streaming + protocol: TCP + name: streaming + selector: + {{- include "mastodon.selectorLabels" . | nindent 4 }} diff --git a/mastodon/templates/service-web.yaml b/mastodon/templates/service-web.yaml new file mode 100644 index 0000000..e0df35b --- /dev/null +++ b/mastodon/templates/service-web.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "mastodon.fullname" . }}-web + labels: + {{- include "mastodon.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + {{- include "mastodon.selectorLabels" . | nindent 4 }} diff --git a/mastodon/templates/serviceaccount.yaml b/mastodon/templates/serviceaccount.yaml new file mode 100644 index 0000000..b2f3d87 --- /dev/null +++ b/mastodon/templates/serviceaccount.yaml @@ -0,0 +1,12 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "mastodon.serviceAccountName" . }} + labels: + {{- include "mastodon.labels" . | nindent 4 }} + {{- with .Values.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +{{- end }} diff --git a/mastodon/templates/tests/test-connection.yaml b/mastodon/templates/tests/test-connection.yaml new file mode 100644 index 0000000..09d9816 --- /dev/null +++ b/mastodon/templates/tests/test-connection.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Pod +metadata: + name: "{{ include "mastodon.fullname" . }}-test-connection" + labels: + {{- include "mastodon.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": test-success +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['{{ include "mastodon.fullname" . }}:{{ .Values.service.port }}'] + restartPolicy: Never diff --git a/mastodon/values.yaml b/mastodon/values.yaml new file mode 100644 index 0000000..f0e46e8 --- /dev/null +++ b/mastodon/values.yaml @@ -0,0 +1,195 @@ +replicaCount: 1 + +image: + repository: tootsuite/mastodon + pullPolicy: Always + # https://hub.docker.com/r/tootsuite/mastodon/tags + tag: v3.3.0 + # alternatively, use `latest` for the latest release or `edge` for the image + # built from the most recent commit + # + # tag: latest + +ingress: + enabled: false + annotations: + kubernetes.io/ingress.class: nginx + kubernetes.io/tls-acme: "true" + # cert-manager.io/cluster-issuer: "letsencrypt" + # + # ensure that NGINX's upload size matches Mastodon's + # for the K8s ingress controller: + # nginx.ingress.kubernetes.io/proxy-body-size: 40m + # for the NGINX ingress controller: + # nginx.org/client-max-body-size: 40m + # this value is used for LOCAL_DOMAIN + hostname: mastodon.local + tls: + - secretName: mastodon-tls + hosts: + - mastodon.local + +# create an initial administrator user +# CHANGE PASSWORD! +createAdmin: + enabled: false + username: not_gargron + password: mystronpassword + email: not@example.com + +# available locales: https://github.com/tootsuite/mastodon/blob/master/config/application.rb#L43 +locale: en + +cron: + # run `tootctl media remove` every week + removeMedia: + enabled: true + schedule: "0 0 * * 0" + +application: + web: + port: 3000 + streaming: + port: 4000 + # this should be set manually since os.cpus() returns the number of CPUs on + # the node running the pod, which is unrelated to the resources allocated to + # the pod by k8s + workers: 1 + sidekiq: + concurrency: 25 + +# these must be set manually; autogenerated keys are rotated on each upgrade +secrets: + secret_key_base: "" + otp_secret: "" + vapid: + private_key: "" + public_key: "" + +smtp: + auth_method: plain + ca_file: + delivery_method: smtp + domain: + enable_starttls_auto: true + from_address: notifications@example.com + login: + openssl_verify_mode: peer + password: + port: 587 + reply_to: + server: smtp.mailgun.org + tls: false + +# https://github.com/bitnami/charts/tree/master/bitnami/elasticsearch#parameters +elasticsearch: + # `false` will disable full-text search + # + # if you enable ES after the initial install, you will need to manually run + # RAILS_ENV=production bundle exec rake chewy:sync + # (https://docs.joinmastodon.org/admin/optional/elasticsearch/) + enabled: true + master: + name: master + ## Number of master-eligible node(s) replicas to deploy + ## + replicas: 2 + coordinating: + ## Number of coordinating-only node(s) replicas to deploy + ## + replicas: 2 + data: + name: data + ## Number of data node(s) replicas to deploy + ## + replicas: 2 + + +# https://github.com/bitnami/charts/tree/master/bitnami/postgresql#parameters +postgresql: + # Disable for external PostgreSQL + enabled: true + # Set for external PostgreSQL + # postgresqlHost: postgresql.local + postgresqlDatabase: mastodon + # you must set a password; the password generated by the postgresql chart will + # be rotated on each upgrade: + # https://github.com/bitnami/charts/tree/master/bitnami/postgresql#upgrade + postgresqlPassword: "" + postgresqlUsername: postgres + +# https://github.com/bitnami/charts/tree/master/bitnami/redis#parameters +redis: + enabled: true + usePassword: true + # you must set a password; the password generated by the redis chart will be + # rotated on each upgrade: + password: "" + cluster: + enabled: true + +persistence: + assets: + # ReadWriteOnce is more widely supported than ReadWriteMany, but limits + # scalability, since it requires the Rails and Sidekiq pods to run on the + # same node. + accessMode: ReadWriteOnce + resources: + requests: + storage: 10Gi + system: + accessMode: ReadWriteOnce + resources: + requests: + storage: 100Gi + +service: + type: ClusterIP + port: 80 + +# https://github.com/tootsuite/mastodon/blob/master/Dockerfile#L88 +# +# if you manually change the UID/GID environment variables, ensure these values +# match: +podSecurityContext: + runAsUser: 991 + runAsGroup: 991 + fsGroup: 991 + +securityContext: {} + +serviceAccount: + # Specifies whether a service account should be created + create: true + # Annotations to add to the service account + annotations: {} + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + name: "" + +podAnnotations: {} + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 100 + targetCPUUtilizationPercentage: 80 + # targetMemoryUtilizationPercentage: 80 + +nodeSelector: {} + +tolerations: [] + +affinity: {}