You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

250 lines
5.6 KiB

# 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.1
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
[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