apiVersion: apps/v1 kind: Deployment metadata: name: goredirect spec: replicas: 2 revisionHistoryLimit: 0 selector: matchLabels: app: goredirect template: metadata: labels: app: goredirect spec: containers: - image: harbor.k-space.ee/k-space/goredirect:latest imagePullPolicy: Always env: - name: GOREDIRECT_NOT_FOUND value: https://inventory.k-space.ee/m/inventory/add-slug/%s - name: GOREDIRECT_FOUND value: https://inventory.k-space.ee/m/inventory/%s/view - name: GOREDIRECT_NOPATH value: https://inventory.k-space.ee/m/inventory - name: MONGO_URI valueFrom: secretKeyRef: key: MONGO_URI name: inventory-mongodb name: goredirect ports: - containerPort: 8080 protocol: TCP resources: limits: cpu: "1" memory: 500Mi requests: cpu: 100m memory: 200Mi securityContext: readOnlyRootFilesystem: true runAsNonRoot: true runAsUser: 1000 --- apiVersion: v1 kind: Service metadata: name: goredirect spec: type: ClusterIP selector: app: goredirect ports: - protocol: TCP port: 8080 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: goredirect annotations: kubernetes.io/ingress.class: traefik traefik.ingress.kubernetes.io/router.entrypoints: websecure # external-dns.alpha.kubernetes.io/target: traefik.k-space.ee # ^ ommitting for direct ip. Root level can't have CNAME. external-dns.alpha.kubernetes.io/hostname: k6.ee spec: rules: - host: k6.ee http: paths: - pathType: Prefix path: "/" backend: service: name: goredirect port: number: 8080 tls: - hosts: - "k6.ee"