# Deployment description apiVersion: apps/v1 kind: Deployment metadata: name: rm-deployment namespace: dev-environment labels: app: rm-dev spec: strategy: type: Recreate replicas: 1 selector: matchLabels: app: rm-dev template: metadata: labels: app: rm-dev spec: # securityContext: # runAsUser: 1000 # runAsGroup: 1000 # fsGroup: 1000 containers: - name: rm-backend image: packages.semapp.lan:5000/rm-backend:0.0.6 resources: requests: memory: "256Mi" cpu: "100m" limits: memory: "512Mi" cpu: "4" ports: - containerPort: 5000 name: rm-backend protocol: TCP volumeMounts: - mountPath: /etc/flexrm/ readOnly: true name: flexrm-conf imagePullPolicy: Always - name: rm-frontend image: packages.semapp.lan:5000/rm-frontend:0.0.1 resources: requests: memory: "256Mi" cpu: "100m" limits: memory: "512Mi" cpu: "4" ports: - containerPort: 80 name: rm-frontend protocol: TCP volumeMounts: - mountPath: /etc/nginx/conf.d/ readOnly: true name: flexrm-frontend-conf imagePullPolicy: Always volumes: - name: flexrm-frontend-conf configMap: name: flexrm-frontend-conf - name: flexrm-conf configMap: name: flexrm-conf --- # Backend configuration apiVersion: v1 kind: ConfigMap metadata: namespace: dev-environment name: flexrm-conf data: flexrm.conf: | [general] allowed_hosts = * secret_key = some_very_long_and_hyper_random_secret_key DEBUG = False [db] driver = postgresql db_name = rm-dev db_user = rm-dev db_password = rm-dev db_host = postgres-lb [analytics] piwik_site_id = 3 [frontend] frontend_url = https://rm-dev.k3s.semapp.lan/ [email] host = smtp.strato.de port = 587 username = support@semantic-applications.de password = uN1zPIqN9@br use_tls = True auto_from = support@semantic-applications.de [tex] host = texservice.k3s.semapp.lan delete_after_render = False [media-storage] # # the used media-storage is defined via type: # # media_type = django.core.files.storage.FileSystemStorage ... the default django file storage # -> no additional settings are required # # media_type = minio_storage.storage.MinioMediaStorage ... the storage used with minio # -> additional settings for minio: # minio_endpoint = 127.0.0.1:9000 ... the endpoint and port # minio_use_https = True|False ... use https for communication # minio_media_bucket = media-rm ... the media bucket name # minio_access_key = #your ACCESS_KEY ... the access key # minio_secret_key = #your SECRET_KEY ... the secret key # minio_auto_create_bucket = True|False ... if True the bucket is created # # To setup minio storage as default for development just comment the file system storage line and uncomment # all minio storage lines # # media_type = django.core.files.storage.FileSystemStorage media_type = flexrm.kernel.minio.storage.MinIOMediaStorage minio_endpoint = minio-api-dev.k3s.semapp.lan minio_use_https = False minio_media_bucket = rm-dev minio_access_key = rm-dev minio_secret_key = "Semapp123456!" minio_auto_create_bucket = True --- # Frontend nginx configuration apiVersion: v1 kind: ConfigMap metadata: namespace: dev-environment name: flexrm-frontend-conf data: default.conf: | upstream backend { server rm-backend-srv:5000; } server { listen 80; server_name $K8S_HOSTNAME; #access_log /var/log/rm/access.log; #error_log /var/log/rm/error.log; charset utf-8; client_max_body_size 1G; location / { root /srv/rm-web; try_files $uri /index.html =404; } location ~ ^/(api|drf|manage) { 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; } location /storage { # TODO: still needed when we use minio? alias /srv/media; } location /static { # TODO: still needed when we use minio? alias /srv/public; } # Redirect Angular routes error_page 404 =200 /index.html; } --- # RM backend Service apiVersion: v1 kind: Service metadata: name: rm-backend-srv namespace: dev-environment spec: selector: app: rm-dev ports: - name: rm-backend port: 5000 targetPort: rm-backend type: NodePort --- #RM frontend service apiVersion: v1 kind: Service metadata: name: rm-frontend-srv namespace: dev-environment spec: selector: app: rm-dev ports: - name: rm-frontend port: 80 targetPort: rm-frontend type: NodePort --- # Ingress description apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: rm-dev-ingress namespace: dev-environment annotations: kubernetes.io/ingress.class: "traefik" spec: rules: - host: rm-dev.k3s.semapp.lan http: paths: - backend: service: name: rm-frontend-srv port: number: 80 path: / pathType: ImplementationSpecific