apiVersion: apps/v1 kind: Deployment metadata: name: nodered namespace: nodered spec: replicas: 1 selector: matchLabels: app: nodered template: metadata: labels: app: nodered spec: initContainers: - name: fix-permissions image: busybox command: ['sh', '-c'] args: - | chown -R 1000:1000 /data chmod 755 /data volumeMounts: - name: node-red-data mountPath: /data securityContext: allowPrivilegeEscalation: false runAsNonRoot: true runAsUser: 1000 runAsGroup: 1000 capabilities: drop: - ALL seccompProfile: type: RuntimeDefault containers: - name: nodered image: nodered/node-red:latest ports: - containerPort: 1880 env: - name: TZ value: "America/Chicago" volumeMounts: - name: node-red-data mountPath: /data - name: node-red-settings mountPath: /data/settings.js subPath: settings.js resources: requests: memory: "256Mi" cpu: "100m" limits: memory: "512Mi" cpu: "500m" securityContext: allowPrivilegeEscalation: false runAsNonRoot: true runAsUser: 1000 runAsGroup: 1000 capabilities: drop: - ALL seccompProfile: type: RuntimeDefault volumes: - name: node-red-data persistentVolumeClaim: claimName: nodered-data - name: node-red-settings configMap: name: nodered-settings