Skip to content

Commit ccc17b0

Browse files
authored
Merge pull request #534 from weaveworks/ingress-update
pkg/router: update ingress API to networking.k8s.io/v1beta1
2 parents 388ad04 + 6d2c172 commit ccc17b0

File tree

9 files changed

+24
-21
lines changed

9 files changed

+24
-21
lines changed

artifacts/flagger/account.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ rules:
3333
- horizontalpodautoscalers
3434
verbs: ["*"]
3535
- apiGroups:
36-
- "extensions"
36+
- extensions
37+
- networking.k8s.io
3738
resources:
3839
- ingresses
3940
- ingresses/status

charts/flagger/templates/rbac.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ rules:
2929
- horizontalpodautoscalers
3030
verbs: ["*"]
3131
- apiGroups:
32-
- "extensions"
32+
- extensions
33+
- networking.k8s.io
3334
resources:
3435
- ingresses
3536
- ingresses/status

docs/gitbook/tutorials/nginx-progressive-delivery.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This guide shows you how to use the NGINX ingress controller and Flagger to auto
66

77
## Prerequisites
88

9-
Flagger requires a Kubernetes cluster **v1.11** or newer and NGINX ingress **0.24** or newer.
9+
Flagger requires a Kubernetes cluster **v1.14** or newer and NGINX ingress **0.24** or newer.
1010

1111
Install NGINX with Helm v3:
1212

@@ -69,7 +69,7 @@ helm upgrade -i flagger-loadtester flagger/loadtester \
6969
Create an ingress definition \(replace `app.example.com` with your own domain\):
7070

