diff --git a/kubernetes/operationcode_python_backend/base/deployment.yaml b/kubernetes/operationcode_python_backend/base/deployment.yaml new file mode 100644 index 0000000..a8002e6 --- /dev/null +++ b/kubernetes/operationcode_python_backend/base/deployment.yaml @@ -0,0 +1,89 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: back-end +spec: + replicas: 2 + revisionHistoryLimit: 5 + template: + spec: + containers: + - name: app + image: operationcode/back-end:latest + imagePullPolicy: Always + ports: + - containerPort: 8000 + env: + - name: DB_NAME + valueFrom: + secretKeyRef: + name: python-backend-secrets + key: postgres_name + - name: DB_USER + valueFrom: + secretKeyRef: + name: python-backend-secrets + key: postgres_user + - name: DB_PASSWORD + valueFrom: + secretKeyRef: + name: python-backend-secrets + key: postgres_password + - name: DB_HOST + valueFrom: + secretKeyRef: + name: python-backend-secrets + key: postgres_host + - name: DB_PORT + valueFrom: + secretKeyRef: + name: python-backend-secrets + key: postgres_port + - name: SECRET_KEY + valueFrom: + secretKeyRef: + name: python-backend-secrets + key: secret_key_base + - name: PYBOT_AUTH_TOKEN + valueFrom: + secretKeyRef: + name: python-backend-secrets + key: pybot_auth_token + - name: PYBOT_URL + valueFrom: + secretKeyRef: + name: python-backend-secrets + key: pybot_url + - name: MAILCHIMP_API_KEY + valueFrom: + secretKeyRef: + name: python-backend-secrets + key: mailchimp_api_key + - name: MAILCHIMP_LIST_ID + valueFrom: + secretKeyRef: + name: python-backend-secrets + key: mailchimp_list_id + - name: SENTRY_DSN + valueFrom: + secretKeyRef: + name: python-backend-secrets + key: sentry_dsn + + - name: GOOGLE_OAUTH_CLIENT_ID + valueFrom: + secretKeyRef: + name: python-backend-secrets + key: google_oauth_client_id + + - name: GOOGLE_OAUTH_CLIENT_SECRET + valueFrom: + secretKeyRef: + name: python-backend-secrets + key: google_oauth_client_secret + + + volumes: + - name: python-backend-secrets + secret: + secretName: python-backend-secrets \ No newline at end of file diff --git a/kubernetes/operationcode_python_backend/base/kustomization.yaml b/kubernetes/operationcode_python_backend/base/kustomization.yaml new file mode 100644 index 0000000..1c90fd5 --- /dev/null +++ b/kubernetes/operationcode_python_backend/base/kustomization.yaml @@ -0,0 +1,9 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +commonLabels: + app: back-end + +resources: +- deployment.yaml +- service.yaml diff --git a/kubernetes/operationcode_python_backend/base/service.yaml b/kubernetes/operationcode_python_backend/base/service.yaml new file mode 100644 index 0000000..f026dce --- /dev/null +++ b/kubernetes/operationcode_python_backend/base/service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: back-end-service +spec: + selector: + app: back-end + ports: + - protocol: TCP + name: http + port: 80 + targetPort: 8000 + type: ClusterIP diff --git a/kubernetes/operationcode_python_backend/overlays/prod/deployment.yaml b/kubernetes/operationcode_python_backend/overlays/prod/deployment.yaml new file mode 100644 index 0000000..8f435dc --- /dev/null +++ b/kubernetes/operationcode_python_backend/overlays/prod/deployment.yaml @@ -0,0 +1,15 @@ + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: back-end +spec: + template: + spec: + containers: + - name: app + env: + - name: DB_HOST + value: # TODO + - name: ENVIRONMENT + value: aws_prod \ No newline at end of file diff --git a/kubernetes/operationcode_python_backend/overlays/prod/ingress.yaml b/kubernetes/operationcode_python_backend/overlays/prod/ingress.yaml new file mode 100644 index 0000000..06e4451 --- /dev/null +++ b/kubernetes/operationcode_python_backend/overlays/prod/ingress.yaml @@ -0,0 +1,20 @@ +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + annotations: + kubernetes.io/ingress.class: nginx + kubernetes.io/tls-acme: "true" + name: back-end +spec: + rules: + - host: api.operationcode.org + http: + paths: + - backend: + serviceName: operationcode-backend-service + servicePort: 80 + path: / + tls: + - hosts: + - api.operationcode.org + secretName: operationcode-backend-tls diff --git a/kubernetes/operationcode_python_backend/overlays/prod/kustomization.yaml b/kubernetes/operationcode_python_backend/overlays/prod/kustomization.yaml new file mode 100644 index 0000000..1d8f44b --- /dev/null +++ b/kubernetes/operationcode_python_backend/overlays/prod/kustomization.yaml @@ -0,0 +1,13 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: operationcode + +bases: +- ../../base + +resources: +- ingress.yaml + +patchesStrategicMerge: + - deployment.yaml \ No newline at end of file diff --git a/kubernetes/operationcode_python_backend/overlays/staging/deployment.yaml b/kubernetes/operationcode_python_backend/overlays/staging/deployment.yaml new file mode 100644 index 0000000..755a1b6 --- /dev/null +++ b/kubernetes/operationcode_python_backend/overlays/staging/deployment.yaml @@ -0,0 +1,17 @@ + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: back-end +spec: + template: + spec: + containers: + - name: app + env: + - name: DB_HOST + value: django-staging.czwauqf3tjaz.us-east-2.rds.amazonaws.com + - name: ENVIRONMENT + value: aws_staging + - name: RELEASE + value: 0.1.0 \ No newline at end of file diff --git a/kubernetes/operationcode_python_backend/overlays/staging/ingress.yaml b/kubernetes/operationcode_python_backend/overlays/staging/ingress.yaml new file mode 100644 index 0000000..9d84bd7 --- /dev/null +++ b/kubernetes/operationcode_python_backend/overlays/staging/ingress.yaml @@ -0,0 +1,20 @@ +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + annotations: + kubernetes.io/ingress.class: nginx + kubernetes.io/tls-acme: "true" + name: back-end +spec: + rules: + - host: api.staging.operationcode.org + http: + paths: + - backend: + serviceName: operationcode-backend-service + servicePort: 80 + path: / + tls: + - hosts: + - api.staging.operationcode.org + secretName: operationcode-backend-tls diff --git a/kubernetes/operationcode_python_backend/overlays/staging/kustomization.yaml b/kubernetes/operationcode_python_backend/overlays/staging/kustomization.yaml new file mode 100644 index 0000000..962b1ef --- /dev/null +++ b/kubernetes/operationcode_python_backend/overlays/staging/kustomization.yaml @@ -0,0 +1,13 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: operationcode-staging + +bases: +- ../../base + +resources: +- ingress.yaml + +patchesStrategicMerge: + - deployment.yaml \ No newline at end of file