256 lines
7.4 KiB
YAML
256 lines
7.4 KiB
YAML
image:
|
|
repository: tccr.io/truecharts/inventree
|
|
tag: v0.7.4@sha256:ac0be06d9e494ff08623a5b99e72f8ba0104d6259973bbcff74b571be36fc602
|
|
pullPolicy: IfNotPresent
|
|
|
|
nginxImage:
|
|
repository: tccr.io/truecharts/nginx
|
|
tag: v1.23.0@sha256:f4f43b06452c23534106d5dcebdff45fc7737ad360c6b84dda801d55d25548ea
|
|
|
|
securityContext:
|
|
readOnlyRootFilesystem: false
|
|
|
|
podSecurityContext:
|
|
runAsUser: 100
|
|
runAsGroup: 0
|
|
|
|
secretEnv:
|
|
INVENTREE_ADMIN_EMAIL: "test@example.com"
|
|
INVENTREE_ADMIN_USER: "super"
|
|
INVENTREE_ADMIN_PASSWORD: "secret"
|
|
|
|
configmap:
|
|
config:
|
|
enabled: true
|
|
data:
|
|
nginx-config: |-
|
|
server {
|
|
# Listen for connection on (internal) port 80
|
|
listen 10231;
|
|
|
|
real_ip_header proxy_protocol;
|
|
|
|
location / {
|
|
|
|
proxy_set_header Host $http_host;
|
|
proxy_set_header X-Forwarded-By $server_addr:$server_port;
|
|
proxy_set_header X-Forwarded-For $remote_addr;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header CLIENT_IP $remote_addr;
|
|
|
|
proxy_pass_request_headers on;
|
|
|
|
proxy_redirect off;
|
|
|
|
client_max_body_size 100M;
|
|
|
|
proxy_buffering off;
|
|
proxy_request_buffering off;
|
|
|
|
# Change 'inventree-server' to the name of the inventree server container,
|
|
# and '8000' to the INVENTREE_WEB_PORT (if not default)
|
|
proxy_pass http://localhost:8000;
|
|
}
|
|
|
|
# Redirect any requests for static files
|
|
location /static/ {
|
|
alias /var/www/static/;
|
|
autoindex on;
|
|
|
|
# Caching settings
|
|
expires 30d;
|
|
add_header Pragma public;
|
|
add_header Cache-Control "public";
|
|
}
|
|
|
|
# Redirect any requests for media files
|
|
location /media/ {
|
|
alias /var/www/media/;
|
|
|
|
# Media files require user authentication
|
|
auth_request /auth;
|
|
}
|
|
|
|
# Use the 'user' API endpoint for auth
|
|
location /auth {
|
|
internal;
|
|
|
|
proxy_pass http://localhost:8000/auth/;
|
|
|
|
proxy_pass_request_body off;
|
|
proxy_set_header Content-Length "";
|
|
proxy_set_header X-Original-URI $request_uri;
|
|
}
|
|
}
|
|
|
|
env:
|
|
INVENTREE_DB_ENGINE: "postgresql"
|
|
INVENTREE_DB_NAME: "{{ .Values.postgresql.postgresqlDatabase }}"
|
|
INVENTREE_DB_USER: "{{ .Values.postgresql.postgresqlUsername }}"
|
|
INVENTREE_DB_PORT: "5432"
|
|
INVENTREE_TIMEZONE: "{{ .Values.TZ }}"
|
|
# User Defined
|
|
INVENTREE_DEBUG: false
|
|
INVENTREE_LOG_LEVEL: "INFO"
|
|
INVENTREE_PLUGINS_ENABLED: false
|
|
INVENTREE_LOGIN_CONFIRM_DAYS: 3
|
|
INVENTREE_LOGIN_ATTEMPTS: 5
|
|
INVENTREE_DB_PASSWORD:
|
|
secretKeyRef:
|
|
name: dbcreds
|
|
key: postgresql-password
|
|
INVENTREE_DB_HOST:
|
|
secretKeyRef:
|
|
name: dbcreds
|
|
key: plainhost
|
|
INVENTREE_SECRET_KEY:
|
|
secretKeyRef:
|
|
name: inventree-secrets
|
|
key: INVENTREE_SECRET_KEY
|
|
|
|
service:
|
|
main:
|
|
ports:
|
|
main:
|
|
port: 10231
|
|
targetPort: 10231
|
|
|
|
persistence:
|
|
data:
|
|
enabled: true
|
|
mountPath: "/home/inventree/data"
|
|
inventree-config:
|
|
enabled: "true"
|
|
mountPath: "/etc/nginx/nginx.conf"
|
|
subPath: "nginx-confing"
|
|
type: "custom"
|
|
volumeSpec:
|
|
configMap:
|
|
name: '{{ printf "%v-config" (include "tc.common.names.fullname" .) }}'
|
|
|
|
initContainers:
|
|
init-migrate:
|
|
name: init-migrate
|
|
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
|
volumeMounts:
|
|
- name: data
|
|
mountPath: "/home/inventree/data"
|
|
env:
|
|
- name: INVENTREE_TIMEZONE
|
|
value: "{{ .Values.TZ }}"
|
|
- name: INVENTREE_DB_ENGINE
|
|
value: "postgresql"
|
|
- name: INVENTREE_DB_NAME
|
|
value: "{{ .Values.postgresql.postgresqlDatabase }}"
|
|
- name: INVENTREE_DB_USER
|
|
value: "{{ .Values.postgresql.postgresqlUsername }}"
|
|
- name: INVENTREE_DB_PORT
|
|
value: "5432"
|
|
- name: INVENTREE_DB_HOST
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: dbcreds
|
|
key: plainhost
|
|
- name: INVENTREE_DB_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: dbcreds
|
|
key: postgresql-password
|
|
- name: INVENTREE_SECRET_KEY
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: inventree-secrets
|
|
key: INVENTREE_SECRET_KEY
|
|
- name: INVENTREE_LOG_LEVEL
|
|
value: "{{ .Values.env.INVENTREE_LOG_LEVEL }}"
|
|
- name: INVENTREE_DEBUG
|
|
value: "{{ .Values.env.INVENTREE_DEBUG }}"
|
|
- name: INVENTREE_LOGIN_CONFIRM_DAYS
|
|
value: "{{ .Values.env.INVENTREE_LOGIN_CONFIRM_DAYS }}"
|
|
- name: INVENTREE_LOGIN_ATTEMPTS
|
|
value: "{{ .Values.env.INVENTREE_LOGIN_ATTEMPTS }}"
|
|
- name: INVENTREE_PLUGINS_ENABLED
|
|
value: "{{ .Values.env.INVENTREE_PLUGINS_ENABLED }}"
|
|
command: ["sh", "-c"]
|
|
args:
|
|
- >
|
|
cd /home/inventree;
|
|
invoke update;
|
|
|
|
additionalContainers:
|
|
nginx:
|
|
name: nginx
|
|
image: "{{ .Values.nginxImage.repository }}:{{ .Values.nginxImage.tag }}"
|
|
ports:
|
|
- containerPort: 10231
|
|
name: main
|
|
securityContext:
|
|
runAsUser: 0
|
|
runAsGroup: 100
|
|
readOnlyRootFilesystem: false
|
|
runAsNonRoot: false
|
|
volumeMounts:
|
|
- name: inventree-config
|
|
mountPath: "/etc/nginx/conf.d/default.conf"
|
|
subPath: nginx-config
|
|
readOnly: true
|
|
- name: data
|
|
mountPath: "/var/www"
|
|
worker:
|
|
name: worker
|
|
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
|
command: ["invoke", "worker"]
|
|
volumeMounts:
|
|
- name: data
|
|
mountPath: "/home/inventree/data"
|
|
env:
|
|
- name: INVENTREE_ADMIN_EMAIL
|
|
value: "{{ .Values.secret.INVENTREE_ADMIN_EMAIL }}"
|
|
- name: INVENTREE_ADMIN_USER
|
|
value: "{{ .Values.secret.INVENTREE_ADMIN_USER }}"
|
|
- name: INVENTREE_ADMIN_PASSWORD
|
|
value: "{{ .Values.secret.INVENTREE_ADMIN_PASSWORD }}"
|
|
- name: INVENTREE_TIMEZONE
|
|
value: "{{ .Values.TZ }}"
|
|
- name: INVENTREE_DB_ENGINE
|
|
value: "postgresql"
|
|
- name: INVENTREE_DB_NAME
|
|
value: "{{ .Values.postgresql.postgresqlDatabase }}"
|
|
- name: INVENTREE_DB_USER
|
|
value: "{{ .Values.postgresql.postgresqlUsername }}"
|
|
- name: INVENTREE_DB_PORT
|
|
value: "5432"
|
|
- name: INVENTREE_DB_HOST
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: dbcreds
|
|
key: plainhost
|
|
- name: INVENTREE_DB_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: dbcreds
|
|
key: postgresql-password
|
|
- name: INVENTREE_SECRET_KEY
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: inventree-secrets
|
|
key: INVENTREE_SECRET_KEY
|
|
- name: INVENTREE_LOG_LEVEL
|
|
value: "{{ .Values.env.INVENTREE_LOG_LEVEL }}"
|
|
- name: INVENTREE_DEBUG
|
|
value: "{{ .Values.env.INVENTREE_DEBUG }}"
|
|
- name: INVENTREE_LOGIN_CONFIRM_DAYS
|
|
value: "{{ .Values.env.INVENTREE_LOGIN_CONFIRM_DAYS }}"
|
|
- name: INVENTREE_LOGIN_ATTEMPTS
|
|
value: "{{ .Values.env.INVENTREE_LOGIN_ATTEMPTS }}"
|
|
- name: INVENTREE_PLUGINS_ENABLED
|
|
value: "{{ .Values.env.INVENTREE_PLUGINS_ENABLED }}"
|
|
|
|
# Enabled postgres
|
|
postgresql:
|
|
enabled: true
|
|
existingSecret: "dbcreds"
|
|
postgresqlUsername: inventree
|
|
postgresqlDatabase: inventree
|