| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053 |
- ---
- # Source: mastodon/charts/minio/templates/serviceaccount.yaml
- apiVersion: v1
- kind: ServiceAccount
- metadata:
- name: mastodon-minio
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.0.0
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- automountServiceAccountToken: true
- secrets:
- - name: mastodon-minio
- ---
- # Source: mastodon/charts/redis/templates/serviceaccount.yaml
- apiVersion: v1
- kind: ServiceAccount
- automountServiceAccountToken: true
- metadata:
- name: mastodon-redis
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: redis
- helm.sh/chart: redis-17.4.3
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- ---
- # Source: mastodon/templates/service-account.yaml
- apiVersion: v1
- kind: ServiceAccount
- metadata:
- name: mastodon
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: mastodon
- helm.sh/chart: mastodon-1.0.1
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: mastodon
- automountServiceAccountToken: true
- ---
- # Source: mastodon/charts/minio/templates/secrets.yaml
- apiVersion: v1
- kind: Secret
- metadata:
- name: mastodon-minio
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.0.0
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- type: Opaque
- data:
- root-user: "YWRtaW4="
- root-password: "eEdlaHhqOHV5Zw=="
- key.json: ""
- ---
- # Source: mastodon/charts/postgresql/templates/secrets.yaml
- apiVersion: v1
- kind: Secret
- metadata:
- name: mastodon-postgresql
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- type: Opaque
- data:
- postgres-password: "NU04SUJUTVliRA=="
- password: "aFdZaWNOUHlvTA=="
- # We don't auto-generate LDAP password when it's not provided as we do for other passwords
- ---
- # Source: mastodon/charts/redis/templates/secret.yaml
- apiVersion: v1
- kind: Secret
- metadata:
- name: mastodon-redis
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: redis
- helm.sh/chart: redis-17.4.3
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- type: Opaque
- data:
- redis-password: "RlVCU09tRVJqVg=="
- ---
- # Source: mastodon/templates/default-secret.yaml
- apiVersion: v1
- kind: Secret
- metadata:
- name: mastodon-default
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: mastodon
- helm.sh/chart: mastodon-1.0.1
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: mastodon
- data:
- MASTODON_ADMIN_PASSWORD: "Mk9yRFZWUEx0dw=="
- SECRET_KEY_BASE: "RElKYjJETFlWYg=="
- OTP_SECRET: "eUZoU1pTclAyRg=="
- ---
- # Source: mastodon/charts/minio/templates/provisioning-configmap.yaml
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: mastodon-minio-provisioning
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.0.0
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: minio-provisioning
- data:
- ---
- # Source: mastodon/charts/redis/templates/configmap.yaml
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: mastodon-redis-configuration
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: redis
- helm.sh/chart: redis-17.4.3
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- data:
- redis.conf: |-
- # User-supplied common configuration:
- # Enable AOF https://redis.io/topics/persistence#append-only-file
- appendonly yes
- # Disable RDB persistence, AOF persistence already enabled.
- save ""
- # End of common configuration
- master.conf: |-
- dir /data
- # User-supplied master configuration:
- rename-command FLUSHDB ""
- rename-command FLUSHALL ""
- # End of master configuration
- replica.conf: |-
- dir /data
- # User-supplied replica configuration:
- rename-command FLUSHDB ""
- rename-command FLUSHALL ""
- # End of replica configuration
- ---
- # Source: mastodon/charts/redis/templates/health-configmap.yaml
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: mastodon-redis-health
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: redis
- helm.sh/chart: redis-17.4.3
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- data:
- ping_readiness_local.sh: |-
- #!/bin/bash
- [[ -f $REDIS_PASSWORD_FILE ]] && export REDIS_PASSWORD="$(< "${REDIS_PASSWORD_FILE}")"
- [[ -n "$REDIS_PASSWORD" ]] && export REDISCLI_AUTH="$REDIS_PASSWORD"
- response=$(
- timeout -s 3 $1 \
- redis-cli \
- -h localhost \
- -p $REDIS_PORT \
- ping
- )
- if [ "$?" -eq "124" ]; then
- echo "Timed out"
- exit 1
- fi
- if [ "$response" != "PONG" ]; then
- echo "$response"
- exit 1
- fi
- ping_liveness_local.sh: |-
- #!/bin/bash
- [[ -f $REDIS_PASSWORD_FILE ]] && export REDIS_PASSWORD="$(< "${REDIS_PASSWORD_FILE}")"
- [[ -n "$REDIS_PASSWORD" ]] && export REDISCLI_AUTH="$REDIS_PASSWORD"
- response=$(
- timeout -s 3 $1 \
- redis-cli \
- -h localhost \
- -p $REDIS_PORT \
- ping
- )
- if [ "$?" -eq "124" ]; then
- echo "Timed out"
- exit 1
- fi
- responseFirstWord=$(echo $response | head -n1 | awk '{print $1;}')
- if [ "$response" != "PONG" ] && [ "$responseFirstWord" != "LOADING" ] && [ "$responseFirstWord" != "MASTERDOWN" ]; then
- echo "$response"
- exit 1
- fi
- ping_readiness_master.sh: |-
- #!/bin/bash
- [[ -f $REDIS_MASTER_PASSWORD_FILE ]] && export REDIS_MASTER_PASSWORD="$(< "${REDIS_MASTER_PASSWORD_FILE}")"
- [[ -n "$REDIS_MASTER_PASSWORD" ]] && export REDISCLI_AUTH="$REDIS_MASTER_PASSWORD"
- response=$(
- timeout -s 3 $1 \
- redis-cli \
- -h $REDIS_MASTER_HOST \
- -p $REDIS_MASTER_PORT_NUMBER \
- ping
- )
- if [ "$?" -eq "124" ]; then
- echo "Timed out"
- exit 1
- fi
- if [ "$response" != "PONG" ]; then
- echo "$response"
- exit 1
- fi
- ping_liveness_master.sh: |-
- #!/bin/bash
- [[ -f $REDIS_MASTER_PASSWORD_FILE ]] && export REDIS_MASTER_PASSWORD="$(< "${REDIS_MASTER_PASSWORD_FILE}")"
- [[ -n "$REDIS_MASTER_PASSWORD" ]] && export REDISCLI_AUTH="$REDIS_MASTER_PASSWORD"
- response=$(
- timeout -s 3 $1 \
- redis-cli \
- -h $REDIS_MASTER_HOST \
- -p $REDIS_MASTER_PORT_NUMBER \
- ping
- )
- if [ "$?" -eq "124" ]; then
- echo "Timed out"
- exit 1
- fi
- responseFirstWord=$(echo $response | head -n1 | awk '{print $1;}')
- if [ "$response" != "PONG" ] && [ "$responseFirstWord" != "LOADING" ]; then
- echo "$response"
- exit 1
- fi
- ping_readiness_local_and_master.sh: |-
- script_dir="$(dirname "$0")"
- exit_status=0
- "$script_dir/ping_readiness_local.sh" $1 || exit_status=$?
- "$script_dir/ping_readiness_master.sh" $1 || exit_status=$?
- exit $exit_status
- ping_liveness_local_and_master.sh: |-
- script_dir="$(dirname "$0")"
- exit_status=0
- "$script_dir/ping_liveness_local.sh" $1 || exit_status=$?
- "$script_dir/ping_liveness_master.sh" $1 || exit_status=$?
- exit $exit_status
- ---
- # Source: mastodon/charts/redis/templates/scripts-configmap.yaml
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: mastodon-redis-scripts
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: redis
- helm.sh/chart: redis-17.4.3
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- data:
- start-master.sh: |
- #!/bin/bash
- [[ -f $REDIS_PASSWORD_FILE ]] && export REDIS_PASSWORD="$(< "${REDIS_PASSWORD_FILE}")"
- if [[ -f /opt/bitnami/redis/mounted-etc/master.conf ]];then
- cp /opt/bitnami/redis/mounted-etc/master.conf /opt/bitnami/redis/etc/master.conf
- fi
- if [[ -f /opt/bitnami/redis/mounted-etc/redis.conf ]];then
- cp /opt/bitnami/redis/mounted-etc/redis.conf /opt/bitnami/redis/etc/redis.conf
- fi
- ARGS=("--port" "${REDIS_PORT}")
- ARGS+=("--requirepass" "${REDIS_PASSWORD}")
- ARGS+=("--masterauth" "${REDIS_PASSWORD}")
- ARGS+=("--include" "/opt/bitnami/redis/etc/redis.conf")
- ARGS+=("--include" "/opt/bitnami/redis/etc/master.conf")
- exec redis-server "${ARGS[@]}"
- ---
- # Source: mastodon/templates/apache-configmap.yaml
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: mastodon-apache-mastodon-vhost
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: mastodon
- helm.sh/chart: mastodon-1.0.1
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: mastodon
- data:
- mastodon-vhost.conf: |-
- <VirtualHost VirtualHost 127.0.0.1:8080 _default_:8080>
- ServerName
- ServerAlias *
- <Location "/">
- ProxyPass http://mastodon-web:80/
- ProxyPassReverse
- Order allow,deny
- Allow from all
- </Location>
- <Location "/api/v1/streaming">
- # Streaming uses normal API calls and websockets. We used this configuration
- # based on https://stackoverflow.com/questions/27526281/websockets-and-apache-proxy-how-to-configure-mod-proxy-wstunnel
- RewriteEngine On
- RewriteCond %{HTTP:Upgrade} =websocket [NC]
- RewriteRule /api/(.*) ws://mastodon-streaming:80/api/$1 [P,L]
- RewriteCond %{HTTP:Upgrade} !=websocket [NC]
- RewriteRule /api/(.*) http://mastodon-streaming:80/api/$1 [P,L]
- ProxyPassReverse
- Order allow,deny
- Allow from all
- </Location>
- <Location "/s3storage">
- ProxyPass http://mastodon-minio:80/s3storage/
- ProxyPassReverse
- Order allow,deny
- Allow from all
- </Location>
- </VirtualHost>
- ---
- # Source: mastodon/templates/default-configmap.yaml
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: mastodon-default
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: mastodon
- helm.sh/chart: mastodon-1.0.1
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: mastodon
- data:
- MASTODON_ADMIN_USERNAME: "user"
- MASTODON_ADMIN_EMAIL: "user@changeme.com"
- DB_HOST: "mastodon-postgresql"
- DB_PORT: "5432"
- DB_NAME: "bitnami_mastodon"
- DB_USER: "bn_mastodon"
- ES_ENABLED: "true"
- ES_HOST: "mastodon-elasticsearch"
- ES_PORT: "9200"
- WEB_DOMAIN: ""
- STREAMING_API_BASE_URL: "ws://"
- REDIS_HOST: "mastodon-redis-master"
- REDIS_PORT: "6379"
- S3_ENABLED: "true"
- S3_BUCKET: "s3storage"
- S3_ENDPOINT: "http://mastodon-minio"
- S3_HOSTNAME: "mastodon-minio"
- S3_REGION: "us-east-1"
- S3_ALIAS_HOST: "/s3storage"
- S3_PROTOCOL: "http"
- ---
- # Source: mastodon/templates/init-job/init-job-configmap.yaml
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: mastodon-init-scripts
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: mastodon
- helm.sh/chart: mastodon-1.0.1
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: mastodon
- data:
- # All these operations require access to PostgreSQL (including Elasticsearch migration) and Redis. In order to avoid
- # potential race conditions we include them in the same script.
- migrate-and-create-admin.sh: |-
- #!/bin/bash
- set -o errexit
- set -o nounset
- set -o pipefail
- # Load libraries
- . /opt/bitnami/scripts/liblog.sh
- . /opt/bitnami/scripts/libos.sh
- . /opt/bitnami/scripts/libvalidations.sh
- . /opt/bitnami/scripts/libmastodon.sh
- # Load Mastodon environment variables
- . /opt/bitnami/scripts/mastodon-env.sh
- info "Migrating database"
- psql_connection_string="postgresql://${MASTODON_DATABASE_USERNAME}:${MASTODON_DATABASE_PASSWORD}@${MASTODON_DATABASE_HOST}:${MASTODON_DATABASE_PORT_NUMBER}/${MASTODON_DATABASE_NAME}"
- mastodon_wait_for_postgresql_connection "$psql_connection_string"
- mastodon_rake_execute db:migrate
- elasticsearch_connection_string="http://${MASTODON_ELASTICSEARCH_HOST}:${MASTODON_ELASTICSEARCH_PORT_NUMBER}"
- mastodon_wait_for_elasticsearch_connection "$elasticsearch_connection_string"
- info "Migrating Elasticsearch"
- mastodon_rake_execute chewy:upgrade
- mastodon_ensure_admin_user_exists
- precompile-assets.sh: |-
- #!/bin/bash
- set -o errexit
- set -o nounset
- set -o pipefail
- # Load libraries
- . /opt/bitnami/scripts/liblog.sh
- . /opt/bitnami/scripts/libos.sh
- . /opt/bitnami/scripts/libvalidations.sh
- . /opt/bitnami/scripts/libmastodon.sh
- # Load Mastodon environment variables
- . /opt/bitnami/scripts/mastodon-env.sh
- mastodon_wait_for_s3_connection "$MASTODON_S3_HOSTNAME" "$MASTODON_S3_PORT_NUMBER"
- info "Precompiling assets"
- mastodon_rake_execute assets:precompile
- ---
- # Source: mastodon/charts/minio/templates/pvc.yaml
- kind: PersistentVolumeClaim
- apiVersion: v1
- metadata:
- name: mastodon-minio
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.0.0
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- spec:
- accessModes:
- - "ReadWriteOnce"
- resources:
- requests:
- storage: "8Gi"
- ---
- # Source: mastodon/charts/apache/templates/svc.yaml
- apiVersion: v1
- kind: Service
- metadata:
- name: mastodon-apache
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: apache
- helm.sh/chart: apache-9.2.11
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- spec:
- type: LoadBalancer
- externalTrafficPolicy: "Cluster"
-
- loadBalancerSourceRanges: []
-
- sessionAffinity: None
- ports:
- - name: http
- port: 80
- targetPort: http
- - name: https
- port: 443
- targetPort: https
- selector:
- app.kubernetes.io/name: apache
- app.kubernetes.io/instance: mastodon
- ---
- # Source: mastodon/charts/elasticsearch/templates/coordinating/svc-headless.yaml
- apiVersion: v1
- kind: Service
- metadata:
- name: mastodon-elasticsearch-coordinating-hl
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: elasticsearch
- helm.sh/chart: elasticsearch-19.5.8
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: coordinating-only
- spec:
- type: ClusterIP
- publishNotReadyAddresses: true
- ports:
- - name: tcp-rest-api
- port: 9200
- targetPort: rest-api
- - name: tcp-transport
- port: 9300
- targetPort: transport
- selector:
- app.kubernetes.io/name: elasticsearch
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/component: coordinating-only
- ---
- # Source: mastodon/charts/elasticsearch/templates/data/svc-headless.yaml
- apiVersion: v1
- kind: Service
- metadata:
- name: mastodon-elasticsearch-data-hl
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: elasticsearch
- helm.sh/chart: elasticsearch-19.5.8
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: data
- spec:
- type: ClusterIP
- publishNotReadyAddresses: true
- ports:
- - name: tcp-rest-api
- port: 9200
- targetPort: rest-api
- - name: tcp-transport
- port: 9300
- targetPort: transport
- selector:
- app.kubernetes.io/name: elasticsearch
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/component: data
- ---
- # Source: mastodon/charts/elasticsearch/templates/ingest/svc-headless.yaml
- apiVersion: v1
- kind: Service
- metadata:
- name: mastodon-elasticsearch-ingest-hl
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: elasticsearch
- helm.sh/chart: elasticsearch-19.5.8
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: ingest
- spec:
- type: ClusterIP
- publishNotReadyAddresses: true
- ports:
- - name: tcp-rest-api
- port: 9200
- targetPort: rest-api
- - name: tcp-transport
- port: 9300
- targetPort: transport
- selector:
- app.kubernetes.io/name: elasticsearch
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/component: ingest
- ---
- # Source: mastodon/charts/elasticsearch/templates/master/svc-headless.yaml
- apiVersion: v1
- kind: Service
- metadata:
- name: mastodon-elasticsearch-master-hl
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: elasticsearch
- helm.sh/chart: elasticsearch-19.5.8
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: master
- spec:
- type: ClusterIP
- publishNotReadyAddresses: true
- ports:
- - name: tcp-rest-api
- port: 9200
- targetPort: rest-api
- - name: tcp-transport
- port: 9300
- targetPort: transport
- selector:
- app.kubernetes.io/name: elasticsearch
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/component: master
- ---
- # Source: mastodon/charts/elasticsearch/templates/service.yaml
- apiVersion: v1
- kind: Service
- metadata:
- name: mastodon-elasticsearch
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: elasticsearch
- helm.sh/chart: elasticsearch-19.5.8
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: coordinating-only
- annotations:
- spec:
- type: ClusterIP
- sessionAffinity: None
- ports:
- - name: tcp-rest-api
- port: 9200
- targetPort: rest-api
- nodePort: null
- - name: tcp-transport
- port: 9300
- nodePort: null
- selector:
- app.kubernetes.io/name: elasticsearch
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/component: coordinating-only
- ---
- # Source: mastodon/charts/minio/templates/service.yaml
- apiVersion: v1
- kind: Service
- metadata:
- name: mastodon-minio
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.0.0
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- spec:
- type: ClusterIP
- ports:
- - name: minio-api
- port: 80
- targetPort: minio-api
- nodePort: null
- - name: minio-console
- port: 9001
- targetPort: minio-console
- nodePort: null
- selector:
- app.kubernetes.io/name: minio
- app.kubernetes.io/instance: mastodon
- ---
- # Source: mastodon/charts/postgresql/templates/primary/svc-headless.yaml
- apiVersion: v1
- kind: Service
- metadata:
- name: mastodon-postgresql-hl
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: primary
- # Use this annotation in addition to the actual publishNotReadyAddresses
- # field below because the annotation will stop being respected soon but the
- # field is broken in some versions of Kubernetes:
- # https://github.com/kubernetes/kubernetes/issues/58662
- service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
- spec:
- type: ClusterIP
- clusterIP: None
- # We want all pods in the StatefulSet to have their addresses published for
- # the sake of the other Postgresql pods even before they're ready, since they
- # have to be able to talk to each other in order to become ready.
- publishNotReadyAddresses: true
- ports:
- - name: tcp-postgresql
- port: 5432
- targetPort: tcp-postgresql
- selector:
- app.kubernetes.io/name: postgresql
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/component: primary
- ---
- # Source: mastodon/charts/postgresql/templates/primary/svc.yaml
- apiVersion: v1
- kind: Service
- metadata:
- name: mastodon-postgresql
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: primary
- annotations:
- spec:
- type: ClusterIP
- sessionAffinity: None
- ports:
- - name: tcp-postgresql
- port: 5432
- targetPort: tcp-postgresql
- nodePort: null
- selector:
- app.kubernetes.io/name: postgresql
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/component: primary
- ---
- # Source: mastodon/charts/redis/templates/headless-svc.yaml
- apiVersion: v1
- kind: Service
- metadata:
- name: mastodon-redis-headless
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: redis
- helm.sh/chart: redis-17.4.3
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- annotations:
-
- spec:
- type: ClusterIP
- clusterIP: None
- ports:
- - name: tcp-redis
- port: 6379
- targetPort: redis
- selector:
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: mastodon
- ---
- # Source: mastodon/charts/redis/templates/master/service.yaml
- apiVersion: v1
- kind: Service
- metadata:
- name: mastodon-redis-master
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: redis
- helm.sh/chart: redis-17.4.3
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: master
- spec:
- type: ClusterIP
- sessionAffinity: None
- ports:
- - name: tcp-redis
- port: 6379
- targetPort: redis
- nodePort: null
- selector:
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/component: master
- ---
- # Source: mastodon/templates/streaming/service.yaml
- apiVersion: v1
- kind: Service
- metadata:
- name: mastodon-streaming
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: mastodon
- helm.sh/chart: mastodon-1.0.1
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: mastodon
- app.kubernetes.io/component: streaming
- spec:
- type: ClusterIP
- sessionAffinity: None
- ports:
- - name: http
- port: 80
- targetPort: http
- protocol: TCP
- nodePort: null
- selector:
- app.kubernetes.io/name: mastodon
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/component: streaming
- ---
- # Source: mastodon/templates/web/service.yaml
- apiVersion: v1
- kind: Service
- metadata:
- name: mastodon-web
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: mastodon
- helm.sh/chart: mastodon-1.0.1
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: mastodon
- app.kubernetes.io/component: web
- spec:
- type: ClusterIP
- sessionAffinity: None
- ports:
- - name: http
- port: 80
- protocol: TCP
- targetPort: http
- nodePort: null
- selector:
- app.kubernetes.io/name: mastodon
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/component: web
- ---
- # Source: mastodon/charts/apache/templates/deployment.yaml
- apiVersion: apps/v1
- kind: Deployment
- metadata:
- name: mastodon-apache
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: apache
- helm.sh/chart: apache-9.2.11
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- spec:
- selector:
- matchLabels:
- app.kubernetes.io/name: apache
- app.kubernetes.io/instance: mastodon
- replicas: 1
- strategy:
- type: RollingUpdate
- template:
- metadata:
- labels:
- app.kubernetes.io/name: apache
- helm.sh/chart: apache-9.2.11
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- spec:
-
- # yamllint disable rule:indentation
- hostAliases:
- - hostnames:
- - status.localhost
- ip: 127.0.0.1
- # yamllint enable rule:indentation
- priorityClassName: ""
- affinity:
- podAffinity:
-
- podAntiAffinity:
- preferredDuringSchedulingIgnoredDuringExecution:
- - podAffinityTerm:
- labelSelector:
- matchLabels:
- app.kubernetes.io/name: apache
- app.kubernetes.io/instance: mastodon
- topologyKey: kubernetes.io/hostname
- weight: 1
- nodeAffinity:
-
- securityContext:
- fsGroup: 1001
- containers:
- - name: apache
- image: docker.io/bitnami/apache:2.4.55-debian-11-r0
- imagePullPolicy: "IfNotPresent"
- securityContext:
- runAsNonRoot: true
- runAsUser: 1001
- env:
- - name: BITNAMI_DEBUG
- value: "false"
- - name: APACHE_HTTP_PORT_NUMBER
- value: "8080"
- - name: APACHE_HTTPS_PORT_NUMBER
- value: "8443"
- envFrom:
- ports:
- - name: http
- containerPort: 8080
- - name: https
- containerPort: 8443
- livenessProbe:
- httpGet:
- path: /api/v1/streaming/health
- port: http
- initialDelaySeconds: 180
- periodSeconds: 20
- timeoutSeconds: 5
- successThreshold: 1
- failureThreshold: 6
- readinessProbe:
- httpGet:
- path: /api/v1/streaming/health
- port: http
- initialDelaySeconds: 30
- periodSeconds: 10
- timeoutSeconds: 5
- successThreshold: 1
- failureThreshold: 6
- resources:
- limits: {}
- requests: {}
- volumeMounts:
- - name: vhosts
- mountPath: /vhosts
- volumes:
- - name: vhosts
- configMap:
- name: mastodon-apache-mastodon-vhost
- ---
- # Source: mastodon/charts/minio/templates/standalone/deployment.yaml
- apiVersion: apps/v1
- kind: Deployment
- metadata:
- name: mastodon-minio
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.0.0
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- spec:
- selector:
- matchLabels:
- app.kubernetes.io/name: minio
- app.kubernetes.io/instance: mastodon
- strategy:
- type: Recreate
- template:
- metadata:
- labels:
- app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.0.0
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- annotations:
- checksum/credentials-secret: fda36e188bbd8e646a63850dfb0280dec380936aa1d6b927b773a2e70fed8c2e
- spec:
-
- serviceAccountName: mastodon-minio
- affinity:
- podAffinity:
-
- podAntiAffinity:
- preferredDuringSchedulingIgnoredDuringExecution:
- - podAffinityTerm:
- labelSelector:
- matchLabels:
- app.kubernetes.io/name: minio
- app.kubernetes.io/instance: mastodon
- topologyKey: kubernetes.io/hostname
- weight: 1
- nodeAffinity:
-
- securityContext:
- fsGroup: 1001
- containers:
- - name: minio
- image: docker.io/bitnami/minio:2023.1.12-debian-11-r0
- imagePullPolicy: "IfNotPresent"
- securityContext:
- runAsNonRoot: true
- runAsUser: 1001
- env:
- - name: BITNAMI_DEBUG
- value: "false"
- - name: MINIO_SCHEME
- value: "http"
- - name: MINIO_FORCE_NEW_KEYS
- value: "no"
- - name: MINIO_ROOT_USER
- valueFrom:
- secretKeyRef:
- name: mastodon-minio
- key: root-user
- - name: MINIO_ROOT_PASSWORD
- valueFrom:
- secretKeyRef:
- name: mastodon-minio
- key: root-password
- - name: MINIO_DEFAULT_BUCKETS
- value: s3storage
- - name: MINIO_BROWSER
- value: "on"
- - name: MINIO_PROMETHEUS_AUTH_TYPE
- value: "public"
- - name: MINIO_CONSOLE_PORT_NUMBER
- value: "9001"
- envFrom:
- ports:
- - name: minio-api
- containerPort: 9000
- protocol: TCP
- - name: minio-console
- containerPort: 9001
- protocol: TCP
- livenessProbe:
- httpGet:
- path: /minio/health/live
- port: minio-api
- scheme: "HTTP"
- initialDelaySeconds: 5
- periodSeconds: 5
- timeoutSeconds: 5
- successThreshold: 1
- failureThreshold: 5
- readinessProbe:
- tcpSocket:
- port: minio-api
- initialDelaySeconds: 5
- periodSeconds: 5
- timeoutSeconds: 1
- successThreshold: 1
- failureThreshold: 5
- resources:
- limits: {}
- requests: {}
- volumeMounts:
- - name: data
- mountPath: /data
- volumes:
- - name: data
- persistentVolumeClaim:
- claimName: mastodon-minio
- ---
- # Source: mastodon/charts/elasticsearch/templates/coordinating/statefulset.yaml
- apiVersion: apps/v1
- kind: StatefulSet
- metadata:
- name: mastodon-elasticsearch-coordinating
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: elasticsearch
- helm.sh/chart: elasticsearch-19.5.8
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: coordinating-only
- ## Istio Labels: https://istio.io/docs/ops/deployment/requirements/
- app: coordinating-only
- spec:
- replicas: 1
- selector:
- matchLabels:
- app.kubernetes.io/name: elasticsearch
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/component: coordinating-only
- updateStrategy:
- type: RollingUpdate
- serviceName: mastodon-elasticsearch-coordinating-hl
- podManagementPolicy: Parallel
- template:
- metadata:
- labels:
- app.kubernetes.io/name: elasticsearch
- helm.sh/chart: elasticsearch-19.5.8
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: coordinating-only
- ## Istio Labels: https://istio.io/docs/ops/deployment/requirements/
- app: coordinating-only
- annotations:
- spec:
- serviceAccountName: default
-
- affinity:
- podAffinity:
-
- podAntiAffinity:
-
- nodeAffinity:
-
- securityContext:
- fsGroup: 1001
- initContainers:
- ## Image that performs the sysctl operation to modify Kernel settings (needed sometimes to avoid boot errors)
- - name: sysctl
- image: docker.io/bitnami/bitnami-shell:11-debian-11-r70
- imagePullPolicy: "IfNotPresent"
- command:
- - /bin/bash
- - -ec
- - |
- CURRENT=`sysctl -n vm.max_map_count`;
- DESIRED="262144";
- if [ "$DESIRED" -gt "$CURRENT" ]; then
- sysctl -w vm.max_map_count=262144;
- fi;
- CURRENT=`sysctl -n fs.file-max`;
- DESIRED="65536";
- if [ "$DESIRED" -gt "$CURRENT" ]; then
- sysctl -w fs.file-max=65536;
- fi;
- securityContext:
- privileged: true
- runAsUser: 0
- resources:
- limits: {}
- requests: {}
- containers:
- - name: elasticsearch
- image: docker.io/bitnami/elasticsearch:8.6.0-debian-11-r0
- imagePullPolicy: "IfNotPresent"
- securityContext:
- runAsNonRoot: true
- runAsUser: 1001
- env:
- - name: MY_POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: BITNAMI_DEBUG
- value: "false"
- - name: ELASTICSEARCH_CLUSTER_NAME
- value: "elastic"
- - name: ELASTICSEARCH_IS_DEDICATED_NODE
- value: "yes"
- - name: ELASTICSEARCH_NODE_ROLES
- value: ""
- - name: ELASTICSEARCH_TRANSPORT_PORT_NUMBER
- value: "9300"
- - name: ELASTICSEARCH_HTTP_PORT_NUMBER
- value: "9200"
- - name: ELASTICSEARCH_CLUSTER_HOSTS
- value: "mastodon-elasticsearch-master-hl.mastodon.svc.cluster.local,mastodon-elasticsearch-coordinating-hl.mastodon.svc.cluster.local,mastodon-elasticsearch-data-hl.mastodon.svc.cluster.local,mastodon-elasticsearch-ingest-hl.mastodon.svc.cluster.local,"
- - name: ELASTICSEARCH_TOTAL_NODES
- value: "2"
- - name: ELASTICSEARCH_CLUSTER_MASTER_HOSTS
- value: mastodon-elasticsearch-master-0
- - name: ELASTICSEARCH_MINIMUM_MASTER_NODES
- value: "1"
- - name: ELASTICSEARCH_ADVERTISED_HOSTNAME
- value: "$(MY_POD_NAME).mastodon-elasticsearch-coordinating-hl.mastodon.svc.cluster.local"
- - name: ELASTICSEARCH_HEAP_SIZE
- value: "128m"
- ports:
- - name: rest-api
- containerPort: 9200
- - name: transport
- containerPort: 9300
- livenessProbe:
- failureThreshold: 5
- initialDelaySeconds: 90
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 5
- exec:
- command:
- - /opt/bitnami/scripts/elasticsearch/healthcheck.sh
- readinessProbe:
- failureThreshold: 5
- initialDelaySeconds: 90
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 5
- exec:
- command:
- - /opt/bitnami/scripts/elasticsearch/healthcheck.sh
- resources:
- limits: {}
- requests:
- cpu: 25m
- memory: 256Mi
- volumeMounts:
- - name: data
- mountPath: /bitnami/elasticsearch/data
- volumes:
- - name: "data"
- emptyDir: {}
- ---
- # Source: mastodon/charts/elasticsearch/templates/data/statefulset.yaml
- apiVersion: apps/v1
- kind: StatefulSet
- metadata:
- name: mastodon-elasticsearch-data
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: elasticsearch
- helm.sh/chart: elasticsearch-19.5.8
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: data
- ## Istio Labels: https://istio.io/docs/ops/deployment/requirements/
- app: data
- spec:
- replicas: 1
- podManagementPolicy: Parallel
- selector:
- matchLabels:
- app.kubernetes.io/name: elasticsearch
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/component: data
- serviceName: mastodon-elasticsearch-data-hl
- updateStrategy:
- type: RollingUpdate
- template:
- metadata:
- labels:
- app.kubernetes.io/name: elasticsearch
- helm.sh/chart: elasticsearch-19.5.8
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: data
- ## Istio Labels: https://istio.io/docs/ops/deployment/requirements/
- app: data
- annotations:
- spec:
- serviceAccountName: default
-
- affinity:
- podAffinity:
-
- podAntiAffinity:
-
- nodeAffinity:
-
- securityContext:
- fsGroup: 1001
- initContainers:
- ## Image that performs the sysctl operation to modify Kernel settings (needed sometimes to avoid boot errors)
- - name: sysctl
- image: docker.io/bitnami/bitnami-shell:11-debian-11-r70
- imagePullPolicy: "IfNotPresent"
- command:
- - /bin/bash
- - -ec
- - |
- CURRENT=`sysctl -n vm.max_map_count`;
- DESIRED="262144";
- if [ "$DESIRED" -gt "$CURRENT" ]; then
- sysctl -w vm.max_map_count=262144;
- fi;
- CURRENT=`sysctl -n fs.file-max`;
- DESIRED="65536";
- if [ "$DESIRED" -gt "$CURRENT" ]; then
- sysctl -w fs.file-max=65536;
- fi;
- securityContext:
- privileged: true
- runAsUser: 0
- resources:
- limits: {}
- requests: {}
- containers:
- - name: elasticsearch
- image: docker.io/bitnami/elasticsearch:8.6.0-debian-11-r0
- imagePullPolicy: "IfNotPresent"
- securityContext:
- runAsNonRoot: true
- runAsUser: 1001
- env:
- - name: BITNAMI_DEBUG
- value: "false"
- - name: MY_POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: ELASTICSEARCH_IS_DEDICATED_NODE
- value: "yes"
- - name: ELASTICSEARCH_NODE_ROLES
- value: "data"
- - name: ELASTICSEARCH_TRANSPORT_PORT_NUMBER
- value: "9300"
- - name: ELASTICSEARCH_HTTP_PORT_NUMBER
- value: "9200"
- - name: ELASTICSEARCH_CLUSTER_NAME
- value: "elastic"
- - name: ELASTICSEARCH_CLUSTER_HOSTS
- value: "mastodon-elasticsearch-master-hl.mastodon.svc.cluster.local,mastodon-elasticsearch-coordinating-hl.mastodon.svc.cluster.local,mastodon-elasticsearch-data-hl.mastodon.svc.cluster.local,mastodon-elasticsearch-ingest-hl.mastodon.svc.cluster.local,"
- - name: ELASTICSEARCH_TOTAL_NODES
- value: "2"
- - name: ELASTICSEARCH_CLUSTER_MASTER_HOSTS
- value: mastodon-elasticsearch-master-0
- - name: ELASTICSEARCH_MINIMUM_MASTER_NODES
- value: "1"
- - name: ELASTICSEARCH_ADVERTISED_HOSTNAME
- value: "$(MY_POD_NAME).mastodon-elasticsearch-data-hl.mastodon.svc.cluster.local"
- - name: ELASTICSEARCH_HEAP_SIZE
- value: "1024m"
- ports:
- - name: rest-api
- containerPort: 9200
- - name: transport
- containerPort: 9300
- livenessProbe:
- failureThreshold: 5
- initialDelaySeconds: 90
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 5
- exec:
- command:
- - /opt/bitnami/scripts/elasticsearch/healthcheck.sh
- readinessProbe:
- failureThreshold: 5
- initialDelaySeconds: 90
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 5
- exec:
- command:
- - /opt/bitnami/scripts/elasticsearch/healthcheck.sh
- resources:
- limits: {}
- requests:
- cpu: 25m
- memory: 2048Mi
- volumeMounts:
- - name: data
- mountPath: /bitnami/elasticsearch/data
- volumes:
- volumeClaimTemplates:
- - metadata:
- name: "data"
- annotations:
- spec:
- accessModes:
- - "ReadWriteOnce"
- resources:
- requests:
- storage: "8Gi"
- ---
- # Source: mastodon/charts/elasticsearch/templates/ingest/statefulset.yaml
- apiVersion: apps/v1
- kind: StatefulSet
- metadata:
- name: mastodon-elasticsearch-ingest
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: elasticsearch
- helm.sh/chart: elasticsearch-19.5.8
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: ingest
- ## Istio Labels: https://istio.io/docs/ops/deployment/requirements/
- app: ingest
- spec:
- replicas: 1
- podManagementPolicy: Parallel
- selector:
- matchLabels:
- app.kubernetes.io/name: elasticsearch
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/component: ingest
- serviceName: mastodon-elasticsearch-ingest-hl
- updateStrategy:
- type: RollingUpdate
- template:
- metadata:
- labels:
- app.kubernetes.io/name: elasticsearch
- helm.sh/chart: elasticsearch-19.5.8
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: ingest
- ## Istio Labels: https://istio.io/docs/ops/deployment/requirements/
- app: ingest
- annotations:
- spec:
- serviceAccountName: default
-
- affinity:
- podAffinity:
-
- podAntiAffinity:
-
- nodeAffinity:
-
- securityContext:
- fsGroup: 1001
- initContainers:
- ## Image that performs the sysctl operation to modify Kernel settings (needed sometimes to avoid boot errors)
- - name: sysctl
- image: docker.io/bitnami/bitnami-shell:11-debian-11-r70
- imagePullPolicy: "IfNotPresent"
- command:
- - /bin/bash
- - -ec
- - |
- CURRENT=`sysctl -n vm.max_map_count`;
- DESIRED="262144";
- if [ "$DESIRED" -gt "$CURRENT" ]; then
- sysctl -w vm.max_map_count=262144;
- fi;
- CURRENT=`sysctl -n fs.file-max`;
- DESIRED="65536";
- if [ "$DESIRED" -gt "$CURRENT" ]; then
- sysctl -w fs.file-max=65536;
- fi;
- securityContext:
- privileged: true
- runAsUser: 0
- resources:
- limits: {}
- requests: {}
- containers:
- - name: elasticsearch
- image: docker.io/bitnami/elasticsearch:8.6.0-debian-11-r0
- imagePullPolicy: "IfNotPresent"
- securityContext:
- runAsNonRoot: true
- runAsUser: 1001
- env:
- - name: BITNAMI_DEBUG
- value: "false"
- - name: MY_POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: ELASTICSEARCH_IS_DEDICATED_NODE
- value: "yes"
- - name: ELASTICSEARCH_NODE_ROLES
- value: "ingest"
- - name: ELASTICSEARCH_TRANSPORT_PORT_NUMBER
- value: "9300"
- - name: ELASTICSEARCH_HTTP_PORT_NUMBER
- value: "9200"
- - name: ELASTICSEARCH_CLUSTER_NAME
- value: "elastic"
- - name: ELASTICSEARCH_CLUSTER_HOSTS
- value: "mastodon-elasticsearch-master-hl.mastodon.svc.cluster.local,mastodon-elasticsearch-coordinating-hl.mastodon.svc.cluster.local,mastodon-elasticsearch-data-hl.mastodon.svc.cluster.local,mastodon-elasticsearch-ingest-hl.mastodon.svc.cluster.local,"
- - name: ELASTICSEARCH_TOTAL_NODES
- value: "2"
- - name: ELASTICSEARCH_CLUSTER_MASTER_HOSTS
- value: mastodon-elasticsearch-master-0
- - name: ELASTICSEARCH_MINIMUM_MASTER_NODES
- value: "1"
- - name: ELASTICSEARCH_ADVERTISED_HOSTNAME
- value: "$(MY_POD_NAME).mastodon-elasticsearch-ingest-hl.mastodon.svc.cluster.local"
- - name: ELASTICSEARCH_HEAP_SIZE
- value: "128m"
- ports:
- - name: rest-api
- containerPort: 9200
- - name: transport
- containerPort: 9300
- livenessProbe:
- failureThreshold: 5
- initialDelaySeconds: 90
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 5
- exec:
- command:
- - /opt/bitnami/scripts/elasticsearch/healthcheck.sh
- readinessProbe:
- failureThreshold: 5
- initialDelaySeconds: 90
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 5
- exec:
- command:
- - /opt/bitnami/scripts/elasticsearch/healthcheck.sh
- resources:
- limits: {}
- requests:
- cpu: 25m
- memory: 256Mi
- volumeMounts:
- - name: data
- mountPath: /bitnami/elasticsearch/data
- volumes:
- - name: "data"
- emptyDir: {}
- ---
- # Source: mastodon/charts/elasticsearch/templates/master/statefulset.yaml
- apiVersion: apps/v1
- kind: StatefulSet
- metadata:
- name: mastodon-elasticsearch-master
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: elasticsearch
- helm.sh/chart: elasticsearch-19.5.8
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: master
- ## Istio Labels: https://istio.io/docs/ops/deployment/requirements/
- app: master
- spec:
- replicas: 1
- podManagementPolicy: Parallel
- selector:
- matchLabels:
- app.kubernetes.io/name: elasticsearch
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/component: master
- serviceName: mastodon-elasticsearch-master-hl
- updateStrategy:
- type: RollingUpdate
- template:
- metadata:
- labels:
- app.kubernetes.io/name: elasticsearch
- helm.sh/chart: elasticsearch-19.5.8
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: master
- ## Istio Labels: https://istio.io/docs/ops/deployment/requirements/
- app: master
- annotations:
- spec:
- serviceAccountName: default
-
- affinity:
- podAffinity:
-
- podAntiAffinity:
-
- nodeAffinity:
-
- securityContext:
- fsGroup: 1001
- initContainers:
- ## Image that performs the sysctl operation to modify Kernel settings (needed sometimes to avoid boot errors)
- - name: sysctl
- image: docker.io/bitnami/bitnami-shell:11-debian-11-r70
- imagePullPolicy: "IfNotPresent"
- command:
- - /bin/bash
- - -ec
- - |
- CURRENT=`sysctl -n vm.max_map_count`;
- DESIRED="262144";
- if [ "$DESIRED" -gt "$CURRENT" ]; then
- sysctl -w vm.max_map_count=262144;
- fi;
- CURRENT=`sysctl -n fs.file-max`;
- DESIRED="65536";
- if [ "$DESIRED" -gt "$CURRENT" ]; then
- sysctl -w fs.file-max=65536;
- fi;
- securityContext:
- privileged: true
- runAsUser: 0
- resources:
- limits: {}
- requests: {}
- containers:
- - name: elasticsearch
- image: docker.io/bitnami/elasticsearch:8.6.0-debian-11-r0
- imagePullPolicy: "IfNotPresent"
- securityContext:
- runAsNonRoot: true
- runAsUser: 1001
- env:
- - name: BITNAMI_DEBUG
- value: "false"
- - name: MY_POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: ELASTICSEARCH_IS_DEDICATED_NODE
- value: "yes"
- - name: ELASTICSEARCH_NODE_ROLES
- value: "master"
- - name: ELASTICSEARCH_TRANSPORT_PORT_NUMBER
- value: "9300"
- - name: ELASTICSEARCH_HTTP_PORT_NUMBER
- value: "9200"
- - name: ELASTICSEARCH_CLUSTER_NAME
- value: "elastic"
- - name: ELASTICSEARCH_CLUSTER_HOSTS
- value: "mastodon-elasticsearch-master-hl.mastodon.svc.cluster.local,mastodon-elasticsearch-coordinating-hl.mastodon.svc.cluster.local,mastodon-elasticsearch-data-hl.mastodon.svc.cluster.local,mastodon-elasticsearch-ingest-hl.mastodon.svc.cluster.local,"
- - name: ELASTICSEARCH_TOTAL_NODES
- value: "2"
- - name: ELASTICSEARCH_CLUSTER_MASTER_HOSTS
- value: mastodon-elasticsearch-master-0
- - name: ELASTICSEARCH_MINIMUM_MASTER_NODES
- value: "1"
- - name: ELASTICSEARCH_ADVERTISED_HOSTNAME
- value: "$(MY_POD_NAME).mastodon-elasticsearch-master-hl.mastodon.svc.cluster.local"
- - name: ELASTICSEARCH_HEAP_SIZE
- value: "128m"
- ports:
- - name: rest-api
- containerPort: 9200
- - name: transport
- containerPort: 9300
- livenessProbe:
- failureThreshold: 5
- initialDelaySeconds: 90
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 5
- exec:
- command:
- - /opt/bitnami/scripts/elasticsearch/healthcheck.sh
- readinessProbe:
- failureThreshold: 5
- initialDelaySeconds: 90
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 5
- exec:
- command:
- - /opt/bitnami/scripts/elasticsearch/healthcheck.sh
- resources:
- limits: {}
- requests:
- cpu: 25m
- memory: 256Mi
- volumeMounts:
- - name: data
- mountPath: /bitnami/elasticsearch/data
- volumes:
- volumeClaimTemplates:
- - metadata:
- name: "data"
- annotations:
- spec:
- accessModes:
- - "ReadWriteOnce"
- resources:
- requests:
- storage: "8Gi"
- ---
- # Source: mastodon/charts/postgresql/templates/primary/statefulset.yaml
- apiVersion: apps/v1
- kind: StatefulSet
- metadata:
- name: mastodon-postgresql
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: primary
- annotations:
- spec:
- replicas: 1
- serviceName: mastodon-postgresql-hl
- updateStrategy:
- rollingUpdate: {}
- type: RollingUpdate
- selector:
- matchLabels:
- app.kubernetes.io/name: postgresql
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/component: primary
- template:
- metadata:
- name: mastodon-postgresql
- labels:
- app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: primary
- annotations:
- spec:
- serviceAccountName: default
-
- affinity:
- podAffinity:
-
- podAntiAffinity:
- preferredDuringSchedulingIgnoredDuringExecution:
- - podAffinityTerm:
- labelSelector:
- matchLabels:
- app.kubernetes.io/name: postgresql
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/component: primary
- topologyKey: kubernetes.io/hostname
- weight: 1
- nodeAffinity:
-
- securityContext:
- fsGroup: 1001
- hostNetwork: false
- hostIPC: false
- initContainers:
- containers:
- - name: postgresql
- image: docker.io/bitnami/postgresql:15.1.0-debian-11-r20
- imagePullPolicy: "IfNotPresent"
- securityContext:
- runAsUser: 1001
- env:
- - name: BITNAMI_DEBUG
- value: "false"
- - name: POSTGRESQL_PORT_NUMBER
- value: "5432"
- - name: POSTGRESQL_VOLUME_DIR
- value: "/bitnami/postgresql"
- - name: PGDATA
- value: "/bitnami/postgresql/data"
- # Authentication
- - name: POSTGRES_USER
- value: "bn_mastodon"
- - name: POSTGRES_POSTGRES_PASSWORD
- valueFrom:
- secretKeyRef:
- name: mastodon-postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
- valueFrom:
- secretKeyRef:
- name: mastodon-postgresql
- key: password
- - name: POSTGRES_DB
- value: "bitnami_mastodon"
- # Replication
- # Initdb
- # Standby
- # LDAP
- - name: POSTGRESQL_ENABLE_LDAP
- value: "no"
- # TLS
- - name: POSTGRESQL_ENABLE_TLS
- value: "no"
- # Audit
- - name: POSTGRESQL_LOG_HOSTNAME
- value: "false"
- - name: POSTGRESQL_LOG_CONNECTIONS
- value: "false"
- - name: POSTGRESQL_LOG_DISCONNECTIONS
- value: "false"
- - name: POSTGRESQL_PGAUDIT_LOG_CATALOG
- value: "off"
- # Others
- - name: POSTGRESQL_CLIENT_MIN_MESSAGES
- value: "error"
- - name: POSTGRESQL_SHARED_PRELOAD_LIBRARIES
- value: "pgaudit"
- ports:
- - name: tcp-postgresql
- containerPort: 5432
- livenessProbe:
- failureThreshold: 6
- initialDelaySeconds: 30
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 5
- exec:
- command:
- - /bin/sh
- - -c
- - exec pg_isready -U "bn_mastodon" -d "dbname=bitnami_mastodon" -h 127.0.0.1 -p 5432
- readinessProbe:
- failureThreshold: 6
- initialDelaySeconds: 5
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 5
- exec:
- command:
- - /bin/sh
- - -c
- - -e
-
- - |
- exec pg_isready -U "bn_mastodon" -d "dbname=bitnami_mastodon" -h 127.0.0.1 -p 5432
- [ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
- resources:
- limits: {}
- requests:
- cpu: 250m
- memory: 256Mi
- volumeMounts:
- - name: dshm
- mountPath: /dev/shm
- - name: data
- mountPath: /bitnami/postgresql
- volumes:
- - name: dshm
- emptyDir:
- medium: Memory
- volumeClaimTemplates:
- - metadata:
- name: data
- spec:
- accessModes:
- - "ReadWriteOnce"
- resources:
- requests:
- storage: "8Gi"
- ---
- # Source: mastodon/charts/redis/templates/master/application.yaml
- apiVersion: apps/v1
- kind: StatefulSet
- metadata:
- name: mastodon-redis-master
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: redis
- helm.sh/chart: redis-17.4.3
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: master
- spec:
- replicas: 1
- selector:
- matchLabels:
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/component: master
- serviceName: mastodon-redis-headless
- updateStrategy:
- type: RollingUpdate
- template:
- metadata:
- labels:
- app.kubernetes.io/name: redis
- helm.sh/chart: redis-17.4.3
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: master
- annotations:
- checksum/configmap: 2f15040384162155f37c5089d1a10352963784fb168a605b339e88c8642e7001
- checksum/health: 0b8c4cf2e9643861c68f5ce94dc34b6497ef911db5da1c59f51d5f172a4b98dd
- checksum/scripts: aaa87d91cbed3dc312c3e5b1dab72400a783834667c43a4d19bba0b89be86c63
- checksum/secret: a6419e12b36d05bc7c2ce11860928be0c5a2a41ea37358fe1979106d70ea686f
- spec:
-
- securityContext:
- fsGroup: 1001
- serviceAccountName: mastodon-redis
- affinity:
- podAffinity:
-
- podAntiAffinity:
- preferredDuringSchedulingIgnoredDuringExecution:
- - podAffinityTerm:
- labelSelector:
- matchLabels:
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/component: master
- topologyKey: kubernetes.io/hostname
- weight: 1
- nodeAffinity:
-
- terminationGracePeriodSeconds: 30
- containers:
- - name: redis
- image: docker.io/bitnami/redis:7.0.8-debian-11-r0
- imagePullPolicy: "IfNotPresent"
- securityContext:
- runAsUser: 1001
- command:
- - /bin/bash
- args:
- - -c
- - /opt/bitnami/scripts/start-scripts/start-master.sh
- env:
- - name: BITNAMI_DEBUG
- value: "false"
- - name: REDIS_REPLICATION_MODE
- value: master
- - name: ALLOW_EMPTY_PASSWORD
- value: "no"
- - name: REDIS_PASSWORD
- valueFrom:
- secretKeyRef:
- name: mastodon-redis
- key: redis-password
- - name: REDIS_TLS_ENABLED
- value: "no"
- - name: REDIS_PORT
- value: "6379"
- ports:
- - name: redis
- containerPort: 6379
- livenessProbe:
- initialDelaySeconds: 20
- periodSeconds: 5
- # One second longer than command timeout should prevent generation of zombie processes.
- timeoutSeconds: 6
- successThreshold: 1
- failureThreshold: 5
- exec:
- command:
- - sh
- - -c
- - /health/ping_liveness_local.sh 5
- readinessProbe:
- initialDelaySeconds: 20
- periodSeconds: 5
- timeoutSeconds: 2
- successThreshold: 1
- failureThreshold: 5
- exec:
- command:
- - sh
- - -c
- - /health/ping_readiness_local.sh 1
- resources:
- limits: {}
- requests: {}
- volumeMounts:
- - name: start-scripts
- mountPath: /opt/bitnami/scripts/start-scripts
- - name: health
- mountPath: /health
- - name: redis-data
- mountPath: /data
- - name: config
- mountPath: /opt/bitnami/redis/mounted-etc
- - name: redis-tmp-conf
- mountPath: /opt/bitnami/redis/etc/
- - name: tmp
- mountPath: /tmp
- volumes:
- - name: start-scripts
- configMap:
- name: mastodon-redis-scripts
- defaultMode: 0755
- - name: health
- configMap:
- name: mastodon-redis-health
- defaultMode: 0755
- - name: config
- configMap:
- name: mastodon-redis-configuration
- - name: redis-tmp-conf
- emptyDir: {}
- - name: tmp
- emptyDir: {}
- volumeClaimTemplates:
- - metadata:
- name: redis-data
- labels:
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/component: master
- spec:
- accessModes:
- - "ReadWriteOnce"
- resources:
- requests:
- storage: "8Gi"
- ---
- # Source: mastodon/charts/minio/templates/provisioning-job.yaml
- apiVersion: batch/v1
- kind: Job
- metadata:
- name: mastodon-minio-provisioning
- namespace: "mastodon"
- labels:
- app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.0.0
- app.kubernetes.io/instance: mastodon
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/component: minio-provisioning
- annotations:
- helm.sh/hook: post-install,post-upgrade
- helm.sh/hook-delete-policy: before-hook-creation
- spec:
- parallelism: 1
- template:
- metadata:
- labels:
- app.kubernetes.io/managed-by: Helm
- helm.sh/chart: minio-12.0.0
- app.kubernetes.io/component: minio-provisioning
- spec:
-
- restartPolicy: OnFailure
- terminationGracePeriodSeconds: 0
- securityContext:
- fsGroup: 1001
- serviceAccountName: mastodon-minio
- initContainers:
- - name: wait-for-available-minio
- image: docker.io/bitnami/minio:2023.1.12-debian-11-r0
- imagePullPolicy: "IfNotPresent"
- securityContext:
- runAsNonRoot: true
- runAsUser: 1001
- command:
- - /bin/bash
- - -c
- - >-
- set -e;
- echo "Waiting for Minio";
- wait-for-port \
- --host=mastodon-minio \
- --state=inuse \
- --timeout=120 \
- 80;
- echo "Minio is available";
- resources:
- limits: {}
- requests: {}
- containers:
- - name: minio
- image: docker.io/bitnami/minio:2023.1.12-debian-11-r0
- imagePullPolicy: "IfNotPresent"
- securityContext:
- runAsNonRoot: true
- runAsUser: 1001
- command:
- - /bin/bash
- - -c
- - >-
- set -e;
- echo "Start Minio provisioning";
- function addPolicy() {
- local tmp=$(mc admin $1 info provisioning $2 | sed -n -e 's/^Policy.*: \(.*\)$/\1/p');
- IFS=',' read -r -a CURRENT_POLICIES <<< "$tmp";
- if [[ ! "${CURRENT_POLICIES[*]}" =~ "$3" ]]; then
- mc admin policy update provisioning $3 $1=$2;
- fi;
- };
- function addUsersFromFile() {
- local username=$(grep -oP '^username=\K.+' $1);
- local password=$(grep -oP '^password=\K.+' $1);
- local disabled=$(grep -oP '^disabled=\K.+' $1);
- local policies_list=$(grep -oP '^policies=\K.+' $1);
- local set_policies=$(grep -oP '^setPolicies=\K.+' $1);
- mc admin user add provisioning "${username}" "${password}";
- if [ "${set_policies}" == "true" ]; then
- mc admin policy set provisioning "${policies_list}" user="${username}";
- else
- IFS=',' read -r -a POLICIES <<< "${policies_list}";
- for policy in "${POLICIES[@]}"; do
- addPolicy user "${username}" "${policy}";
- done
- fi;
- local user_status="enable";
- if [[ "${disabled}" != "" && "${disabled,,}" == "true" ]]; then
- user_status="disable";
- fi;
- mc admin user "${user_status}" provisioning "${username}";
- };
- mc alias set provisioning $MINIO_SCHEME://mastodon-minio:80 $MINIO_ROOT_USER $MINIO_ROOT_PASSWORD;
- mc admin service restart provisioning;
-
- mc anonymous set download provisioning/s3storage;
- echo "End Minio provisioning";
- env:
- - name: MINIO_SCHEME
- value: "http"
- - name: MINIO_ROOT_USER
- valueFrom:
- secretKeyRef:
- name: mastodon-minio
- key: root-user
- - name: MINIO_ROOT_PASSWORD
- valueFrom:
- secretKeyRef:
- name: mastodon-minio
- key: root-password
- envFrom:
- resources:
- limits: {}
- requests: {}
- volumeMounts:
- - name: minio-provisioning
- mountPath: /etc/ilm
- volumes:
- - name: minio-provisioning
- configMap:
- name: mastodon-minio-provisioning
|