--- # 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