Files
learn/kubernetes/example/webapp.yaml
T
2024-06-07 22:37:18 -04:00

54 lines
1.5 KiB
YAML

# deployement and service for mongodb
# https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
apiVersion: apps/v1
kind: Deployment
metadata:
name: webapp-deployment
labels:
app: webapp
spec: # deployement-specific
replicas: 1
selector:
matchLabels:
app: webapp
template: # deployement for the pods
metadata:
labels:
app: webapp
spec:
containers: # https://hub.docker.com/_/mongo
- name: webapp
image: nanajanashia/k8s-demo-app:v1.0 # demo web app
ports:
- containerPort: 3000
env: #add demo information
- name: USER_NAME
valueFrom:
secretKeyRef: # get from secrets
name: mongo-secret
key: mongo-user
- name: USER_PWD
valueFrom:
secretKeyRef: # get from secrets
name: mongo-secret
key: mongo-password
- name: DB_URL
valueFrom:
configMapKeyRef: # get from configMap
name: mongo-config
key: mongo-url
--- # "new file"
# https://kubernetes.io/docs/concepts/services-networking/service/
apiVersion: v1
kind: Service
metadata:
name: webapp-service
spec:
type: NodePort # external service port type
selector:
app: webapp
ports:
- protocol: TCP
port: 3000
targetPort: 3000
nodePort: 30100 # see https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport for ranges