121 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
apiVersion: v1
 | 
						|
kind: Secret
 | 
						|
metadata:
 | 
						|
  name: node-red
 | 
						|
  namespace: node-red
 | 
						|
  annotations:
 | 
						|
    kube-1password: to62npgx5vvlknphuytg7qgrny
 | 
						|
    kube-1password/vault: Kubernetes
 | 
						|
    kube-1password/secret-text-key: settings.js
 | 
						|
type: Opaque
 | 
						|
---
 | 
						|
apiVersion: v1
 | 
						|
kind: Service
 | 
						|
metadata:
 | 
						|
  name: node-red
 | 
						|
  namespace: node-red
 | 
						|
spec:
 | 
						|
  type: ClusterIP
 | 
						|
  ports:
 | 
						|
  - port: 80
 | 
						|
    targetPort: web
 | 
						|
    name: web
 | 
						|
  selector:
 | 
						|
    app: node-red
 | 
						|
---
 | 
						|
apiVersion: apps/v1
 | 
						|
kind: Deployment
 | 
						|
metadata:
 | 
						|
  name: node-red
 | 
						|
  namespace: node-red
 | 
						|
spec:
 | 
						|
  replicas: 1
 | 
						|
  strategy:
 | 
						|
    type: Recreate
 | 
						|
  selector:
 | 
						|
    matchLabels:
 | 
						|
      app: node-red
 | 
						|
  template:
 | 
						|
    metadata:
 | 
						|
      labels:
 | 
						|
        app: node-red
 | 
						|
    spec:
 | 
						|
      securityContext:
 | 
						|
        fsGroup: 1000
 | 
						|
      initContainers:
 | 
						|
      - name: config-copy
 | 
						|
        image: bash:latest
 | 
						|
        imagePullPolicy: IfNotPresent
 | 
						|
        args:
 | 
						|
          - -c
 | 
						|
          - |
 | 
						|
            cp /config/settings.js /data/
 | 
						|
        volumeMounts:
 | 
						|
          - name: config
 | 
						|
            mountPath: /config/settings.js
 | 
						|
            subPath: settings.js
 | 
						|
          - name: data
 | 
						|
            mountPath: /data
 | 
						|
      - name: update-native-modules
 | 
						|
        image: nodered/node-red:4.1.1-18
 | 
						|
        imagePullPolicy: IfNotPresent
 | 
						|
        command:
 | 
						|
          - bash
 | 
						|
          - -c
 | 
						|
          - |
 | 
						|
            cd /data
 | 
						|
            npm rebuild
 | 
						|
            npm install tldts
 | 
						|
            npm install @atproto/api
 | 
						|
            npm install node-fetch
 | 
						|
        volumeMounts:
 | 
						|
          - name: data
 | 
						|
            mountPath: /data
 | 
						|
      containers:
 | 
						|
      - name: web
 | 
						|
        image: nodered/node-red:4.1.1-18
 | 
						|
        imagePullPolicy: Always
 | 
						|
        ports:
 | 
						|
        - containerPort: 1880
 | 
						|
          name: web
 | 
						|
        resources:
 | 
						|
          requests:
 | 
						|
            memory: 200M
 | 
						|
          limits:
 | 
						|
            memory: 200M
 | 
						|
        volumeMounts:
 | 
						|
          - name: data
 | 
						|
            mountPath: /data
 | 
						|
      volumes:
 | 
						|
        - name: config
 | 
						|
          secret:
 | 
						|
            secretName: node-red
 | 
						|
        - name: data
 | 
						|
          persistentVolumeClaim:
 | 
						|
            claimName: node-red
 | 
						|
---
 | 
						|
apiVersion: networking.k8s.io/v1
 | 
						|
kind: Ingress
 | 
						|
metadata:
 | 
						|
  name: node-red
 | 
						|
  namespace: node-red
 | 
						|
  annotations:
 | 
						|
    cert-manager.io/cluster-issuer: letsencrypt
 | 
						|
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
 | 
						|
spec:
 | 
						|
  tls:
 | 
						|
  - hosts:
 | 
						|
    - nodered.cluster.fun
 | 
						|
    secretName: node-red-ingress
 | 
						|
  rules:
 | 
						|
  - host: nodered.cluster.fun
 | 
						|
    http:
 | 
						|
      paths:
 | 
						|
      - path: /
 | 
						|
        pathType: ImplementationSpecific
 | 
						|
        backend:
 | 
						|
          service:
 | 
						|
            name: node-red
 | 
						|
            port:
 | 
						|
              number: 80
 |