apiVersion: v1 kind: Namespace metadata: name: hudctrl --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: hudctrl namespace: hudctrl labels: app.kubernetes.io/component: hudctrl app.kubernetes.io/name: hudctrl app.kubernetes.io/instance: hudctrl app.kubernetes.io/part-of: hudctrl spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Mi --- apiVersion: apps/v1 kind: StatefulSet metadata: labels: app.kubernetes.io/component: hudctrl app.kubernetes.io/name: hudctrl app.kubernetes.io/instance: hudctrl app.kubernetes.io/part-of: hudctrl name: hudctrl namespace: hudctrl spec: serviceName: hudctrl selector: matchLabels: app.kubernetes.io/component: hudctrl app.kubernetes.io/name: hudctrl app.kubernetes.io/instance: hudctrl template: metadata: labels: app.kubernetes.io/component: hudctrl app.kubernetes.io/name: hudctrl app.kubernetes.io/instance: hudctrl spec: containers: - image: git.pyrocufflink.blue/containerimages/hudctrl:latest name: hudctrl ports: - containerPort: 80 name: http env: - name: HUDCTRL_CONFIG_PATH value: /run/hudctrl/config.json volumeMounts: - mountPath: /run/hudctrl name: config-vol volumes: - name: config-vol persistentVolumeClaim: claimName: hudctrl --- apiVersion: v1 kind: Service metadata: labels: app.kubernetes.io/component: hudctrl app.kubernetes.io/name: hudctrl app.kubernetes.io/instance: hudctrl app.kubernetes.io/part-of: hudctrl name: hudctrl namespace: hudctrl spec: ports: - port: 80 protocol: TCP targetPort: 80 selector: app.kubernetes.io/component: hudctrl app.kubernetes.io/instance: hudctrl app.kubernetes.io/name: hudctrl status: loadBalancer: {} --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: hudctrl namespace: hudctrl annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: ingressClassName: nginx tls: - hosts: - hudctrl.pyrocufflink.blue secretName: pyrocufflink-cert rules: - host: hudctrl.pyrocufflink.blue http: paths: - path: / pathType: Prefix backend: service: name: hudctrl port: number: 80