{{- if and .Values.devEnv.enabled .Values.devEnv.aiAutomation.enabled }} apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "sebastian.fullname" . }}-ai-web namespace: {{ .Values.devEnv.namespace }} labels: {{- include "sebastian.labels" . | nindent 4 }} app.kubernetes.io/component: ai-automation-web spec: replicas: 1 selector: matchLabels: {{- include "sebastian.selectorLabels" . | nindent 6 }} app.kubernetes.io/component: ai-automation-web template: metadata: labels: {{- include "sebastian.selectorLabels" . | nindent 8 }} app.kubernetes.io/component: ai-automation-web spec: {{- if .Values.devEnv.aiAutomation.web.image.is_private }} imagePullSecrets: - name: "{{ .Values.devEnv.aiAutomation.web.image.credentials }}" {{- end }} securityContext: runAsUser: 1000 runAsGroup: 1000 fsGroup: 1000 containers: - name: ai-automation-web image: "{{ .Values.devEnv.aiAutomation.web.image.repository }}:{{ .Values.devEnv.aiAutomation.web.image.tag }}" imagePullPolicy: {{ .Values.devEnv.aiAutomation.web.image.pullPolicy }} env: - name: NODE_ENV value: "production" - name: PORT value: "3000" - name: NEXT_PUBLIC_API_URL value: "http://ai-api.{{ .Values.devEnv.namespace }}:4000" - name: NODE_OPTIONS value: "--max-http-header-size=26214400" # Environment markers - name: ALGA_DEV_ENV value: "true" - name: ALGA_BRANCH_SANITIZED value: "{{ .Values.devEnv.sanitizedBranch }}" - name: NEXT_PUBLIC_ALGA_DEV_ENV value: "true" - name: NEXT_PUBLIC_ALGA_BRANCH_SANITIZED value: "{{ .Values.devEnv.sanitizedBranch }}" # LLM Configuration - name: LLM_PROVIDER value: "custom-openai" - name: CUSTOM_OPENAI_API_KEY value: {{ .Values.config.llm.customOpenaiApiKey | quote }} - name: CUSTOM_OPENAI_BASE_URL value: {{ .Values.config.llm.customOpenaiBaseUrl | default "https://openrouter.ai/api/v1" | quote }} - name: CUSTOM_OPENAI_MODEL value: {{ .Values.config.llm.customOpenaiModel | default "google/gemini-2.5-flash-preview-05-20" | quote }} ports: - name: http containerPort: 3000 protocol: TCP livenessProbe: httpGet: path: / port: http initialDelaySeconds: 30 periodSeconds: 30 readinessProbe: httpGet: path: / port: http initialDelaySeconds: 10 periodSeconds: 10 resources: {{- toYaml .Values.devEnv.aiAutomation.web.resources | nindent 12 }} {{- with .Values.devEnv.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.devEnv.tolerations }} tolerations: {{- toYaml . | nindent 8 }} {{- end }} {{- end }}