7171
```yaml
72-
apiVersion: extensions/v1beta1
72+
apiVersion: networking.k8s.io/v1beta1
7373
kind: Ingress
7474
metadata:
7575
name: podinfo
@@ -111,7 +111,7 @@ spec:
111111
name: podinfo
112112
# ingress reference
113113
ingressRef:
114-
apiVersion: extensions/v1beta1
114+
apiVersion: networking.k8s.io/v1beta1
115115
kind: Ingress
116116
name: podinfo
117117
# HPA reference (optional)

kustomize/base/flagger/rbac.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ rules:
2323
- horizontalpodautoscalers
2424
verbs: ["*"]
2525
- apiGroups:
26-
- "extensions"
26+
- extensions
27+
- networking.k8s.io
2728
resources:
2829
- ingresses
2930
- ingresses/status

pkg/router/ingress.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77

88
"github.com/google/go-cmp/cmp"
99
"go.uber.org/zap"
10-
"k8s.io/api/extensions/v1beta1"
10+
"k8s.io/api/networking/v1beta1"
1111
"k8s.io/apimachinery/pkg/api/errors"
1212
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1313
"k8s.io/apimachinery/pkg/runtime/schema"
@@ -31,7 +31,7 @@ func (i *IngressRouter) Reconcile(canary *flaggerv1.Canary) error {
3131
canaryName := fmt.Sprintf("%s-canary", apexName)
3232
canaryIngressName := fmt.Sprintf("%s-canary", canary.Spec.IngressRef.Name)
3333

34-
ingress, err := i.kubeClient.ExtensionsV1beta1().Ingresses(canary.Namespace).Get(canary.Spec.IngressRef.Name, metav1.GetOptions{})
34+
ingress, err := i.kubeClient.NetworkingV1beta1().Ingresses(canary.Namespace).Get(canary.Spec.IngressRef.Name, metav1.GetOptions{})
3535
if err != nil {
3636
return fmt.Errorf("ingress %s.%s get query error: %w", canary.Spec.IngressRef.Name, canary.Namespace, err)
3737
}
@@ -54,7 +54,7 @@ func (i *IngressRouter) Reconcile(canary *flaggerv1.Canary) error {
5454
return fmt.Errorf("backend %s not found in ingress %s", apexName, canary.Spec.IngressRef.Name)
5555
}
5656

57-
canaryIngress, err := i.kubeClient.ExtensionsV1beta1().Ingresses(canary.Namespace).Get(canaryIngressName, metav1.GetOptions{})
57+
canaryIngress, err := i.kubeClient.NetworkingV1beta1().Ingresses(canary.Namespace).Get(canaryIngressName, metav1.GetOptions{})
5858

5959
if errors.IsNotFound(err) {
6060
ing := &v1beta1.Ingress{
@@ -74,7 +74,7 @@ func (i *IngressRouter) Reconcile(canary *flaggerv1.Canary) error {
7474
Spec: ingressClone.Spec,
7575
}
7676

77-
_, err := i.kubeClient.ExtensionsV1beta1().Ingresses(canary.Namespace).Create(ing)
77+
_, err := i.kubeClient.NetworkingV1beta1().Ingresses(canary.Namespace).Create(ing)
7878
if err != nil {
7979
return fmt.Errorf("ingress %s.%s create error: %w", ing.Name, ing.Namespace, err)
8080
}
@@ -90,7 +90,7 @@ func (i *IngressRouter) Reconcile(canary *flaggerv1.Canary) error {
9090
iClone := canaryIngress.DeepCopy()
9191
iClone.Spec = ingressClone.Spec
9292

93-
_, err := i.kubeClient.ExtensionsV1beta1().Ingresses(canary.Namespace).Update(iClone)
93+
_, err := i.kubeClient.NetworkingV1beta1().Ingresses(canary.Namespace).Update(iClone)
9494
if err != nil {
9595
return fmt.Errorf("ingress %s.%s update error: %w", canaryIngressName, iClone.Namespace, err)
9696
}
@@ -109,7 +109,7 @@ func (i *IngressRouter) GetRoutes(canary *flaggerv1.Canary) (
109109
err error,
110110
) {
111111
canaryIngressName := fmt.Sprintf("%s-canary", canary.Spec.IngressRef.Name)
112-
canaryIngress, err := i.kubeClient.ExtensionsV1beta1().Ingresses(canary.Namespace).Get(canaryIngressName, metav1.GetOptions{})
112+
canaryIngress, err := i.kubeClient.NetworkingV1beta1().Ingresses(canary.Namespace).Get(canaryIngressName, metav1.GetOptions{})
113113
if err != nil {
114114
err = fmt.Errorf("ingress %s.%s get query error: %w", canaryIngressName, canary.Namespace, err)
115115
return
@@ -150,7 +150,7 @@ func (i *IngressRouter) SetRoutes(
150150
_ bool,
151151
) error {
152152
canaryIngressName := fmt.Sprintf("%s-canary", canary.Spec.IngressRef.Name)
153-
canaryIngress, err := i.kubeClient.ExtensionsV1beta1().Ingresses(canary.Namespace).Get(canaryIngressName, metav1.GetOptions{})
153+
canaryIngress, err := i.kubeClient.NetworkingV1beta1().Ingresses(canary.Namespace).Get(canaryIngressName, metav1.GetOptions{})
154154
if err != nil {
155155
return fmt.Errorf("ingress %s.%s get query error: %w", canaryIngressName, canary.Namespace, err)
156156
}
@@ -184,7 +184,7 @@ func (i *IngressRouter) SetRoutes(
184184
iClone.Annotations = i.makeAnnotations(iClone.Annotations)
185185
}
186186

187-
_, err = i.kubeClient.ExtensionsV1beta1().Ingresses(canary.Namespace).Update(iClone)
187+
_, err = i.kubeClient.NetworkingV1beta1().Ingresses(canary.Namespace).Update(iClone)
188188
if err != nil {
189189
return fmt.Errorf("ingress %s.%s update error %v", iClone.Name, iClone.Namespace, err)
190190
}

pkg/router/ingress_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ func TestIngressRouter_Reconcile(t *testing.T) {
2525
canaryWeightAn := "custom.ingress.kubernetes.io/canary-weight"
2626

2727
canaryName := fmt.Sprintf("%s-canary", mocks.ingressCanary.Spec.IngressRef.Name)
28-
inCanary, err := router.kubeClient.ExtensionsV1beta1().Ingresses("default").Get(canaryName, metav1.GetOptions{})
28+
inCanary, err := router.kubeClient.NetworkingV1beta1().Ingresses("default").Get(canaryName, metav1.GetOptions{})
2929
require.NoError(t, err)
3030

3131
// test initialisation
@@ -58,7 +58,7 @@ func TestIngressRouter_GetSetRoutes(t *testing.T) {
5858
canaryWeightAn := "prefix1.nginx.ingress.kubernetes.io/canary-weight"
5959

6060
canaryName := fmt.Sprintf("%s-canary", mocks.ingressCanary.Spec.IngressRef.Name)
61-
inCanary, err := router.kubeClient.ExtensionsV1beta1().Ingresses("default").Get(canaryName, metav1.GetOptions{})
61+
inCanary, err := router.kubeClient.NetworkingV1beta1().Ingresses("default").Get(canaryName, metav1.GetOptions{})
6262
require.NoError(t, err)
6363

6464
// test rollout
@@ -72,7 +72,7 @@ func TestIngressRouter_GetSetRoutes(t *testing.T) {
7272
err = router.SetRoutes(mocks.ingressCanary, p, c, m)
7373
require.NoError(t, err)
7474

75-
inCanary, err = router.kubeClient.ExtensionsV1beta1().Ingresses("default").Get(canaryName, metav1.GetOptions{})
75+
inCanary, err = router.kubeClient.NetworkingV1beta1().Ingresses("default").Get(canaryName, metav1.GetOptions{})
7676
require.NoError(t, err)
7777

7878
// test promotion

pkg/router/router_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"go.uber.org/zap"
55
appsv1 "k8s.io/api/apps/v1"
66
corev1 "k8s.io/api/core/v1"
7-
"k8s.io/api/extensions/v1beta1"
7+
"k8s.io/api/networking/v1beta1"
88
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
99
"k8s.io/apimachinery/pkg/util/intstr"
1010
"k8s.io/client-go/kubernetes"

test/e2e-ingress.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
apiVersion: extensions/v1beta1
1+
apiVersion: networking.k8s.io/v1beta1
22
kind: Ingress
33
metadata:
44
name: podinfo

test/e2e-nginx-tests.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ spec:
3030
kind: Deployment
3131
name: podinfo
3232
ingressRef:
33-
apiVersion: extensions/v1beta1
33+
apiVersion: networking.k8s.io/v1beta1
3434
kind: Ingress
3535
name: podinfo
3636
progressDeadlineSeconds: 60
@@ -167,7 +167,7 @@ spec:
167167
kind: Deployment
168168
name: podinfo
169169
ingressRef:
170-
apiVersion: extensions/v1beta1
170+
apiVersion: networking.k8s.io/v1beta1
171171
kind: Ingress
172172
name: podinfo
173173
progressDeadlineSeconds: 60

0 commit comments

Comments
 (0)