Skip to content

Instantly share code, notes, and snippets.

@mmacfadden
Created January 3, 2020 15:01
Show Gist options
  • Save mmacfadden/70e4cdba83665375ce7bd830fa8d6bf6 to your computer and use it in GitHub Desktop.
Save mmacfadden/70e4cdba83665375ce7bd830fa8d6bf6 to your computer and use it in GitHub Desktop.
Bitnami Discourse Kubernetes
apiVersion: v1
kind: ConfigMap
metadata:
name: discourse-config
namespace: discourse
data:
POSTGRESQL_HOST: postgresql
POSTGRESQL_ROOT_USER: postgres
POSTGRESQL_ROOT_PASSWORD: "redacted"
POSTGRESQL_CLIENT_CREATE_DATABASE_NAME: bitnami_discourse
POSTGRESQL_CLIENT_CREATE_DATABASE_USERNAME: bn_discourse
POSTGRESQL_CLIENT_CREATE_DATABASE_PASSWORD: "redacted"
DISCOURSE_POSTGRESQL_NAME: bitnami_discourse
DISCOURSE_POSTGRESQL_USERNAME: bn_discourse
DISCOURSE_POSTGRESQL_PASSWORD: "bn_discourse"
DISCOURSE_SITENAME: "My Forum"
DISCOURSE_HOSTNAME: myhost
DISCOURSE_USERNAME: admin
DISCOURSE_EMAIL: email@example.com
DISCOURSE_PASSWORD: "redacted"
DISCOURSE_HOST: discourse
DISCOURSE_PORT: "3000"
REDIS_HOST: redis
REDIS_PORT_NUMBER: "6379"
SMTP_HOST: email-smtp.us-west-2.amazonaws.com
SMTP_PORT: "587"
SMTP_USER: "redacted"
SMTP_PASSWORD: "redacted"
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
namespace: discourse
name: discourse-pv-claim
labels:
app: discourse
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
apiVersion: v1
kind: Service
metadata:
namespace: discourse
name: discourse
labels:
app: discourse
spec:
ports:
- port: 3000
protocol: TCP
targetPort: 3000
selector:
app: discourse
sessionAffinity: None
type: ClusterIP
---
apiVersion: apps/v1beta2
kind: Deployment
metadata:
namespace: discourse
name: discourse
labels:
app: discourse
spec:
replicas: 1
selector:
matchLabels:
app: discourse
template:
metadata:
labels:
app: discourse
spec:
containers:
- image: bitnami/discourse:2.3.7
name: discourse
envFrom:
- configMapRef:
name: discourse-config
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: 1
memory: 2Gi
imagePullPolicy: Always
volumeMounts:
- name: discourse-storage
mountPath: /bitnami
volumes:
- name: discourse-storage
persistentVolumeClaim:
claimName: discourse-pv-claim
kind: Namespace
apiVersion: v1
metadata:
name: discourse
labels:
name: discourse
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
namespace: discourse
name: postgresql-pv-claim
labels:
app: postgresql
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
apiVersion: v1
kind: Service
metadata:
namespace: discourse
name: postgresql
labels:
app: postgresql
spec:
ports:
- port: 5432
protocol: TCP
targetPort: 5432
selector:
app: postgresql
clusterIP: None
---
apiVersion: apps/v1beta2
kind: StatefulSet
metadata:
namespace: discourse
name: postgresql
labels:
app: postgresql
spec:
serviceName: "postgresql"
replicas: 1
selector:
matchLabels:
app: postgresql
template:
metadata:
labels:
app: postgresql
spec:
initContainers:
- name: init-chown-data
image: bitnami/postgresql:11
securityContext:
runAsUser: 0
command: ['sh' , '-c' , 'chown -R 1001:1001 /bitnami']
volumeMounts:
- name: postgresql-storage
mountPath: /bitnami/postgresql
containers:
- image: bitnami/postgresql:11
name: postgresql
ports:
- containerPort: 5432
env:
- name: POSTGRESQL_PASSWORD
value: "redacted"
resources:
requests:
memory: "256Mi"
cpu: "100m"
limits:
memory: "512Mi"
cpu: "500m"
volumeMounts:
- name: postgresql-storage
mountPath: /bitnami/postgresql
volumes:
- name: postgresql-storage
persistentVolumeClaim:
claimName: postgresql-pv-claim
apiVersion: v1
kind: Service
metadata:
namespace: discourse
name: redis
labels:
app: redis
spec:
ports:
- port: 6379
protocol: TCP
targetPort: 6379
selector:
app: redis
sessionAffinity: None
type: ClusterIP
---
apiVersion: apps/v1beta2
kind: Deployment
metadata:
namespace: discourse
name: redis
labels:
app: redis
spec:
replicas: 1
selector:
matchLabels:
app: redis
template:
metadata:
labels:
app: redis
spec:
containers:
- image: bitnami/redis:5.0
name: redis
resources:
requests:
cpu: 100m
memory: 100Mi
limits:
cpu: 250m
memory: 250Mi
ports:
- containerPort: 6379
env:
- name: ALLOW_EMPTY_PASSWORD
value: "yes"
apiVersion: apps/v1beta2
kind: Deployment
metadata:
namespace: discourse
name: sidekiq
labels:
app: sidekiq
spec:
replicas: 1
selector:
matchLabels:
app: sidekiq
template:
metadata:
labels:
app: sidekiq
spec:
containers:
- name: sidekiq
image: bitnami/discourse:2.3.7
args:
- nami
- start
- --foreground
- discourse-sidekiq
envFrom:
- configMapRef:
name: discourse-config
resources:
requests:
cpu: 500m
memory: 1.5Gi
limits:
cpu: 1
memory: 2Gi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment