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