apiVersion: apps/v1 kind: Deployment metadata: name: teamclaw-frontend labels: {{- include "teamclaw.labels" . | nindent 4 }} spec: replicas: {{ .Values.frontend.replicas }} selector: matchLabels: {{- include "teamclaw.frontendSelector" . | nindent 6 }} template: metadata: labels: {{- include "teamclaw.frontendSelector" . | nindent 8 }} app.kubernetes.io/instance: {{ .Release.Name }} spec: securityContext: runAsNonRoot: true seccompProfile: { type: RuntimeDefault } containers: - name: frontend image: "{{ .Values.image.registry }}/frontend:{{ .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} ports: - { containerPort: 3000, name: http } env: - name: API_ORIGIN value: http://teamclaw-server:8080 resources: {{- toYaml .Values.frontend.resources | nindent 12 }} securityContext: allowPrivilegeEscalation: false capabilities: { drop: ["ALL"] } --- apiVersion: v1 kind: Service metadata: name: teamclaw-frontend labels: {{- include "teamclaw.labels" . | nindent 4 }} spec: selector: {{- include "teamclaw.frontendSelector" . | nindent 4 }} ports: - { name: http, port: 3000, targetPort: http }