k8s: ingress spec version update
Jul 28, 2021
Issue
extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
Before
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ .Values.app }}-ingress
namespace: acme-{{ .Values.env }}
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
rules:
- host: "service-{{ .Values.env }}.acme.com"
http:
paths:
- backend:
serviceName: {{ .Values.app }}
servicePort: 3000
tls:
- hosts:
- service-{{ .Values.env }}.acme.com
secretName: letsencrypt-prod
After
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ .Values.app }}-ingress
namespace: acme-{{ .Values.env }}
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
rules:
- host: "service-{{ .Values.env }}.acme.com"
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: {{ .Values.app }}
port:
number: 3000
tls:
- hosts:
- service-{{ .Values.env }}.acme.com
secretName: letsencrypt-prod
Change summary
- set
apiVersion
tonetworking.k8s.io/v1
- add
path
andpathType: Prefix
topaths
section - change
serviceName
andservicePort
toservice.name
andservice.port.number
respectively