Ingress 규칙 생성을 위한 Go 스니펫

2608 단어 kubernetesgo
Ingress 규칙에 대해 apiVersionnetworking.k8s.io/v1으로 마이그레이션해야 할 수 있습니다(Kubernetes 1.22 이후에는 이전 apiVersionextensions/v1beta1networking.k8s.io/v1beta1이 사라짐). Go를 통해 인그레스 규칙을 관리하는 경우 도움이 될 수 있는 유효한 인그레스 규칙을 생성하는 스니펫이 있습니다(올바른 템플릿을 찾는 데 약간 어려움을 겪었기 때문에 이 게시물을 공유합니다).

이 스니펫이 유용했거나 개선할 수 있는 부분이 있으면 알려주세요.

좋은 하루 되세요!

import (
    v1Networking "k8s.io/api/networking/v1"
    v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

func MapIngress(ingressName string, hostName string) *v1Networking.Ingress {

    annotations := map[string]string{}
    annotations["kubernetes.io/ingress.provider"] = "nginx"
    annotations["kubernetes.io/ingress.class"] = "yourIngressClass"
    annotations["kubernetes.io/tls-acme"] = "true"
    // add other annotations you need

    meta := v1.ObjectMeta{
        Name:        ingressName,
        Annotations: annotations,
    }

    pathTypeImplementationSpecific := v1Networking.PathTypeImplementationSpecific

    return &v1Networking.Ingress{
        ObjectMeta: meta,
        Spec: v1Networking.IngressSpec{
            TLS: []v1Networking.IngressTLS{
        v1Networking.IngressTLS{
            Hosts:      []string{hostName},
            SecretName: "yourSecretName",
        },
            Rules: []v1Networking.IngressRule{
                v1Networking.IngressRule{
                    Host: hostName,
                    IngressRuleValue: v1Networking.IngressRuleValue{
                        HTTP: &v1Networking.HTTPIngressRuleValue{
                            Paths: []v1Networking.HTTPIngressPath{
                                v1Networking.HTTPIngressPath{
                                    Path: "/",
                                    PathType: &pathTypeImplementationSpecific,
                                    Backend: v1Networking.IngressBackend{
                                        Service: &v1Networking.IngressServiceBackend{
                                            Name: "yourServiceName",
                                            Port: v1Networking.ServiceBackendPort{
                                                Number: 80,
                                            },
                                        },
                                    },
                                },
                            },
                        },
                    },
                },
            },
        },
    }
}

좋은 웹페이지 즐겨찾기