Skip to content

Instantly share code, notes, and snippets.

@ordinaryindustries
Created June 16, 2024 03:40
Show Gist options
  • Select an option

  • Save ordinaryindustries/9b060225084a93f870a732a2029f646c to your computer and use it in GitHub Desktop.

Select an option

Save ordinaryindustries/9b060225084a93f870a732a2029f646c to your computer and use it in GitHub Desktop.
apiVersion: v1
kind: ConfigMap
metadata:
name: backend-configmap
data:
DJANGO_ALLOWED_HOSTS: "*"
CSRF_TRUSTED_ORIGINS: "<redacted_cluster_ip>"
USE_MANAGED_DATABASE: "True"
USE_AWS: "True"
DJANGO_DEBUG: "True"
AWS_STORAGE_BUCKET_NAME: quartiles-static
apiVersion: apps/v1
kind: Deployment
metadata:
name: backend-deployment
namespace: backend
spec:
replicas: 1
selector:
matchLabels:
app: backend
template:
metadata:
labels:
app: backend
spec:
containers:
- name: backend
ports:
- containerPort: 8000
image: registry.digitalocean.com/quartilesanswers/quartiles-backend
env:
- name: DJANGO_SECRET_KEY
valueFrom:
secretKeyRef:
name: backend-django-secret
key: DJANGO_SECRET_KEY
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: backend-django-secret
key: AWS_ACCESS_KEY_ID
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: backend-django-secret
key: AWS_SECRET_ACCESS_KEY
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: backend-django-secret
key: DATABASE_URL
- name: DJANGO_ALLOWED_HOSTS
valueFrom:
configMapKeyRef:
name: backend-configmap
key: DJANGO_ALLOWED_HOSTS
- name: CSRF_TRUSTED_ORIGINS
valueFrom:
configMapKeyRef:
name: backend-configmap
key: CSRF_TRUSTED_ORIGINS
- name: USE_MANAGED_DATABASE
valueFrom:
configMapKeyRef:
name: backend-configmap
key: USE_MANAGED_DATABASE
- name: USE_AWS
valueFrom:
configMapKeyRef:
name: backend-configmap
key: USE_AWS
- name: DJANGO_DEBUG
valueFrom:
configMapKeyRef:
name: backend-configmap
key: DJANGO_DEBUG
- name: AWS_STORAGE_BUCKET_NAME
valueFrom:
configMapKeyRef:
name: backend-configmap
key: AWS_STORAGE_BUCKET_NAME
volumeMounts:
- name: backend-storage
mountPath: /var/lib/django
imagePullSecrets:
- name: do-registry
volumes:
- name: backend-storage
persistentVolumeClaim:
claimName: pvc-backend
apiVersion: v1
kind: Secret
metadata:
name: backend-django-secret
namespace: backend
type: Opaque
data:
DJANGO_SECRET_KEY: <redcated_b64_value>
AWS_SECRET_ACCESS_KEY: <redcated_b64_value>
AWS_ACCESS_KEY_ID: <redcated_b64_value>
DATABASE_URL: <redcated_b64_value>
apiVersion: v1
kind: Namespace
metadata:
name: backend
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-backend
namespace: backend
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-backend
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data"
apiVersion: v1
kind: Service
metadata:
name: backend-service
namespace: backend
spec:
selector:
app: backend
ports:
- protocol: TCP
port: 80
targetPort: 8000
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
name: backend-ingress-class
spec:
controller: k8s.io/ingress-nginx
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: backend-ingress
namespace: backend
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: backend-ingress-class
rules:
- http:
paths:
- path: "/"
pathType: Prefix
backend:
service:
name: backend-service
port:
number: 80
apiVersion: v1
kind: Service
metadata:
name: backend-service
namespace: backend
spec:
selector:
app: backend
ports:
- protocol: TCP
port: 80
targetPort: 8000
type: LoadBalancer
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment