Skip to content

Commit

Permalink
Adding production database-migration deployment
Browse files Browse the repository at this point in the history
  • Loading branch information
said-moj committed Nov 5, 2020
1 parent eb598bc commit 6344544
Show file tree
Hide file tree
Showing 7 changed files with 337 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
apiVersion: batch/v1
kind: Job
metadata:
annotations:
kubernetes.io/change-cause: "<to be filled in deploy_to_kubernetes script>"
name: laa-legal-adviser-api-collect-static
spec:
template:
metadata:
name: laa-legal-adviser-api-collect-static
labels:
app: laa-legal-adviser-api
tier: collect-static
type: job
env: production
spec:
restartPolicy: Never
containers:
- name: app
image: "<to be set by deploy_to_kubernetes>"
command: ["python", "manage.py", "collectstatic", "--noinput"]
env:
- name: ENV
value: prod
- name: SECRET_KEY
valueFrom:
secretKeyRef:
name: secret-key
key: SECRET_KEY
- name: SENTRY_DSN
valueFrom:
secretKeyRef:
name: sentry
key: dsn
- name: STATIC_FILES_BACKEND
value: s3
- name: AWS_STORAGE_BUCKET_NAME
valueFrom:
secretKeyRef:
name: s3
key: bucket_name
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: s3
key: access_key_id
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: s3
key: secret_access_key
- name: AWS_S3_REGION_NAME
valueFrom:
secretKeyRef:
name: s3
key: region
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: database-migration
spec:
replicas: 1
selector:
matchLabels:
app: database-migration
template:
metadata:
labels:
app: database-migration
spec:
containers:
- name: database-migration
image: "saidmoj/database-migration:postgis"
imagePullPolicy: Always
env:
- name: TARGET_DB_HOST
valueFrom:
secretKeyRef:
name: database
key: host
- name: TARGET_DB_NAME
valueFrom:
secretKeyRef:
name: database
key: name
- name: TARGET_DB_USER
valueFrom:
secretKeyRef:
name: database
key: user
- name: TARGET_DB_PASSWORD
valueFrom:
secretKeyRef:
name: database
key: password
- name: SOURCE_DB_HOST
valueFrom:
secretKeyRef:
name: db
key: host
- name: SOURCE_DB_NAME
valueFrom:
secretKeyRef:
name: db
key: name
- name: SOURCE_DB_USER
valueFrom:
secretKeyRef:
name: db
key: user
- name: SOURCE_DB_PASSWORD
valueFrom:
secretKeyRef:
name: db
key: password
93 changes: 93 additions & 0 deletions kubernetes_deploy/database-migration-production/deployment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kubernetes.io/change-cause: "<to be filled in deploy_to_kubernetes script>"
name: laa-legal-adviser-api-database-migration
spec:
replicas: 1
selector:
matchLabels:
app: laa-legal-adviser-api-database-migration
tier: api
env: production
template:
metadata:
labels:
app: laa-legal-adviser-api-database-migration
tier: api
env: production
service_area: laa-get-access
service_team: cla-fala
spec:
terminationGracePeriodSeconds: 30
containers:
- image: "<to be set by deploy_to_kubernetes>"
name: app
readinessProbe:
httpGet:
path: /ping.json
port: 8000
initialDelaySeconds: 5
timeoutSeconds: 1
periodSeconds: 10
livenessProbe:
httpGet:
path: /ping.json
port: 8000
initialDelaySeconds: 10
timeoutSeconds: 1
periodSeconds: 10
lifecycle:
preStop:
exec:
command: ["/bin/sleep","10"]
env:
- name: ENV
value: prod
- name: LOG_LEVEL
value: INFO
- name: SECRET_KEY
valueFrom:
secretKeyRef:
name: secret-key
key: SECRET_KEY
- name: SENTRY_DSN
valueFrom:
secretKeyRef:
name: sentry
key: dsn
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: database
key: url
- name: STATIC_FILES_BACKEND
value: s3
- name: AWS_STORAGE_BUCKET_NAME
valueFrom:
secretKeyRef:
name: s3
key: bucket_name
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: s3
key: access_key_id
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: s3
key: secret_access_key
- name: AWS_S3_REGION_NAME
valueFrom:
secretKeyRef:
name: s3
key: region
- name: CELERY_BROKER_URL
valueFrom:
secretKeyRef:
name: celery-broker-database-migration
key: url
- name: CELERY_BROKER_USE_SSL
value: "true"
17 changes: 17 additions & 0 deletions kubernetes_deploy/database-migration-production/ingress.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: laa-legal-adviser-api-database-migration
namespace: laa-legal-adviser-api-production
spec:
tls:
- hosts:
- database-migration-laa-legal-adviser-api-production.apps.live-1.cloud-platform.service.justice.gov.uk
rules:
- host: database-migration-laa-legal-adviser-api-production.apps.live-1.cloud-platform.service.justice.gov.uk
http:
paths:
- path: /
backend:
serviceName: laa-legal-adviser-api-database-migration
servicePort: 80
34 changes: 34 additions & 0 deletions kubernetes_deploy/database-migration-production/migrate-db-job.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
apiVersion: batch/v1
kind: Job
metadata:
annotations:
kubernetes.io/change-cause: "<to be filled in deploy_to_kubernetes script>"
name: laa-legal-adviser-api-migrate-db-database-migration
spec:
template:
metadata:
name: laa-legal-adviser-api-migrate-db-database-migration
labels:
app: laa-legal-adviser-api-database-migration
tier: migrate-db
type: job
env: production
spec:
restartPolicy: Never
containers:
- name: app
image: "<to be set by deploy_to_kubernetes>"
command: ["python", "manage.py", "migrate", "--noinput"]
env:
- name: ENV
value: prod
- name: SECRET_KEY
valueFrom:
secretKeyRef:
name: secret-key
key: SECRET_KEY
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: database
key: url
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kubernetes.io/change-cause: "<to be filled in deploy_to_kubernetes script>"
name: laa-legal-adviser-api-worker-database-migration
spec:
replicas: 1
selector:
matchLabels:
app: laa-legal-adviser-api-database-migration
tier: worker
env: production
template:
metadata:
labels:
app: laa-legal-adviser-api-database-migration
tier: worker
env: production
service_area: laa-get-access
service_team: cla-fala
spec:
containers:
- image: "<to be set by deploy_to_kubernetes>"
name: worker
args: ["docker/run_worker.sh"]
readinessProbe:
exec:
command: ["docker/ping_services.sh"]
initialDelaySeconds: 5
timeoutSeconds: 1
periodSeconds: 10
livenessProbe:
exec:
command: ["docker/ping_services.sh"]
initialDelaySeconds: 10
timeoutSeconds: 1
periodSeconds: 10
env:
- name: WORKER_APP_CONCURRENCY
value: "8"
- name: LOG_LEVEL
value: INFO
- name: SECRET_KEY
valueFrom:
secretKeyRef:
name: secret-key
key: SECRET_KEY
- name: SENTRY_DSN
valueFrom:
secretKeyRef:
name: sentry
key: dsn
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: database
key: url
- name: CELERY_BROKER_URL
valueFrom:
secretKeyRef:
name: celery-broker-database-migration
key: url
- name: CELERY_BROKER_USE_SSL
value: "true"
13 changes: 13 additions & 0 deletions kubernetes_deploy/database-migration-production/service.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: laa-legal-adviser-api-database-migration
namespace: laa-legal-adviser-api-production
spec:
ports:
- port: 80
name: http
targetPort: 8000
selector:
app: laa-legal-adviser-api-database-migration
tier: api

0 comments on commit 6344544

Please sign in to comment.