Skip to content

Instantly share code, notes, and snippets.

@ymedlop
Last active July 24, 2022 04:13
Show Gist options
  • Select an option

  • Save ymedlop/2724fac5841cd829da9aec846b3adf77 to your computer and use it in GitHub Desktop.

Select an option

Save ymedlop/2724fac5841cd829da9aec846b3adf77 to your computer and use it in GitHub Desktop.
Node-red Openshift Template
apiVersion: v1
kind: Template
labels:
template: nodered-openshift
metadata:
labels:
author: "ymedlop"
name: "nodered-openshift"
annotations:
description: Node-red openshift template
iconClass: icon-nodejs
tags: nodejs,runtime,nodered,development
name: nodered-openshift
objects:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ${APP_NAME}-data
spec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: 1Gi
- apiVersion: v1
kind: Service
metadata:
labels:
app_name: ${APP_NAME}
template: nodered-openshift
name: ${APP_NAME}
spec:
ports:
- name: 1880-tcp
nodePort: 0
port: 1880
protocol: TCP
targetPort: 1880
selector:
app_name: ${APP_NAME}
deploymentconfig: ${APP_NAME}
sessionAffinity: None
type: ClusterIP
- apiVersion: v1
kind: Route
metadata:
labels:
app_name: ${APP_NAME}
name: ${APP_NAME}
spec:
tls:
termination: edge
to:
kind: Service
name: ${APP_NAME}
- apiVersion: v1
kind: DeploymentConfig
metadata:
labels:
app_name: ${APP_NAME}
name: ${APP_NAME}
spec:
replicas: 1
selector:
app_name: ${APP_NAME}
deploymentconfig: ${APP_NAME}
strategy:
rollingParams:
intervalSeconds: 1
timeoutSeconds: 600
updatePeriodSeconds: 1
type: Rolling
template:
metadata:
labels:
app_name: ${APP_NAME}
deploymentconfig: ${APP_NAME}
spec:
containers:
- env:
- name: ADMIN_USER
value: ${ADMIN_USER}
- name: ADMIN_HASHED_PASSWORD
value: ${ADMIN_HASHED_PASSWORD}
image: node-red/node-red-docker:latest
imagePullPolicy: Always
name: ${APP_NAME}
ports:
- containerPort: 1880
protocol: TCP
resources:
limits:
memory: ${POD_MAX_MEM}
request:
memory: ${POD_MAX_MEM}
terminationMessagePath: /dev/termination-log
volumeMounts:
- mountPath: /usr/src/node-red/data
name: ${APP_NAME}-data
dnsPolicy: ClusterFirst
restartPolicy: Always
securityContext:
supplementalGroups:
- 65534
volumes:
- name: ${APP_NAME}-data
persistentVolumeClaim:
claimName: ${APP_NAME}-data
parameters:
- description: NodeRed Service Name
displayName: NodeRed Service Name
name: APP_NAME
required: true
- description: Maximum memory for the pods (in Megabytes)
displayName: Pods Max Memory
name: POD_MAX_MEM
required: true
value: 256M
- description: Admin User
name: ADMIN_USER
display: User name
required: true
value: developer
- description: Developer UI password hash. Check https://nodered.org/docs/security for more details.
name: ADMIN_HASHED_PASSWORD
required: true
display: Password hash
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment