diff --git a/build/cd/deploy.go b/build/cd/deploy.go
index b43d857e56688ec143c6a20016da1c78ca470444..298e7507715de70c57afeadf234ac37d8a62fe9c 100644
--- a/build/cd/deploy.go
+++ b/build/cd/deploy.go
@@ -8,7 +8,7 @@ import (
 	log "github.com/sirupsen/logrus"
 	appv1 "k8s.io/api/apps/v1"
 	corev1 "k8s.io/api/core/v1"
-	netv1 "k8s.io/api/networking/v1beta1"
+	netv1 "k8s.io/api/networking/v1"
 	"k8s.io/apimachinery/pkg/api/errors"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/util/intstr"
@@ -86,7 +86,7 @@ func create(clientset *kubernetes.Clientset, tag string) error {
 	} else {
 		log.Printf("service %v created", service.Name)
 	}
-	_, err = clientset.NetworkingV1beta1().Ingresses("cocsn").Create(ctx, ingress, opts)
+	_, err = clientset.NetworkingV1().Ingresses("cocsn").Create(ctx, ingress, opts)
 	if err != nil {
 		switch err.(type) {
 		case *errors.StatusError:
@@ -159,12 +159,12 @@ func update(clientset *kubernetes.Clientset, resource metav1.Common, env string)
 		log.Printf("service %v updated", service.Name)
 	case *netv1.Ingress:
 		ingress := resource
-		i, err := clientset.NetworkingV1beta1().Ingresses("cocsn").Get(ctx, env, getOpts)
+		i, err := clientset.NetworkingV1().Ingresses("cocsn").Get(ctx, env, getOpts)
 		if err != nil {
 			return err
 		}
 		i.DeepCopyInto(ingress)
-		_, err = clientset.NetworkingV1beta1().Ingresses("cocsn").Update(ctx, ingress, opts)
+		_, err = clientset.NetworkingV1().Ingresses("cocsn").Update(ctx, ingress, opts)
 		if err != nil {
 			return err
 		}
@@ -370,9 +370,13 @@ func createIngress(env string) *netv1.Ingress {
 			APIVersion: "v1",
 		},
 		ObjectMeta: metav1.ObjectMeta{
-			Name:        env,
-			Namespace:   "cocsn",
-			Annotations: map[string]string{"nginx.ingress.kubernetes.io/backend-protocol": "GRPC"},
+			Name:      env,
+			Namespace: "cocsn",
+			Annotations: map[string]string{
+				"nginx.ingress.kubernetes.io/backend-protocol": "GRPC",
+				"kubernetes.io/ingress.class":                  "nginx",
+				"nginx.ingress.kubernetes.io/ssl-redirect":     "true",
+			},
 		},
 		Spec: netv1.IngressSpec{
 			Rules: []netv1.IngressRule{
@@ -383,8 +387,10 @@ func createIngress(env string) *netv1.Ingress {
 							Paths: []netv1.HTTPIngressPath{
 								{
 									Backend: netv1.IngressBackend{
-										ServiceName: env,
-										ServicePort: intstr.IntOrString{IntVal: 55055},
+										Service: &netv1.IngressServiceBackend{
+											Name: env,
+											Port: netv1.ServiceBackendPort{Number: 55055},
+										},
 									},
 								},
 							},
diff --git a/go.mod b/go.mod
index 883bcc2b4a4f41c5d16d45b27701bd45f6ab48df..44c98cec995d52ea7e3eec1e001b23c192fc43c8 100644
--- a/go.mod
+++ b/go.mod
@@ -6,8 +6,8 @@ require (
 	code.fbi.h-da.de/cocsn/api/go v0.0.0-20210528163424-f37e91dc5895
 	code.fbi.h-da.de/cocsn/yang-models v0.0.7
 	github.com/aristanetworks/goarista v0.0.0-20201120222254-94a892eb0c6a
-	github.com/golang/protobuf v1.5.2
 	github.com/docker/docker v1.13.1
+	github.com/golang/protobuf v1.5.2
 	github.com/google/gnxi v0.0.0-20201221102247-c26672548161
 	github.com/google/uuid v1.1.2
 	github.com/neo4j/neo4j-go-driver v1.8.3