stock-ticker/deploy/manifest.yaml

169 lines
3.2 KiB
YAML

---
# Namespace
apiVersion: v1
kind: Namespace
metadata:
name: stock-ticker
labels:
app: stock-ticker
---
# ServiceAccount
apiVersion: v1
kind: ServiceAccount
metadata:
name: stock-ticker
namespace: stock-ticker
labels:
app: stock-ticker
---
# Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: stock-ticker
namespace: stock-ticker
labels:
app: stock-ticker
spec:
rules:
- http:
paths:
- path: "/"
pathType: Prefix
backend:
service:
name: stock-ticker
port:
number: 80
---
# Service
apiVersion: v1
kind: Service
metadata:
name: stock-ticker
namespace: stock-ticker
labels:
app: stock-ticker
spec:
selector:
app: stock-ticker
ports:
- protocol: TCP
port: 80
targetPort: web
---
# ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
name: stock-ticker
namespace: stock-ticker
labels:
app: stock-ticker
data:
SYMBOL: "MSFT"
NWEEKS: "7"
---
# Secret
apiVersion: v1
kind: Secret
metadata:
name: stock-ticker-api-key
namespace: stock-ticker
labels:
app: stock-ticker
type: Opaque
data:
APIKEY: QzIyN1dEOVczTFVWS1ZWOQ==
---
# PDB
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: stock-ticker-api-key
namespace: stock-ticker
labels:
app: stock-ticker
spec:
minAvailable: 1
selector:
matchLabels:
app: stock-ticker
---
# Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: stock-ticker
namespace: stock-ticker
labels:
app: stock-ticker
spec:
replicas: 3
revisionHistoryLimit: 3
selector:
matchLabels:
app: stock-ticker
template:
metadata:
labels:
app: stock-ticker
spec:
serviceAccountName: stock-ticker
securityContext:
runAsUser: 1000
runAsNonRoot: true
runAsGroup: 1000
containers:
- name: stock-ticker
args:
- "--address=$(WEBSERVER_HOST):$(WEBSERVER_PORT)"
env:
- name: SYMBOL
valueFrom:
configMapKeyRef:
name: stock-ticker
key: SYMBOL
- name: APIKEY
valueFrom:
secretKeyRef:
name: stock-ticker-api-key
key: APIKEY
- name: NWEEKS
valueFrom:
configMapKeyRef:
name: stock-ticker
key: NWEEKS
- name: WEBSERVER_HOST
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: WEBSERVER_PORT
value: "8080"
image: "codeflow.dananglin.me.uk/apollo/stock-ticker:v0.1.0"
imagePullPolicy: Always
livenessProbe:
httpGet:
port: 8080
path: /healthcheck
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 3
readinessProbe:
httpGet:
port: 8080
path: /healthcheck
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 3
ports:
- containerPort: 8080
name: web
protocol: TCP
resources:
limits:
cpu: 50m
memory: 75Mi
requests:
cpu: 25m
memory: 50Mi