diff --git a/01_onsite/01_dev/baseline/deployment.yaml b/01_onsite/01_dev/baseline/deployment.yaml index b11e709..f25ee79 100644 --- a/01_onsite/01_dev/baseline/deployment.yaml +++ b/01_onsite/01_dev/baseline/deployment.yaml @@ -20,7 +20,7 @@ spec: spec: containers: - name: baseline-frontend - image: packages.semapp.lan:5000/baseline_frontend:develop + image: packages.semapp.lan:5000/baseline_frontend:qa1 workingDir: /srv/web resources: requests: @@ -40,7 +40,7 @@ spec: imagePullPolicy: Always env: - name: KEYCLOAK_REALM - value: "baseline" + value: "baseline_develop" - name: KEYCLOAK_CLIENT value: "baseline" - name: KEYCLOAK_TOKEN_VALIDITY @@ -49,7 +49,7 @@ spec: value: "http://keycloak.semapp.lan/auth/" - name: baseline-backend - image: packages.semapp.lan:5000/baseline_backend:develop + image: packages.semapp.lan:5000/baseline_backend:qa1 workingDir: /opt/www resources: requests: @@ -110,7 +110,7 @@ data: KEYCLOAK_URL: "http://keycloak.semapp.lan" KEYCLOAK_PORT: "80" - KEYCLOAK_REALM: "baseline" + KEYCLOAK_REALM: "baseline_develop" REDIRECT_URL: "http://baseline-dev.k3s.semapp.lan/" diff --git a/01_onsite/02_qa/trialytix/deployment.yaml b/01_onsite/02_qa/trialytix/deployment.yaml index 41c60c8..2a94884 100644 --- a/01_onsite/02_qa/trialytix/deployment.yaml +++ b/01_onsite/02_qa/trialytix/deployment.yaml @@ -18,7 +18,7 @@ spec: containers: # Backend container - name: trialytix-backend - image: packages.semapp.lan:5000/trialytix_backend:$IMAGE_TAG + image: packages.semapp.lan:5000/trialytix_backend:develop resources: requests: @@ -37,7 +37,7 @@ spec: imagePullPolicy: Always # Frontend container - name: trialytix-frontend - image: packages.semapp.lan:5000/trialytix_frontend:$IMAGE_TAG + image: packages.semapp.lan:5000/trialytix_frontend:develop resources: requests: diff --git a/02_hetzner/01_prod/baseline/deployment.yaml b/02_hetzner/01_prod/baseline/deployment.yaml index 9ab995c..5be1db7 100644 --- a/02_hetzner/01_prod/baseline/deployment.yaml +++ b/02_hetzner/01_prod/baseline/deployment.yaml @@ -37,12 +37,15 @@ spec: - mountPath: /etc/nginx/conf.d readOnly: true name: baseline-prod-frontend-conf - - - mountPath: /srv/web/appConfiguration.json - subPath: appConfiguration.json - name: basiline-prod-env-frontend - readOnly: true - + env: + - name: KEYCLOAK_REALM + value: "baseline_production" + - name: KEYCLOAK_CLIENT + value: "baseline_prod" + - name: KEYCLOAK_TOKEN_VALIDITY + value: "600" + - name: KEYCLOAK_URL + value: "http://keycloak.semapp.lan/auth/" imagePullPolicy: Always - name: baseline-backend @@ -64,30 +67,10 @@ spec: - configMapRef: name: baseline-prod-backend-conf volumes: - - name: basiline-prod-env-frontend - configMap: - name: basiline-env-frontend - name: baseline-prod-frontend-conf configMap: name: baseline-prod-frontend-conf ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: basiline-prod-env-frontend - namespace: prod-environment - labels: - app: baseline-prod -data: - appConfiguration.json: | - { - "REACT_APP_KEYCLOAK_URL": "http://keycloak.semapp.lan/auth/", - "REACT_APP_KEYCLOAK_REALM": "baseline_prod", - "REACT_APP_KEYCLOAK_CLIENT_ID": "baseline_prod", - "REACT_APP_TOKEN_MIN_VALIDITY": "600" - } - --- apiVersion: v1 kind: ConfigMap diff --git a/02_hetzner/01_prod/trialytix/deployment.yaml b/02_hetzner/01_prod/trialytix/deployment.yaml new file mode 100644 index 0000000..504fbdf --- /dev/null +++ b/02_hetzner/01_prod/trialytix/deployment.yaml @@ -0,0 +1,184 @@ +# Deployment description +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: trialytix-deployment + namespace: prod-environment +spec: + replicas: 1 + selector: + matchLabels: + app: trialytix-prod + template: + metadata: + labels: + app: trialytix-prod + spec: + containers: + # Backend container + - name: trialytix-backend + image: packages.semapp.lan:5000/trialytix_backend:develop + + resources: + requests: + memory: "256Mi" + cpu: "100m" + limits: + memory: "512Mi" + cpu: "4" + ports: + - containerPort: 5100 + name: trialytix-back + protocol: TCP + envFrom: + - configMapRef: + name: trialytix-config-backend-prod + imagePullPolicy: Always + # Frontend container + - name: trialytix-frontend + image: packages.semapp.lan:5000/trialytix_frontend:develop + + resources: + requests: + memory: "256Mi" + cpu: "100m" + limits: + memory: "512Mi" + cpu: "4" + ports: + - containerPort: 8100 + name: trialytix-front + protocol: TCP + volumeMounts: + - mountPath: /etc/nginx/conf.d + readOnly: true + name: nginx-trialytix-prod-conf + envFrom: + - configMapRef: + name: trialytix-config-backend-prod + imagePullPolicy: Always + volumes: + - name: nginx-trialytix-prod-conf + configMap: + name: nginx-trialytix-prod-conf + +# Env Configuration +--- +apiVersion: v1 +kind: ConfigMap +metadata: + namespace: prod-environment + name: trialytix-config-backend-prod + labels: + app: trialytix-prod +data: + DJANGO_DB_ENGINE: 'django.db.backends.postgresql' + DJANGO_DB_NAME: 'trialytix_prod' + DJANGO_DB_USER: 'trialytix_prod' + DJANGO_DB_PASSWORD: '1E45fbe8sbmPESHu' + DJANGO_DB_HOST: 'psql.semprod.local' + DJANGO_DB_PORT: '5432' + ALLOWED_HOSTS: '["*"]' + FRONTEND_URL: 'http://trialytix.k8s.semprod.local' + API_URL: 'http://trialytix.k8s.semprod.local' + FRONTEND_PORT: '8100' + BACKEND_PORT: '5100' + +# Nginx configuration +--- +apiVersion: v1 +kind: ConfigMap +metadata: + namespace: prod-environment + name: nginx-trialytix-prod-conf +data: + default.conf: | + upstream backend { + server backend-trialytix-prod:5100; + } + + server { + listen 8100; + + access_log /var/log/nginx/access.log; + charset utf-8; + client_max_body_size 1G; + + location / { + root /srv/trialytix; + index index.html index.htm; + try_files $uri /index.html =404; + } + + location ~ ^/api { + proxy_pass http://backend; + proxy_redirect off; + + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + + proxy_read_timeout 300s; + proxy_send_timeout 300s; + send_timeout 300s; + } + + error_page 404 =200 /index.html; + + add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0'; + + expires off; + open_file_cache off; + sendfile off; + } + +# Trialytix service +--- +apiVersion: v1 +kind: Service +metadata: + name: backend-trialytix-prod + namespace: prod-environment +spec: + selector: + app: trialytix-prod + ports: + - name: trialytix-back + port: 5100 + targetPort: trialytix-back + type: NodePort + +--- +apiVersion: v1 +kind: Service +metadata: + name: frontend-trialytix-prod + namespace: prod-environment +spec: + selector: + app: trialytix-prod + ports: + - name: trialytix-front + port: 8100 + targetPort: trialytix-front + type: NodePort + +# Ingress description +--- +apiVersion: networking.k8s.io/v1beta1 +kind: Ingress +metadata: + name: trialytix-prod-ingress + namespace: prod-environment + annotations: + kubernetes.io/ingress.class: "traefik" +spec: + rules: + - host: trialytix.k8s.semprod.local + http: + paths: + - path: / + backend: + serviceName: frontend-trialytix-prod + servicePort: 8100 \ No newline at end of file