diff --git a/go.mod b/go.mod index 01075ba616e3..a685379e1c81 100644 --- a/go.mod +++ b/go.mod @@ -34,10 +34,10 @@ require ( github.com/onsi/ginkgo/v2 v2.21.0 github.com/onsi/gomega v1.35.1 github.com/opencontainers/go-digest v1.0.0 - github.com/openshift/api v0.0.0-20250425163235-9b80d67473bc + github.com/openshift/api v0.0.0-20250513132935-9052dea86694 github.com/openshift/apiserver-library-go v0.0.0-20250127121756-dc9a973f14ce github.com/openshift/build-machinery-go v0.0.0-20250102153059-e85a1a7ecb5c - github.com/openshift/client-go v0.0.0-20250425165505-5f55ff6979a1 + github.com/openshift/client-go v0.0.0-20250513150353-9ea84fa6431b github.com/openshift/cluster-network-operator v0.0.0-20240708200319-1cd8678b38fb github.com/openshift/library-go v0.0.0-20250129210218-fe56c2cf5d70 github.com/ovn-org/ovn-kubernetes/go-controller v0.0.0-20250118001652-a8b9c3c31417 diff --git a/go.sum b/go.sum index 55320cd99751..608b1a9c46ea 100644 --- a/go.sum +++ b/go.sum @@ -603,14 +603,14 @@ github.com/opencontainers/selinux v1.11.1 h1:nHFvthhM0qY8/m+vfhJylliSshm8G1jJ2jD github.com/opencontainers/selinux v1.11.1/go.mod h1:E5dMC3VPuVvVHDYmi78qvhJp8+M586T4DlDRYpFkyec= github.com/openshift-eng/openshift-tests-extension v0.0.0-20250220212757-b9c4d98a0c45 h1:hXpbYtP3iTh8oy/RKwKkcMziwchY3fIk95ciczf7cOA= github.com/openshift-eng/openshift-tests-extension v0.0.0-20250220212757-b9c4d98a0c45/go.mod h1:6gkP5f2HL0meusT0Aim8icAspcD1cG055xxBZ9yC68M= -github.com/openshift/api v0.0.0-20250425163235-9b80d67473bc h1:BGKjHtYzBweOSu1UwTnNqtPbJZ4VzOTqVFlUDpP+6U8= -github.com/openshift/api v0.0.0-20250425163235-9b80d67473bc/go.mod h1:yk60tHAmHhtVpJQo3TwVYq2zpuP70iJIFDCmeKMIzPw= +github.com/openshift/api v0.0.0-20250513132935-9052dea86694 h1:kPnk1+m89LJHexYsTP+MVM9OgJLxcpUR3vRdMQNF66s= +github.com/openshift/api v0.0.0-20250513132935-9052dea86694/go.mod h1:yk60tHAmHhtVpJQo3TwVYq2zpuP70iJIFDCmeKMIzPw= github.com/openshift/apiserver-library-go v0.0.0-20250127121756-dc9a973f14ce h1:w0Up6YV1APcn20v/1h5IfuToz96o2pVqZyjzbw0yotU= github.com/openshift/apiserver-library-go v0.0.0-20250127121756-dc9a973f14ce/go.mod h1:kkSwH4osgejnRIyHfsfkv0V0xfmgH4Yk/VDObaJukHU= github.com/openshift/build-machinery-go v0.0.0-20250102153059-e85a1a7ecb5c h1:6XcszPFZpan4qll5XbdLll7n1So3IsPn28aw2j1obMo= github.com/openshift/build-machinery-go v0.0.0-20250102153059-e85a1a7ecb5c/go.mod h1:8jcm8UPtg2mCAsxfqKil1xrmRMI3a+XU2TZ9fF8A7TE= -github.com/openshift/client-go v0.0.0-20250425165505-5f55ff6979a1 h1:2HPG58V07TrrSGBviNPd0PY42vYHPPCIEwj/pb9nUlY= -github.com/openshift/client-go v0.0.0-20250425165505-5f55ff6979a1/go.mod h1:kH5mjMfcHCF0tEnxwvNJTLMnlbrEt3Ua+vMVGvBOK5w= +github.com/openshift/client-go v0.0.0-20250513150353-9ea84fa6431b h1:ffS7iyeXP5PdiiVVssk2GCP6PqrVR4LdCdrKRcI+ogM= +github.com/openshift/client-go v0.0.0-20250513150353-9ea84fa6431b/go.mod h1:ic71V3s+SXPaFMRd80eZhNvjEWom7s61GXE2wmYCfOI= github.com/openshift/cluster-network-operator v0.0.0-20240708200319-1cd8678b38fb h1:Dr0dbSQTAU9UaoAvimGjR+fsvwx2twJ5KR0s/jyAz88= github.com/openshift/cluster-network-operator v0.0.0-20240708200319-1cd8678b38fb/go.mod h1:LnhqxbWhAnhPwilJ4yX1/ly7wCMCYJKkaiSJQSh+Wjg= github.com/openshift/kubernetes v1.30.1-0.20250509031521-18f7f4cbd6ea h1:HcjGXaqrP+cnCMw6Ppqvqt1ryxCzTDJI2Hh+N9Ujxls= diff --git a/test/extended/router/gatewayapicontroller.go b/test/extended/router/gatewayapicontroller.go index 89e3d39dffc9..449dec9d837d 100644 --- a/test/extended/router/gatewayapicontroller.go +++ b/test/extended/router/gatewayapicontroller.go @@ -2,7 +2,10 @@ package router import ( "context" + "crypto/tls" "fmt" + "net" + "net/http" "strings" "time" @@ -10,6 +13,8 @@ import ( o "github.com/onsi/gomega" configv1 "github.com/openshift/api/config/v1" + operatoringressv1 "github.com/openshift/api/operatoringress/v1" + exutil "github.com/openshift/origin/test/extended/util" corev1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" @@ -32,6 +37,13 @@ var ( } ) +const ( + // Max time duration for the DNS resolution + dnsResolutionTimeout = 10 * time.Minute + // Max time duration for the Load balancer address + loadBalancerReadyTimeout = 10 * time.Minute +) + var _ = g.Describe("[sig-network-edge][OCPFeatureGate:GatewayAPIController][Feature:Router][apigroup:gateway.networking.k8s.io]", g.Ordered, g.Serial, func() { defer g.GinkgoRecover() var ( @@ -40,6 +52,7 @@ var _ = g.Describe("[sig-network-edge][OCPFeatureGate:GatewayAPIController][Feat err error gateways []string ) + const ( // The expected OSSM subscription name. expectedSubscriptionName = "servicemeshoperator3" @@ -145,15 +158,15 @@ var _ = g.Describe("[sig-network-edge][OCPFeatureGate:GatewayAPIController][Feat g.By("Confirm that Istio CR is created and in healthy state") waitForIstioHealthy(oc) - }) + g.It("Ensure default gatewayclass is accepted", func() { g.By("Check if default GatewayClass is accepted after OLM resources are successful") errCheck := checkGatewayClass(oc, gatewayClassName) o.Expect(errCheck).NotTo(o.HaveOccurred(), "GatewayClass %q was not installed and accepted", gatewayClassName) - }) + g.It("Ensure custom gatewayclass can be accepted", func() { customGatewayClassName := "custom-gatewayclass" @@ -182,7 +195,6 @@ var _ = g.Describe("[sig-network-edge][OCPFeatureGate:GatewayAPIController][Feat }) g.It("Ensure LB, service, and dnsRecord are created for a Gateway object", func() { - var lbAddress string g.By("Ensure default GatewayClass is accepted") errCheck := checkGatewayClass(oc, gatewayClassName) o.Expect(errCheck).NotTo(o.HaveOccurred(), "GatewayClass %q was not installed and accepted", gatewayClassName) @@ -199,30 +211,10 @@ var _ = g.Describe("[sig-network-edge][OCPFeatureGate:GatewayAPIController][Feat o.Expect(gwerr).NotTo(o.HaveOccurred(), "failed to create Gateway") g.By("Verify the gateway's LoadBalancer service and DNSRecords") - // check gateway LB service, note that External-IP might be hostname (AWS) or IP (Azure/GCP) - lbService, err := oc.AdminKubeClient().CoreV1().Services("openshift-ingress").Get(context.Background(), gw+"-openshift-default", metav1.GetOptions{}) - o.Expect(err).NotTo(o.HaveOccurred()) - if lbService.Status.LoadBalancer.Ingress[0].Hostname != "" { - lbAddress = lbService.Status.LoadBalancer.Ingress[0].Hostname - } else { - lbAddress = lbService.Status.LoadBalancer.Ingress[0].IP - } - e2e.Logf("The load balancer External-IP is: %v", lbAddress) + assertGatewayLoadbalancerReady(oc, gw, gw+"-openshift-default") - gwlist, haerr := oc.AdminGatewayApiClient().GatewayV1().Gateways("openshift-ingress").Get(context.Background(), gw, metav1.GetOptions{}) - e2e.Logf("The gateway hostname address is %v ", gwlist.Status.Addresses[0].Value) - o.Expect(haerr).NotTo(o.HaveOccurred()) - o.Expect(lbAddress).To(o.Equal(gwlist.Status.Addresses[0].Value)) - - // get the dnsrecord name - dnsRecordName, err := oc.AsAdmin().WithoutNamespace().Run("get").Args("-n", "openshift-ingress", "dnsrecord", "-l", "gateway.networking.k8s.io/gateway-name="+gw, "-o=jsonpath={.items[0].metadata.name}").Output() - o.Expect(err).NotTo(o.HaveOccurred()) - e2e.Logf("The gateway API dnsrecord name is: %v", dnsRecordName) - // check status of published dnsrecord of the gateway, all zones should be True (not contains False) - dnsRecordStatus, err := oc.AsAdmin().WithoutNamespace().Run("get").Args("-n", "openshift-ingress", "dnsrecord", dnsRecordName, `-o=jsonpath={.status.zones[*].conditions[0].status}`).Output() - o.Expect(err).NotTo(o.HaveOccurred()) - e2e.Logf("The dnsrecords status of all zones: %v", dnsRecordStatus) - o.Expect(dnsRecordStatus).NotTo(o.ContainSubstring("False")) + // check the dns record is created and status of the published dnsrecord of all zones are True + assertDNSRecordStatus(oc, gw) }) g.It("Ensure HTTPRoute object is created", func() { @@ -241,12 +233,18 @@ var _ = g.Describe("[sig-network-edge][OCPFeatureGate:GatewayAPIController][Feat _, gwerr := createAndCheckGateway(oc, gw, gatewayClassName, customDomain) o.Expect(gwerr).NotTo(o.HaveOccurred(), "Failed to create Gateway") + // make sure the DNSRecord is ready to use. + assertDNSRecordStatus(oc, gw) + g.By("Create the http route using the custom gateway") defaultRoutename := "test-hostname." + customDomain createHttpRoute(oc, gw, "test-httproute", defaultRoutename, "echo-pod-"+gw) g.By("Checking the http route using the default gateway is accepted") assertHttpRouteSuccessful(oc, gw, "test-httproute") + + g.By("Validating the http connectivity to the backend application") + assertHttpRouteConnection(defaultRoutename) }) }) @@ -331,33 +329,30 @@ func createAndCheckGateway(oc *exutil.CLI, gwname, gwclassname, domain string) ( } func checkGatewayStatus(oc *exutil.CLI, gwname, ingressNameSpace string) (*gatewayapiv1.Gateway, error) { - var err error - gateway := &gatewayapiv1.Gateway{} - - waitErr := wait.PollUntilContextTimeout(context.Background(), 2*time.Second, 10*time.Minute, false, func(context context.Context) (bool, error) { - gateway, err = oc.AdminGatewayApiClient().GatewayV1().Gateways(ingressNameSpace).Get(context, gwname, metav1.GetOptions{}) + programmedGateway := &gatewayapiv1.Gateway{} + if err := wait.PollUntilContextTimeout(context.Background(), 2*time.Second, 10*time.Minute, false, func(context context.Context) (bool, error) { + gateway, err := oc.AdminGatewayApiClient().GatewayV1().Gateways(ingressNameSpace).Get(context, gwname, metav1.GetOptions{}) if err != nil { - e2e.Logf("Failed to get gateway object, retrying...") + e2e.Logf("Failed to get gateway %q: %v, retrying...", gwname, err) return false, nil } // Checking the gateway controller status for _, condition := range gateway.Status.Conditions { if condition.Type == string(gatewayapiv1.GatewayConditionProgrammed) { if condition.Status == metav1.ConditionTrue { - e2e.Logf("The gateway controller is up and running") + e2e.Logf("The gateway controller for gateway %q is programmed", gwname) + programmedGateway = gateway return true, nil } } } - e2e.Logf("Found gateway %q but the controller is still not programmed, retrying...", gateway.Name) + e2e.Logf("Found gateway %q but the controller is still not programmed, retrying...", gwname) return false, nil - }) - - if waitErr != nil { - return nil, fmt.Errorf("Timed out waiting for gateway %q to become programmed: %w", gateway.Name, waitErr) + }); err != nil { + return nil, fmt.Errorf("timed out waiting for gateway %q to become programmed: %w", gwname, err) } - e2e.Logf("Gateway %q successfully programmed!", gateway.Name) - return gateway, nil + e2e.Logf("Gateway %q successfully programmed!", gwname) + return programmedGateway, nil } // buildGateway initializes the Gateway and returns its address. @@ -377,6 +372,77 @@ func buildGateway(name, namespace, gcname, fromNs, domain string) *gatewayapiv1. } } +// assertGatewayLoadbalancerReady verifies that the given gateway has the service's load balancer address assigned. +func assertGatewayLoadbalancerReady(oc *exutil.CLI, gwName, gwServiceName string) { + // check gateway LB service, note that External-IP might be hostname (AWS) or IP (Azure/GCP) + var lbAddress string + err := wait.PollUntilContextTimeout(context.Background(), 1*time.Second, loadBalancerReadyTimeout, false, func(context context.Context) (bool, error) { + lbService, err := oc.AdminKubeClient().CoreV1().Services("openshift-ingress").Get(context, gwServiceName, metav1.GetOptions{}) + if err != nil { + e2e.Logf("Failed to get service %q: %v, retrying...", gwServiceName, err) + return false, nil + } + if lbService.Status.LoadBalancer.Ingress[0].Hostname != "" { + lbAddress = lbService.Status.LoadBalancer.Ingress[0].Hostname + } else { + lbAddress = lbService.Status.LoadBalancer.Ingress[0].IP + } + if lbAddress == "" { + e2e.Logf("No load balancer address for service %q, retrying", gwServiceName) + return false, nil + } + e2e.Logf("Got load balancer address for service %q: %v", gwServiceName, lbAddress) + + gw, err := oc.AdminGatewayApiClient().GatewayV1().Gateways("openshift-ingress").Get(context, gwName, metav1.GetOptions{}) + if err != nil { + e2e.Logf("Failed to get gateway %q, retrying...", gwName) + return false, nil + } + for _, gwAddr := range gw.Status.Addresses { + if gwAddr.Value == lbAddress { + return true, nil + } + } + + e2e.Logf("Gateway %q does not have service load balancer address, retrying...", gwName) + return false, nil + }) + o.Expect(err).NotTo(o.HaveOccurred(), "Timed out waiting for gateway %q to get load balancer address of service %q", gwName, gwServiceName) +} + +// assertDNSRecordStatus polls until the DNSRecord's status in the default operand namespace is True. +func assertDNSRecordStatus(oc *exutil.CLI, gatewayName string) { + // find the DNS Record and confirm its zone status is True + err := wait.PollUntilContextTimeout(context.Background(), 2*time.Second, 10*time.Minute, false, func(context context.Context) (bool, error) { + gatewayDNSRecord := &operatoringressv1.DNSRecord{} + gatewayDNSRecords, err := oc.AdminIngressClient().IngressV1().DNSRecords("openshift-ingress").List(context, metav1.ListOptions{}) + if err != nil { + e2e.Logf("Failed to list DNS records for gateway %q: %v, retrying...", gatewayName, err) + return false, nil + } + + // get the desired DNS records of the given gateway + for _, record := range gatewayDNSRecords.Items { + if record.Labels["gateway.networking.k8s.io/gateway-name"] == gatewayName { + gatewayDNSRecord = &record + break + } + } + + // checking the gateway DNS record status + for _, zone := range gatewayDNSRecord.Status.Zones { + for _, condition := range zone.Conditions { + if condition.Type == "Published" && condition.Status == "True" { + return true, nil + } + } + } + e2e.Logf("DNS record %q is not ready, retrying...", gatewayDNSRecord.Name) + return false, nil + }) + o.Expect(err).NotTo(o.HaveOccurred(), "Timed out waiting for gateway %q DNSRecord to become ready", gatewayName) +} + // createHttpRoute checks if the HTTPRoute can be created. // If it can't an error is returned. func createHttpRoute(oc *exutil.CLI, gwName, routeName, hostname, backendRefname string) (*gatewayapiv1.HTTPRoute, error) { @@ -546,6 +612,56 @@ func assertHttpRouteSuccessful(oc *exutil.CLI, gwName, name string) (*gatewayapi return checkHttpRoute, nil } +// assertHttpRouteConnection checks if the http route of the given name replies successfully, +// and returns an error if not +func assertHttpRouteConnection(hostname string) { + // Create the http client to check the response status code. + client := &http.Client{ + Timeout: 10 * time.Second, + Transport: &http.Transport{ + TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, + }, + } + + err := wait.PollUntilContextTimeout(context.Background(), 20*time.Second, dnsResolutionTimeout, false, func(context context.Context) (bool, error) { + _, err := net.LookupHost(hostname) + if err != nil { + e2e.Logf("[%v] Failed to resolve HTTP route's hostname %q: %v, retrying...", time.Now(), hostname, err) + return false, nil + } + return true, nil + }) + o.Expect(err).NotTo(o.HaveOccurred(), "Timed out waiting for HTTP route's hostname %q to be resolved: %v", hostname, err) + + // Wait for http route to respond, and when it does, check for the status code. + err = wait.PollUntilContextTimeout(context.Background(), 5*time.Second, 5*time.Minute, false, func(context context.Context) (bool, error) { + statusCode, err := getHttpResponse(client, hostname) + if err != nil { + e2e.Logf("HTTP GET request to %q failed: %v, retrying...", hostname, err) + return false, nil + } + if statusCode != http.StatusOK { + e2e.Logf("Unexpected status code for HTTP GET request to %q: %v, retrying...", hostname, statusCode) + return false, nil // retry on 503 as pod/service may not be ready + } + return true, nil + }) + o.Expect(err).NotTo(o.HaveOccurred(), "Timed out waiting for successful HTTP GET response from %q: %v", hostname, err) +} + +func getHttpResponse(client *http.Client, hostname string) (int, error) { + // Send the HTTP request. + response, err := client.Get("http://" + hostname) + if err != nil { + return 0, err + } + + // Close response body. + defer response.Body.Close() + + return response.StatusCode, nil +} + // Check for the existence of the okd-scos string in the version name to determine if it is OKD func isOKD(oc *exutil.CLI) (bool, error) { current, err := exutil.GetCurrentVersion(context.TODO(), oc.AdminConfig()) diff --git a/test/extended/util/client.go b/test/extended/util/client.go index 18d2a37c0901..5f5f6045f139 100644 --- a/test/extended/util/client.go +++ b/test/extended/util/client.go @@ -68,6 +68,7 @@ import ( mcv1client "github.com/openshift/client-go/machineconfiguration/clientset/versioned" oauthv1client "github.com/openshift/client-go/oauth/clientset/versioned" operatorv1client "github.com/openshift/client-go/operator/clientset/versioned" + ingressv1client "github.com/openshift/client-go/operatoringress/clientset/versioned" projectv1client "github.com/openshift/client-go/project/clientset/versioned" quotav1client "github.com/openshift/client-go/quota/clientset/versioned" routev1client "github.com/openshift/client-go/route/clientset/versioned" @@ -732,6 +733,10 @@ func (c *CLI) AdminImageClient() imagev1client.Interface { return imagev1client.NewForConfigOrDie(c.AdminConfig()) } +func (c *CLI) AdminIngressClient() ingressv1client.Interface { + return ingressv1client.NewForConfigOrDie(c.AdminConfig()) +} + func (c *CLI) AdminOAuthClient() oauthv1client.Interface { return oauthv1client.NewForConfigOrDie(c.AdminConfig()) } diff --git a/vendor/github.com/openshift/api/.golangci.yaml b/vendor/github.com/openshift/api/.golangci.yaml index 848960e94685..3d44daed3968 100644 --- a/vendor/github.com/openshift/api/.golangci.yaml +++ b/vendor/github.com/openshift/api/.golangci.yaml @@ -1,13 +1,14 @@ linters-settings: custom: - kal: + kubeapilinter: type: "module" - description: KAL is the Kube-API-Linter and lints Kube like APIs based on API conventions and best practices. + description: kubeapilinter is the Kube-API-Linter and lints Kube like APIs based on API conventions and best practices. settings: linters: enable: - "maxlength" - "nobools" + - "nomaps" - "statussubresource" lintersConfig: conditions: @@ -17,7 +18,7 @@ linters-settings: linters: disable-all: true enable: - - kal + - kubeapilinter issues: # We have a lot of existing issues. # Want to make sure that those adding new fields have an diff --git a/vendor/github.com/openshift/api/README.md b/vendor/github.com/openshift/api/README.md index 934bcd329928..071da98c07fb 100644 --- a/vendor/github.com/openshift/api/README.md +++ b/vendor/github.com/openshift/api/README.md @@ -99,6 +99,8 @@ and then enforces the following rules. 3. Every test must be run on every TechPreview platform we have jobs for. (Ask for an exception if your feature doesn't support a variant.) 4. Every test must run at least 14 times on every platform/variant. 5. Every test must pass at least 95% of the time on every platform/variant. +6. Test results are taken from the last 7 days if the test was run at least 14 times during that period. Otherwise, data from the last 14 days is used. +7. Test flakes (even if the test eventually passes on a retry) are considered failures and negatively impact the pass rate. If your FeatureGate lacks automated testing, there is an exception process that allows QE to sign off on the promotion by commenting on the PR. diff --git a/vendor/github.com/openshift/api/config/v1/types_infrastructure.go b/vendor/github.com/openshift/api/config/v1/types_infrastructure.go index 8140f54973ec..d347557f94ec 100644 --- a/vendor/github.com/openshift/api/config/v1/types_infrastructure.go +++ b/vendor/github.com/openshift/api/config/v1/types_infrastructure.go @@ -1559,8 +1559,7 @@ type VSpherePlatformSpec struct { // + If VCenters is not defined use the existing cloud-config configmap defined // + in openshift-config. // +kubebuilder:validation:MinItems=0 - // +openshift:validation:FeatureGateAwareMaxItems:featureGate="",maxItems=1 - // +openshift:validation:FeatureGateAwareMaxItems:featureGate=VSphereMultiVCenters,maxItems=3 + // +kubebuilder:validation:MaxItems=3 // +kubebuilder:validation:XValidation:rule="size(self) != size(oldSelf) ? size(oldSelf) == 0 && size(self) < 2 : true",message="vcenters cannot be added or removed once set" // +listType=atomic // +optional diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml index d8768ad0c31b..c576eb97e6e4 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml @@ -325,7 +325,6 @@ infrastructures.config.openshift.io: - NutanixMultiSubnets - VSphereHostVMGroupZonal - VSphereMultiNetworks - - VSphereMultiVCenters FilenameOperatorName: config-operator FilenameOperatorOrdering: "01" FilenameRunLevel: "0000_10" diff --git a/vendor/github.com/openshift/api/features.md b/vendor/github.com/openshift/api/features.md index 9db4d7432528..d9679f6e7edd 100644 --- a/vendor/github.com/openshift/api/features.md +++ b/vendor/github.com/openshift/api/features.md @@ -9,13 +9,16 @@ | DualReplica| | | Enabled | Enabled | | | | Example2| | | Enabled | Enabled | | | | NewOLMCatalogdAPIV1Metas| | | | Enabled | | Enabled | +| NewOLMOwnSingleNamespace| | | | Enabled | | Enabled | | NewOLMPreflightPermissionChecks| | | | Enabled | | Enabled | | SELinuxChangePolicy| | | Enabled | Enabled | | | | SELinuxMount| | | Enabled | Enabled | | | | SigstoreImageVerificationPKI| | | Enabled | Enabled | | | | NewOLM| | Enabled | | Enabled | | Enabled | | AWSClusterHostedDNS| | | Enabled | Enabled | Enabled | Enabled | +| AWSDedicatedHosts| | | Enabled | Enabled | Enabled | Enabled | | AutomatedEtcdBackup| | | Enabled | Enabled | Enabled | Enabled | +| AzureMultiDisk| | | Enabled | Enabled | Enabled | Enabled | | BootcNodeManagement| | | Enabled | Enabled | Enabled | Enabled | | ClusterAPIInstallIBMCloud| | | Enabled | Enabled | Enabled | Enabled | | ClusterMonitoringConfig| | | Enabled | Enabled | Enabled | Enabled | @@ -36,8 +39,8 @@ | InsightsRuntimeExtractor| | | Enabled | Enabled | Enabled | Enabled | | KMSEncryptionProvider| | | Enabled | Enabled | Enabled | Enabled | | MachineAPIMigration| | | Enabled | Enabled | Enabled | Enabled | -| MachineAPIProviderOpenStack| | | Enabled | Enabled | Enabled | Enabled | | MachineConfigNodes| | | Enabled | Enabled | Enabled | Enabled | +| ManagedBootImagesvSphere| | | Enabled | Enabled | Enabled | Enabled | | MaxUnavailableStatefulSet| | | Enabled | Enabled | Enabled | Enabled | | MinimumKubeletVersion| | | Enabled | Enabled | Enabled | Enabled | | MixedCPUsAllocation| | | Enabled | Enabled | Enabled | Enabled | @@ -48,7 +51,6 @@ | PlatformOperators| | | Enabled | Enabled | Enabled | Enabled | | ProcMountType| | | Enabled | Enabled | Enabled | Enabled | | RouteAdvertisements| | | Enabled | Enabled | Enabled | Enabled | -| ServiceAccountTokenNodeBinding| | | Enabled | Enabled | Enabled | Enabled | | SignatureStores| | | Enabled | Enabled | Enabled | Enabled | | SigstoreImageVerification| | | Enabled | Enabled | Enabled | Enabled | | TranslateStreamCloseWebsocketRequests| | | Enabled | Enabled | Enabled | Enabled | @@ -71,9 +73,7 @@ | BuildCSIVolumes| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | CPMSMachineNamePrefix| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | ChunkSizeMiB| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | -| CloudDualStackNodeIPs| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | ConsolePluginContentSecurityPolicy| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | -| DisableKubeletCloudCredentialProviders| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | GCPLabelsTags| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | GatewayAPI| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | GatewayAPIController| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | @@ -94,7 +94,7 @@ | PersistentIPsForVirtualization| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | PrivateHostedZoneAWS| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | RouteExternalCertificate| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | +| ServiceAccountTokenNodeBinding| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | SetEIPForNLBIngressController| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | VSphereDriverConfiguration| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | -| VSphereMultiVCenters| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | ValidatingAdmissionPolicy| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | diff --git a/vendor/github.com/openshift/api/features/features.go b/vendor/github.com/openshift/api/features/features.go index 17786fa40a90..0619051e7311 100644 --- a/vendor/github.com/openshift/api/features/features.go +++ b/vendor/github.com/openshift/api/features/features.go @@ -46,10 +46,10 @@ var ( FeatureGateServiceAccountTokenNodeBinding = newFeatureGate("ServiceAccountTokenNodeBinding"). reportProblemsToJiraComponent("apiserver-auth"). - contactPerson("stlaz"). + contactPerson("ibihim"). productScope(kubernetes). enhancementPR("https://github.com/kubernetes/enhancements/issues/4193"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). mustRegister() FeatureGateValidatingAdmissionPolicy = newFeatureGate("ValidatingAdmissionPolicy"). @@ -100,14 +100,6 @@ var ( enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). mustRegister() - FeatureGateMachineAPIProviderOpenStack = newFeatureGate("MachineAPIProviderOpenStack"). - reportProblemsToJiraComponent("openstack"). - contactPerson("egarcia"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - FeatureGateInsightsConfigAPI = newFeatureGate("InsightsConfigAPI"). reportProblemsToJiraComponent("insights"). contactPerson("tremes"). @@ -195,14 +187,6 @@ var ( enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). mustRegister() - FeatureGateCloudDualStackNodeIPs = newFeatureGate("CloudDualStackNodeIPs"). - reportProblemsToJiraComponent("machine-config-operator/platform-baremetal"). - contactPerson("mkowalsk"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/3705"). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - FeatureGateVSphereHostVMGroupZonal = newFeatureGate("VSphereHostVMGroupZonal"). reportProblemsToJiraComponent("splat"). contactPerson("jcpowermac"). @@ -219,14 +203,6 @@ var ( enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). mustRegister() - FeatureGateVSphereMultiVCenters = newFeatureGate("VSphereMultiVCenters"). - reportProblemsToJiraComponent("splat"). - contactPerson("vr4manta"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - FeatureGateRouteExternalCertificate = newFeatureGate("RouteExternalCertificate"). reportProblemsToJiraComponent("router"). contactPerson("chiragkyal"). @@ -393,13 +369,13 @@ var ( enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). mustRegister() - FeatureGateDisableKubeletCloudCredentialProviders = newFeatureGate("DisableKubeletCloudCredentialProviders"). - reportProblemsToJiraComponent("cloud-provider"). - contactPerson("jspeed"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/2395"). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() + FeatureGateManagedBootImagesvSphere = newFeatureGate("ManagedBootImagesvSphere"). + reportProblemsToJiraComponent("MachineConfigOperator"). + contactPerson("rsaini"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1496"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() FeatureGateOnClusterBuild = newFeatureGate("OnClusterBuild"). reportProblemsToJiraComponent("MachineConfigOperator"). @@ -483,13 +459,13 @@ var ( mustRegister() FeatureGateExternalOIDCWithAdditionalClaimMappings = newFeatureGate("ExternalOIDCWithUIDAndExtraClaimMappings"). - reportProblemsToJiraComponent("authentication"). - contactPerson("bpalmer"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1777"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - enableForClusterProfile(Hypershift, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() + reportProblemsToJiraComponent("authentication"). + contactPerson("bpalmer"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1777"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + enableForClusterProfile(Hypershift, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() FeatureGateExample = newFeatureGate("Example"). reportProblemsToJiraComponent("cluster-config"). @@ -539,6 +515,14 @@ var ( enableForClusterProfile(SelfManaged, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). mustRegister() + FeatureGateNewOLMOwnSingleNamespace = newFeatureGate("NewOLMOwnSingleNamespace"). + reportProblemsToJiraComponent("olm"). + contactPerson("nschieder"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1774"). + enableForClusterProfile(SelfManaged, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + FeatureGateInsightsOnDemandDataGather = newFeatureGate("InsightsOnDemandDataGather"). reportProblemsToJiraComponent("insights"). contactPerson("tremes"). @@ -827,4 +811,20 @@ var ( enhancementPR("https://github.com/openshift/enhancements/pull/1748"). enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). mustRegister() + + FeatureGateAzureMultiDisk = newFeatureGate("AzureMultiDisk"). + reportProblemsToJiraComponent("splat"). + contactPerson("jcpowermac"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1779"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateAWSDedicatedHosts = newFeatureGate("AWSDedicatedHosts"). + reportProblemsToJiraComponent("Installer"). + contactPerson("faermanj"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1781"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() ) diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.featuregated-crd-manifests.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.featuregated-crd-manifests.yaml index 72289b00a35f..03c6e644f842 100644 --- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.featuregated-crd-manifests.yaml +++ b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.featuregated-crd-manifests.yaml @@ -39,7 +39,6 @@ controllerconfigs.machineconfiguration.openshift.io: - HighlyAvailableArbiter+DualReplica - NutanixMultiSubnets - VSphereMultiNetworks - - VSphereMultiVCenters FilenameOperatorName: machine-config FilenameOperatorOrdering: "01" FilenameRunLevel: "0000_80" diff --git a/vendor/github.com/openshift/api/operatoringress/v1/Makefile b/vendor/github.com/openshift/api/operatoringress/v1/Makefile new file mode 100644 index 000000000000..6023e50269b0 --- /dev/null +++ b/vendor/github.com/openshift/api/operatoringress/v1/Makefile @@ -0,0 +1,3 @@ +.PHONY: test +test: + make -C ../../tests test GINKGO_EXTRA_ARGS=--focus="ingress.operator.openshift.io/v1" diff --git a/vendor/github.com/openshift/api/operatoringress/v1/doc.go b/vendor/github.com/openshift/api/operatoringress/v1/doc.go new file mode 100644 index 000000000000..6174e16ba4d4 --- /dev/null +++ b/vendor/github.com/openshift/api/operatoringress/v1/doc.go @@ -0,0 +1,7 @@ +// +k8s:deepcopy-gen=package,register +// +k8s:defaulter-gen=TypeMeta +// +k8s:openapi-gen=true + +// +kubebuilder:validation:Optional +// +groupName=ingress.operator.openshift.io +package v1 diff --git a/vendor/github.com/openshift/api/operatoringress/v1/register.go b/vendor/github.com/openshift/api/operatoringress/v1/register.go new file mode 100644 index 000000000000..1b87643d504e --- /dev/null +++ b/vendor/github.com/openshift/api/operatoringress/v1/register.go @@ -0,0 +1,40 @@ +package v1 + +import ( + configv1 "github.com/openshift/api/config/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +var ( + GroupName = "ingress.operator.openshift.io" + GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, configv1.Install) + // Install is a function which adds this version to a scheme + Install = schemeBuilder.AddToScheme + + // SchemeGroupVersion generated code relies on this name + // Deprecated + SchemeGroupVersion = GroupVersion + // AddToScheme exists solely to keep the old generators creating valid code + // DEPRECATED + AddToScheme = schemeBuilder.AddToScheme +) + +// Resource generated code relies on this being here, but it logically belongs to the group +// DEPRECATED +func Resource(resource string) schema.GroupResource { + return schema.GroupResource{Group: GroupName, Resource: resource} +} + +func addKnownTypes(scheme *runtime.Scheme) error { + metav1.AddToGroupVersion(scheme, GroupVersion) + + scheme.AddKnownTypes(GroupVersion, + &DNSRecord{}, + &DNSRecordList{}, + ) + + return nil +} diff --git a/vendor/github.com/openshift/api/operatoringress/v1/types.go b/vendor/github.com/openshift/api/operatoringress/v1/types.go new file mode 100644 index 000000000000..a50d1148e5cc --- /dev/null +++ b/vendor/github.com/openshift/api/operatoringress/v1/types.go @@ -0,0 +1,172 @@ +package v1 + +import ( + configv1 "github.com/openshift/api/config/v1" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:resource:path=dnsrecords,scope=Namespaced +// +openshift:api-approved.openshift.io=https://github.com/openshift/api/pull/584 +// +openshift:capability=Ingress +// +openshift:file-pattern=cvoRunLevel=0000_50,operatorName=dns,operatorOrdering=01 + +// DNSRecord is a DNS record managed in the zones defined by +// dns.config.openshift.io/cluster .spec.publicZone and .spec.privateZone. +// +// Cluster admin manipulation of this resource is not supported. This resource +// is only for internal communication of OpenShift operators. +// +// If DNSManagementPolicy is "Unmanaged", the operator will not be responsible +// for managing the DNS records on the cloud provider. +// +// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +// +openshift:compatibility-gen:level=1 +type DNSRecord struct { + metav1.TypeMeta `json:",inline"` + + // metadata is the standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + metav1.ObjectMeta `json:"metadata,omitempty"` + + // spec is the specification of the desired behavior of the dnsRecord. + Spec DNSRecordSpec `json:"spec"` + // status is the most recently observed status of the dnsRecord. + Status DNSRecordStatus `json:"status"` +} + +// DNSRecordSpec contains the details of a DNS record. +type DNSRecordSpec struct { + // dnsName is the hostname of the DNS record + // + // +kubebuilder:validation:MinLength=1 + // +required + DNSName string `json:"dnsName"` + // targets are record targets. + // + // +kubebuilder:validation:MinItems=1 + // +required + Targets []string `json:"targets"` + // recordType is the DNS record type. For example, "A" or "CNAME". + // +required + RecordType DNSRecordType `json:"recordType"` + // recordTTL is the record TTL in seconds. If zero, the default is 30. + // RecordTTL will not be used in AWS regions Alias targets, but + // will be used in CNAME targets, per AWS API contract. + // + // +kubebuilder:validation:Minimum=0 + // +required + RecordTTL int64 `json:"recordTTL"` + // dnsManagementPolicy denotes the current policy applied on the DNS + // record. Records that have policy set as "Unmanaged" are ignored by + // the ingress operator. This means that the DNS record on the cloud + // provider is not managed by the operator, and the "Published" status + // condition will be updated to "Unknown" status, since it is externally + // managed. Any existing record on the cloud provider can be deleted at + // the discretion of the cluster admin. + // + // This field defaults to Managed. Valid values are "Managed" and + // "Unmanaged". + // + // +kubebuilder:default:="Managed" + // +required + // +default="Managed" + DNSManagementPolicy DNSManagementPolicy `json:"dnsManagementPolicy,omitempty"` +} + +// DNSRecordStatus is the most recently observed status of each record. +type DNSRecordStatus struct { + // zones are the status of the record in each zone. + Zones []DNSZoneStatus `json:"zones,omitempty"` + + // observedGeneration is the most recently observed generation of the + // DNSRecord. When the DNSRecord is updated, the controller updates the + // corresponding record in each managed zone. If an update for a + // particular zone fails, that failure is recorded in the status + // condition for the zone so that the controller can determine that it + // needs to retry the update for that specific zone. + // +optional + ObservedGeneration int64 `json:"observedGeneration,omitempty"` +} + +// DNSZoneStatus is the status of a record within a specific zone. +type DNSZoneStatus struct { + // dnsZone is the zone where the record is published. + DNSZone configv1.DNSZone `json:"dnsZone"` + // conditions are any conditions associated with the record in the zone. + // + // If publishing the record succeeds, the "Published" condition will be + // set with status "True" and upon failure it will be set to "False" along + // with the reason and message describing the cause of the failure. + Conditions []DNSZoneCondition `json:"conditions,omitempty"` +} + +var ( + // Failed means the record is not available within a zone. + // DEPRECATED: will be removed soon, use DNSRecordPublishedConditionType. + DNSRecordFailedConditionType = "Failed" + + // Published means the record is published to a zone. + DNSRecordPublishedConditionType = "Published" +) + +// DNSZoneCondition is just the standard condition fields. +type DNSZoneCondition struct { + // +kubebuilder:validation:MinLength=1 + // +required + Type string `json:"type"` + // +kubebuilder:validation:MinLength=1 + // +required + Status string `json:"status"` + LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"` + Reason string `json:"reason,omitempty"` + Message string `json:"message,omitempty"` +} + +// DNSRecordType is a DNS resource record type. +// +kubebuilder:validation:Enum=CNAME;A +type DNSRecordType string + +const ( + // CNAMERecordType is an RFC 1035 CNAME record. + CNAMERecordType DNSRecordType = "CNAME" + + // ARecordType is an RFC 1035 A record. + ARecordType DNSRecordType = "A" +) + +// DNSManagementPolicy is a policy for configuring how the dns controller +// manages DNSRecords. +// +// +kubebuilder:validation:Enum=Managed;Unmanaged +type DNSManagementPolicy string + +const ( + // ManagedDNS configures the dns controller to manage the lifecycle of the + // DNS record on the cloud platform. + ManagedDNS DNSManagementPolicy = "Managed" + // UnmanagedDNS configures the dns controller not to create a DNS record or + // manage any existing DNS record and allows the DNS record on the cloud + // provider to be managed by the cluster admin. + UnmanagedDNS DNSManagementPolicy = "Unmanaged" +) + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// DNSRecordList contains a list of dnsrecords. +// +// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +// +openshift:compatibility-gen:level=1 +type DNSRecordList struct { + metav1.TypeMeta `json:",inline"` + + // metadata is the standard list's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + metav1.ListMeta `json:"metadata,omitempty"` + + Items []DNSRecord `json:"items"` +} diff --git a/vendor/github.com/openshift/api/operatoringress/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/operatoringress/v1/zz_generated.deepcopy.go new file mode 100644 index 000000000000..49fe1770d37b --- /dev/null +++ b/vendor/github.com/openshift/api/operatoringress/v1/zz_generated.deepcopy.go @@ -0,0 +1,156 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +// Code generated by codegen. DO NOT EDIT. + +package v1 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DNSRecord) DeepCopyInto(out *DNSRecord) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSRecord. +func (in *DNSRecord) DeepCopy() *DNSRecord { + if in == nil { + return nil + } + out := new(DNSRecord) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DNSRecord) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DNSRecordList) DeepCopyInto(out *DNSRecordList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DNSRecord, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSRecordList. +func (in *DNSRecordList) DeepCopy() *DNSRecordList { + if in == nil { + return nil + } + out := new(DNSRecordList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DNSRecordList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DNSRecordSpec) DeepCopyInto(out *DNSRecordSpec) { + *out = *in + if in.Targets != nil { + in, out := &in.Targets, &out.Targets + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSRecordSpec. +func (in *DNSRecordSpec) DeepCopy() *DNSRecordSpec { + if in == nil { + return nil + } + out := new(DNSRecordSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DNSRecordStatus) DeepCopyInto(out *DNSRecordStatus) { + *out = *in + if in.Zones != nil { + in, out := &in.Zones, &out.Zones + *out = make([]DNSZoneStatus, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSRecordStatus. +func (in *DNSRecordStatus) DeepCopy() *DNSRecordStatus { + if in == nil { + return nil + } + out := new(DNSRecordStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DNSZoneCondition) DeepCopyInto(out *DNSZoneCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSZoneCondition. +func (in *DNSZoneCondition) DeepCopy() *DNSZoneCondition { + if in == nil { + return nil + } + out := new(DNSZoneCondition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DNSZoneStatus) DeepCopyInto(out *DNSZoneStatus) { + *out = *in + in.DNSZone.DeepCopyInto(&out.DNSZone) + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]DNSZoneCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSZoneStatus. +func (in *DNSZoneStatus) DeepCopy() *DNSZoneStatus { + if in == nil { + return nil + } + out := new(DNSZoneStatus) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/github.com/openshift/api/operatoringress/v1/zz_generated.featuregated-crd-manifests.yaml b/vendor/github.com/openshift/api/operatoringress/v1/zz_generated.featuregated-crd-manifests.yaml new file mode 100644 index 000000000000..1a2fc330abb3 --- /dev/null +++ b/vendor/github.com/openshift/api/operatoringress/v1/zz_generated.featuregated-crd-manifests.yaml @@ -0,0 +1,21 @@ +dnsrecords.ingress.operator.openshift.io: + Annotations: {} + ApprovedPRNumber: https://github.com/openshift/api/pull/584 + CRDName: dnsrecords.ingress.operator.openshift.io + Capability: Ingress + Category: "" + FeatureGates: [] + FilenameOperatorName: dns + FilenameOperatorOrdering: "01" + FilenameRunLevel: "0000_50" + GroupName: ingress.operator.openshift.io + HasStatus: true + KindName: DNSRecord + Labels: {} + PluralName: dnsrecords + PrinterColumns: [] + Scope: Namespaced + ShortNames: null + TopLevelFeatureGates: [] + Version: v1 + diff --git a/vendor/github.com/openshift/api/operatoringress/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/operatoringress/v1/zz_generated.swagger_doc_generated.go new file mode 100644 index 000000000000..56ef173aa449 --- /dev/null +++ b/vendor/github.com/openshift/api/operatoringress/v1/zz_generated.swagger_doc_generated.go @@ -0,0 +1,75 @@ +package v1 + +// This file contains a collection of methods that can be used from go-restful to +// generate Swagger API documentation for its models. Please read this PR for more +// information on the implementation: https://github.com/emicklei/go-restful/pull/215 +// +// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if +// they are on one line! For multiple line or blocks that you want to ignore use ---. +// Any context after a --- is ignored. +// +// Those methods can be generated by using hack/update-swagger-docs.sh + +// AUTO-GENERATED FUNCTIONS START HERE +var map_DNSRecord = map[string]string{ + "": "DNSRecord is a DNS record managed in the zones defined by dns.config.openshift.io/cluster .spec.publicZone and .spec.privateZone.\n\nCluster admin manipulation of this resource is not supported. This resource is only for internal communication of OpenShift operators.\n\nIf DNSManagementPolicy is \"Unmanaged\", the operator will not be responsible for managing the DNS records on the cloud provider.\n\nCompatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).", + "metadata": "metadata is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", + "spec": "spec is the specification of the desired behavior of the dnsRecord.", + "status": "status is the most recently observed status of the dnsRecord.", +} + +func (DNSRecord) SwaggerDoc() map[string]string { + return map_DNSRecord +} + +var map_DNSRecordList = map[string]string{ + "": "DNSRecordList contains a list of dnsrecords.\n\nCompatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).", + "metadata": "metadata is the standard list's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", +} + +func (DNSRecordList) SwaggerDoc() map[string]string { + return map_DNSRecordList +} + +var map_DNSRecordSpec = map[string]string{ + "": "DNSRecordSpec contains the details of a DNS record.", + "dnsName": "dnsName is the hostname of the DNS record", + "targets": "targets are record targets.", + "recordType": "recordType is the DNS record type. For example, \"A\" or \"CNAME\".", + "recordTTL": "recordTTL is the record TTL in seconds. If zero, the default is 30. RecordTTL will not be used in AWS regions Alias targets, but will be used in CNAME targets, per AWS API contract.", + "dnsManagementPolicy": "dnsManagementPolicy denotes the current policy applied on the DNS record. Records that have policy set as \"Unmanaged\" are ignored by the ingress operator. This means that the DNS record on the cloud provider is not managed by the operator, and the \"Published\" status condition will be updated to \"Unknown\" status, since it is externally managed. Any existing record on the cloud provider can be deleted at the discretion of the cluster admin.\n\nThis field defaults to Managed. Valid values are \"Managed\" and \"Unmanaged\".", +} + +func (DNSRecordSpec) SwaggerDoc() map[string]string { + return map_DNSRecordSpec +} + +var map_DNSRecordStatus = map[string]string{ + "": "DNSRecordStatus is the most recently observed status of each record.", + "zones": "zones are the status of the record in each zone.", + "observedGeneration": "observedGeneration is the most recently observed generation of the DNSRecord. When the DNSRecord is updated, the controller updates the corresponding record in each managed zone. If an update for a particular zone fails, that failure is recorded in the status condition for the zone so that the controller can determine that it needs to retry the update for that specific zone.", +} + +func (DNSRecordStatus) SwaggerDoc() map[string]string { + return map_DNSRecordStatus +} + +var map_DNSZoneCondition = map[string]string{ + "": "DNSZoneCondition is just the standard condition fields.", +} + +func (DNSZoneCondition) SwaggerDoc() map[string]string { + return map_DNSZoneCondition +} + +var map_DNSZoneStatus = map[string]string{ + "": "DNSZoneStatus is the status of a record within a specific zone.", + "dnsZone": "dnsZone is the zone where the record is published.", + "conditions": "conditions are any conditions associated with the record in the zone.\n\nIf publishing the record succeeds, the \"Published\" condition will be set with status \"True\" and upon failure it will be set to \"False\" along with the reason and message describing the cause of the failure.", +} + +func (DNSZoneStatus) SwaggerDoc() map[string]string { + return map_DNSZoneStatus +} + +// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/github.com/openshift/client-go/operatoringress/applyconfigurations/internal/internal.go b/vendor/github.com/openshift/client-go/operatoringress/applyconfigurations/internal/internal.go new file mode 100644 index 000000000000..0eadf661a1b3 --- /dev/null +++ b/vendor/github.com/openshift/client-go/operatoringress/applyconfigurations/internal/internal.go @@ -0,0 +1,275 @@ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package internal + +import ( + fmt "fmt" + sync "sync" + + typed "sigs.k8s.io/structured-merge-diff/v4/typed" +) + +func Parser() *typed.Parser { + parserOnce.Do(func() { + var err error + parser, err = typed.NewParser(schemaYAML) + if err != nil { + panic(fmt.Sprintf("Failed to parse schema: %v", err)) + } + }) + return parser +} + +var parserOnce sync.Once +var parser *typed.Parser +var schemaYAML = typed.YAMLObject(`types: +- name: com.github.openshift.api.config.v1.DNSZone + map: + fields: + - name: id + type: + scalar: string + - name: tags + type: + map: + elementType: + scalar: string +- name: com.github.openshift.api.operatoringress.v1.DNSRecord + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: com.github.openshift.api.operatoringress.v1.DNSRecordSpec + default: {} + - name: status + type: + namedType: com.github.openshift.api.operatoringress.v1.DNSRecordStatus + default: {} +- name: com.github.openshift.api.operatoringress.v1.DNSRecordSpec + map: + fields: + - name: dnsManagementPolicy + type: + scalar: string + default: Managed + - name: dnsName + type: + scalar: string + default: "" + - name: recordTTL + type: + scalar: numeric + default: 0 + - name: recordType + type: + scalar: string + default: "" + - name: targets + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: com.github.openshift.api.operatoringress.v1.DNSRecordStatus + map: + fields: + - name: observedGeneration + type: + scalar: numeric + - name: zones + type: + list: + elementType: + namedType: com.github.openshift.api.operatoringress.v1.DNSZoneStatus + elementRelationship: atomic +- name: com.github.openshift.api.operatoringress.v1.DNSZoneCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: com.github.openshift.api.operatoringress.v1.DNSZoneStatus + map: + fields: + - name: conditions + type: + list: + elementType: + namedType: com.github.openshift.api.operatoringress.v1.DNSZoneCondition + elementRelationship: atomic + - name: dnsZone + type: + namedType: com.github.openshift.api.config.v1.DNSZone + default: {} +- name: io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1 + map: + elementType: + scalar: untyped + list: + elementType: + namedType: __untyped_atomic_ + elementRelationship: atomic + map: + elementType: + namedType: __untyped_deduced_ + elementRelationship: separable +- name: io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry + map: + fields: + - name: apiVersion + type: + scalar: string + - name: fieldsType + type: + scalar: string + - name: fieldsV1 + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1 + - name: manager + type: + scalar: string + - name: operation + type: + scalar: string + - name: subresource + type: + scalar: string + - name: time + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time +- name: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + map: + fields: + - name: annotations + type: + map: + elementType: + scalar: string + - name: creationTimestamp + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + - name: deletionGracePeriodSeconds + type: + scalar: numeric + - name: deletionTimestamp + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + - name: finalizers + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: generateName + type: + scalar: string + - name: generation + type: + scalar: numeric + - name: labels + type: + map: + elementType: + scalar: string + - name: managedFields + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry + elementRelationship: atomic + - name: name + type: + scalar: string + - name: namespace + type: + scalar: string + - name: ownerReferences + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference + elementRelationship: associative + keys: + - uid + - name: resourceVersion + type: + scalar: string + - name: selfLink + type: + scalar: string + - name: uid + type: + scalar: string +- name: io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference + map: + fields: + - name: apiVersion + type: + scalar: string + default: "" + - name: blockOwnerDeletion + type: + scalar: boolean + - name: controller + type: + scalar: boolean + - name: kind + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" + - name: uid + type: + scalar: string + default: "" + elementRelationship: atomic +- name: io.k8s.apimachinery.pkg.apis.meta.v1.Time + scalar: untyped +- name: __untyped_atomic_ + scalar: untyped + list: + elementType: + namedType: __untyped_atomic_ + elementRelationship: atomic + map: + elementType: + namedType: __untyped_atomic_ + elementRelationship: atomic +- name: __untyped_deduced_ + scalar: untyped + list: + elementType: + namedType: __untyped_atomic_ + elementRelationship: atomic + map: + elementType: + namedType: __untyped_deduced_ + elementRelationship: separable +`) diff --git a/vendor/github.com/openshift/client-go/operatoringress/applyconfigurations/operatoringress/v1/dnsrecord.go b/vendor/github.com/openshift/client-go/operatoringress/applyconfigurations/operatoringress/v1/dnsrecord.go new file mode 100644 index 000000000000..7ddbfab268df --- /dev/null +++ b/vendor/github.com/openshift/client-go/operatoringress/applyconfigurations/operatoringress/v1/dnsrecord.go @@ -0,0 +1,248 @@ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + operatoringressv1 "github.com/openshift/api/operatoringress/v1" + internal "github.com/openshift/client-go/operatoringress/applyconfigurations/internal" + apismetav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + metav1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// DNSRecordApplyConfiguration represents a declarative configuration of the DNSRecord type for use +// with apply. +type DNSRecordApplyConfiguration struct { + metav1.TypeMetaApplyConfiguration `json:",inline"` + *metav1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *DNSRecordSpecApplyConfiguration `json:"spec,omitempty"` + Status *DNSRecordStatusApplyConfiguration `json:"status,omitempty"` +} + +// DNSRecord constructs a declarative configuration of the DNSRecord type for use with +// apply. +func DNSRecord(name, namespace string) *DNSRecordApplyConfiguration { + b := &DNSRecordApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("DNSRecord") + b.WithAPIVersion("ingress.operator.openshift.io/v1") + return b +} + +// ExtractDNSRecord extracts the applied configuration owned by fieldManager from +// dNSRecord. If no managedFields are found in dNSRecord for fieldManager, a +// DNSRecordApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. It is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// dNSRecord must be a unmodified DNSRecord API object that was retrieved from the Kubernetes API. +// ExtractDNSRecord provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractDNSRecord(dNSRecord *operatoringressv1.DNSRecord, fieldManager string) (*DNSRecordApplyConfiguration, error) { + return extractDNSRecord(dNSRecord, fieldManager, "") +} + +// ExtractDNSRecordStatus is the same as ExtractDNSRecord except +// that it extracts the status subresource applied configuration. +// Experimental! +func ExtractDNSRecordStatus(dNSRecord *operatoringressv1.DNSRecord, fieldManager string) (*DNSRecordApplyConfiguration, error) { + return extractDNSRecord(dNSRecord, fieldManager, "status") +} + +func extractDNSRecord(dNSRecord *operatoringressv1.DNSRecord, fieldManager string, subresource string) (*DNSRecordApplyConfiguration, error) { + b := &DNSRecordApplyConfiguration{} + err := managedfields.ExtractInto(dNSRecord, internal.Parser().Type("com.github.openshift.api.operatoringress.v1.DNSRecord"), fieldManager, b, subresource) + if err != nil { + return nil, err + } + b.WithName(dNSRecord.Name) + b.WithNamespace(dNSRecord.Namespace) + + b.WithKind("DNSRecord") + b.WithAPIVersion("ingress.operator.openshift.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *DNSRecordApplyConfiguration) WithKind(value string) *DNSRecordApplyConfiguration { + b.TypeMetaApplyConfiguration.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *DNSRecordApplyConfiguration) WithAPIVersion(value string) *DNSRecordApplyConfiguration { + b.TypeMetaApplyConfiguration.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *DNSRecordApplyConfiguration) WithName(value string) *DNSRecordApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *DNSRecordApplyConfiguration) WithGenerateName(value string) *DNSRecordApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *DNSRecordApplyConfiguration) WithNamespace(value string) *DNSRecordApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.Namespace = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *DNSRecordApplyConfiguration) WithUID(value types.UID) *DNSRecordApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *DNSRecordApplyConfiguration) WithResourceVersion(value string) *DNSRecordApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *DNSRecordApplyConfiguration) WithGeneration(value int64) *DNSRecordApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *DNSRecordApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *DNSRecordApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *DNSRecordApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *DNSRecordApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *DNSRecordApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DNSRecordApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *DNSRecordApplyConfiguration) WithLabels(entries map[string]string) *DNSRecordApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 { + b.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.ObjectMetaApplyConfiguration.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *DNSRecordApplyConfiguration) WithAnnotations(entries map[string]string) *DNSRecordApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 { + b.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.ObjectMetaApplyConfiguration.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *DNSRecordApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *DNSRecordApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *DNSRecordApplyConfiguration) WithFinalizers(values ...string) *DNSRecordApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i]) + } + return b +} + +func (b *DNSRecordApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *DNSRecordApplyConfiguration) WithSpec(value *DNSRecordSpecApplyConfiguration) *DNSRecordApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *DNSRecordApplyConfiguration) WithStatus(value *DNSRecordStatusApplyConfiguration) *DNSRecordApplyConfiguration { + b.Status = value + return b +} + +// GetName retrieves the value of the Name field in the declarative configuration. +func (b *DNSRecordApplyConfiguration) GetName() *string { + b.ensureObjectMetaApplyConfigurationExists() + return b.ObjectMetaApplyConfiguration.Name +} diff --git a/vendor/github.com/openshift/client-go/operatoringress/applyconfigurations/operatoringress/v1/dnsrecordspec.go b/vendor/github.com/openshift/client-go/operatoringress/applyconfigurations/operatoringress/v1/dnsrecordspec.go new file mode 100644 index 000000000000..fd6b3d29427c --- /dev/null +++ b/vendor/github.com/openshift/client-go/operatoringress/applyconfigurations/operatoringress/v1/dnsrecordspec.go @@ -0,0 +1,65 @@ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + operatoringressv1 "github.com/openshift/api/operatoringress/v1" +) + +// DNSRecordSpecApplyConfiguration represents a declarative configuration of the DNSRecordSpec type for use +// with apply. +type DNSRecordSpecApplyConfiguration struct { + DNSName *string `json:"dnsName,omitempty"` + Targets []string `json:"targets,omitempty"` + RecordType *operatoringressv1.DNSRecordType `json:"recordType,omitempty"` + RecordTTL *int64 `json:"recordTTL,omitempty"` + DNSManagementPolicy *operatoringressv1.DNSManagementPolicy `json:"dnsManagementPolicy,omitempty"` +} + +// DNSRecordSpecApplyConfiguration constructs a declarative configuration of the DNSRecordSpec type for use with +// apply. +func DNSRecordSpec() *DNSRecordSpecApplyConfiguration { + return &DNSRecordSpecApplyConfiguration{} +} + +// WithDNSName sets the DNSName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DNSName field is set to the value of the last call. +func (b *DNSRecordSpecApplyConfiguration) WithDNSName(value string) *DNSRecordSpecApplyConfiguration { + b.DNSName = &value + return b +} + +// WithTargets adds the given value to the Targets field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Targets field. +func (b *DNSRecordSpecApplyConfiguration) WithTargets(values ...string) *DNSRecordSpecApplyConfiguration { + for i := range values { + b.Targets = append(b.Targets, values[i]) + } + return b +} + +// WithRecordType sets the RecordType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RecordType field is set to the value of the last call. +func (b *DNSRecordSpecApplyConfiguration) WithRecordType(value operatoringressv1.DNSRecordType) *DNSRecordSpecApplyConfiguration { + b.RecordType = &value + return b +} + +// WithRecordTTL sets the RecordTTL field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RecordTTL field is set to the value of the last call. +func (b *DNSRecordSpecApplyConfiguration) WithRecordTTL(value int64) *DNSRecordSpecApplyConfiguration { + b.RecordTTL = &value + return b +} + +// WithDNSManagementPolicy sets the DNSManagementPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DNSManagementPolicy field is set to the value of the last call. +func (b *DNSRecordSpecApplyConfiguration) WithDNSManagementPolicy(value operatoringressv1.DNSManagementPolicy) *DNSRecordSpecApplyConfiguration { + b.DNSManagementPolicy = &value + return b +} diff --git a/vendor/github.com/openshift/client-go/operatoringress/applyconfigurations/operatoringress/v1/dnsrecordstatus.go b/vendor/github.com/openshift/client-go/operatoringress/applyconfigurations/operatoringress/v1/dnsrecordstatus.go new file mode 100644 index 000000000000..584464ad6f80 --- /dev/null +++ b/vendor/github.com/openshift/client-go/operatoringress/applyconfigurations/operatoringress/v1/dnsrecordstatus.go @@ -0,0 +1,37 @@ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// DNSRecordStatusApplyConfiguration represents a declarative configuration of the DNSRecordStatus type for use +// with apply. +type DNSRecordStatusApplyConfiguration struct { + Zones []DNSZoneStatusApplyConfiguration `json:"zones,omitempty"` + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` +} + +// DNSRecordStatusApplyConfiguration constructs a declarative configuration of the DNSRecordStatus type for use with +// apply. +func DNSRecordStatus() *DNSRecordStatusApplyConfiguration { + return &DNSRecordStatusApplyConfiguration{} +} + +// WithZones adds the given value to the Zones field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Zones field. +func (b *DNSRecordStatusApplyConfiguration) WithZones(values ...*DNSZoneStatusApplyConfiguration) *DNSRecordStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithZones") + } + b.Zones = append(b.Zones, *values[i]) + } + return b +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *DNSRecordStatusApplyConfiguration) WithObservedGeneration(value int64) *DNSRecordStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} diff --git a/vendor/github.com/openshift/client-go/operatoringress/applyconfigurations/operatoringress/v1/dnszonecondition.go b/vendor/github.com/openshift/client-go/operatoringress/applyconfigurations/operatoringress/v1/dnszonecondition.go new file mode 100644 index 000000000000..7d66abd99a9a --- /dev/null +++ b/vendor/github.com/openshift/client-go/operatoringress/applyconfigurations/operatoringress/v1/dnszonecondition.go @@ -0,0 +1,63 @@ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// DNSZoneConditionApplyConfiguration represents a declarative configuration of the DNSZoneCondition type for use +// with apply. +type DNSZoneConditionApplyConfiguration struct { + Type *string `json:"type,omitempty"` + Status *string `json:"status,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// DNSZoneConditionApplyConfiguration constructs a declarative configuration of the DNSZoneCondition type for use with +// apply. +func DNSZoneCondition() *DNSZoneConditionApplyConfiguration { + return &DNSZoneConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *DNSZoneConditionApplyConfiguration) WithType(value string) *DNSZoneConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *DNSZoneConditionApplyConfiguration) WithStatus(value string) *DNSZoneConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *DNSZoneConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DNSZoneConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *DNSZoneConditionApplyConfiguration) WithReason(value string) *DNSZoneConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *DNSZoneConditionApplyConfiguration) WithMessage(value string) *DNSZoneConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/github.com/openshift/client-go/operatoringress/applyconfigurations/operatoringress/v1/dnszonestatus.go b/vendor/github.com/openshift/client-go/operatoringress/applyconfigurations/operatoringress/v1/dnszonestatus.go new file mode 100644 index 000000000000..00690490ff1e --- /dev/null +++ b/vendor/github.com/openshift/client-go/operatoringress/applyconfigurations/operatoringress/v1/dnszonestatus.go @@ -0,0 +1,41 @@ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + configv1 "github.com/openshift/api/config/v1" +) + +// DNSZoneStatusApplyConfiguration represents a declarative configuration of the DNSZoneStatus type for use +// with apply. +type DNSZoneStatusApplyConfiguration struct { + DNSZone *configv1.DNSZone `json:"dnsZone,omitempty"` + Conditions []DNSZoneConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// DNSZoneStatusApplyConfiguration constructs a declarative configuration of the DNSZoneStatus type for use with +// apply. +func DNSZoneStatus() *DNSZoneStatusApplyConfiguration { + return &DNSZoneStatusApplyConfiguration{} +} + +// WithDNSZone sets the DNSZone field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DNSZone field is set to the value of the last call. +func (b *DNSZoneStatusApplyConfiguration) WithDNSZone(value configv1.DNSZone) *DNSZoneStatusApplyConfiguration { + b.DNSZone = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *DNSZoneStatusApplyConfiguration) WithConditions(values ...*DNSZoneConditionApplyConfiguration) *DNSZoneStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/clientset.go b/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/clientset.go new file mode 100644 index 000000000000..9b38b23b0152 --- /dev/null +++ b/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/clientset.go @@ -0,0 +1,104 @@ +// Code generated by client-gen. DO NOT EDIT. + +package versioned + +import ( + fmt "fmt" + http "net/http" + + ingressv1 "github.com/openshift/client-go/operatoringress/clientset/versioned/typed/operatoringress/v1" + discovery "k8s.io/client-go/discovery" + rest "k8s.io/client-go/rest" + flowcontrol "k8s.io/client-go/util/flowcontrol" +) + +type Interface interface { + Discovery() discovery.DiscoveryInterface + IngressV1() ingressv1.IngressV1Interface +} + +// Clientset contains the clients for groups. +type Clientset struct { + *discovery.DiscoveryClient + ingressV1 *ingressv1.IngressV1Client +} + +// IngressV1 retrieves the IngressV1Client +func (c *Clientset) IngressV1() ingressv1.IngressV1Interface { + return c.ingressV1 +} + +// Discovery retrieves the DiscoveryClient +func (c *Clientset) Discovery() discovery.DiscoveryInterface { + if c == nil { + return nil + } + return c.DiscoveryClient +} + +// NewForConfig creates a new Clientset for the given config. +// If config's RateLimiter is not set and QPS and Burst are acceptable, +// NewForConfig will generate a rate-limiter in configShallowCopy. +// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient), +// where httpClient was generated with rest.HTTPClientFor(c). +func NewForConfig(c *rest.Config) (*Clientset, error) { + configShallowCopy := *c + + if configShallowCopy.UserAgent == "" { + configShallowCopy.UserAgent = rest.DefaultKubernetesUserAgent() + } + + // share the transport between all clients + httpClient, err := rest.HTTPClientFor(&configShallowCopy) + if err != nil { + return nil, err + } + + return NewForConfigAndClient(&configShallowCopy, httpClient) +} + +// NewForConfigAndClient creates a new Clientset for the given config and http client. +// Note the http client provided takes precedence over the configured transport values. +// If config's RateLimiter is not set and QPS and Burst are acceptable, +// NewForConfigAndClient will generate a rate-limiter in configShallowCopy. +func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset, error) { + configShallowCopy := *c + if configShallowCopy.RateLimiter == nil && configShallowCopy.QPS > 0 { + if configShallowCopy.Burst <= 0 { + return nil, fmt.Errorf("burst is required to be greater than 0 when RateLimiter is not set and QPS is set to greater than 0") + } + configShallowCopy.RateLimiter = flowcontrol.NewTokenBucketRateLimiter(configShallowCopy.QPS, configShallowCopy.Burst) + } + + var cs Clientset + var err error + cs.ingressV1, err = ingressv1.NewForConfigAndClient(&configShallowCopy, httpClient) + if err != nil { + return nil, err + } + + cs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfigAndClient(&configShallowCopy, httpClient) + if err != nil { + return nil, err + } + return &cs, nil +} + +// NewForConfigOrDie creates a new Clientset for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *rest.Config) *Clientset { + cs, err := NewForConfig(c) + if err != nil { + panic(err) + } + return cs +} + +// New creates a new Clientset for the given RESTClient. +func New(c rest.Interface) *Clientset { + var cs Clientset + cs.ingressV1 = ingressv1.New(c) + + cs.DiscoveryClient = discovery.NewDiscoveryClient(c) + return &cs +} diff --git a/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/scheme/doc.go b/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/scheme/doc.go new file mode 100644 index 000000000000..14db57a58f8d --- /dev/null +++ b/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/scheme/doc.go @@ -0,0 +1,4 @@ +// Code generated by client-gen. DO NOT EDIT. + +// This package contains the scheme of the automatically generated clientset. +package scheme diff --git a/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/scheme/register.go b/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/scheme/register.go new file mode 100644 index 000000000000..66cb8788e9b1 --- /dev/null +++ b/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/scheme/register.go @@ -0,0 +1,40 @@ +// Code generated by client-gen. DO NOT EDIT. + +package scheme + +import ( + ingressv1 "github.com/openshift/api/operatoringress/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + schema "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" +) + +var Scheme = runtime.NewScheme() +var Codecs = serializer.NewCodecFactory(Scheme) +var ParameterCodec = runtime.NewParameterCodec(Scheme) +var localSchemeBuilder = runtime.SchemeBuilder{ + ingressv1.AddToScheme, +} + +// AddToScheme adds all types of this clientset into the given scheme. This allows composition +// of clientsets, like in: +// +// import ( +// "k8s.io/client-go/kubernetes" +// clientsetscheme "k8s.io/client-go/kubernetes/scheme" +// aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme" +// ) +// +// kclientset, _ := kubernetes.NewForConfig(c) +// _ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme) +// +// After this, RawExtensions in Kubernetes types will serialize kube-aggregator types +// correctly. +var AddToScheme = localSchemeBuilder.AddToScheme + +func init() { + v1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"}) + utilruntime.Must(AddToScheme(Scheme)) +} diff --git a/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/typed/operatoringress/v1/dnsrecord.go b/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/typed/operatoringress/v1/dnsrecord.go new file mode 100644 index 000000000000..581546733b31 --- /dev/null +++ b/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/typed/operatoringress/v1/dnsrecord.go @@ -0,0 +1,58 @@ +// Code generated by client-gen. DO NOT EDIT. + +package v1 + +import ( + context "context" + + operatoringressv1 "github.com/openshift/api/operatoringress/v1" + applyconfigurationsoperatoringressv1 "github.com/openshift/client-go/operatoringress/applyconfigurations/operatoringress/v1" + scheme "github.com/openshift/client-go/operatoringress/clientset/versioned/scheme" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + gentype "k8s.io/client-go/gentype" +) + +// DNSRecordsGetter has a method to return a DNSRecordInterface. +// A group's client should implement this interface. +type DNSRecordsGetter interface { + DNSRecords(namespace string) DNSRecordInterface +} + +// DNSRecordInterface has methods to work with DNSRecord resources. +type DNSRecordInterface interface { + Create(ctx context.Context, dNSRecord *operatoringressv1.DNSRecord, opts metav1.CreateOptions) (*operatoringressv1.DNSRecord, error) + Update(ctx context.Context, dNSRecord *operatoringressv1.DNSRecord, opts metav1.UpdateOptions) (*operatoringressv1.DNSRecord, error) + // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). + UpdateStatus(ctx context.Context, dNSRecord *operatoringressv1.DNSRecord, opts metav1.UpdateOptions) (*operatoringressv1.DNSRecord, error) + Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error + DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error + Get(ctx context.Context, name string, opts metav1.GetOptions) (*operatoringressv1.DNSRecord, error) + List(ctx context.Context, opts metav1.ListOptions) (*operatoringressv1.DNSRecordList, error) + Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *operatoringressv1.DNSRecord, err error) + Apply(ctx context.Context, dNSRecord *applyconfigurationsoperatoringressv1.DNSRecordApplyConfiguration, opts metav1.ApplyOptions) (result *operatoringressv1.DNSRecord, err error) + // Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). + ApplyStatus(ctx context.Context, dNSRecord *applyconfigurationsoperatoringressv1.DNSRecordApplyConfiguration, opts metav1.ApplyOptions) (result *operatoringressv1.DNSRecord, err error) + DNSRecordExpansion +} + +// dNSRecords implements DNSRecordInterface +type dNSRecords struct { + *gentype.ClientWithListAndApply[*operatoringressv1.DNSRecord, *operatoringressv1.DNSRecordList, *applyconfigurationsoperatoringressv1.DNSRecordApplyConfiguration] +} + +// newDNSRecords returns a DNSRecords +func newDNSRecords(c *IngressV1Client, namespace string) *dNSRecords { + return &dNSRecords{ + gentype.NewClientWithListAndApply[*operatoringressv1.DNSRecord, *operatoringressv1.DNSRecordList, *applyconfigurationsoperatoringressv1.DNSRecordApplyConfiguration]( + "dnsrecords", + c.RESTClient(), + scheme.ParameterCodec, + namespace, + func() *operatoringressv1.DNSRecord { return &operatoringressv1.DNSRecord{} }, + func() *operatoringressv1.DNSRecordList { return &operatoringressv1.DNSRecordList{} }, + ), + } +} diff --git a/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/typed/operatoringress/v1/doc.go b/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/typed/operatoringress/v1/doc.go new file mode 100644 index 000000000000..225e6b2be34f --- /dev/null +++ b/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/typed/operatoringress/v1/doc.go @@ -0,0 +1,4 @@ +// Code generated by client-gen. DO NOT EDIT. + +// This package has the automatically generated typed clients. +package v1 diff --git a/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/typed/operatoringress/v1/generated_expansion.go b/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/typed/operatoringress/v1/generated_expansion.go new file mode 100644 index 000000000000..bb2e72b077a2 --- /dev/null +++ b/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/typed/operatoringress/v1/generated_expansion.go @@ -0,0 +1,5 @@ +// Code generated by client-gen. DO NOT EDIT. + +package v1 + +type DNSRecordExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/typed/operatoringress/v1/operatoringress_client.go b/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/typed/operatoringress/v1/operatoringress_client.go new file mode 100644 index 000000000000..08e84f979233 --- /dev/null +++ b/vendor/github.com/openshift/client-go/operatoringress/clientset/versioned/typed/operatoringress/v1/operatoringress_client.go @@ -0,0 +1,91 @@ +// Code generated by client-gen. DO NOT EDIT. + +package v1 + +import ( + http "net/http" + + operatoringressv1 "github.com/openshift/api/operatoringress/v1" + scheme "github.com/openshift/client-go/operatoringress/clientset/versioned/scheme" + rest "k8s.io/client-go/rest" +) + +type IngressV1Interface interface { + RESTClient() rest.Interface + DNSRecordsGetter +} + +// IngressV1Client is used to interact with features provided by the ingress.operator.openshift.io group. +type IngressV1Client struct { + restClient rest.Interface +} + +func (c *IngressV1Client) DNSRecords(namespace string) DNSRecordInterface { + return newDNSRecords(c, namespace) +} + +// NewForConfig creates a new IngressV1Client for the given config. +// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient), +// where httpClient was generated with rest.HTTPClientFor(c). +func NewForConfig(c *rest.Config) (*IngressV1Client, error) { + config := *c + if err := setConfigDefaults(&config); err != nil { + return nil, err + } + httpClient, err := rest.HTTPClientFor(&config) + if err != nil { + return nil, err + } + return NewForConfigAndClient(&config, httpClient) +} + +// NewForConfigAndClient creates a new IngressV1Client for the given config and http client. +// Note the http client provided takes precedence over the configured transport values. +func NewForConfigAndClient(c *rest.Config, h *http.Client) (*IngressV1Client, error) { + config := *c + if err := setConfigDefaults(&config); err != nil { + return nil, err + } + client, err := rest.RESTClientForConfigAndClient(&config, h) + if err != nil { + return nil, err + } + return &IngressV1Client{client}, nil +} + +// NewForConfigOrDie creates a new IngressV1Client for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *rest.Config) *IngressV1Client { + client, err := NewForConfig(c) + if err != nil { + panic(err) + } + return client +} + +// New creates a new IngressV1Client for the given RESTClient. +func New(c rest.Interface) *IngressV1Client { + return &IngressV1Client{c} +} + +func setConfigDefaults(config *rest.Config) error { + gv := operatoringressv1.SchemeGroupVersion + config.GroupVersion = &gv + config.APIPath = "/apis" + config.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion() + + if config.UserAgent == "" { + config.UserAgent = rest.DefaultKubernetesUserAgent() + } + + return nil +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *IngressV1Client) RESTClient() rest.Interface { + if c == nil { + return nil + } + return c.restClient +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 46e69f345cf9..591f69350f40 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -821,7 +821,7 @@ github.com/opencontainers/runtime-spec/specs-go github.com/opencontainers/selinux/go-selinux github.com/opencontainers/selinux/go-selinux/label github.com/opencontainers/selinux/pkg/pwalkdir -# github.com/openshift/api v0.0.0-20250425163235-9b80d67473bc +# github.com/openshift/api v0.0.0-20250513132935-9052dea86694 ## explicit; go 1.23.0 github.com/openshift/api github.com/openshift/api/annotations @@ -875,6 +875,7 @@ github.com/openshift/api/operator/v1 github.com/openshift/api/operator/v1alpha1 github.com/openshift/api/operatorcontrolplane github.com/openshift/api/operatorcontrolplane/v1alpha1 +github.com/openshift/api/operatoringress/v1 github.com/openshift/api/osin github.com/openshift/api/osin/v1 github.com/openshift/api/pkg/serialization @@ -928,7 +929,7 @@ github.com/openshift/build-machinery-go/make/targets/golang github.com/openshift/build-machinery-go/make/targets/openshift github.com/openshift/build-machinery-go/make/targets/openshift/operator github.com/openshift/build-machinery-go/scripts -# github.com/openshift/client-go v0.0.0-20250425165505-5f55ff6979a1 +# github.com/openshift/client-go v0.0.0-20250513150353-9ea84fa6431b ## explicit; go 1.23.0 github.com/openshift/client-go/apiserver/applyconfigurations/apiserver/v1 github.com/openshift/client-go/apiserver/applyconfigurations/internal @@ -1017,6 +1018,11 @@ github.com/openshift/client-go/operator/clientset/versioned github.com/openshift/client-go/operator/clientset/versioned/scheme github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1 github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1 +github.com/openshift/client-go/operatoringress/applyconfigurations/internal +github.com/openshift/client-go/operatoringress/applyconfigurations/operatoringress/v1 +github.com/openshift/client-go/operatoringress/clientset/versioned +github.com/openshift/client-go/operatoringress/clientset/versioned/scheme +github.com/openshift/client-go/operatoringress/clientset/versioned/typed/operatoringress/v1 github.com/openshift/client-go/project/applyconfigurations/internal github.com/openshift/client-go/project/applyconfigurations/project/v1 github.com/openshift/client-go/project/clientset/versioned