apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-load-balancer-microk8s-conf-dom4
  namespace: ingress
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-ingress-udp-microk8s-conf-dom4
  namespace: ingress
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-ingress-tcp-microk8s-conf-dom4
  namespace: ingress
---
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  name: tfs-ingress-class-dom4
  annotations:
    ingressclass.kubernetes.io/is-default-class: "false"
spec:
  controller: tfs.etsi.org/controller-class-dom4
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: nginx-ingress-microk8s-controller-dom4
  namespace: ingress
  labels:
    microk8s-application: nginx-ingress-microk8s-dom4
spec:
  selector:
    matchLabels:
      name: nginx-ingress-microk8s-dom4
  updateStrategy:
    rollingUpdate:
      maxSurge: 0
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      labels:
        name: nginx-ingress-microk8s-dom4
    spec:
      terminationGracePeriodSeconds: 60
      restartPolicy: Always
      serviceAccountName: nginx-ingress-microk8s-serviceaccount
      containers:
      - image: k8s.gcr.io/ingress-nginx/controller:v1.2.0
        imagePullPolicy: IfNotPresent
        name: nginx-ingress-microk8s
        livenessProbe:
          httpGet:
            path: /healthz
            port: 10254
            scheme: HTTP
          initialDelaySeconds: 10
          periodSeconds: 10
          successThreshold: 1
          failureThreshold: 3
          timeoutSeconds: 5
        readinessProbe:
          httpGet:
            path: /healthz
            port: 10254
            scheme: HTTP
          periodSeconds: 10
          successThreshold: 1
          failureThreshold: 3
          timeoutSeconds: 5
        lifecycle:
          preStop:
            exec:
              command:
                - /wait-shutdown
        securityContext:
          capabilities:
            add:
            - NET_BIND_SERVICE
            drop:
            - ALL
          runAsUser: 101 # www-data
        env:
          - name: POD_NAME
            valueFrom:
              fieldRef:
                apiVersion: v1
                fieldPath: metadata.name
          - name: POD_NAMESPACE
            valueFrom:
              fieldRef:
                apiVersion: v1
                fieldPath: metadata.namespace
        ports:
        - name: http
          containerPort: 80
          hostPort: 8004
          protocol: TCP
        - name: https
          containerPort: 443
          hostPort: 4434
          protocol: TCP
        - name: health
          containerPort: 10254
          hostPort: 12544
          protocol: TCP
        args:
        - /nginx-ingress-controller
        - --configmap=$(POD_NAMESPACE)/nginx-load-balancer-microk8s-conf-dom4
        - --tcp-services-configmap=$(POD_NAMESPACE)/nginx-ingress-tcp-microk8s-conf-dom4
        - --udp-services-configmap=$(POD_NAMESPACE)/nginx-ingress-udp-microk8s-conf-dom4
        - --election-id=ingress-controller-leader-dom4
        - --controller-class=tfs.etsi.org/controller-class-dom4
        - --ingress-class=tfs-ingress-class-dom4
        - ' '
        - --publish-status-address=127.0.0.1
