Skip to content

Instantly share code, notes, and snippets.

@gjbianco
Created June 9, 2023 17:13
Show Gist options
  • Save gjbianco/4750bc43894e4ddd8bdba44f1d999cf7 to your computer and use it in GitHub Desktop.
Save gjbianco/4750bc43894e4ddd8bdba44f1d999cf7 to your computer and use it in GitHub Desktop.
Batteries-included set of manifests for deploying a hello world Node.js application utilizing OCP builds and routes.
apiVersion: build.openshift.io/v1
kind: BuildConfig
metadata:
name: node-server
spec:
source:
type: Dockerfile
dockerfile: |
FROM registry.access.redhat.com/ubi8/nodejs-16:latest
RUN echo "const http = require('http'); \
const hostname = '0.0.0.0'; \
const port = 4000; \
const server = http.createServer((req, res) => { \
res.statusCode = 200; \
res.setHeader('Content-Type', 'text/plain'); \
res.end('Hello World'); \
}); \
server.listen(port, hostname, () => { \
console.log(\`Server running: \${hostname}:\${port}\`); \
}); \
" > server.js
# COPY server.js .
EXPOSE 4000
CMD ["node", "server.js"]
strategy:
type: Docker
output:
to:
kind: ImageStreamTag
name: node-server:latest
triggers:
- type: ConfigChange
---
apiVersion: image.openshift.io/v1
kind: ImageStream
metadata:
name: node-server
spec:
tags:
- name: latest
importPolicy:
insecure: true
---
apiVersion: image.openshift.io/v1
kind: ImageStreamTag
metadata:
name: node-server:latest
spec:
referencePolicy:
type: Source
from:
kind: ImageStreamImage
name: node-server:latest
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: node-server
spec:
replicas: 1
selector:
matchLabels:
app: node-server
template:
metadata:
labels:
app: node-server
spec:
containers:
- name: node-server
image: image-registry.openshift-image-registry.svc:5000/deploy-introduction/node-server:latest
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: node-server
spec:
selector:
app: node-server
ports:
- protocol: TCP
port: 4000
targetPort: 4000
type: ClusterIP
---
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: node-server
spec:
port:
targetPort: 4000
to:
kind: Service
name: node-server
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment