diff --git a/README.md b/README.md index 89b1e00bdc..5c8bbf8c7a 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,8 @@ Ensure presence of expected number of replicas and a given provider config for a - [cluster-api-provider-ovirt](https://github.com/openshift/cluster-api-provider-ovirt) + - [cluster-api-provider-equinix-metal](https://github.com/openshift/cluster-api-provider-equinix-metal) + Ensure that a provider instance is created for a Machine object in a given provider. - Node link Controller diff --git a/docs/dev/hacking-guide.md b/docs/dev/hacking-guide.md index e4289db591..908334ebab 100644 --- a/docs/dev/hacking-guide.md +++ b/docs/dev/hacking-guide.md @@ -42,6 +42,7 @@ Machine API consists of a number different components: - https://github.com/openshift/cluster-api-provider-openstack - https://github.com/openshift/cluster-api-provider-baremetal - https://github.com/openshift/cluster-api-provider-ovirt + - https://github.com/openshift/cluster-api-provider-equinix-metal ### How to start contributing @@ -156,6 +157,7 @@ data: "clusterAPIControllerGCP": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", "clusterAPIControllerOvirt": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", "clusterAPIControllerVSphere": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", + "clusterAPIControllerEquinixMetal": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", "baremetalOperator": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", "baremetalIronic": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", "baremetalIronicInspector": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", diff --git a/go.mod b/go.mod index d6c52b3bf2..a531a4f5c3 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/google/uuid v1.1.2 github.com/onsi/ginkgo v1.14.1 github.com/onsi/gomega v1.10.2 - github.com/openshift/api v0.0.0-20201216151826-78a19e96f9eb + github.com/openshift/api v0.0.0-20210225162315-bae60f47eed7 github.com/openshift/client-go v0.0.0-20201214125552-e615e336eb49 github.com/openshift/cluster-api-provider-gcp v0.0.1-0.20201201000827-1117a4fc438c github.com/openshift/library-go v0.0.0-20201215165635-4ee79b1caed5 diff --git a/go.sum b/go.sum index bc1e61c40d..fa11de99d7 100644 --- a/go.sum +++ b/go.sum @@ -489,8 +489,9 @@ github.com/openshift/api v0.0.0-20200424083944-0422dc17083e/go.mod h1:VnbEzX8SAa github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= github.com/openshift/api v0.0.0-20200901182017-7ac89ba6b971/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= github.com/openshift/api v0.0.0-20201214114959-164a2fb63b5f/go.mod h1:aqU5Cq+kqKKPbDMqxo9FojgDeSpNJI7iuskjXjtojDg= -github.com/openshift/api v0.0.0-20201216151826-78a19e96f9eb h1:/2U2gRTwhhDLBUUfC9+5YPFFOeQ93VKq9EbZH2OPOXE= github.com/openshift/api v0.0.0-20201216151826-78a19e96f9eb/go.mod h1:aqU5Cq+kqKKPbDMqxo9FojgDeSpNJI7iuskjXjtojDg= +github.com/openshift/api v0.0.0-20210225162315-bae60f47eed7 h1:RvBqGKZN2FVrnXR0MzOaFdsveCyq/DOLTJrwqpKa8e0= +github.com/openshift/api v0.0.0-20210225162315-bae60f47eed7/go.mod h1:aqU5Cq+kqKKPbDMqxo9FojgDeSpNJI7iuskjXjtojDg= github.com/openshift/build-machinery-go v0.0.0-20200211121458-5e3d6e570160/go.mod h1:1CkcsT3aVebzRBzVTSbiKSkJMsC/CASqxesfqEMfJEc= github.com/openshift/build-machinery-go v0.0.0-20200424080330-082bf86082cc/go.mod h1:1CkcsT3aVebzRBzVTSbiKSkJMsC/CASqxesfqEMfJEc= github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= diff --git a/install/0000_30_machine-api-operator_00_credentials-request.yaml b/install/0000_30_machine-api-operator_00_credentials-request.yaml index bbdb7a38ca..9344a7918c 100644 --- a/install/0000_30_machine-api-operator_00_credentials-request.yaml +++ b/install/0000_30_machine-api-operator_00_credentials-request.yaml @@ -167,3 +167,19 @@ spec: providerSpec: apiVersion: cloudcredential.openshift.io/v1 kind: KubevirtProviderSpec +--- +apiVersion: cloudcredential.openshift.io/v1 +kind: CredentialsRequest +metadata: + labels: + controller-tools.k8s.io: "1.0" + name: openshift-machine-api-equinix-metal + namespace: openshift-cloud-credential-operator +spec: + secretRef: + name: equinix-metal-credentials + namespace: openshift-machine-api + providerSpec: + apiVersion: cloudcredential.openshift.io/v1 + kind: EquinixMetalProviderSpec +--- diff --git a/install/0000_30_machine-api-operator_01_images.configmap.yaml b/install/0000_30_machine-api-operator_01_images.configmap.yaml index 1778d97bf9..c520683aed 100644 --- a/install/0000_30_machine-api-operator_01_images.configmap.yaml +++ b/install/0000_30_machine-api-operator_01_images.configmap.yaml @@ -20,5 +20,6 @@ data: "clusterAPIControllerGCP": "registry.svc.ci.openshift.org/openshift:gcp-machine-controllers", "clusterAPIControllerOvirt": "registry.svc.ci.openshift.org/openshift:ovirt-machine-controllers", "clusterAPIControllerKubevirt": "registry.svc.ci.openshift.org/openshift:kubevirt-machine-controllers", + "clusterAPIControllerEquinixMetal": "registry.svc.ci.openshift.org/openshift:equinix-metal-machine-controllers", "clusterAPIControllerVSphere": "registry.svc.ci.openshift.org/openshift:machine-api-operator" } diff --git a/install/image-references b/install/image-references index 646ced7d51..2a3304e895 100644 --- a/install/image-references +++ b/install/image-references @@ -66,3 +66,7 @@ spec: from: kind: DockerImage name: registry.svc.ci.openshift.org/openshift:kubevirt-machine-controllers + - name: equinix-metal-machine-controllers + from: + kind: DockerImage + name: registry.svc.ci.openshift.org/openshift:equinix-metal-machine-controllers diff --git a/pkg/operator/config.go b/pkg/operator/config.go index 0583a71335..84fcc1ea9a 100644 --- a/pkg/operator/config.go +++ b/pkg/operator/config.go @@ -36,17 +36,18 @@ type Controllers struct { // Images allows build systems to inject images for MAO components type Images struct { - MachineAPIOperator string `json:"machineAPIOperator"` - ClusterAPIControllerAWS string `json:"clusterAPIControllerAWS"` - ClusterAPIControllerOpenStack string `json:"clusterAPIControllerOpenStack"` - ClusterAPIControllerLibvirt string `json:"clusterAPIControllerLibvirt"` - ClusterAPIControllerBareMetal string `json:"clusterAPIControllerBareMetal"` - ClusterAPIControllerAzure string `json:"clusterAPIControllerAzure"` - ClusterAPIControllerGCP string `json:"clusterAPIControllerGCP"` - ClusterAPIControllerOvirt string `json:"clusterAPIControllerOvirt"` - ClusterAPIControllerVSphere string `json:"clusterAPIControllerVSphere"` - ClusterAPIControllerKubevirt string `json:"clusterAPIControllerKubevirt"` - KubeRBACProxy string `json:"kubeRBACProxy"` + MachineAPIOperator string `json:"machineAPIOperator"` + ClusterAPIControllerAWS string `json:"clusterAPIControllerAWS"` + ClusterAPIControllerOpenStack string `json:"clusterAPIControllerOpenStack"` + ClusterAPIControllerLibvirt string `json:"clusterAPIControllerLibvirt"` + ClusterAPIControllerBareMetal string `json:"clusterAPIControllerBareMetal"` + ClusterAPIControllerAzure string `json:"clusterAPIControllerAzure"` + ClusterAPIControllerGCP string `json:"clusterAPIControllerGCP"` + ClusterAPIControllerOvirt string `json:"clusterAPIControllerOvirt"` + ClusterAPIControllerVSphere string `json:"clusterAPIControllerVSphere"` + ClusterAPIControllerKubevirt string `json:"clusterAPIControllerKubevirt"` + ClusterAPIControllerEquinixMetal string `json:"clusterAPIControllerEquinixMetal"` + KubeRBACProxy string `json:"kubeRBACProxy"` } func getProviderFromInfrastructure(infra *configv1.Infrastructure) (configv1.PlatformType, error) { @@ -91,6 +92,8 @@ func getProviderControllerFromImages(platform configv1.PlatformType, images Imag return images.ClusterAPIControllerKubevirt, nil case kubemarkPlatform: return clusterAPIControllerKubemark, nil + case configv1.EquinixMetalPlatformType: + return images.ClusterAPIControllerEquinixMetal, nil default: return clusterAPIControllerNoOp, nil } diff --git a/pkg/operator/config_test.go b/pkg/operator/config_test.go index a419b2ba9b..cb0653b706 100644 --- a/pkg/operator/config_test.go +++ b/pkg/operator/config_test.go @@ -19,6 +19,7 @@ var ( expectedOvirtImage = "quay.io/openshift/origin-ovirt-machine-controllers" expectedVSphereImage = "docker.io/openshift/origin-machine-api-operator:v4.0.0" expectedKubevirtImage = "quay.io/openshift/origin-kubevirt-machine-controllers" + expectedEquinixMetalImage = "quay.io/openshift/origin-equinix-metal-machine-controllers" ) func TestGetProviderFromInfrastructure(t *testing.T) { @@ -95,6 +96,13 @@ func TestGetProviderFromInfrastructure(t *testing.T) { }, }, expected: configv1.OvirtPlatformType, + }, { + infra: &configv1.Infrastructure{ + Status: configv1.InfrastructureStatus{ + Platform: configv1.EquinixMetalPlatformType, + }, + }, + expected: configv1.EquinixMetalPlatformType, }} for _, test := range tests { @@ -140,6 +148,9 @@ func TestGetImagesFromJSONFile(t *testing.T) { if img.ClusterAPIControllerKubevirt != expectedKubevirtImage { t.Errorf("failed getImagesFromJSONFile. Expected: %s, got: %s", expectedKubevirtImage, img.ClusterAPIControllerKubevirt) } + if img.ClusterAPIControllerEquinixMetal != expectedEquinixMetalImage { + t.Errorf("failed getImagesFromJSONFile. Expected: %s, got: %s", expectedEquinixMetalImage, img.ClusterAPIControllerEquinixMetal) + } } func TestGetProviderControllerFromImages(t *testing.T) { @@ -190,6 +201,10 @@ func TestGetProviderControllerFromImages(t *testing.T) { provider: configv1.KubevirtPlatformType, expectedImage: expectedKubevirtImage, }, + { + provider: configv1.EquinixMetalPlatformType, + expectedImage: expectedEquinixMetalImage, + }, } img, err := getImagesFromJSONFile(imagesJSONFile) @@ -252,6 +267,10 @@ func TestGetTerminationHandlerFromImages(t *testing.T) { provider: configv1.OvirtPlatformType, expectedImage: clusterAPIControllerNoOp, }, + { + provider: configv1.EquinixMetalPlatformType, + expectedImage: clusterAPIControllerNoOp, + }, } img, err := getImagesFromJSONFile(imagesJSONFile) diff --git a/pkg/operator/fixtures/images.json b/pkg/operator/fixtures/images.json index da3addcbac..790e02b425 100644 --- a/pkg/operator/fixtures/images.json +++ b/pkg/operator/fixtures/images.json @@ -7,6 +7,7 @@ "clusterAPIControllerAzure": "quay.io/openshift/origin-azure-machine-controllers:v4.0.0", "clusterAPIControllerGCP": "quay.io/openshift/origin-gcp-machine-controllers:v4.0.0", "clusterAPIControllerOvirt": "quay.io/openshift/origin-ovirt-machine-controllers", + "clusterAPIControllerEquinixMetal": "quay.io/openshift/origin-equinix-metal-machine-controllers", "clusterAPIControllerVSphere": "docker.io/openshift/origin-machine-api-operator:v4.0.0", "clusterAPIControllerKubevirt": "quay.io/openshift/origin-kubevirt-machine-controllers", "kubeRBACProxy": "docker.io/openshift/origin-kube-rbac-proxy:v4.0.0" diff --git a/pkg/operator/operator_test.go b/pkg/operator/operator_test.go index 80c1e93fff..9b0328bd71 100644 --- a/pkg/operator/operator_test.go +++ b/pkg/operator/operator_test.go @@ -129,6 +129,10 @@ func TestOperatorSync_NoOp(t *testing.T) { platform: openshiftv1.OvirtPlatformType, expectedNoop: false, }, + { + platform: openshiftv1.EquinixMetalPlatformType, + expectedNoop: false, + }, { platform: openshiftv1.NonePlatformType, expectedNoop: true, @@ -454,6 +458,24 @@ func TestMAOConfigFromInfrastructure(t *testing.T) { }, }, }, + { + name: string(openshiftv1.EquinixMetalPlatformType), + platform: openshiftv1.EquinixMetalPlatformType, + infra: infra, + proxy: proxy, + expectedConfig: &OperatorConfig{ + TargetNamespace: targetNamespace, + Proxy: proxy, + Controllers: Controllers{ + Provider: images.ClusterAPIControllerEquinixMetal, + MachineSet: images.MachineAPIOperator, + NodeLink: images.MachineAPIOperator, + MachineHealthCheck: images.MachineAPIOperator, + TerminationHandler: clusterAPIControllerNoOp, + KubeRBACProxy: images.KubeRBACProxy, + }, + }, + }, { name: string(openshiftv1.NonePlatformType), platform: openshiftv1.NonePlatformType, diff --git a/vendor/github.com/openshift/api/Dockerfile.build b/vendor/github.com/openshift/api/Dockerfile.build index 8a89d3fcb7..31bd92380b 100644 --- a/vendor/github.com/openshift/api/Dockerfile.build +++ b/vendor/github.com/openshift/api/Dockerfile.build @@ -1,4 +1,4 @@ -FROM fedora:33 +FROM fedora:latest ENV GOPATH=/go ENV PATH=/go/bin:$PATH diff --git a/vendor/github.com/openshift/api/Makefile b/vendor/github.com/openshift/api/Makefile index 309b1959ba..eec4a84f2e 100644 --- a/vendor/github.com/openshift/api/Makefile +++ b/vendor/github.com/openshift/api/Makefile @@ -23,6 +23,7 @@ $(call add-crd-gen,authorization,./authorization/v1,./authorization/v1,./authori $(call add-crd-gen,config,./config/v1,./config/v1,./config/v1) $(call add-crd-gen,helm,./helm/v1beta1,./helm/v1beta1,./helm/v1beta1) $(call add-crd-gen,console,./console/v1,./console/v1,./console/v1) +$(call add-crd-gen,console-alpha,./console/v1alpha1,./console/v1alpha1,./console/v1alpha1) $(call add-crd-gen,imageregistry,./imageregistry/v1,./imageregistry/v1,./imageregistry/v1) $(call add-crd-gen,operator,./operator/v1,./operator/v1,./operator/v1) $(call add-crd-gen,operator-alpha,./operator/v1alpha1,./operator/v1alpha1,./operator/v1alpha1) diff --git a/vendor/github.com/openshift/api/build/v1/generated.pb.go b/vendor/github.com/openshift/api/build/v1/generated.pb.go index 59d48e5938..d993535fae 100644 --- a/vendor/github.com/openshift/api/build/v1/generated.pb.go +++ b/vendor/github.com/openshift/api/build/v1/generated.pb.go @@ -1637,15 +1637,15 @@ func init() { } var fileDescriptor_2ba579f6f004cb75 = []byte{ - // 4087 bytes of a gzipped FileDescriptorProto + // 4110 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5b, 0x4d, 0x6c, 0x1c, 0xc9, 0x75, 0x56, 0xcf, 0x0c, 0xc9, 0x99, 0x37, 0x14, 0x45, 0x16, 0xa5, 0xd5, 0x48, 0x96, 0x39, 0xda, - 0xde, 0xec, 0x42, 0x9b, 0xdd, 0x1d, 0x9a, 0xb2, 0xa4, 0xc8, 0x36, 0xe2, 0x80, 0x43, 0x52, 0x5a, - 0xca, 0x23, 0x89, 0xa8, 0xe1, 0x6a, 0x37, 0x5e, 0xc1, 0x49, 0xb3, 0xa7, 0x66, 0xd8, 0xcb, 0x99, - 0xee, 0xde, 0xae, 0x1e, 0xee, 0xd2, 0x40, 0x80, 0x45, 0x00, 0x23, 0xb0, 0x7d, 0x89, 0x2f, 0x46, - 0x92, 0x4b, 0x12, 0x04, 0x39, 0xe5, 0x94, 0x43, 0x00, 0x03, 0xbe, 0x04, 0x88, 0x0f, 0x7b, 0x70, - 0x00, 0x07, 0xc9, 0x61, 0x81, 0x18, 0x83, 0xec, 0xe4, 0x90, 0x5b, 0x80, 0x5c, 0x75, 0x08, 0x82, - 0xfa, 0xe9, 0xee, 0xaa, 0x9e, 0x26, 0xd5, 0x43, 0xc9, 0xca, 0x26, 0xbe, 0x71, 0xde, 0xcf, 0xf7, + 0xde, 0xec, 0x42, 0x9b, 0xdd, 0x1d, 0x9a, 0xb2, 0xa4, 0xc8, 0x6b, 0xc4, 0x01, 0x87, 0xa4, 0xb4, + 0x94, 0x47, 0x12, 0x51, 0xc3, 0xd5, 0x6e, 0xbc, 0x82, 0x93, 0x66, 0x4f, 0xcd, 0xb0, 0x97, 0x33, + 0xdd, 0xbd, 0x5d, 0x3d, 0xdc, 0xa5, 0x81, 0x00, 0x8b, 0x00, 0x46, 0x62, 0xfb, 0x12, 0x5f, 0x8c, + 0x24, 0x97, 0x24, 0x08, 0x72, 0xca, 0x29, 0x87, 0x00, 0x06, 0x7c, 0x09, 0x10, 0x1f, 0xf6, 0x90, + 0x00, 0x0e, 0x92, 0xc3, 0x02, 0x31, 0x06, 0xd9, 0xc9, 0x21, 0xb7, 0x00, 0xb9, 0xea, 0x10, 0x04, + 0xf5, 0xd3, 0xdd, 0x55, 0x3d, 0x4d, 0xaa, 0x87, 0x92, 0x15, 0x27, 0xbe, 0x71, 0xde, 0xcf, 0xf7, 0xaa, 0xab, 0x5e, 0xbd, 0x7a, 0xef, 0x55, 0x11, 0xd6, 0x7a, 0x4e, 0xb8, 0x3f, 0xdc, 0x6b, 0xd8, 0xde, 0x60, 0xd5, 0xf3, 0x89, 0x4b, 0xf7, 0x9d, 0x6e, 0xb8, 0x6a, 0xf9, 0xce, 0xea, 0xde, 0xd0, 0xe9, 0x77, 0x56, 0x0f, 0xd7, 0x56, 0x7b, 0xc4, 0x25, 0x81, 0x15, 0x92, 0x4e, 0xc3, 0x0f, 0xbc, @@ -1654,11 +1654,11 @@ var fileDescriptor_2ba579f6f004cb75 = []byte{ 0xe0, 0x7f, 0x09, 0xc4, 0xcb, 0xe6, 0xc1, 0x6d, 0xda, 0x70, 0x3c, 0x6e, 0xd6, 0xf6, 0x02, 0x92, 0x61, 0xf5, 0xf2, 0x8d, 0x44, 0x66, 0x60, 0xd9, 0xfb, 0x8e, 0x4b, 0x82, 0xa3, 0x55, 0xff, 0xa0, 0xc7, 0x08, 0x74, 0x75, 0x40, 0x42, 0x2b, 0x4b, 0xeb, 0xd6, 0x71, 0x5a, 0xc1, 0xd0, 0x0d, 0x9d, - 0x01, 0x59, 0xa5, 0xf6, 0x3e, 0x19, 0x58, 0x69, 0x3d, 0xf3, 0xef, 0x4b, 0x70, 0xa9, 0xe9, 0xb8, - 0x56, 0x70, 0xd4, 0x64, 0xdf, 0x84, 0xc9, 0x87, 0x43, 0x42, 0xc3, 0x87, 0x7e, 0xe8, 0x78, 0x2e, - 0x45, 0xbf, 0x0f, 0x65, 0x66, 0xb0, 0x63, 0x85, 0x56, 0xcd, 0xb8, 0x6a, 0x5c, 0xab, 0x5e, 0xff, + 0x01, 0x59, 0xa5, 0xf6, 0x3e, 0x19, 0x58, 0x69, 0x3d, 0xf3, 0xef, 0x4a, 0x70, 0xa9, 0xe9, 0xb8, + 0x56, 0x70, 0xd4, 0x64, 0xdf, 0x84, 0xc9, 0x47, 0x43, 0x42, 0xc3, 0x87, 0x7e, 0xe8, 0x78, 0x2e, + 0x45, 0xbf, 0x0b, 0x65, 0x66, 0xb0, 0x63, 0x85, 0x56, 0xcd, 0xb8, 0x6a, 0x5c, 0xab, 0x5e, 0xff, 0x4a, 0x43, 0x18, 0x6a, 0xa8, 0x86, 0x1a, 0xfe, 0x41, 0x8f, 0x11, 0x68, 0x83, 0x49, 0x37, 0x0e, - 0xd7, 0x1a, 0x0f, 0xf7, 0x3e, 0x20, 0x76, 0x78, 0x9f, 0x84, 0x56, 0x13, 0x7d, 0x3a, 0xaa, 0x9f, + 0xd7, 0x1a, 0x0f, 0xf7, 0x3e, 0x24, 0x76, 0x78, 0x9f, 0x84, 0x56, 0x13, 0x7d, 0x36, 0xaa, 0x9f, 0x19, 0x8f, 0xea, 0x90, 0xd0, 0x70, 0x8c, 0x8a, 0x5e, 0x83, 0x59, 0x8b, 0xde, 0x71, 0xfa, 0xa4, 0x56, 0xb8, 0x6a, 0x5c, 0xab, 0x34, 0x17, 0xa4, 0xf4, 0xec, 0x3a, 0xa7, 0x62, 0xc9, 0x45, 0xb7, 0x60, 0x21, 0x20, 0x87, 0x0e, 0x75, 0x3c, 0x77, 0xc3, 0x1b, 0x0c, 0x9c, 0xb0, 0x56, 0xd4, 0xe5, @@ -1666,79 +1666,79 @@ var fileDescriptor_2ba579f6f004cb75 = []byte{ 0xe2, 0x8a, 0xe7, 0xa4, 0xe2, 0x9c, 0x24, 0xe3, 0xb4, 0x1c, 0x6a, 0x02, 0x8a, 0x48, 0xeb, 0xc3, 0x70, 0xdf, 0x0b, 0x1e, 0x58, 0x03, 0x52, 0x9b, 0xe1, 0xda, 0xf1, 0x47, 0x25, 0x1c, 0x9c, 0x21, 0x8d, 0xb6, 0x60, 0x59, 0xa7, 0x6e, 0x0d, 0x2c, 0xa7, 0x5f, 0x9b, 0xe5, 0x20, 0xcb, 0x12, 0xa4, - 0xaa, 0xb0, 0x70, 0x96, 0x3c, 0xfa, 0x16, 0x5c, 0xd0, 0xbf, 0x2b, 0x24, 0x62, 0x34, 0x73, 0x1c, + 0xaa, 0xb0, 0x70, 0x96, 0x3c, 0xfa, 0x26, 0x5c, 0xd0, 0xbf, 0x2b, 0x24, 0x62, 0x34, 0x73, 0x1c, 0xe8, 0x82, 0x04, 0x3a, 0xab, 0x31, 0x71, 0xb6, 0x0e, 0x7a, 0x00, 0x2f, 0x4d, 0x30, 0xc4, 0xb0, - 0xca, 0x1c, 0xed, 0x25, 0x89, 0xb6, 0xa0, 0x73, 0xf1, 0x31, 0x5a, 0xe6, 0x37, 0x60, 0x49, 0xf1, - 0xa0, 0xb6, 0x37, 0x0c, 0x6c, 0xa2, 0xac, 0xab, 0x71, 0xd2, 0xba, 0x9a, 0x3f, 0x30, 0xe0, 0x42, - 0xd3, 0x09, 0xf7, 0x86, 0xf6, 0x01, 0x09, 0xdf, 0x25, 0x7b, 0x6f, 0x7b, 0xde, 0xc1, 0x86, 0x35, - 0xa4, 0x04, 0x7d, 0x08, 0x60, 0x7b, 0x83, 0x81, 0xe7, 0xb6, 0x7d, 0x62, 0x4b, 0xef, 0xbb, 0xd9, + 0xca, 0x1c, 0xed, 0x25, 0x89, 0xb6, 0xa0, 0x73, 0xf1, 0x31, 0x5a, 0xe6, 0xd7, 0x61, 0x49, 0xf1, + 0xa0, 0xb6, 0x37, 0x0c, 0x6c, 0xa2, 0xac, 0xab, 0x71, 0xd2, 0xba, 0x9a, 0xdf, 0x37, 0xe0, 0x42, + 0xd3, 0x09, 0xf7, 0x86, 0xf6, 0x01, 0x09, 0xdf, 0x23, 0x7b, 0xef, 0x78, 0xde, 0xc1, 0x86, 0x35, + 0xa4, 0x04, 0x7d, 0x04, 0x60, 0x7b, 0x83, 0x81, 0xe7, 0xb6, 0x7d, 0x62, 0x4b, 0xef, 0xbb, 0xd9, 0x78, 0xea, 0x96, 0x6c, 0x6c, 0x70, 0x25, 0x15, 0xaa, 0x79, 0x59, 0x1a, 0x47, 0x93, 0x3c, 0xac, - 0x18, 0x31, 0x7f, 0x54, 0x80, 0x19, 0xfe, 0x11, 0x2f, 0xc0, 0xf1, 0x1f, 0x40, 0x89, 0xb2, 0x0f, + 0x18, 0x31, 0x7f, 0x58, 0x80, 0x19, 0xfe, 0x11, 0x2f, 0xc0, 0xf1, 0x1f, 0x40, 0x89, 0xb2, 0x0f, 0x2b, 0x70, 0xf4, 0x37, 0x73, 0x7c, 0x98, 0x98, 0x5e, 0x9f, 0xd8, 0xcd, 0x79, 0x89, 0x5c, 0x62, 0xbf, 0x30, 0xc7, 0x41, 0x8f, 0x60, 0x96, 0x86, 0x56, 0x38, 0xa4, 0x7c, 0x63, 0x54, 0xaf, 0x37, 0x72, 0x23, 0x72, 0xad, 0x64, 0x81, 0xc4, 0x6f, 0x2c, 0xd1, 0xcc, 0x7f, 0x2c, 0xc2, 0x02, 0x97, 0xdb, 0xf0, 0xdc, 0x8e, 0xc3, 0xc2, 0x02, 0xba, 0x05, 0xa5, 0xf0, 0xc8, 0x8f, 0x56, 0xd6, 0x8c, 0x06, 0xb3, 0x7b, 0xe4, 0x93, 0x27, 0xa3, 0x3a, 0xd2, 0xa5, 0x19, 0x15, 0x73, 0x79, 0xd4, 0x8a, 0x87, 0x28, 0xf6, 0xfa, 0x0d, 0xdd, 0xe4, 0x93, 0x51, 0x3d, 0x23, 0x3e, 0x36, 0x62, 0x24, 0x7d, - 0x60, 0xe8, 0x03, 0x58, 0xe8, 0x5b, 0x34, 0x7c, 0xc7, 0xef, 0x58, 0x21, 0xd9, 0x75, 0x06, 0x84, - 0xef, 0xaa, 0xea, 0xf5, 0xdf, 0xcc, 0xb7, 0x50, 0x4c, 0x23, 0x71, 0xf5, 0x96, 0x86, 0x84, 0x53, + 0x60, 0xe8, 0x43, 0x58, 0xe8, 0x5b, 0x34, 0x7c, 0xd7, 0xef, 0x58, 0x21, 0xd9, 0x75, 0x06, 0x84, + 0xef, 0xaa, 0xea, 0xf5, 0x5f, 0xcf, 0xb7, 0x50, 0x4c, 0x23, 0x71, 0xf5, 0x96, 0x86, 0x84, 0x53, 0xc8, 0xe8, 0x10, 0x10, 0xa3, 0xec, 0x06, 0x96, 0x4b, 0xc5, 0x57, 0x31, 0x7b, 0xc5, 0xa9, 0xed, 0xc5, 0x8e, 0xd8, 0x9a, 0x40, 0xc3, 0x19, 0x16, 0xd8, 0x2e, 0x0a, 0x88, 0x45, 0x3d, 0x57, 0x06, 0xad, 0x78, 0x91, 0x30, 0xa7, 0x62, 0xc9, 0x45, 0xaf, 0xc3, 0xdc, 0x40, 0x46, 0xb7, 0x99, 0xec, - 0xe8, 0x16, 0xf1, 0xcd, 0xbf, 0x2a, 0x40, 0x35, 0x5a, 0xa1, 0xae, 0xd3, 0x7b, 0x01, 0x9e, 0xbe, + 0xe8, 0x16, 0xf1, 0xcd, 0xbf, 0x2c, 0x40, 0x35, 0x5a, 0xa1, 0xae, 0xd3, 0x7b, 0x01, 0x9e, 0xbe, 0xab, 0x79, 0xfa, 0xf5, 0xbc, 0x7e, 0x29, 0xc6, 0x77, 0xac, 0xbf, 0x3f, 0x4e, 0xf9, 0xfb, 0x8d, - 0x29, 0x71, 0x4f, 0xf6, 0xfa, 0x9f, 0x19, 0x70, 0x4e, 0x91, 0x6e, 0x39, 0x34, 0x44, 0x8f, 0x27, + 0x29, 0x71, 0x4f, 0xf6, 0xfa, 0x9f, 0x1a, 0x70, 0x4e, 0x91, 0x6e, 0x39, 0x34, 0x44, 0x8f, 0x27, 0x66, 0xaa, 0x91, 0x6f, 0xa6, 0x98, 0x36, 0x9f, 0xa7, 0x45, 0x69, 0xad, 0x1c, 0x51, 0x94, 0x59, 0x6a, 0xc3, 0x8c, 0x13, 0x92, 0x01, 0xdb, 0x1b, 0xc5, 0x69, 0xb6, 0xaf, 0x18, 0x60, 0xf3, 0xac, - 0x84, 0x9e, 0xd9, 0x66, 0x20, 0x58, 0x60, 0x99, 0xbf, 0x2c, 0x6a, 0x9f, 0xc1, 0xa6, 0x0f, 0xd9, + 0x84, 0x9e, 0xd9, 0x66, 0x20, 0x58, 0x60, 0x99, 0x3f, 0x2f, 0x6a, 0x9f, 0xc1, 0xa6, 0x0f, 0xd9, 0x50, 0x0e, 0x03, 0xa7, 0xd7, 0x23, 0x01, 0xad, 0x19, 0xdc, 0xd6, 0xcd, 0xbc, 0xb6, 0x76, 0x85, 0xde, 0x8e, 0xd7, 0x77, 0xec, 0xa3, 0xe4, 0x6b, 0x24, 0x99, 0xe2, 0x18, 0x18, 0xad, 0x43, 0x25, 0x18, 0xba, 0x42, 0x50, 0xee, 0xf6, 0x57, 0xa4, 0x78, 0x05, 0x47, 0x8c, 0x27, 0xa3, 0xba, 0x08, 0x2d, 0x31, 0x05, 0x27, 0x5a, 0xc8, 0xd2, 0xe2, 0xbf, 0x58, 0xe4, 0xb7, 0x72, 0xc7, 0x7f, 0xee, 0x37, 0xb1, 0x5f, 0x26, 0x34, 0x35, 0xde, 0xa3, 0x0e, 0x5c, 0xa1, 0x43, 0xdb, 0x26, 0x94, 0x76, - 0x87, 0x7d, 0x3e, 0x12, 0xfa, 0xb6, 0x43, 0x43, 0x2f, 0x38, 0x6a, 0x39, 0x2c, 0xc5, 0x60, 0x9b, - 0x6e, 0xa6, 0x79, 0x75, 0x3c, 0xaa, 0x5f, 0x69, 0x9f, 0x20, 0x87, 0x4f, 0x44, 0x41, 0xef, 0x41, + 0x87, 0x7d, 0x3e, 0x12, 0xfa, 0x8e, 0x43, 0x43, 0x2f, 0x38, 0x6a, 0x39, 0x2c, 0xc5, 0x60, 0x9b, + 0x6e, 0xa6, 0x79, 0x75, 0x3c, 0xaa, 0x5f, 0x69, 0x9f, 0x20, 0x87, 0x4f, 0x44, 0x41, 0xef, 0x43, 0xad, 0x6b, 0x39, 0x7d, 0xd2, 0xc9, 0xb0, 0x30, 0xc3, 0x2d, 0x5c, 0x19, 0x8f, 0xea, 0xb5, 0x3b, 0xc7, 0xc8, 0xe0, 0x63, 0xb5, 0xcd, 0x7b, 0xb0, 0x34, 0xe1, 0xd2, 0xe8, 0x26, 0x54, 0x59, 0x24, 0x79, 0x44, 0x02, 0x76, 0x56, 0x73, 0x4f, 0x2d, 0x26, 0xa9, 0x46, 0x2b, 0x61, 0x61, 0x55, 0xce, - 0xfc, 0x89, 0x01, 0x15, 0x0e, 0xf6, 0x02, 0x7c, 0xfd, 0xbe, 0xee, 0xeb, 0xd7, 0xf2, 0xfa, 0xdf, + 0xfc, 0xb1, 0x01, 0x15, 0x0e, 0xf6, 0x02, 0x7c, 0xfd, 0xbe, 0xee, 0xeb, 0xd7, 0xf2, 0xfa, 0xdf, 0x31, 0x5e, 0x0e, 0x50, 0x16, 0x23, 0xf7, 0x7a, 0xe6, 0x7f, 0x95, 0xa4, 0xc7, 0xb7, 0xbc, 0x5e, 0x94, 0xc5, 0xae, 0x42, 0xc5, 0xf6, 0xdc, 0xd0, 0x62, 0x43, 0x96, 0x87, 0xd6, 0x52, 0xe4, 0x8c, - 0x1b, 0x11, 0x03, 0x27, 0x32, 0x2c, 0xec, 0x76, 0xbd, 0x7e, 0xdf, 0xfb, 0x88, 0xbb, 0x6e, 0x39, + 0x1b, 0x11, 0x03, 0x27, 0x32, 0x2c, 0xec, 0x76, 0xbd, 0x7e, 0xdf, 0xfb, 0x98, 0xbb, 0x6e, 0x39, 0x89, 0x12, 0x77, 0x38, 0x15, 0x4b, 0x2e, 0x7a, 0x13, 0xca, 0x3e, 0x4b, 0x8a, 0x3c, 0x19, 0x85, 0xca, 0xc9, 0x57, 0xef, 0x48, 0x3a, 0x8e, 0x25, 0xd0, 0x0d, 0x98, 0xa7, 0x8e, 0x6b, 0x93, 0x36, 0xb1, 0x3d, 0xb7, 0x43, 0xb9, 0x77, 0x15, 0x9b, 0x8b, 0xe3, 0x51, 0x7d, 0xbe, 0xad, 0xd0, 0xb1, - 0x26, 0x85, 0xde, 0x85, 0x0a, 0xff, 0xcd, 0x4f, 0x9c, 0x99, 0xa9, 0x4f, 0x9c, 0xb3, 0xec, 0x23, + 0x26, 0x85, 0xde, 0x83, 0x0a, 0xff, 0xcd, 0x4f, 0x9c, 0x99, 0xa9, 0x4f, 0x9c, 0xb3, 0xec, 0x23, 0xdb, 0x11, 0x00, 0x4e, 0xb0, 0xd0, 0x75, 0x00, 0x56, 0x18, 0xd0, 0xd0, 0x1a, 0xf8, 0x94, 0x9f, 0x9d, 0xe5, 0x64, 0xc3, 0xec, 0xc6, 0x1c, 0xac, 0x48, 0xa1, 0x37, 0xa0, 0x12, 0x5a, 0x4e, 0xbf, 0xe5, 0xb8, 0x84, 0xf2, 0xdc, 0xb3, 0x28, 0x0c, 0xec, 0x46, 0x44, 0x9c, 0xf0, 0x51, 0x03, 0xa0, 0xcf, 0xdc, 0xb4, 0x79, 0x14, 0x12, 0xca, 0x73, 0xcb, 0x62, 0x73, 0x81, 0x81, 0xb7, 0x62, 0x2a, - 0x56, 0x24, 0xd8, 0xac, 0xbb, 0xde, 0x47, 0x96, 0x13, 0xd6, 0x2a, 0xfa, 0xac, 0x3f, 0xf0, 0xde, - 0xb5, 0x9c, 0x10, 0x4b, 0x2e, 0x7a, 0x15, 0xe6, 0x0e, 0xa5, 0x73, 0x03, 0x07, 0xad, 0xb2, 0x83, + 0x56, 0x24, 0xd8, 0xac, 0xbb, 0xde, 0xc7, 0x96, 0x13, 0xd6, 0x2a, 0xfa, 0xac, 0x3f, 0xf0, 0xde, + 0xb3, 0x9c, 0x10, 0x4b, 0x2e, 0x7a, 0x15, 0xe6, 0x0e, 0xa5, 0x73, 0x03, 0x07, 0xad, 0xb2, 0x83, 0x2e, 0x72, 0xea, 0x88, 0x87, 0xf6, 0xe1, 0x8a, 0xe3, 0x52, 0x62, 0x0f, 0x03, 0xd2, 0x3e, 0x70, 0xfc, 0xdd, 0x56, 0xfb, 0x11, 0x09, 0x9c, 0xee, 0x51, 0xd3, 0xb2, 0x0f, 0x88, 0xdb, 0xa9, 0x55, - 0xb9, 0x91, 0xdf, 0x90, 0x46, 0xae, 0x6c, 0x9f, 0x20, 0x8b, 0x4f, 0x44, 0x32, 0x7f, 0x10, 0x1d, - 0xa9, 0x0f, 0x87, 0xa1, 0x3f, 0x0c, 0xd1, 0x37, 0xa0, 0x10, 0x7a, 0x72, 0xdb, 0xbc, 0xa2, 0xac, + 0xb9, 0x91, 0x5f, 0x93, 0x46, 0xae, 0x6c, 0x9f, 0x20, 0x8b, 0x4f, 0x44, 0x32, 0xbf, 0x1f, 0x1d, + 0xa9, 0x0f, 0x87, 0xa1, 0x3f, 0x0c, 0xd1, 0xd7, 0xa1, 0x10, 0x7a, 0x72, 0xdb, 0xbc, 0xa2, 0xac, 0x55, 0x83, 0xa5, 0x34, 0xc9, 0xd1, 0x89, 0x49, 0x97, 0x04, 0xc4, 0xb5, 0x49, 0x73, 0x76, 0x3c, - 0xaa, 0x17, 0x76, 0x3d, 0x5c, 0x08, 0x3d, 0xf4, 0x1e, 0x80, 0x3f, 0xa4, 0xfb, 0x6d, 0x62, 0x07, + 0xaa, 0x17, 0x76, 0x3d, 0x5c, 0x08, 0x3d, 0xf4, 0x3e, 0x80, 0x3f, 0xa4, 0xfb, 0x6d, 0x62, 0x07, 0x24, 0x94, 0x67, 0xe6, 0xb5, 0x2c, 0x90, 0x96, 0x67, 0x5b, 0xfd, 0x34, 0x12, 0x9f, 0xdf, 0x9d, 0x58, 0x1f, 0x2b, 0x58, 0xa8, 0x03, 0x55, 0x67, 0x60, 0xf5, 0x48, 0xcb, 0xda, 0x23, 0x7d, 0xe6, - 0xb0, 0xc5, 0x9c, 0x11, 0x75, 0x3b, 0xd6, 0x4a, 0xe2, 0x48, 0x42, 0xa3, 0x58, 0x85, 0x35, 0xff, - 0xd0, 0x80, 0x65, 0x3e, 0x19, 0x3b, 0x1e, 0x0d, 0x45, 0xa5, 0xc0, 0x63, 0xed, 0xab, 0x30, 0xc7, + 0xb0, 0xc5, 0x9c, 0x11, 0x75, 0x3b, 0xd6, 0x4a, 0xe2, 0x48, 0x42, 0xa3, 0x58, 0x85, 0x35, 0x7f, + 0xdf, 0x80, 0x65, 0x3e, 0x19, 0x3b, 0x1e, 0x0d, 0x45, 0xa5, 0xc0, 0x63, 0xed, 0xab, 0x30, 0xc7, 0x22, 0xaf, 0xe5, 0x76, 0xf8, 0xa9, 0x53, 0x11, 0xab, 0xb6, 0x21, 0x48, 0x38, 0xe2, 0xa1, 0x2b, 0x50, 0xb2, 0x82, 0x9e, 0x88, 0x0c, 0x95, 0x66, 0x99, 0x1d, 0xfa, 0xeb, 0x41, 0x8f, 0x62, 0x4e, - 0x65, 0x2e, 0x42, 0xed, 0xc0, 0xf1, 0x27, 0xaa, 0xbf, 0x36, 0xa7, 0x62, 0xc9, 0x35, 0x7f, 0x36, - 0x07, 0xf3, 0x6a, 0x3d, 0xfb, 0x02, 0xb2, 0x9c, 0xf7, 0xa1, 0x1c, 0xd5, 0x47, 0x72, 0xd5, 0xd6, + 0x65, 0x2e, 0x42, 0xed, 0xc0, 0xf1, 0x27, 0xaa, 0xbf, 0x36, 0xa7, 0x62, 0xc9, 0x35, 0x7f, 0x3a, + 0x07, 0xf3, 0x6a, 0x3d, 0xfb, 0x02, 0xb2, 0x9c, 0x0f, 0xa0, 0x1c, 0xd5, 0x47, 0x72, 0xd5, 0xd6, 0x72, 0x4c, 0xad, 0xa8, 0x96, 0xb0, 0x54, 0x6c, 0xce, 0xb3, 0xd0, 0x11, 0xfd, 0xc2, 0x31, 0x20, 0x22, 0xb0, 0x28, 0x8f, 0x56, 0xd2, 0x69, 0x1e, 0xf1, 0xb9, 0x97, 0x27, 0x62, 0x2e, 0xff, 0x3a, 0x3f, 0x1e, 0xd5, 0x17, 0x77, 0x53, 0x00, 0x78, 0x02, 0x12, 0xad, 0x43, 0xa9, 0x1b, 0x78, 0x03, - 0x1e, 0x99, 0x72, 0x42, 0xf3, 0x15, 0xba, 0x13, 0x78, 0x03, 0xcc, 0x55, 0xd1, 0x7b, 0x30, 0xbb, + 0x1e, 0x99, 0x72, 0x42, 0xf3, 0x15, 0xba, 0x13, 0x78, 0x03, 0xcc, 0x55, 0xd1, 0xfb, 0x30, 0xbb, 0xc7, 0x8b, 0x41, 0x19, 0xab, 0x72, 0xa5, 0x65, 0xe9, 0xea, 0xb1, 0x09, 0x6c, 0x4d, 0x05, 0x19, 0x4b, 0x3c, 0xb4, 0xa6, 0x9f, 0x6b, 0xb3, 0x7c, 0xeb, 0x9f, 0x3b, 0xe9, 0x4c, 0x43, 0x5f, 0x83, 0x22, 0x71, 0x0f, 0x6b, 0x73, 0xdc, 0xd3, 0x2f, 0x67, 0x7d, 0xce, 0x96, 0x7b, 0xf8, 0xc8, 0x0a, 0x9a, 0x55, 0xb9, 0xb4, 0xc5, 0x2d, 0xf7, 0x10, 0x33, 0x1d, 0x74, 0x00, 0x55, 0x65, 0x7a, 0x6a, 0x65, 0x0e, 0x71, 0x63, 0xca, 0x44, 0x49, 0x54, 0x9f, 0xf1, 0x9e, 0x51, 0x56, 0x00, 0xab, 0xe8, - 0xe8, 0xfb, 0x06, 0x5c, 0xe8, 0x78, 0xf6, 0x01, 0x09, 0xda, 0x61, 0x60, 0x85, 0xa4, 0x77, 0x24, + 0xe8, 0x7b, 0x06, 0x5c, 0xe8, 0x78, 0xf6, 0x01, 0x09, 0xda, 0x61, 0x60, 0x85, 0xa4, 0x77, 0x24, 0x8f, 0x2e, 0x1e, 0x09, 0xab, 0xd7, 0x6f, 0xe7, 0xb0, 0xbb, 0x99, 0xa5, 0xdf, 0xbc, 0x34, 0x1e, 0xd5, 0x2f, 0x64, 0xb2, 0x70, 0xb6, 0x45, 0x3e, 0x16, 0xca, 0x57, 0x21, 0x3d, 0x16, 0xc8, 0x3d, 0x96, 0x76, 0x96, 0xbe, 0x18, 0x4b, 0x26, 0x0b, 0x67, 0x5b, 0x34, 0xff, 0x65, 0x46, 0x06, 0x56, @@ -1747,13 +1747,13 @@ var fileDescriptor_2ba579f6f004cb75 = []byte{ 0x20, 0x36, 0x63, 0x2a, 0x56, 0x24, 0x50, 0x0b, 0x8a, 0x3d, 0x99, 0x55, 0xe6, 0x8b, 0x0e, 0x77, 0x9d, 0x50, 0x1d, 0xc3, 0x1c, 0xf3, 0xd0, 0xbb, 0x4e, 0x88, 0x19, 0x0c, 0x2b, 0xf8, 0x79, 0xdc, 0xa5, 0xb5, 0x99, 0xdc, 0x15, 0x03, 0xdf, 0xe6, 0x12, 0x2d, 0x8e, 0x9d, 0x9c, 0x48, 0xb1, 0x44, - 0x63, 0x79, 0x01, 0xcb, 0x84, 0xc8, 0xc7, 0xe1, 0xa6, 0x13, 0xc8, 0x4e, 0x95, 0x92, 0x48, 0x47, - 0x1c, 0xac, 0x48, 0xa1, 0xef, 0xc0, 0xbc, 0x5c, 0x41, 0x71, 0x6c, 0xcd, 0x4d, 0x79, 0x6c, 0x89, - 0x24, 0x48, 0x41, 0xc0, 0x1a, 0x1e, 0xfa, 0x3d, 0x98, 0xa3, 0xfc, 0x2f, 0x3a, 0xc5, 0x4e, 0x14, + 0x63, 0x79, 0x01, 0xcb, 0x84, 0xc8, 0x27, 0xe1, 0xa6, 0x13, 0xc8, 0x4e, 0x95, 0x92, 0x48, 0x47, + 0x1c, 0xac, 0x48, 0xa1, 0x6f, 0xc3, 0xbc, 0x5c, 0x41, 0x71, 0x6c, 0xcd, 0x4d, 0x79, 0x6c, 0x89, + 0x24, 0x48, 0x41, 0xc0, 0x1a, 0x1e, 0xfa, 0x1d, 0x98, 0xa3, 0xfc, 0x2f, 0x3a, 0xc5, 0x4e, 0x14, 0xba, 0xea, 0x04, 0xc6, 0x55, 0xb1, 0x60, 0x51, 0x1c, 0xa1, 0xa2, 0x03, 0xfe, 0xd1, 0x5d, 0xa7, - 0x77, 0xdf, 0xf2, 0xd9, 0xae, 0x63, 0x36, 0x7e, 0x2b, 0x57, 0xb1, 0x21, 0x95, 0x54, 0x33, 0xea, + 0x77, 0xdf, 0xf2, 0xd9, 0xae, 0x63, 0x36, 0x7e, 0x23, 0x57, 0xb1, 0x21, 0x95, 0x54, 0x33, 0xea, 0x6c, 0x49, 0x48, 0xac, 0xc0, 0x9b, 0xff, 0x1a, 0xa5, 0xda, 0xfc, 0x60, 0xb4, 0x32, 0xfa, 0x5c, - 0xcf, 0xb9, 0xce, 0x49, 0x05, 0xb3, 0xc2, 0xaf, 0x32, 0x98, 0x99, 0xff, 0x39, 0x17, 0x6d, 0x5a, + 0xcf, 0xb9, 0xce, 0x49, 0x05, 0xb3, 0xc2, 0x2f, 0x32, 0x98, 0x99, 0xff, 0x39, 0x17, 0x6d, 0x5a, 0x51, 0x8f, 0xac, 0xc1, 0x8c, 0xbf, 0x6f, 0xd1, 0x68, 0xd7, 0x7e, 0x29, 0x4a, 0xe1, 0x77, 0x18, 0xf1, 0xc9, 0xa8, 0x0e, 0x22, 0x5b, 0x60, 0xbf, 0xb0, 0x90, 0xe4, 0x09, 0xbb, 0xe5, 0xda, 0xa4, 0xdf, 0x27, 0x1d, 0x99, 0x82, 0x27, 0x09, 0x7b, 0xc4, 0xc0, 0x89, 0x0c, 0xba, 0x15, 0xf7, 0x49, @@ -1761,7 +1761,7 @@ var fileDescriptor_2ba579f6f004cb75 = []byte{ 0xe4, 0xbe, 0x09, 0xea, 0xc2, 0x02, 0x0d, 0xad, 0x20, 0x8c, 0x33, 0xe3, 0x53, 0x24, 0xe3, 0x68, 0x3c, 0xaa, 0x2f, 0xb4, 0x35, 0x14, 0x9c, 0x42, 0x45, 0x43, 0x58, 0xb6, 0xbd, 0x81, 0xdf, 0x27, 0x51, 0x13, 0x48, 0x18, 0x9b, 0xbe, 0xb7, 0x75, 0x71, 0x3c, 0xaa, 0x2f, 0x6f, 0x4c, 0x42, 0xe1, - 0x2c, 0x7c, 0xf4, 0xdb, 0x50, 0xee, 0x0c, 0x03, 0x8b, 0x11, 0x65, 0x62, 0xff, 0x72, 0x54, 0xca, + 0x2c, 0x7c, 0xf4, 0x9b, 0x50, 0xee, 0x0c, 0x03, 0x8b, 0x11, 0x65, 0x62, 0xff, 0x72, 0x54, 0xca, 0x6c, 0x4a, 0xfa, 0x93, 0x51, 0xfd, 0x2c, 0xab, 0x05, 0x1a, 0x11, 0x01, 0xc7, 0x2a, 0x68, 0x0f, 0x2e, 0x7b, 0x3c, 0xf9, 0x15, 0xa1, 0x4f, 0x24, 0x18, 0xd1, 0xf6, 0x96, 0x7d, 0xe5, 0xa8, 0x51, 0x78, 0xf9, 0xe1, 0xb1, 0x92, 0xf8, 0x04, 0x14, 0x74, 0x17, 0x66, 0xc5, 0x26, 0x92, 0xa7, 0x62, @@ -1773,127 +1773,128 @@ var fileDescriptor_2ba579f6f004cb75 = []byte{ 0xd6, 0xce, 0xf2, 0xd1, 0xac, 0x4d, 0xd1, 0x57, 0x12, 0x9a, 0x5a, 0x38, 0x93, 0x60, 0x58, 0x01, 0x36, 0x6d, 0xd9, 0x85, 0x50, 0x67, 0x07, 0x3d, 0x50, 0x6a, 0xa0, 0x5b, 0xa7, 0x99, 0xdf, 0x5d, 0x4f, 0x2d, 0x8b, 0xcc, 0x96, 0xac, 0x2a, 0x74, 0x11, 0x74, 0x53, 0xd6, 0x34, 0x9b, 0x4e, 0x8f, - 0xd0, 0x50, 0x86, 0x18, 0xbd, 0x48, 0x11, 0x2c, 0xac, 0xca, 0x99, 0x3f, 0x2d, 0xc1, 0x59, 0x09, + 0xd0, 0x50, 0x86, 0x18, 0xbd, 0x48, 0x11, 0x2c, 0xac, 0xca, 0x99, 0x3f, 0x29, 0xc1, 0x59, 0x09, 0x27, 0x32, 0x0e, 0x74, 0x53, 0x4b, 0x2d, 0x5e, 0x4e, 0xa5, 0x16, 0x4b, 0x9a, 0xb0, 0x92, 0x5c, 0x04, 0xb0, 0xa0, 0xa7, 0x51, 0x32, 0xc9, 0xb8, 0x95, 0x3b, 0x63, 0xd3, 0x90, 0x45, 0x84, 0xd0, 0xf3, 0x35, 0x9c, 0xb2, 0xc0, 0x6c, 0xea, 0xe9, 0x92, 0x2c, 0x05, 0x6e, 0xe5, 0xce, 0xcc, 0x32, 0x6c, 0xea, 0x79, 0x19, 0x4e, 0x59, 0x60, 0x36, 0xed, 0x21, 0x0d, 0xbd, 0x41, 0x6c, 0xb3, 0x94, - 0xdb, 0xe6, 0x06, 0x57, 0xcc, 0xb0, 0xb9, 0xa1, 0x21, 0xe2, 0x94, 0x05, 0xf4, 0x63, 0x03, 0x2e, - 0x7e, 0x40, 0xdc, 0x03, 0xc7, 0xa5, 0x3b, 0x8e, 0x4f, 0xfa, 0x8e, 0x9b, 0x7c, 0xb1, 0x88, 0xbd, - 0xbf, 0x93, 0xc3, 0xfa, 0x3d, 0x1d, 0x41, 0x1f, 0xc6, 0x97, 0xc6, 0xa3, 0xfa, 0xc5, 0x7b, 0xd9, - 0x36, 0xf0, 0x71, 0xc6, 0xcd, 0xef, 0xcd, 0x48, 0x8f, 0x57, 0x4f, 0x46, 0xf5, 0x2c, 0x31, 0x9e, + 0xdb, 0xe6, 0x06, 0x57, 0xcc, 0xb0, 0xb9, 0xa1, 0x21, 0xe2, 0x94, 0x05, 0xf4, 0x23, 0x03, 0x2e, + 0x7e, 0x48, 0xdc, 0x03, 0xc7, 0xa5, 0x3b, 0x8e, 0x4f, 0xfa, 0x8e, 0x9b, 0x7c, 0xb1, 0x88, 0xbd, + 0xbf, 0x95, 0xc3, 0xfa, 0x3d, 0x1d, 0x41, 0x1f, 0xc6, 0x97, 0xc6, 0xa3, 0xfa, 0xc5, 0x7b, 0xd9, + 0x36, 0xf0, 0x71, 0xc6, 0xcd, 0xef, 0xce, 0x48, 0x8f, 0x57, 0x4f, 0x46, 0xf5, 0x2c, 0x31, 0x9e, 0x72, 0x96, 0x04, 0xb0, 0xc0, 0xef, 0x61, 0x1d, 0x5b, 0x5e, 0x45, 0x4d, 0xe1, 0x35, 0x77, 0x35, 0x45, 0x71, 0x28, 0xf3, 0xd9, 0xd4, 0x19, 0x38, 0x65, 0x01, 0xb9, 0x70, 0x56, 0x80, 0x47, 0x26, - 0x8b, 0xb9, 0x6f, 0xd4, 0xee, 0x3a, 0xe1, 0xdb, 0xb1, 0x9e, 0xb0, 0xb8, 0x34, 0x1e, 0xd5, 0xcf, + 0x8b, 0xb9, 0x6f, 0xd4, 0xee, 0x3a, 0xe1, 0x3b, 0xb1, 0x9e, 0xb0, 0xb8, 0x34, 0x1e, 0xd5, 0xcf, 0x6a, 0x74, 0xac, 0xc3, 0xa3, 0x21, 0x2c, 0xf2, 0x1d, 0xb7, 0xb1, 0x6f, 0xb9, 0x3d, 0x31, 0xed, 0xd2, 0x67, 0xbe, 0x9a, 0x37, 0x51, 0x15, 0xaa, 0xc2, 0x20, 0x2f, 0x61, 0xb7, 0x53, 0x80, 0x78, 0xc2, 0x84, 0xfc, 0xcc, 0xbe, 0x15, 0x7f, 0xe6, 0xcc, 0x34, 0x9f, 0xd9, 0xb2, 0xb2, 0x3f, 0x33, - 0xa1, 0x63, 0x1d, 0x1e, 0x7d, 0x17, 0x16, 0xf7, 0x52, 0xd7, 0x97, 0xf2, 0xac, 0xbe, 0x9d, 0xab, - 0xce, 0xc8, 0xb8, 0xf9, 0x14, 0xdf, 0x9a, 0x66, 0xe1, 0x09, 0x3b, 0xe6, 0x4f, 0x4a, 0x80, 0x26, + 0xa1, 0x63, 0x1d, 0x1e, 0x7d, 0x07, 0x16, 0xf7, 0x52, 0xd7, 0x97, 0xf2, 0xac, 0xbe, 0x9d, 0xab, + 0xce, 0xc8, 0xb8, 0xf9, 0x14, 0xdf, 0x9a, 0x66, 0xe1, 0x09, 0x3b, 0xe6, 0x8f, 0x4b, 0x80, 0x26, 0xfb, 0xf2, 0xe8, 0x86, 0x16, 0xca, 0xae, 0xa6, 0x42, 0xd9, 0xa2, 0xaa, 0xa1, 0x44, 0xb2, 0xc7, 0x30, 0x2b, 0xc6, 0x3b, 0x45, 0xf7, 0x42, 0x0e, 0x44, 0x82, 0x65, 0x39, 0x85, 0xc4, 0x64, 0x09, 0xbc, 0xf4, 0x47, 0xe9, 0x77, 0xa7, 0x80, 0xcf, 0xf2, 0xf2, 0x08, 0x15, 0xed, 0xcb, 0x83, 0x40, 0xf8, 0x82, 0xf4, 0xb4, 0x9b, 0xd3, 0x79, 0x5a, 0x64, 0xe8, 0x5c, 0x7c, 0x76, 0x08, 0x3a, 0x56, 0xa1, 0xe5, 0x44, 0xf5, 0xad, 0x3d, 0xe9, 0x5a, 0xcf, 0x30, 0x51, 0x8a, 0x5b, 0x49, 0x4c, 0x44, - 0xa0, 0x12, 0xaf, 0xb3, 0x74, 0xa4, 0x53, 0x18, 0xc8, 0xf6, 0xa0, 0x04, 0xd9, 0xfc, 0xf9, 0x2c, - 0x28, 0xc5, 0x02, 0xfa, 0x26, 0x2c, 0x50, 0x12, 0x1c, 0x3a, 0x36, 0x59, 0xb7, 0x6d, 0x6f, 0xe8, - 0x46, 0x27, 0x69, 0x7c, 0x3f, 0xda, 0xd6, 0xb8, 0x38, 0x25, 0xcd, 0x2f, 0x9f, 0xf9, 0x81, 0x21, - 0x9d, 0x27, 0xff, 0xe5, 0x73, 0xaa, 0x16, 0x95, 0xfd, 0x30, 0x89, 0xa6, 0x35, 0xd5, 0x8a, 0xcf, - 0xbb, 0xa9, 0xf6, 0x1d, 0x28, 0x53, 0xfd, 0x34, 0xfb, 0x4a, 0xfe, 0x44, 0x45, 0x1e, 0x20, 0x71, - 0xbf, 0x3f, 0x3e, 0x35, 0x62, 0x4c, 0x36, 0x29, 0x32, 0xcd, 0x9c, 0x99, 0x6e, 0x52, 0x9e, 0x92, - 0x60, 0xfe, 0x2e, 0x54, 0x02, 0x22, 0x26, 0x88, 0x4a, 0x17, 0xc9, 0xac, 0xb4, 0xb1, 0x14, 0xc2, - 0xe4, 0xc3, 0xa1, 0x13, 0x90, 0x01, 0x71, 0x43, 0x9a, 0xd4, 0x51, 0x11, 0x97, 0xe2, 0x04, 0x0d, - 0x7d, 0x00, 0xe0, 0xc7, 0x6d, 0x5b, 0x59, 0xc5, 0xe7, 0xce, 0xde, 0xf4, 0x86, 0x6f, 0x92, 0x36, - 0x26, 0x74, 0xac, 0xa0, 0xa3, 0xf7, 0xe1, 0x52, 0x52, 0x88, 0x6c, 0x12, 0xab, 0xc3, 0xcf, 0x58, - 0x79, 0x37, 0x22, 0x6e, 0x0b, 0xbe, 0x3c, 0x1e, 0xd5, 0x2f, 0x6d, 0x1c, 0x27, 0x84, 0x8f, 0xd7, - 0x47, 0x03, 0x98, 0x77, 0xbd, 0x0e, 0x69, 0x93, 0x3e, 0xb1, 0x43, 0x2f, 0x90, 0x15, 0x43, 0x9e, - 0x8a, 0x5e, 0xf4, 0x9e, 0xac, 0xfe, 0x03, 0x45, 0x5d, 0xf4, 0x27, 0x54, 0x0a, 0xd6, 0xe0, 0xcd, - 0x3f, 0x35, 0x20, 0xe3, 0x6d, 0x89, 0xe6, 0xbe, 0xc6, 0xf3, 0x76, 0xdf, 0xd7, 0x60, 0x96, 0x26, - 0x97, 0x04, 0x6a, 0x2f, 0x5c, 0x74, 0x50, 0x24, 0xd7, 0xfc, 0x5b, 0x03, 0xce, 0x67, 0xb5, 0x29, - 0x98, 0x1f, 0xc5, 0x4d, 0x09, 0x39, 0xbc, 0xfc, 0x1d, 0x1b, 0xf5, 0x02, 0x4d, 0x40, 0xe0, 0x04, - 0x8d, 0xc5, 0x93, 0x0e, 0xa1, 0xa1, 0xe3, 0xf2, 0xea, 0x70, 0xd3, 0x09, 0xe4, 0x18, 0xe3, 0x78, - 0xb2, 0xa9, 0x71, 0x71, 0x4a, 0xda, 0xfc, 0x61, 0x09, 0x96, 0x33, 0xd2, 0x46, 0xb4, 0x25, 0x1b, - 0xd4, 0x53, 0xdc, 0xad, 0xc4, 0x6f, 0x07, 0xb4, 0x26, 0x35, 0xf8, 0xc3, 0x7e, 0xff, 0xd9, 0xee, - 0x58, 0x22, 0x7d, 0xac, 0x60, 0x45, 0x1d, 0xe7, 0xe2, 0x29, 0x3a, 0xce, 0xf7, 0x00, 0x91, 0x8f, - 0x7d, 0x8f, 0x12, 0x99, 0xfe, 0x7b, 0xfc, 0x08, 0x28, 0xf1, 0xee, 0x47, 0xfc, 0x6e, 0x64, 0x6b, - 0x42, 0x02, 0x67, 0x68, 0xa1, 0x55, 0xa8, 0x74, 0xbd, 0xc0, 0x26, 0x6c, 0x94, 0x3c, 0xfa, 0x28, - 0x0d, 0x94, 0x3b, 0x11, 0x03, 0x27, 0x32, 0xe8, 0xbd, 0xa4, 0xc1, 0x36, 0x9b, 0xfb, 0x5e, 0x48, - 0x7c, 0x33, 0xdf, 0xec, 0xc7, 0x77, 0xd6, 0xd6, 0xe1, 0x1c, 0x57, 0x58, 0xdf, 0xd9, 0x8e, 0x5a, - 0xf7, 0xe2, 0xd1, 0xda, 0x45, 0xa9, 0x22, 0xda, 0xb6, 0x09, 0x1b, 0xa7, 0xe5, 0xcd, 0x4f, 0x4b, - 0xb0, 0x9c, 0x51, 0x2c, 0xc5, 0xd7, 0x15, 0xc6, 0xb3, 0x5c, 0x57, 0xfc, 0xaa, 0x3c, 0xe1, 0x75, - 0x98, 0x73, 0xbd, 0x0d, 0xcb, 0xde, 0x27, 0xf2, 0x6a, 0x38, 0x9e, 0xa2, 0x07, 0x82, 0x8c, 0x23, - 0x7e, 0xe4, 0x34, 0xa5, 0x53, 0x38, 0xcd, 0xd4, 0x0b, 0xfd, 0xcd, 0xa8, 0x60, 0xed, 0x3a, 0x7d, - 0xb2, 0x63, 0x85, 0xfb, 0xb2, 0xc3, 0x9b, 0xec, 0x4c, 0x8d, 0x8b, 0x53, 0xd2, 0xe8, 0x5b, 0x50, - 0x11, 0xcb, 0x13, 0xf4, 0x68, 0x8e, 0x8b, 0x95, 0x78, 0x30, 0xcd, 0x48, 0x09, 0x27, 0xfa, 0xc8, - 0x87, 0x8b, 0x3c, 0xb3, 0x62, 0x31, 0x77, 0xe0, 0x7c, 0x97, 0x6f, 0x7f, 0xf9, 0x66, 0x44, 0xb4, - 0x8c, 0x6e, 0xb1, 0xfa, 0x6c, 0x3b, 0x5b, 0xe4, 0xc9, 0xf1, 0x2c, 0x7c, 0x1c, 0xac, 0xf9, 0x43, - 0x03, 0xb2, 0xaf, 0x43, 0xf4, 0x0f, 0x33, 0x9e, 0xf1, 0xc3, 0x5e, 0x4d, 0x16, 0x5f, 0xb4, 0x2f, - 0xab, 0x59, 0x0b, 0x6f, 0xfe, 0x99, 0x01, 0xcb, 0x19, 0xf5, 0xdc, 0x17, 0xe3, 0xdc, 0xf8, 0xac, - 0x90, 0x1e, 0xdc, 0xd6, 0x21, 0x71, 0xc3, 0xd3, 0x5d, 0xc2, 0x6c, 0x89, 0xab, 0x8f, 0x82, 0xec, - 0x62, 0xe6, 0x2a, 0xc6, 0x78, 0x3f, 0x4c, 0xbf, 0xf3, 0x78, 0x86, 0xf0, 0x7a, 0xfc, 0x1d, 0x5b, - 0xe9, 0x45, 0xdf, 0xb1, 0x99, 0x7f, 0x67, 0xc0, 0x82, 0x7e, 0xb7, 0x83, 0xbe, 0x0c, 0xc5, 0x61, - 0xe0, 0xc8, 0x49, 0x8d, 0x47, 0xff, 0x0e, 0xde, 0xc6, 0x8c, 0xce, 0xd8, 0x01, 0xe9, 0xca, 0x15, - 0x8b, 0xd9, 0x98, 0x74, 0x31, 0xa3, 0x23, 0x02, 0x55, 0x3f, 0xf0, 0x3e, 0x3e, 0x12, 0x87, 0xf1, - 0x14, 0x2f, 0x40, 0x77, 0x12, 0xad, 0xa4, 0x6d, 0xa6, 0x10, 0xb1, 0x8a, 0xcb, 0xd3, 0x9c, 0xc9, - 0x66, 0xc0, 0x17, 0xc3, 0x5d, 0x7f, 0x5e, 0x80, 0x39, 0xe9, 0x34, 0xe8, 0x43, 0x58, 0xe8, 0x69, - 0xd3, 0x3b, 0xc5, 0xb0, 0x52, 0x77, 0x6e, 0x71, 0x5c, 0xd4, 0xe9, 0x38, 0x65, 0x00, 0xfd, 0x01, - 0x2c, 0xf5, 0x9c, 0x50, 0xff, 0xa6, 0x29, 0x2e, 0x1c, 0xef, 0xa6, 0x75, 0x9b, 0x97, 0xa4, 0xe1, - 0xa5, 0x09, 0x16, 0x9e, 0xb4, 0x84, 0x1e, 0x42, 0x29, 0x20, 0xdd, 0x69, 0x1e, 0x75, 0xb0, 0x3d, - 0x45, 0xba, 0x7c, 0x8f, 0xc5, 0x29, 0x12, 0x26, 0x5d, 0x8a, 0x39, 0x90, 0xf9, 0x47, 0x62, 0xa9, - 0x53, 0x0d, 0x91, 0xff, 0x8d, 0x47, 0xd9, 0xff, 0x6d, 0x00, 0x24, 0x83, 0xfd, 0xf5, 0x5b, 0x5b, - 0xf3, 0x6f, 0x0a, 0x30, 0x29, 0xc8, 0xf6, 0x85, 0x2d, 0xca, 0x34, 0x23, 0xf3, 0x1f, 0x21, 0x24, - 0x17, 0x3d, 0x86, 0x59, 0x8b, 0xff, 0x27, 0xc1, 0x14, 0x23, 0x16, 0xa6, 0x36, 0x3c, 0x37, 0x0c, - 0xbc, 0xfe, 0x3b, 0x94, 0x04, 0xca, 0xf3, 0x7d, 0x8e, 0x85, 0x25, 0x26, 0x22, 0xac, 0x86, 0x90, - 0xff, 0x0d, 0x30, 0xc5, 0x43, 0xdc, 0x49, 0x03, 0x4a, 0x3d, 0x21, 0xe1, 0x70, 0x82, 0x3c, 0xc5, - 0x3d, 0x9d, 0xf9, 0x7d, 0x03, 0x16, 0xd3, 0xdd, 0x43, 0xa6, 0xcf, 0x33, 0x82, 0xed, 0xcd, 0x74, - 0x6f, 0x76, 0x5b, 0x90, 0x71, 0xc4, 0x47, 0xf7, 0x60, 0x8e, 0x65, 0x86, 0x58, 0x46, 0xdb, 0x9c, - 0x79, 0x25, 0x3f, 0xdf, 0xef, 0x08, 0x3d, 0x1c, 0x01, 0x98, 0xff, 0x64, 0x00, 0x9a, 0xec, 0x2f, - 0xa1, 0x1d, 0x38, 0x2f, 0xde, 0x7a, 0xcb, 0x4b, 0xd3, 0x6d, 0x6d, 0x68, 0x57, 0xe4, 0xd0, 0xce, - 0xb7, 0x32, 0x64, 0x70, 0xa6, 0x66, 0x9c, 0x09, 0x17, 0x4e, 0x9f, 0x09, 0xbf, 0x06, 0xb3, 0x3e, - 0x9b, 0xab, 0x8e, 0x4c, 0x57, 0xe3, 0x15, 0xdf, 0xe1, 0x54, 0x2c, 0xb9, 0x66, 0x1b, 0x20, 0x79, - 0xfb, 0x85, 0xae, 0x42, 0xc9, 0xb5, 0x06, 0x51, 0x32, 0x10, 0x07, 0x12, 0xfe, 0xef, 0x27, 0x9c, - 0x83, 0x5e, 0x81, 0x99, 0x43, 0xab, 0x3f, 0x8c, 0xfe, 0xbf, 0x27, 0x7e, 0xc1, 0xf9, 0x88, 0x11, - 0xb1, 0xe0, 0x99, 0x7f, 0x5e, 0x80, 0xaa, 0xf2, 0x36, 0xe1, 0x79, 0xd5, 0x79, 0x2f, 0x41, 0xc1, - 0xa2, 0x3c, 0xaf, 0xae, 0x88, 0xcb, 0xa4, 0x75, 0x8a, 0x0b, 0x16, 0x45, 0xef, 0xc2, 0x8c, 0x6f, - 0x85, 0xfb, 0xd1, 0xfb, 0xd3, 0xeb, 0xd3, 0xbd, 0x9c, 0x60, 0x79, 0x70, 0xf2, 0x1d, 0xec, 0x17, - 0xc5, 0x02, 0x2f, 0x55, 0x4e, 0x14, 0x9f, 0x5f, 0x39, 0x61, 0x7e, 0xcf, 0x80, 0x73, 0xa9, 0x31, - 0xa0, 0xeb, 0x00, 0x34, 0xfe, 0x25, 0x97, 0x20, 0xee, 0xba, 0x24, 0x72, 0x58, 0x91, 0x7a, 0xe6, - 0xca, 0xfc, 0x9f, 0x0d, 0xb8, 0x72, 0xd2, 0x95, 0x0a, 0xab, 0xf7, 0xe4, 0xbd, 0x49, 0x5c, 0x61, - 0x18, 0x7a, 0xbd, 0x77, 0x4f, 0x67, 0xe3, 0xb4, 0x3c, 0xba, 0x09, 0x55, 0x85, 0x24, 0x07, 0x18, - 0x67, 0x27, 0x8a, 0x3a, 0x56, 0xe5, 0x9e, 0x21, 0x39, 0x34, 0xff, 0xc1, 0x80, 0xf3, 0x59, 0x8d, - 0x1f, 0xd4, 0x8b, 0x5e, 0x2a, 0x8b, 0x8a, 0xa0, 0x79, 0xca, 0x06, 0x52, 0x83, 0xbf, 0x57, 0xde, - 0x72, 0xc3, 0xe0, 0x28, 0xfb, 0x0d, 0xf3, 0xe5, 0xdb, 0x00, 0x89, 0x0c, 0x5a, 0x84, 0xe2, 0x01, - 0x39, 0x12, 0x13, 0x87, 0xd9, 0x9f, 0xe8, 0xbc, 0xb6, 0x8d, 0xe4, 0xbe, 0xf9, 0x7a, 0xe1, 0xb6, - 0xf1, 0xf5, 0xf2, 0x9f, 0xfc, 0x45, 0xfd, 0xcc, 0x27, 0xbf, 0xbc, 0x7a, 0xc6, 0xfc, 0x91, 0x01, - 0x6a, 0xee, 0x86, 0xde, 0x80, 0xca, 0x7e, 0x18, 0xfa, 0x9c, 0x24, 0x1f, 0x46, 0xf0, 0xd7, 0xba, - 0x6f, 0xef, 0xee, 0xee, 0x70, 0x22, 0x4e, 0xf8, 0xa8, 0x01, 0xc0, 0x7e, 0x50, 0x21, 0x5d, 0x4a, - 0x1e, 0x33, 0x31, 0xe9, 0xb6, 0x10, 0x57, 0x24, 0x44, 0x89, 0x23, 0x84, 0xc5, 0xbf, 0x9c, 0xc8, - 0x12, 0x47, 0x48, 0x46, 0x3c, 0xf3, 0xaf, 0x0d, 0x58, 0x9a, 0x78, 0x88, 0x83, 0x76, 0xe2, 0xa4, - 0x6e, 0xda, 0xbe, 0xd3, 0x31, 0xe9, 0xdf, 0x33, 0xfb, 0xf5, 0x6d, 0x38, 0x2f, 0x10, 0xb9, 0xd5, - 0xe4, 0xd1, 0xc1, 0x53, 0x03, 0x9c, 0xf9, 0x97, 0x06, 0x40, 0xd2, 0x09, 0x41, 0x7b, 0x30, 0x2f, - 0x86, 0xa4, 0x65, 0x27, 0xf9, 0x3f, 0xf0, 0xbc, 0x34, 0x31, 0xdf, 0x56, 0x50, 0xb0, 0x86, 0xc9, - 0xaa, 0xfe, 0x81, 0x37, 0x74, 0x43, 0xbe, 0xbb, 0x0a, 0xfa, 0x83, 0xf6, 0xfb, 0x11, 0x03, 0x27, - 0x32, 0xe6, 0x27, 0x45, 0x58, 0xce, 0xb8, 0xfa, 0xfd, 0x7f, 0xdd, 0x4f, 0x7b, 0x1d, 0xe6, 0xc4, - 0x6b, 0x60, 0x9a, 0xce, 0x19, 0xc4, 0x63, 0x61, 0x8a, 0x23, 0x3e, 0x5a, 0x83, 0xaa, 0xe3, 0xda, - 0xa2, 0x45, 0x6e, 0x45, 0x7d, 0x14, 0x71, 0x0b, 0x94, 0x90, 0xb1, 0x2a, 0xa3, 0x37, 0x5e, 0x66, - 0x9f, 0xde, 0x78, 0x31, 0xbf, 0x0d, 0x4b, 0x13, 0x59, 0x4f, 0xbe, 0xe3, 0x93, 0xf0, 0xff, 0xcd, - 0x4c, 0x1d, 0x9f, 0xe2, 0x5f, 0x32, 0x05, 0xcf, 0xfc, 0xb1, 0x01, 0x0b, 0xa9, 0xf4, 0xf0, 0x54, - 0x55, 0xfa, 0x43, 0xb5, 0x4a, 0x3f, 0x5d, 0x6a, 0xab, 0xd5, 0xeb, 0xe6, 0x3d, 0xc8, 0x7e, 0xf0, - 0x99, 0x9e, 0x71, 0xe3, 0xe9, 0x33, 0x6e, 0xfe, 0xb4, 0x00, 0x95, 0xf8, 0x9d, 0x0c, 0x7a, 0x4b, - 0x9b, 0xb9, 0x4b, 0xea, 0xcc, 0x3d, 0x19, 0xd5, 0x85, 0xa0, 0x32, 0x8d, 0xef, 0x43, 0x25, 0x7e, - 0x67, 0x15, 0x77, 0x21, 0xf2, 0xbf, 0xa5, 0x8a, 0x97, 0x36, 0x7e, 0xbc, 0x85, 0x13, 0x3c, 0x96, - 0xcf, 0x45, 0x0f, 0xa1, 0xee, 0x3b, 0xfd, 0xbe, 0x43, 0xe5, 0x25, 0x46, 0x91, 0x5f, 0x62, 0xc4, - 0xf9, 0xdc, 0x66, 0x86, 0x0c, 0xce, 0xd4, 0x44, 0x3b, 0x30, 0x43, 0x43, 0xe2, 0x53, 0xd9, 0x13, - 0x7c, 0x23, 0xd7, 0x13, 0x22, 0xe2, 0xf3, 0x6a, 0x2e, 0x76, 0x11, 0x46, 0xa1, 0x58, 0x00, 0x99, - 0xff, 0x61, 0x40, 0x39, 0x12, 0x41, 0x6f, 0x6a, 0x93, 0x57, 0x4b, 0x4d, 0x1e, 0x97, 0xfb, 0x3f, - 0x3b, 0x77, 0xe6, 0xc8, 0x80, 0x05, 0xfd, 0x3a, 0x54, 0xe9, 0x21, 0x18, 0x27, 0xf5, 0x10, 0xd0, - 0x9b, 0x50, 0xb6, 0xfa, 0x7d, 0xef, 0xa3, 0x2d, 0xf7, 0x50, 0xf6, 0xed, 0xe2, 0xfb, 0xbd, 0x75, - 0x49, 0xc7, 0xb1, 0x04, 0x3a, 0x84, 0x73, 0x42, 0x2f, 0x79, 0xe8, 0x56, 0xcc, 0x7d, 0xcd, 0x94, - 0x75, 0xd8, 0x34, 0x97, 0x59, 0x7a, 0xd4, 0xd6, 0x31, 0x71, 0xda, 0x48, 0xf3, 0xda, 0xa7, 0x9f, - 0xaf, 0x9c, 0xf9, 0xc5, 0xe7, 0x2b, 0x67, 0x3e, 0xfb, 0x7c, 0xe5, 0xcc, 0x27, 0xe3, 0x15, 0xe3, - 0xd3, 0xf1, 0x8a, 0xf1, 0x8b, 0xf1, 0x8a, 0xf1, 0xd9, 0x78, 0xc5, 0xf8, 0xb7, 0xf1, 0x8a, 0xf1, - 0xc7, 0xff, 0xbe, 0x72, 0xe6, 0xdb, 0x85, 0xc3, 0xb5, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x2b, - 0xec, 0xd9, 0xf8, 0xf4, 0x40, 0x00, 0x00, + 0xa0, 0x12, 0xaf, 0xb3, 0x74, 0xa4, 0x53, 0x18, 0xc8, 0xf6, 0xa0, 0x04, 0xd9, 0xfc, 0xc3, 0x39, + 0x50, 0x8a, 0x05, 0xf4, 0x0d, 0x58, 0xa0, 0x24, 0x38, 0x74, 0x6c, 0xb2, 0x6e, 0xdb, 0xde, 0xd0, + 0x8d, 0x4e, 0xd2, 0xf8, 0x7e, 0xb4, 0xad, 0x71, 0x71, 0x4a, 0x9a, 0x5f, 0x3e, 0xf3, 0x03, 0x43, + 0x3a, 0x4f, 0xfe, 0xcb, 0xe7, 0x54, 0x2d, 0x2a, 0xfb, 0x61, 0x12, 0x4d, 0x6b, 0xaa, 0x15, 0x9f, + 0x77, 0x53, 0xed, 0xdb, 0x50, 0xa6, 0xfa, 0x69, 0xf6, 0x95, 0xfc, 0x89, 0x8a, 0x3c, 0x40, 0xe2, + 0x7e, 0x7f, 0x7c, 0x6a, 0xc4, 0x98, 0x6c, 0x52, 0x64, 0x9a, 0x39, 0x33, 0xdd, 0xa4, 0x3c, 0x25, + 0xc1, 0xfc, 0x6d, 0xa8, 0x04, 0x44, 0x4c, 0x10, 0x95, 0x2e, 0x92, 0x59, 0x69, 0x63, 0x29, 0x84, + 0xc9, 0x47, 0x43, 0x27, 0x20, 0x03, 0xe2, 0x86, 0x34, 0xa9, 0xa3, 0x22, 0x2e, 0xc5, 0x09, 0x1a, + 0xfa, 0x10, 0xc0, 0x8f, 0xdb, 0xb6, 0xb2, 0x8a, 0xcf, 0x9d, 0xbd, 0xe9, 0x0d, 0xdf, 0x24, 0x6d, + 0x4c, 0xe8, 0x58, 0x41, 0x47, 0x1f, 0xc0, 0xa5, 0xa4, 0x10, 0xd9, 0x24, 0x56, 0x87, 0x9f, 0xb1, + 0xf2, 0x6e, 0x44, 0xdc, 0x16, 0x7c, 0x79, 0x3c, 0xaa, 0x5f, 0xda, 0x38, 0x4e, 0x08, 0x1f, 0xaf, + 0x8f, 0x06, 0x30, 0xef, 0x7a, 0x1d, 0xd2, 0x26, 0x7d, 0x62, 0x87, 0x5e, 0x20, 0x2b, 0x86, 0x3c, + 0x15, 0xbd, 0xe8, 0x3d, 0x59, 0xfd, 0x07, 0x8a, 0xba, 0xe8, 0x4f, 0xa8, 0x14, 0xac, 0xc1, 0xa3, + 0xb7, 0x61, 0x61, 0xc0, 0x36, 0xc2, 0x6e, 0x30, 0xa4, 0x21, 0xe9, 0x6c, 0xac, 0xf3, 0xca, 0xa2, + 0x2c, 0x42, 0xd6, 0x7d, 0x8d, 0x83, 0x53, 0x92, 0xe6, 0x9f, 0x18, 0x90, 0xf1, 0x2e, 0x45, 0x73, + 0x7d, 0xe3, 0x79, 0xbb, 0xfe, 0x6b, 0x30, 0x4b, 0x93, 0x0b, 0x06, 0xb5, 0x8f, 0x2e, 0xba, 0x2f, + 0x92, 0x6b, 0xfe, 0x8d, 0x01, 0xe7, 0xb3, 0x5a, 0x1c, 0xcc, 0x07, 0xe3, 0x86, 0x86, 0x1c, 0x5e, + 0xfe, 0x6e, 0x8f, 0x7a, 0xf9, 0x26, 0x20, 0x70, 0x82, 0xc6, 0x62, 0x51, 0x87, 0xd0, 0xd0, 0x71, + 0x79, 0x65, 0xb9, 0xe9, 0x04, 0x72, 0x8c, 0x71, 0x2c, 0xda, 0xd4, 0xb8, 0x38, 0x25, 0x6d, 0xfe, + 0xa0, 0x04, 0xcb, 0x19, 0x29, 0x27, 0xda, 0x92, 0xcd, 0xed, 0x29, 0xee, 0x65, 0xe2, 0x77, 0x07, + 0x5a, 0x83, 0x1b, 0xfc, 0x61, 0xbf, 0xff, 0x6c, 0xf7, 0x33, 0x91, 0x3e, 0x56, 0xb0, 0xa2, 0x6e, + 0x75, 0xf1, 0x14, 0xdd, 0xea, 0x7b, 0x80, 0xc8, 0x27, 0xbe, 0x47, 0x89, 0x2c, 0x1d, 0x3c, 0x7e, + 0x7c, 0x94, 0xb8, 0x0f, 0xc6, 0x6f, 0x4e, 0xb6, 0x26, 0x24, 0x70, 0x86, 0x16, 0x5a, 0x85, 0x4a, + 0xd7, 0x0b, 0x6c, 0xc2, 0x46, 0xc9, 0x23, 0x97, 0xd2, 0x7c, 0xb9, 0x13, 0x31, 0x70, 0x22, 0x83, + 0xde, 0x4f, 0x9a, 0x73, 0xb3, 0xb9, 0xef, 0x94, 0xc4, 0x37, 0xf3, 0x40, 0x71, 0x7c, 0x57, 0x6e, + 0x1d, 0xce, 0x71, 0x85, 0xf5, 0x9d, 0xed, 0xa8, 0xed, 0x2f, 0x1e, 0xbc, 0x5d, 0x94, 0x2a, 0xa2, + 0xe5, 0x9b, 0xb0, 0x71, 0x5a, 0xde, 0xfc, 0xac, 0x04, 0xcb, 0x19, 0x85, 0x56, 0x7c, 0xd5, 0x61, + 0x3c, 0xcb, 0x55, 0xc7, 0x2f, 0xca, 0x13, 0x5e, 0x87, 0x39, 0xd7, 0xdb, 0xb0, 0xec, 0x7d, 0x22, + 0xaf, 0x95, 0xe3, 0x29, 0x7a, 0x20, 0xc8, 0x38, 0xe2, 0x47, 0x4e, 0x53, 0x3a, 0x85, 0xd3, 0x4c, + 0xbd, 0xd0, 0xdf, 0x88, 0x8a, 0xdd, 0xae, 0xd3, 0x27, 0x3b, 0x56, 0xb8, 0x2f, 0xbb, 0xc3, 0xc9, + 0xce, 0xd4, 0xb8, 0x38, 0x25, 0x8d, 0xbe, 0x09, 0x15, 0xb1, 0x3c, 0x41, 0x8f, 0xe6, 0xb8, 0x94, + 0x89, 0x07, 0xd3, 0x8c, 0x94, 0x70, 0xa2, 0x8f, 0x7c, 0xb8, 0xc8, 0xb3, 0x32, 0x16, 0xaf, 0x07, + 0xce, 0x77, 0xf8, 0xf6, 0x97, 0xef, 0x4d, 0x44, 0xbb, 0xe9, 0x16, 0xab, 0xed, 0xb6, 0xb3, 0x45, + 0x9e, 0x1c, 0xcf, 0xc2, 0xc7, 0xc1, 0x9a, 0x3f, 0x30, 0x20, 0xfb, 0x2a, 0x45, 0xff, 0x30, 0xe3, + 0x19, 0x3f, 0xec, 0xd5, 0x64, 0xf1, 0x45, 0xeb, 0xb3, 0x9a, 0xb5, 0xf0, 0xe6, 0x9f, 0x1a, 0xb0, + 0x9c, 0x51, 0x0b, 0xfe, 0x72, 0x9c, 0x1b, 0x9f, 0x17, 0xd2, 0x83, 0xdb, 0x3a, 0x24, 0x6e, 0x78, + 0xba, 0x0b, 0x9c, 0x2d, 0x71, 0x6d, 0x52, 0x90, 0x1d, 0xd0, 0x5c, 0x85, 0x1c, 0xef, 0xa5, 0xe9, + 0xf7, 0x25, 0xcf, 0x10, 0x5e, 0x8f, 0xbf, 0x9f, 0x2b, 0xbd, 0xe8, 0xfb, 0x39, 0xf3, 0x6f, 0x0d, + 0x58, 0xd0, 0xef, 0x85, 0xd0, 0x97, 0xa1, 0x38, 0x0c, 0x1c, 0x39, 0xa9, 0xf1, 0xe8, 0xdf, 0xc5, + 0xdb, 0x98, 0xd1, 0x19, 0x3b, 0x20, 0x5d, 0xb9, 0x62, 0x31, 0x1b, 0x93, 0x2e, 0x66, 0x74, 0x44, + 0xa0, 0xea, 0x07, 0xde, 0x27, 0x47, 0xe2, 0x30, 0x9e, 0xe2, 0xf5, 0xe8, 0x4e, 0xa2, 0x95, 0xb4, + 0xdc, 0x14, 0x22, 0x56, 0x71, 0x79, 0x9a, 0x33, 0xd9, 0x48, 0xf8, 0xe5, 0x70, 0xd7, 0x7f, 0x28, + 0xc0, 0x9c, 0x74, 0x1a, 0xf4, 0x11, 0x2c, 0xf4, 0xb4, 0xe9, 0x9d, 0x62, 0x58, 0xa9, 0xfb, 0xba, + 0x38, 0x2e, 0xea, 0x74, 0x9c, 0x32, 0x80, 0x7e, 0x0f, 0x96, 0x7a, 0x4e, 0xa8, 0x7f, 0xd3, 0x14, + 0x97, 0x95, 0x77, 0xd3, 0xba, 0xcd, 0x4b, 0xd2, 0xf0, 0xd2, 0x04, 0x0b, 0x4f, 0x5a, 0x42, 0x0f, + 0xa1, 0x14, 0x90, 0xee, 0x34, 0x0f, 0x42, 0xd8, 0x9e, 0x22, 0x5d, 0xbe, 0xc7, 0xe2, 0x14, 0x09, + 0x93, 0x2e, 0xc5, 0x1c, 0xc8, 0xfc, 0x03, 0xb1, 0xd4, 0xa9, 0x66, 0xca, 0xff, 0xc6, 0x83, 0xee, + 0xff, 0x36, 0x00, 0x92, 0xc1, 0xfe, 0xea, 0xad, 0xad, 0xf9, 0xd7, 0x05, 0x98, 0x14, 0x64, 0xfb, + 0xc2, 0x16, 0x25, 0x9e, 0x91, 0xf9, 0x4f, 0x14, 0x92, 0x8b, 0x1e, 0xc3, 0xac, 0xc5, 0xff, 0x0b, + 0x61, 0x8a, 0x11, 0x0b, 0x53, 0x1b, 0x9e, 0x1b, 0x06, 0x5e, 0xff, 0x5d, 0x4a, 0x02, 0xe5, 0xe9, + 0x3f, 0xc7, 0xc2, 0x12, 0x13, 0x11, 0x56, 0x43, 0xc8, 0xff, 0x24, 0x98, 0xe2, 0x11, 0xef, 0xa4, + 0x01, 0xa5, 0x9e, 0x90, 0x70, 0x38, 0x41, 0x9e, 0xe2, 0x8e, 0xcf, 0xfc, 0x9e, 0x01, 0x8b, 0xe9, + 0xce, 0x23, 0xd3, 0xe7, 0x19, 0xc1, 0xf6, 0x66, 0xba, 0xaf, 0xbb, 0x2d, 0xc8, 0x38, 0xe2, 0xa3, + 0x7b, 0x30, 0xc7, 0x32, 0x43, 0x2c, 0xa3, 0x6d, 0xce, 0xbc, 0x92, 0x9f, 0xef, 0x77, 0x84, 0x1e, + 0x8e, 0x00, 0xcc, 0x7f, 0x32, 0x00, 0x4d, 0xf6, 0xa6, 0xd0, 0x0e, 0x9c, 0x17, 0xef, 0xc4, 0xe5, + 0x85, 0xeb, 0xb6, 0x36, 0xb4, 0x2b, 0x72, 0x68, 0xe7, 0x5b, 0x19, 0x32, 0x38, 0x53, 0x33, 0xce, + 0x84, 0x0b, 0xa7, 0xcf, 0x84, 0x5f, 0x83, 0x59, 0x9f, 0xcd, 0x55, 0x47, 0xa6, 0xab, 0xf1, 0x8a, + 0xef, 0x70, 0x2a, 0x96, 0x5c, 0xb3, 0x0d, 0x90, 0xbc, 0x1b, 0x43, 0x57, 0xa1, 0xe4, 0x5a, 0x83, + 0x28, 0x19, 0x88, 0x03, 0x09, 0xff, 0xd7, 0x15, 0xce, 0x41, 0xaf, 0xc0, 0xcc, 0xa1, 0xd5, 0x1f, + 0x46, 0xff, 0x1b, 0x14, 0xbf, 0xfe, 0x7c, 0xc4, 0x88, 0x58, 0xf0, 0xcc, 0x3f, 0x2b, 0x40, 0x55, + 0x79, 0xd7, 0xf0, 0xbc, 0xea, 0xbc, 0x97, 0xa0, 0x60, 0x51, 0x9e, 0x57, 0x57, 0xc4, 0x45, 0xd4, + 0x3a, 0xc5, 0x05, 0x8b, 0xa2, 0xf7, 0x60, 0xc6, 0xb7, 0xc2, 0xfd, 0xe8, 0xed, 0xea, 0xf5, 0xe9, + 0x5e, 0x5d, 0xb0, 0x3c, 0x38, 0xf9, 0x0e, 0xf6, 0x8b, 0x62, 0x81, 0x97, 0x2a, 0x27, 0x8a, 0xcf, + 0xaf, 0x9c, 0x30, 0xbf, 0x6b, 0xc0, 0xb9, 0xd4, 0x18, 0xd0, 0x75, 0x00, 0x1a, 0xff, 0x92, 0x4b, + 0x10, 0x77, 0x6c, 0x12, 0x39, 0xac, 0x48, 0x3d, 0x73, 0x65, 0xfe, 0xcf, 0x06, 0x5c, 0x39, 0xe9, + 0x3a, 0x86, 0xd5, 0x7b, 0xf2, 0xce, 0x25, 0xae, 0x30, 0x0c, 0xbd, 0xde, 0xbb, 0xa7, 0xb3, 0x71, + 0x5a, 0x1e, 0xdd, 0x84, 0xaa, 0x42, 0x92, 0x03, 0x8c, 0xb3, 0x13, 0x45, 0x1d, 0xab, 0x72, 0xcf, + 0x90, 0x1c, 0x9a, 0x7f, 0x6f, 0xc0, 0xf9, 0xac, 0xa6, 0x11, 0xea, 0x45, 0xaf, 0x9c, 0x45, 0x45, + 0xd0, 0x3c, 0x65, 0xf3, 0xa9, 0xc1, 0xdf, 0x3a, 0x6f, 0xb9, 0x61, 0x70, 0x94, 0xfd, 0xfe, 0xf9, + 0xf2, 0x6d, 0x80, 0x44, 0x06, 0x2d, 0x42, 0xf1, 0x80, 0x1c, 0x89, 0x89, 0xc3, 0xec, 0x4f, 0x74, + 0x5e, 0xdb, 0x46, 0x72, 0xdf, 0xbc, 0x5d, 0xb8, 0x6d, 0xbc, 0x5d, 0xfe, 0xe3, 0x3f, 0xaf, 0x9f, + 0xf9, 0xf4, 0xe7, 0x57, 0xcf, 0x98, 0x3f, 0x34, 0x40, 0xcd, 0xdd, 0xd0, 0x1b, 0x50, 0xd9, 0x0f, + 0x43, 0x9f, 0x93, 0xe4, 0xa3, 0x0a, 0xfe, 0xd2, 0xf7, 0x9d, 0xdd, 0xdd, 0x1d, 0x4e, 0xc4, 0x09, + 0x1f, 0x35, 0x00, 0xd8, 0x0f, 0x2a, 0xa4, 0x4b, 0xc9, 0x43, 0x28, 0x26, 0xdd, 0x16, 0xe2, 0x8a, + 0x84, 0x28, 0x71, 0x84, 0xb0, 0xf8, 0x77, 0x15, 0x59, 0xe2, 0x08, 0xc9, 0x88, 0x67, 0xfe, 0x95, + 0x01, 0x4b, 0x13, 0x8f, 0x78, 0xd0, 0x4e, 0x9c, 0xd4, 0x4d, 0xdb, 0x77, 0x3a, 0x26, 0xfd, 0x7b, + 0x66, 0xbf, 0xbe, 0x0d, 0xe7, 0x05, 0x22, 0xb7, 0x9a, 0x3c, 0x58, 0x78, 0x6a, 0x80, 0x33, 0xff, + 0xc2, 0x00, 0x48, 0x3a, 0x21, 0x68, 0x0f, 0xe6, 0xc5, 0x90, 0xb4, 0xec, 0x24, 0xff, 0x07, 0x9e, + 0x97, 0x26, 0xe6, 0xdb, 0x0a, 0x0a, 0xd6, 0x30, 0x59, 0xd5, 0xcf, 0x1b, 0x90, 0x7c, 0x77, 0x15, + 0xf4, 0xc7, 0xf0, 0xf7, 0x23, 0x06, 0x4e, 0x64, 0xcc, 0x4f, 0x8b, 0xb0, 0x9c, 0x71, 0x6d, 0xfc, + 0xff, 0xba, 0x9f, 0xf6, 0x3a, 0xcc, 0x89, 0x97, 0xc4, 0x34, 0x9d, 0x33, 0x88, 0x87, 0xc6, 0x14, + 0x47, 0x7c, 0xb4, 0x06, 0x55, 0xc7, 0xb5, 0x45, 0x7b, 0xdd, 0x8a, 0xfa, 0x28, 0xe2, 0x06, 0x29, + 0x21, 0x63, 0x55, 0x46, 0x6f, 0xbc, 0xcc, 0x3e, 0xbd, 0xf1, 0x62, 0x7e, 0x0b, 0x96, 0x26, 0xb2, + 0x9e, 0x7c, 0xc7, 0x27, 0xe1, 0xff, 0xd7, 0x99, 0x3a, 0x3e, 0xc5, 0xbf, 0x73, 0x0a, 0x9e, 0xf9, + 0x23, 0x03, 0x16, 0x52, 0xe9, 0xe1, 0xa9, 0xaa, 0xf4, 0x87, 0x6a, 0x95, 0x7e, 0xba, 0xd4, 0x56, + 0xab, 0xd7, 0xcd, 0x7b, 0x90, 0xfd, 0x58, 0x34, 0x3d, 0xe3, 0xc6, 0xd3, 0x67, 0xdc, 0xfc, 0x49, + 0x01, 0x2a, 0xf1, 0x1b, 0x1b, 0xf4, 0x96, 0x36, 0x73, 0x97, 0xd4, 0x99, 0x7b, 0x32, 0xaa, 0x0b, + 0x41, 0x65, 0x1a, 0x3f, 0x80, 0x4a, 0xfc, 0x46, 0x2b, 0xee, 0x42, 0xe4, 0x7f, 0x87, 0x15, 0x2f, + 0x6d, 0xfc, 0xf0, 0x0b, 0x27, 0x78, 0x2c, 0x9f, 0x8b, 0x1e, 0x51, 0xdd, 0x77, 0xfa, 0x7d, 0x87, + 0xca, 0x0b, 0x90, 0x22, 0xbf, 0x00, 0x89, 0xf3, 0xb9, 0xcd, 0x0c, 0x19, 0x9c, 0xa9, 0x89, 0x76, + 0x60, 0x86, 0x86, 0xc4, 0xa7, 0xb2, 0x27, 0xf8, 0x46, 0xae, 0xe7, 0x47, 0xc4, 0xe7, 0xd5, 0x5c, + 0xec, 0x22, 0x8c, 0x42, 0xb1, 0x00, 0x32, 0xff, 0xc3, 0x80, 0x72, 0x24, 0x82, 0xde, 0xd4, 0x26, + 0xaf, 0x96, 0x9a, 0x3c, 0x2e, 0xf7, 0x7f, 0x76, 0xee, 0xcc, 0x91, 0x01, 0x0b, 0xfa, 0x55, 0xaa, + 0xd2, 0x43, 0x30, 0x4e, 0xea, 0x21, 0xa0, 0x37, 0xa1, 0x6c, 0xf5, 0xfb, 0xde, 0xc7, 0x5b, 0xee, + 0xa1, 0xec, 0xdb, 0xc5, 0x77, 0x83, 0xeb, 0x92, 0x8e, 0x63, 0x09, 0x74, 0x08, 0xe7, 0x84, 0x5e, + 0xf2, 0x48, 0xae, 0x98, 0xfb, 0x8a, 0x2a, 0xeb, 0xb0, 0x69, 0x2e, 0xb3, 0xf4, 0xa8, 0xad, 0x63, + 0xe2, 0xb4, 0x91, 0xe6, 0xb5, 0xcf, 0xbe, 0x58, 0x39, 0xf3, 0xb3, 0x2f, 0x56, 0xce, 0x7c, 0xfe, + 0xc5, 0xca, 0x99, 0x4f, 0xc7, 0x2b, 0xc6, 0x67, 0xe3, 0x15, 0xe3, 0x67, 0xe3, 0x15, 0xe3, 0xf3, + 0xf1, 0x8a, 0xf1, 0x6f, 0xe3, 0x15, 0xe3, 0x8f, 0xfe, 0x7d, 0xe5, 0xcc, 0xb7, 0x0a, 0x87, 0x6b, + 0xff, 0x13, 0x00, 0x00, 0xff, 0xff, 0x00, 0xf3, 0xf9, 0x5d, 0x30, 0x41, 0x00, 0x00, } func (m *BinaryBuildRequestOptions) Marshal() (dAtA []byte, err error) { @@ -3377,6 +3378,16 @@ func (m *CommonSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.MountTrustedCA != nil { + i-- + if *m.MountTrustedCA { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x50 + } if m.NodeSelector != nil { { size, err := m.NodeSelector.MarshalToSizedBuffer(dAtA[:i]) @@ -5525,6 +5536,9 @@ func (m *CommonSpec) Size() (n int) { l = m.NodeSelector.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.MountTrustedCA != nil { + n += 2 + } return n } @@ -6456,6 +6470,7 @@ func (this *CommonSpec) String() string { `PostCommit:` + strings.Replace(strings.Replace(this.PostCommit.String(), "BuildPostCommitSpec", "BuildPostCommitSpec", 1), `&`, ``, 1) + `,`, `CompletionDeadlineSeconds:` + valueToStringGenerated(this.CompletionDeadlineSeconds) + `,`, `NodeSelector:` + strings.Replace(fmt.Sprintf("%v", this.NodeSelector), "OptionalNodeSelector", "OptionalNodeSelector", 1) + `,`, + `MountTrustedCA:` + valueToStringGenerated(this.MountTrustedCA) + `,`, `}`, }, "") return s @@ -11660,6 +11675,27 @@ func (m *CommonSpec) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MountTrustedCA", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.MountTrustedCA = &b default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/vendor/github.com/openshift/api/build/v1/generated.proto b/vendor/github.com/openshift/api/build/v1/generated.proto index cef14d1a31..743f546986 100644 --- a/vendor/github.com/openshift/api/build/v1/generated.proto +++ b/vendor/github.com/openshift/api/build/v1/generated.proto @@ -545,7 +545,31 @@ message BuildTriggerCause { // BuildTriggerPolicy describes a policy for a single trigger that results in a new Build. message BuildTriggerPolicy { - // type is the type of build trigger + // type is the type of build trigger. Valid values: + // + // - GitHub + // GitHubWebHookBuildTriggerType represents a trigger that launches builds on + // GitHub webhook invocations + // + // - Generic + // GenericWebHookBuildTriggerType represents a trigger that launches builds on + // generic webhook invocations + // + // - GitLab + // GitLabWebHookBuildTriggerType represents a trigger that launches builds on + // GitLab webhook invocations + // + // - Bitbucket + // BitbucketWebHookBuildTriggerType represents a trigger that launches builds on + // Bitbucket webhook invocations + // + // - ImageChange + // ImageChangeBuildTriggerType represents a trigger that launches builds on + // availability of a new version of an image + // + // - ConfigChange + // ConfigChangeBuildTriggerType will trigger a build on an initial build config creation + // WARNING: In the future the behavior will change to trigger a build on any config change optional string type = 1; // github contains the parameters for a GitHub webhook type of trigger @@ -604,6 +628,16 @@ message CommonSpec { // are ignored. // +optional optional OptionalNodeSelector nodeSelector = 9; + + // mountTrustedCA bind mounts the cluster's trusted certificate authorities, as defined in + // the cluster's proxy configuration, into the build. This lets processes within a build trust + // components signed by custom PKI certificate authorities, such as private artifact + // repositories and HTTPS proxies. + // + // When this field is set to true, the contents of `/etc/pki/ca-trust` within the build are + // managed by the build container, and any changes to this directory or its subdirectories (for + // example - within a Dockerfile `RUN` instruction) are not persisted in the build's output image. + optional bool mountTrustedCA = 10; } // CommonWebHookCause factors out the identical format of these webhook diff --git a/vendor/github.com/openshift/api/build/v1/types.go b/vendor/github.com/openshift/api/build/v1/types.go index 19bc796c7e..0aac848a62 100644 --- a/vendor/github.com/openshift/api/build/v1/types.go +++ b/vendor/github.com/openshift/api/build/v1/types.go @@ -86,6 +86,16 @@ type CommonSpec struct { // are ignored. // +optional NodeSelector OptionalNodeSelector `json:"nodeSelector" protobuf:"bytes,9,name=nodeSelector"` + + // mountTrustedCA bind mounts the cluster's trusted certificate authorities, as defined in + // the cluster's proxy configuration, into the build. This lets processes within a build trust + // components signed by custom PKI certificate authorities, such as private artifact + // repositories and HTTPS proxies. + // + // When this field is set to true, the contents of `/etc/pki/ca-trust` within the build are + // managed by the build container, and any changes to this directory or its subdirectories (for + // example - within a Dockerfile `RUN` instruction) are not persisted in the build's output image. + MountTrustedCA *bool `json:"mountTrustedCA,omitempty" protobuf:"varint,10,opt,name=mountTrustedCA"` } // BuildTriggerCause holds information about a triggered build. It is used for @@ -1008,7 +1018,31 @@ type ImageChangeTrigger struct { // BuildTriggerPolicy describes a policy for a single trigger that results in a new Build. type BuildTriggerPolicy struct { - // type is the type of build trigger + // type is the type of build trigger. Valid values: + // + // - GitHub + // GitHubWebHookBuildTriggerType represents a trigger that launches builds on + // GitHub webhook invocations + // + // - Generic + // GenericWebHookBuildTriggerType represents a trigger that launches builds on + // generic webhook invocations + // + // - GitLab + // GitLabWebHookBuildTriggerType represents a trigger that launches builds on + // GitLab webhook invocations + // + // - Bitbucket + // BitbucketWebHookBuildTriggerType represents a trigger that launches builds on + // Bitbucket webhook invocations + // + // - ImageChange + // ImageChangeBuildTriggerType represents a trigger that launches builds on + // availability of a new version of an image + // + // - ConfigChange + // ConfigChangeBuildTriggerType will trigger a build on an initial build config creation + // WARNING: In the future the behavior will change to trigger a build on any config change Type BuildTriggerType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=BuildTriggerType"` // github contains the parameters for a GitHub webhook type of trigger diff --git a/vendor/github.com/openshift/api/build/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/build/v1/zz_generated.deepcopy.go index d7e48fae26..6511093073 100644 --- a/vendor/github.com/openshift/api/build/v1/zz_generated.deepcopy.go +++ b/vendor/github.com/openshift/api/build/v1/zz_generated.deepcopy.go @@ -765,6 +765,11 @@ func (in *CommonSpec) DeepCopyInto(out *CommonSpec) { (*out)[key] = val } } + if in.MountTrustedCA != nil { + in, out := &in.MountTrustedCA, &out.MountTrustedCA + *out = new(bool) + **out = **in + } return } diff --git a/vendor/github.com/openshift/api/build/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/build/v1/zz_generated.swagger_doc_generated.go index f54e07222b..d6556b9567 100644 --- a/vendor/github.com/openshift/api/build/v1/zz_generated.swagger_doc_generated.go +++ b/vendor/github.com/openshift/api/build/v1/zz_generated.swagger_doc_generated.go @@ -276,7 +276,7 @@ func (BuildTriggerCause) SwaggerDoc() map[string]string { var map_BuildTriggerPolicy = map[string]string{ "": "BuildTriggerPolicy describes a policy for a single trigger that results in a new Build.", - "type": "type is the type of build trigger", + "type": "type is the type of build trigger. Valid values:\n\n- GitHub GitHubWebHookBuildTriggerType represents a trigger that launches builds on GitHub webhook invocations\n\n- Generic GenericWebHookBuildTriggerType represents a trigger that launches builds on generic webhook invocations\n\n- GitLab GitLabWebHookBuildTriggerType represents a trigger that launches builds on GitLab webhook invocations\n\n- Bitbucket BitbucketWebHookBuildTriggerType represents a trigger that launches builds on Bitbucket webhook invocations\n\n- ImageChange ImageChangeBuildTriggerType represents a trigger that launches builds on availability of a new version of an image\n\n- ConfigChange ConfigChangeBuildTriggerType will trigger a build on an initial build config creation WARNING: In the future the behavior will change to trigger a build on any config change", "github": "github contains the parameters for a GitHub webhook type of trigger", "generic": "generic contains the parameters for a Generic webhook type of trigger", "imageChange": "imageChange contains parameters for an ImageChange type of trigger", @@ -299,6 +299,7 @@ var map_CommonSpec = map[string]string{ "postCommit": "postCommit is a build hook executed after the build output image is committed, before it is pushed to a registry.", "completionDeadlineSeconds": "completionDeadlineSeconds is an optional duration in seconds, counted from the time when a build pod gets scheduled in the system, that the build may be active on a node before the system actively tries to terminate the build; value must be positive integer", "nodeSelector": "nodeSelector is a selector which must be true for the build pod to fit on a node If nil, it can be overridden by default build nodeselector values for the cluster. If set to an empty map or a map with any values, default build nodeselector values are ignored.", + "mountTrustedCA": "mountTrustedCA bind mounts the cluster's trusted certificate authorities, as defined in the cluster's proxy configuration, into the build. This lets processes within a build trust components signed by custom PKI certificate authorities, such as private artifact repositories and HTTPS proxies.\n\nWhen this field is set to true, the contents of `/etc/pki/ca-trust` within the build are managed by the build container, and any changes to this directory or its subdirectories (for example - within a Dockerfile `RUN` instruction) are not persisted in the build's output image.", } func (CommonSpec) SwaggerDoc() map[string]string { diff --git a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_infrastructure.crd.yaml b/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_infrastructure.crd.yaml index ffdb8ea108..212c1e21f5 100644 --- a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_infrastructure.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_infrastructure.crd.yaml @@ -1,4 +1,4 @@ -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: infrastructures.config.openshift.io @@ -14,430 +14,497 @@ spec: plural: infrastructures singular: infrastructure scope: Cluster - preserveUnknownFields: false - subresources: - status: {} versions: - name: v1 served: true storage: true - "validation": - "openAPIV3Schema": - description: Infrastructure holds cluster-wide information about Infrastructure. The - canonical name is `cluster` - type: object - required: - - spec - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: spec holds user settable values for configuration - type: object - properties: - cloudConfig: - description: "cloudConfig is a reference to a ConfigMap containing the - cloud provider configuration file. This configuration file is used - to configure the Kubernetes cloud provider integration when using - the built-in cloud provider integration or the external cloud controller - manager. The namespace for this config map is openshift-config. \n - cloudConfig should only be consumed by the kube_cloud_config controller. - The controller is responsible for using the user configuration in - the spec for various platforms and combining that with the user provided - ConfigMap in this field to create a stitched kube cloud config. The - controller generates a ConfigMap `kube-cloud-config` in `openshift-config-managed` - namespace with the kube cloud config is stored in `cloud.conf` key. - All the clients are expected to use the generated ConfigMap only." - type: object - properties: - key: - description: Key allows pointing to a specific key/value inside - of the configmap. This is useful for logical file references. - type: string - name: - type: string - platformSpec: - description: platformSpec holds desired information specific to the - underlying infrastructure provider. - type: object - properties: - aws: - description: AWS contains settings specific to the Amazon Web Services - infrastructure provider. - type: object - properties: - serviceEndpoints: - description: serviceEndpoints list contains custom endpoints - which will override default service endpoint of AWS Services. - There must be only one ServiceEndpoint for a service. - type: array - items: - description: AWSServiceEndpoint store the configuration of - a custom url to override existing defaults of AWS Services. - type: object - properties: - name: - description: name is the name of the AWS service. The - list of all the service names can be found at https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html - This must be provided and cannot be empty. - type: string - pattern: ^[a-z0-9-]+$ - url: - description: url is fully qualified URI with scheme https, - that overrides the default generated endpoint for a - client. This must be provided and cannot be empty. - type: string - pattern: ^https:// - azure: - description: Azure contains settings specific to the Azure infrastructure - provider. - type: object - baremetal: - description: BareMetal contains settings specific to the BareMetal - platform. - type: object - gcp: - description: GCP contains settings specific to the Google Cloud - Platform infrastructure provider. - type: object - ibmcloud: - description: IBMCloud contains settings specific to the IBMCloud - infrastructure provider. - type: object - kubevirt: - description: Kubevirt contains settings specific to the kubevirt - infrastructure provider. - type: object - openstack: - description: OpenStack contains settings specific to the OpenStack - infrastructure provider. - type: object - ovirt: - description: Ovirt contains settings specific to the oVirt infrastructure - provider. - type: object - type: - description: type is the underlying infrastructure provider for - the cluster. This value controls whether infrastructure automation - such as service load balancers, dynamic volume provisioning, machine - creation and deletion, and other integrations are enabled. If - None, no infrastructure automation is enabled. Allowed values - are "AWS", "Azure", "BareMetal", "GCP", "Libvirt", "OpenStack", - "VSphere", "oVirt", "KubeVirt" and "None". Individual components - may not support all platforms, and must handle unrecognized platforms - as None if they do not support that platform. - type: string - enum: - - "" - - AWS - - Azure - - BareMetal - - GCP - - Libvirt - - OpenStack - - None - - VSphere - - oVirt - - IBMCloud - - KubeVirt - vsphere: - description: VSphere contains settings specific to the VSphere infrastructure - provider. - type: object - status: - description: status holds observed values from the cluster. They may not - be overridden. - type: object - properties: - apiServerInternalURI: - description: apiServerInternalURL is a valid URI with scheme 'https', - address and optionally a port (defaulting to 443). apiServerInternalURL - can be used by components like kubelets, to contact the Kubernetes - API server using the infrastructure provider rather than Kubernetes - networking. - type: string - apiServerURL: - description: apiServerURL is a valid URI with scheme 'https', address - and optionally a port (defaulting to 443). apiServerURL can be used - by components like the web console to tell users where to find the - Kubernetes API. - type: string - etcdDiscoveryDomain: - description: 'etcdDiscoveryDomain is the domain used to fetch the SRV - records for discovering etcd servers and clients. For more info: https://github.com/etcd-io/etcd/blob/329be66e8b3f9e2e6af83c123ff89297e49ebd15/Documentation/op-guide/clustering.md#dns-discovery - deprecated: as of 4.7, this field is no longer set or honored. It - will be removed in a future release.' - type: string - infrastructureName: - description: infrastructureName uniquely identifies a cluster with a - human friendly name. Once set it should not be changed. Must be of - max length 27 and must have only alphanumeric or hyphen characters. - type: string - platform: - description: "platform is the underlying infrastructure provider for - the cluster. \n Deprecated: Use platformStatus.type instead." - type: string - enum: - - "" - - AWS - - Azure - - BareMetal - - GCP - - Libvirt - - OpenStack - - None - - VSphere - - oVirt - - IBMCloud - - KubeVirt - platformStatus: - description: platformStatus holds status information specific to the - underlying infrastructure provider. - type: object - properties: - aws: - description: AWS contains settings specific to the Amazon Web Services - infrastructure provider. - type: object - properties: - region: - description: region holds the default AWS region for new AWS - resources created by the cluster. - type: string - serviceEndpoints: - description: ServiceEndpoints list contains custom endpoints - which will override default service endpoint of AWS Services. - There must be only one ServiceEndpoint for a service. - type: array - items: - description: AWSServiceEndpoint store the configuration of - a custom url to override existing defaults of AWS Services. - type: object - properties: - name: - description: name is the name of the AWS service. The - list of all the service names can be found at https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html - This must be provided and cannot be empty. - type: string - pattern: ^[a-z0-9-]+$ - url: - description: url is fully qualified URI with scheme https, - that overrides the default generated endpoint for a - client. This must be provided and cannot be empty. - type: string - pattern: ^https:// - azure: - description: Azure contains settings specific to the Azure infrastructure - provider. - type: object - properties: - cloudName: - description: cloudName is the name of the Azure cloud environment - which can be used to configure the Azure SDK with the appropriate - Azure API endpoints. If empty, the value is equal to `AzurePublicCloud`. - type: string - enum: - - "" - - AzurePublicCloud - - AzureUSGovernmentCloud - - AzureChinaCloud - - AzureGermanCloud - networkResourceGroupName: - description: networkResourceGroupName is the Resource Group - for network resources like the Virtual Network and Subnets - used by the cluster. If empty, the value is same as ResourceGroupName. - type: string - resourceGroupName: - description: resourceGroupName is the Resource Group for new - Azure resources created for the cluster. - type: string - baremetal: - description: BareMetal contains settings specific to the BareMetal - platform. - type: object - properties: - apiServerInternalIP: - description: apiServerInternalIP is an IP address to contact - the Kubernetes API server that can be used by components inside - the cluster, like kubelets using the infrastructure rather - than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI - points to. It is the IP for a self-hosted load balancer in - front of the API servers. - type: string - ingressIP: - description: ingressIP is an external IP which routes to the - default ingress controller. The IP is a suitable target of - a wildcard DNS record used to resolve default route host names. - type: string - nodeDNSIP: - description: nodeDNSIP is the IP address for the internal DNS - used by the nodes. Unlike the one managed by the DNS operator, - `NodeDNSIP` provides name resolution for the nodes themselves. - There is no DNS-as-a-service for BareMetal deployments. In - order to minimize necessary changes to the datacenter DNS, - a DNS service is hosted as a static pod to serve those hostnames - to the nodes in the cluster. - type: string - gcp: - description: GCP contains settings specific to the Google Cloud - Platform infrastructure provider. - type: object - properties: - projectID: - description: resourceGroupName is the Project ID for new GCP - resources created for the cluster. - type: string - region: - description: region holds the region for new GCP resources created - for the cluster. - type: string - ibmcloud: - description: IBMCloud contains settings specific to the IBMCloud - infrastructure provider. - type: object - properties: - location: - description: Location is where the cluster has been deployed - type: string - providerType: - description: ProviderType indicates the type of cluster that - was created - type: string - resourceGroupName: - description: ResourceGroupName is the Resource Group for new - IBMCloud resources created for the cluster. - type: string - kubevirt: - description: Kubevirt contains settings specific to the kubevirt - infrastructure provider. - type: object - properties: - apiServerInternalIP: - description: apiServerInternalIP is an IP address to contact - the Kubernetes API server that can be used by components inside - the cluster, like kubelets using the infrastructure rather - than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI - points to. It is the IP for a self-hosted load balancer in - front of the API servers. - type: string - ingressIP: - description: ingressIP is an external IP which routes to the - default ingress controller. The IP is a suitable target of - a wildcard DNS record used to resolve default route host names. - type: string - openstack: - description: OpenStack contains settings specific to the OpenStack - infrastructure provider. - type: object - properties: - apiServerInternalIP: - description: apiServerInternalIP is an IP address to contact - the Kubernetes API server that can be used by components inside - the cluster, like kubelets using the infrastructure rather - than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI - points to. It is the IP for a self-hosted load balancer in - front of the API servers. - type: string - cloudName: - description: cloudName is the name of the desired OpenStack - cloud in the client configuration file (`clouds.yaml`). - type: string - ingressIP: - description: ingressIP is an external IP which routes to the - default ingress controller. The IP is a suitable target of - a wildcard DNS record used to resolve default route host names. - type: string - nodeDNSIP: - description: nodeDNSIP is the IP address for the internal DNS - used by the nodes. Unlike the one managed by the DNS operator, - `NodeDNSIP` provides name resolution for the nodes themselves. - There is no DNS-as-a-service for OpenStack deployments. In - order to minimize necessary changes to the datacenter DNS, - a DNS service is hosted as a static pod to serve those hostnames - to the nodes in the cluster. - type: string - ovirt: - description: Ovirt contains settings specific to the oVirt infrastructure - provider. - type: object - properties: - apiServerInternalIP: - description: apiServerInternalIP is an IP address to contact - the Kubernetes API server that can be used by components inside - the cluster, like kubelets using the infrastructure rather - than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI - points to. It is the IP for a self-hosted load balancer in - front of the API servers. - type: string - ingressIP: - description: ingressIP is an external IP which routes to the - default ingress controller. The IP is a suitable target of - a wildcard DNS record used to resolve default route host names. - type: string - nodeDNSIP: - description: 'deprecated: as of 4.6, this field is no longer - set or honored. It will be removed in a future release.' - type: string - type: - description: "type is the underlying infrastructure provider for - the cluster. This value controls whether infrastructure automation - such as service load balancers, dynamic volume provisioning, machine - creation and deletion, and other integrations are enabled. If - None, no infrastructure automation is enabled. Allowed values - are \"AWS\", \"Azure\", \"BareMetal\", \"GCP\", \"Libvirt\", \"OpenStack\", - \"VSphere\", \"oVirt\", and \"None\". Individual components may - not support all platforms, and must handle unrecognized platforms - as None if they do not support that platform. \n This value will - be synced with to the `status.platform` and `status.platformStatus.type`. - Currently this value cannot be changed once set." - type: string - enum: - - "" - - AWS - - Azure - - BareMetal - - GCP - - Libvirt - - OpenStack - - None - - VSphere - - oVirt - - IBMCloud - - KubeVirt - vsphere: - description: VSphere contains settings specific to the VSphere infrastructure - provider. - type: object - properties: - apiServerInternalIP: - description: apiServerInternalIP is an IP address to contact - the Kubernetes API server that can be used by components inside - the cluster, like kubelets using the infrastructure rather - than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI - points to. It is the IP for a self-hosted load balancer in - front of the API servers. - type: string - ingressIP: - description: ingressIP is an external IP which routes to the - default ingress controller. The IP is a suitable target of - a wildcard DNS record used to resolve default route host names. - type: string - nodeDNSIP: - description: nodeDNSIP is the IP address for the internal DNS - used by the nodes. Unlike the one managed by the DNS operator, - `NodeDNSIP` provides name resolution for the nodes themselves. - There is no DNS-as-a-service for vSphere deployments. In order - to minimize necessary changes to the datacenter DNS, a DNS - service is hosted as a static pod to serve those hostnames - to the nodes in the cluster. - type: string + subresources: + status: {} + schema: + openAPIV3Schema: + description: Infrastructure holds cluster-wide information about Infrastructure. The + canonical name is `cluster` + type: object + required: + - spec + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: spec holds user settable values for configuration + type: object + properties: + cloudConfig: + description: "cloudConfig is a reference to a ConfigMap containing + the cloud provider configuration file. This configuration file is + used to configure the Kubernetes cloud provider integration when + using the built-in cloud provider integration or the external cloud + controller manager. The namespace for this config map is openshift-config. + \n cloudConfig should only be consumed by the kube_cloud_config + controller. The controller is responsible for using the user configuration + in the spec for various platforms and combining that with the user + provided ConfigMap in this field to create a stitched kube cloud + config. The controller generates a ConfigMap `kube-cloud-config` + in `openshift-config-managed` namespace with the kube cloud config + is stored in `cloud.conf` key. All the clients are expected to use + the generated ConfigMap only." + type: object + properties: + key: + description: Key allows pointing to a specific key/value inside + of the configmap. This is useful for logical file references. + type: string + name: + type: string + platformSpec: + description: platformSpec holds desired information specific to the + underlying infrastructure provider. + type: object + properties: + aws: + description: AWS contains settings specific to the Amazon Web + Services infrastructure provider. + type: object + properties: + serviceEndpoints: + description: serviceEndpoints list contains custom endpoints + which will override default service endpoint of AWS Services. + There must be only one ServiceEndpoint for a service. + type: array + items: + description: AWSServiceEndpoint store the configuration + of a custom url to override existing defaults of AWS Services. + type: object + properties: + name: + description: name is the name of the AWS service. The + list of all the service names can be found at https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html + This must be provided and cannot be empty. + type: string + pattern: ^[a-z0-9-]+$ + url: + description: url is fully qualified URI with scheme + https, that overrides the default generated endpoint + for a client. This must be provided and cannot be + empty. + type: string + pattern: ^https:// + azure: + description: Azure contains settings specific to the Azure infrastructure + provider. + type: object + baremetal: + description: BareMetal contains settings specific to the BareMetal + platform. + type: object + equinixMetal: + description: EquinixMetal contains settings specific to the Equinix + Metal infrastructure provider. + type: object + gcp: + description: GCP contains settings specific to the Google Cloud + Platform infrastructure provider. + type: object + ibmcloud: + description: IBMCloud contains settings specific to the IBMCloud + infrastructure provider. + type: object + kubevirt: + description: Kubevirt contains settings specific to the kubevirt + infrastructure provider. + type: object + openstack: + description: OpenStack contains settings specific to the OpenStack + infrastructure provider. + type: object + ovirt: + description: Ovirt contains settings specific to the oVirt infrastructure + provider. + type: object + type: + description: type is the underlying infrastructure provider for + the cluster. This value controls whether infrastructure automation + such as service load balancers, dynamic volume provisioning, + machine creation and deletion, and other integrations are enabled. + If None, no infrastructure automation is enabled. Allowed values + are "AWS", "Azure", "BareMetal", "GCP", "Libvirt", "OpenStack", + "VSphere", "oVirt", "KubeVirt", "EquinixMetal", and "None". + Individual components may not support all platforms, and must + handle unrecognized platforms as None if they do not support + that platform. + type: string + enum: + - "" + - AWS + - Azure + - BareMetal + - GCP + - Libvirt + - OpenStack + - None + - VSphere + - oVirt + - IBMCloud + - KubeVirt + - EquinixMetal + vsphere: + description: VSphere contains settings specific to the VSphere + infrastructure provider. + type: object + status: + description: status holds observed values from the cluster. They may not + be overridden. + type: object + properties: + apiServerInternalURI: + description: apiServerInternalURL is a valid URI with scheme 'https', + address and optionally a port (defaulting to 443). apiServerInternalURL + can be used by components like kubelets, to contact the Kubernetes + API server using the infrastructure provider rather than Kubernetes + networking. + type: string + apiServerURL: + description: apiServerURL is a valid URI with scheme 'https', address + and optionally a port (defaulting to 443). apiServerURL can be + used by components like the web console to tell users where to find + the Kubernetes API. + type: string + controlPlaneTopology: + description: controlPlaneTopology expresses the expectations for operands + that normally run on control nodes. The default is 'HighlyAvailable', + which represents the behavior operators have in a "normal" cluster. + The 'SingleReplica' mode will be used in single-node deployments + and the operators should not configure the operand for highly-available + operation + type: string + default: HighlyAvailable + enum: + - HighlyAvailable + - SingleReplica + etcdDiscoveryDomain: + description: 'etcdDiscoveryDomain is the domain used to fetch the + SRV records for discovering etcd servers and clients. For more info: + https://github.com/etcd-io/etcd/blob/329be66e8b3f9e2e6af83c123ff89297e49ebd15/Documentation/op-guide/clustering.md#dns-discovery + deprecated: as of 4.7, this field is no longer set or honored. It + will be removed in a future release.' + type: string + infrastructureName: + description: infrastructureName uniquely identifies a cluster with + a human friendly name. Once set it should not be changed. Must be + of max length 27 and must have only alphanumeric or hyphen characters. + type: string + infrastructureTopology: + description: infrastructureTopology expresses the expectations for + infrastructure services that do not run on control plane nodes, + usually indicated by a node selector for a `role` value other than + `master`. The default is 'HighlyAvailable', which represents the + behavior operators have in a "normal" cluster. The 'SingleReplica' + mode will be used in single-node deployments and the operators should + not configure the operand for highly-available operation + type: string + default: HighlyAvailable + enum: + - HighlyAvailable + - SingleReplica + platform: + description: "platform is the underlying infrastructure provider for + the cluster. \n Deprecated: Use platformStatus.type instead." + type: string + enum: + - "" + - AWS + - Azure + - BareMetal + - GCP + - Libvirt + - OpenStack + - None + - VSphere + - oVirt + - IBMCloud + - KubeVirt + - EquinixMetal + platformStatus: + description: platformStatus holds status information specific to the + underlying infrastructure provider. + type: object + properties: + aws: + description: AWS contains settings specific to the Amazon Web + Services infrastructure provider. + type: object + properties: + region: + description: region holds the default AWS region for new AWS + resources created by the cluster. + type: string + serviceEndpoints: + description: ServiceEndpoints list contains custom endpoints + which will override default service endpoint of AWS Services. + There must be only one ServiceEndpoint for a service. + type: array + items: + description: AWSServiceEndpoint store the configuration + of a custom url to override existing defaults of AWS Services. + type: object + properties: + name: + description: name is the name of the AWS service. The + list of all the service names can be found at https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html + This must be provided and cannot be empty. + type: string + pattern: ^[a-z0-9-]+$ + url: + description: url is fully qualified URI with scheme + https, that overrides the default generated endpoint + for a client. This must be provided and cannot be + empty. + type: string + pattern: ^https:// + azure: + description: Azure contains settings specific to the Azure infrastructure + provider. + type: object + properties: + cloudName: + description: cloudName is the name of the Azure cloud environment + which can be used to configure the Azure SDK with the appropriate + Azure API endpoints. If empty, the value is equal to `AzurePublicCloud`. + type: string + enum: + - "" + - AzurePublicCloud + - AzureUSGovernmentCloud + - AzureChinaCloud + - AzureGermanCloud + networkResourceGroupName: + description: networkResourceGroupName is the Resource Group + for network resources like the Virtual Network and Subnets + used by the cluster. If empty, the value is same as ResourceGroupName. + type: string + resourceGroupName: + description: resourceGroupName is the Resource Group for new + Azure resources created for the cluster. + type: string + baremetal: + description: BareMetal contains settings specific to the BareMetal + platform. + type: object + properties: + apiServerInternalIP: + description: apiServerInternalIP is an IP address to contact + the Kubernetes API server that can be used by components + inside the cluster, like kubelets using the infrastructure + rather than Kubernetes networking. It is the IP that the + Infrastructure.status.apiServerInternalURI points to. It + is the IP for a self-hosted load balancer in front of the + API servers. + type: string + ingressIP: + description: ingressIP is an external IP which routes to the + default ingress controller. The IP is a suitable target + of a wildcard DNS record used to resolve default route host + names. + type: string + nodeDNSIP: + description: nodeDNSIP is the IP address for the internal + DNS used by the nodes. Unlike the one managed by the DNS + operator, `NodeDNSIP` provides name resolution for the nodes + themselves. There is no DNS-as-a-service for BareMetal deployments. + In order to minimize necessary changes to the datacenter + DNS, a DNS service is hosted as a static pod to serve those + hostnames to the nodes in the cluster. + type: string + equinixMetal: + description: EquinixMetal contains settings specific to the Equinix + Metal infrastructure provider. + type: object + properties: + apiServerInternalIP: + description: apiServerInternalIP is an IP address to contact + the Kubernetes API server that can be used by components + inside the cluster, like kubelets using the infrastructure + rather than Kubernetes networking. It is the IP that the + Infrastructure.status.apiServerInternalURI points to. It + is the IP for a self-hosted load balancer in front of the + API servers. + type: string + ingressIP: + description: ingressIP is an external IP which routes to the + default ingress controller. The IP is a suitable target + of a wildcard DNS record used to resolve default route host + names. + type: string + gcp: + description: GCP contains settings specific to the Google Cloud + Platform infrastructure provider. + type: object + properties: + projectID: + description: resourceGroupName is the Project ID for new GCP + resources created for the cluster. + type: string + region: + description: region holds the region for new GCP resources + created for the cluster. + type: string + ibmcloud: + description: IBMCloud contains settings specific to the IBMCloud + infrastructure provider. + type: object + properties: + location: + description: Location is where the cluster has been deployed + type: string + providerType: + description: ProviderType indicates the type of cluster that + was created + type: string + resourceGroupName: + description: ResourceGroupName is the Resource Group for new + IBMCloud resources created for the cluster. + type: string + kubevirt: + description: Kubevirt contains settings specific to the kubevirt + infrastructure provider. + type: object + properties: + apiServerInternalIP: + description: apiServerInternalIP is an IP address to contact + the Kubernetes API server that can be used by components + inside the cluster, like kubelets using the infrastructure + rather than Kubernetes networking. It is the IP that the + Infrastructure.status.apiServerInternalURI points to. It + is the IP for a self-hosted load balancer in front of the + API servers. + type: string + ingressIP: + description: ingressIP is an external IP which routes to the + default ingress controller. The IP is a suitable target + of a wildcard DNS record used to resolve default route host + names. + type: string + openstack: + description: OpenStack contains settings specific to the OpenStack + infrastructure provider. + type: object + properties: + apiServerInternalIP: + description: apiServerInternalIP is an IP address to contact + the Kubernetes API server that can be used by components + inside the cluster, like kubelets using the infrastructure + rather than Kubernetes networking. It is the IP that the + Infrastructure.status.apiServerInternalURI points to. It + is the IP for a self-hosted load balancer in front of the + API servers. + type: string + cloudName: + description: cloudName is the name of the desired OpenStack + cloud in the client configuration file (`clouds.yaml`). + type: string + ingressIP: + description: ingressIP is an external IP which routes to the + default ingress controller. The IP is a suitable target + of a wildcard DNS record used to resolve default route host + names. + type: string + nodeDNSIP: + description: nodeDNSIP is the IP address for the internal + DNS used by the nodes. Unlike the one managed by the DNS + operator, `NodeDNSIP` provides name resolution for the nodes + themselves. There is no DNS-as-a-service for OpenStack deployments. + In order to minimize necessary changes to the datacenter + DNS, a DNS service is hosted as a static pod to serve those + hostnames to the nodes in the cluster. + type: string + ovirt: + description: Ovirt contains settings specific to the oVirt infrastructure + provider. + type: object + properties: + apiServerInternalIP: + description: apiServerInternalIP is an IP address to contact + the Kubernetes API server that can be used by components + inside the cluster, like kubelets using the infrastructure + rather than Kubernetes networking. It is the IP that the + Infrastructure.status.apiServerInternalURI points to. It + is the IP for a self-hosted load balancer in front of the + API servers. + type: string + ingressIP: + description: ingressIP is an external IP which routes to the + default ingress controller. The IP is a suitable target + of a wildcard DNS record used to resolve default route host + names. + type: string + nodeDNSIP: + description: 'deprecated: as of 4.6, this field is no longer + set or honored. It will be removed in a future release.' + type: string + type: + description: "type is the underlying infrastructure provider for + the cluster. This value controls whether infrastructure automation + such as service load balancers, dynamic volume provisioning, + machine creation and deletion, and other integrations are enabled. + If None, no infrastructure automation is enabled. Allowed values + are \"AWS\", \"Azure\", \"BareMetal\", \"GCP\", \"Libvirt\", + \"OpenStack\", \"VSphere\", \"oVirt\", \"EquinixMetal\", and + \"None\". Individual components may not support all platforms, + and must handle unrecognized platforms as None if they do not + support that platform. \n This value will be synced with to + the `status.platform` and `status.platformStatus.type`. Currently + this value cannot be changed once set." + type: string + enum: + - "" + - AWS + - Azure + - BareMetal + - GCP + - Libvirt + - OpenStack + - None + - VSphere + - oVirt + - IBMCloud + - KubeVirt + - EquinixMetal + vsphere: + description: VSphere contains settings specific to the VSphere + infrastructure provider. + type: object + properties: + apiServerInternalIP: + description: apiServerInternalIP is an IP address to contact + the Kubernetes API server that can be used by components + inside the cluster, like kubelets using the infrastructure + rather than Kubernetes networking. It is the IP that the + Infrastructure.status.apiServerInternalURI points to. It + is the IP for a self-hosted load balancer in front of the + API servers. + type: string + ingressIP: + description: ingressIP is an external IP which routes to the + default ingress controller. The IP is a suitable target + of a wildcard DNS record used to resolve default route host + names. + type: string + nodeDNSIP: + description: nodeDNSIP is the IP address for the internal + DNS used by the nodes. Unlike the one managed by the DNS + operator, `NodeDNSIP` provides name resolution for the nodes + themselves. There is no DNS-as-a-service for vSphere deployments. + In order to minimize necessary changes to the datacenter + DNS, a DNS service is hosted as a static pod to serve those + hostnames to the nodes in the cluster. + type: string diff --git a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_scheduler.crd.yaml b/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_scheduler.crd.yaml index ad35f6ed14..c66ec6ad95 100644 --- a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_scheduler.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_scheduler.crd.yaml @@ -95,7 +95,6 @@ spec: values are \"LowNodeUtilization\", \"HighNodeUtilization\", \"NoScoring\" Defaults to \"LowNodeUtilization\"" type: string - default: LowNodeUtilization enum: - "" - LowNodeUtilization diff --git a/vendor/github.com/openshift/api/config/v1/types_feature.go b/vendor/github.com/openshift/api/config/v1/types_feature.go index 0145b82c6d..7cb30c5d34 100644 --- a/vendor/github.com/openshift/api/config/v1/types_feature.go +++ b/vendor/github.com/openshift/api/config/v1/types_feature.go @@ -129,7 +129,6 @@ var defaultFeatures = &FeatureGateEnabledDisabled{ }, Disabled: []string{ "LegacyNodeRoleBehavior", // sig-scheduling, ccoleman - "RemoveSelfLink", // kuryr needs updating, deads2k will personally remove in 4.8 }, } 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 54b8f5afaf..d5ebcc91c5 100644 --- a/vendor/github.com/openshift/api/config/v1/types_infrastructure.go +++ b/vendor/github.com/openshift/api/config/v1/types_infrastructure.go @@ -77,10 +77,38 @@ type InfrastructureStatus struct { // like kubelets, to contact the Kubernetes API server using the // infrastructure provider rather than Kubernetes networking. APIServerInternalURL string `json:"apiServerInternalURI"` + + // controlPlaneTopology expresses the expectations for operands that normally run on control nodes. + // The default is 'HighlyAvailable', which represents the behavior operators have in a "normal" cluster. + // The 'SingleReplica' mode will be used in single-node deployments + // and the operators should not configure the operand for highly-available operation + // +kubebuilder:default=HighlyAvailable + ControlPlaneTopology TopologyMode `json:"controlPlaneTopology"` + + // infrastructureTopology expresses the expectations for infrastructure services that do not run on control + // plane nodes, usually indicated by a node selector for a `role` value + // other than `master`. + // The default is 'HighlyAvailable', which represents the behavior operators have in a "normal" cluster. + // The 'SingleReplica' mode will be used in single-node deployments + // and the operators should not configure the operand for highly-available operation + // +kubebuilder:default=HighlyAvailable + InfrastructureTopology TopologyMode `json:"infrastructureTopology"` } +// TopologyMode defines the topology mode of the control/infra nodes. +// +kubebuilder:validation:Enum=HighlyAvailable;SingleReplica +type TopologyMode string + +const ( + // "HighlyAvailable" is for operators to configure high-availability as much as possible. + HighlyAvailableTopologyMode TopologyMode = "HighlyAvailable" + + // "SingleReplica" is for operators to avoid spending resources for high-availability purpose. + SingleReplicaTopologyMode TopologyMode = "SingleReplica" +) + // PlatformType is a specific supported infrastructure provider. -// +kubebuilder:validation:Enum="";AWS;Azure;BareMetal;GCP;Libvirt;OpenStack;None;VSphere;oVirt;IBMCloud;KubeVirt +// +kubebuilder:validation:Enum="";AWS;Azure;BareMetal;GCP;Libvirt;OpenStack;None;VSphere;oVirt;IBMCloud;KubeVirt;EquinixMetal type PlatformType string const ( @@ -116,6 +144,9 @@ const ( // KubevirtPlatformType represents KubeVirt/Openshift Virtualization infrastructure. KubevirtPlatformType PlatformType = "KubeVirt" + + // EquinixMetalPlatformType represents Equinix Metal infrastructure. + EquinixMetalPlatformType PlatformType = "EquinixMetal" ) // IBMCloudProviderType is a specific supported IBM Cloud provider cluster type @@ -138,7 +169,7 @@ type PlatformSpec struct { // balancers, dynamic volume provisioning, machine creation and deletion, and // other integrations are enabled. If None, no infrastructure automation is // enabled. Allowed values are "AWS", "Azure", "BareMetal", "GCP", "Libvirt", - // "OpenStack", "VSphere", "oVirt", "KubeVirt" and "None". Individual components may not support + // "OpenStack", "VSphere", "oVirt", "KubeVirt", "EquinixMetal", and "None". Individual components may not support // all platforms, and must handle unrecognized platforms as None if they do // not support that platform. // @@ -180,6 +211,10 @@ type PlatformSpec struct { // Kubevirt contains settings specific to the kubevirt infrastructure provider. // +optional Kubevirt *KubevirtPlatformSpec `json:"kubevirt,omitempty"` + + // EquinixMetal contains settings specific to the Equinix Metal infrastructure provider. + // +optional + EquinixMetal *EquinixMetalPlatformSpec `json:"equinixMetal,omitempty"` } // PlatformStatus holds the current status specific to the underlying infrastructure provider @@ -191,7 +226,7 @@ type PlatformStatus struct { // balancers, dynamic volume provisioning, machine creation and deletion, and // other integrations are enabled. If None, no infrastructure automation is // enabled. Allowed values are "AWS", "Azure", "BareMetal", "GCP", "Libvirt", - // "OpenStack", "VSphere", "oVirt", and "None". Individual components may not support + // "OpenStack", "VSphere", "oVirt", "EquinixMetal", and "None". Individual components may not support // all platforms, and must handle unrecognized platforms as None if they do // not support that platform. // @@ -234,6 +269,10 @@ type PlatformStatus struct { // Kubevirt contains settings specific to the kubevirt infrastructure provider. // +optional Kubevirt *KubevirtPlatformStatus `json:"kubevirt,omitempty"` + + // EquinixMetal contains settings specific to the Equinix Metal infrastructure provider. + // +optional + EquinixMetal *EquinixMetalPlatformStatus `json:"equinixMetal,omitempty"` } // AWSServiceEndpoint store the configuration of a custom url to @@ -462,6 +501,23 @@ type KubevirtPlatformStatus struct { IngressIP string `json:"ingressIP,omitempty"` } +// EquinixMetalPlatformSpec holds the desired state of the Equinix Metal infrastructure provider. +// This only includes fields that can be modified in the cluster. +type EquinixMetalPlatformSpec struct{} + +// EquinixMetalPlatformStatus holds the current status of the Equinix Metal infrastructure provider. +type EquinixMetalPlatformStatus struct { + // apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used + // by components inside the cluster, like kubelets using the infrastructure rather + // than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI + // points to. It is the IP for a self-hosted load balancer in front of the API servers. + APIServerInternalIP string `json:"apiServerInternalIP,omitempty"` + + // ingressIP is an external IP which routes to the default ingress controller. + // The IP is a suitable target of a wildcard DNS record used to resolve default route host names. + IngressIP string `json:"ingressIP,omitempty"` +} + // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // InfrastructureList is diff --git a/vendor/github.com/openshift/api/config/v1/types_scheduling.go b/vendor/github.com/openshift/api/config/v1/types_scheduling.go index fad0659b31..570f8affce 100644 --- a/vendor/github.com/openshift/api/config/v1/types_scheduling.go +++ b/vendor/github.com/openshift/api/config/v1/types_scheduling.go @@ -35,8 +35,7 @@ type SchedulerSpec struct { // Valid values are "LowNodeUtilization", "HighNodeUtilization", "NoScoring" // Defaults to "LowNodeUtilization" // +optional - // +kubebuilder:default=LowNodeUtilization - Profile SchedulerProfile `json:"profile"` + Profile SchedulerProfile `json:"profile,omitempty"` // defaultNodeSelector helps set the cluster-wide default node selector to // restrict pod placement to specific nodes. This is applied to the pods // created in all namespaces and creates an intersection with any existing diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/config/v1/zz_generated.deepcopy.go index 6fa08676fa..16cdc034c5 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.deepcopy.go +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.deepcopy.go @@ -1340,6 +1340,38 @@ func (in *DeprecatedWebhookTokenAuthenticator) DeepCopy() *DeprecatedWebhookToke return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EquinixMetalPlatformSpec) DeepCopyInto(out *EquinixMetalPlatformSpec) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EquinixMetalPlatformSpec. +func (in *EquinixMetalPlatformSpec) DeepCopy() *EquinixMetalPlatformSpec { + if in == nil { + return nil + } + out := new(EquinixMetalPlatformSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EquinixMetalPlatformStatus) DeepCopyInto(out *EquinixMetalPlatformStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EquinixMetalPlatformStatus. +func (in *EquinixMetalPlatformStatus) DeepCopy() *EquinixMetalPlatformStatus { + if in == nil { + return nil + } + out := new(EquinixMetalPlatformStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *EtcdConnectionInfo) DeepCopyInto(out *EtcdConnectionInfo) { *out = *in @@ -2986,6 +3018,11 @@ func (in *PlatformSpec) DeepCopyInto(out *PlatformSpec) { *out = new(KubevirtPlatformSpec) **out = **in } + if in.EquinixMetal != nil { + in, out := &in.EquinixMetal, &out.EquinixMetal + *out = new(EquinixMetalPlatformSpec) + **out = **in + } return } @@ -3047,6 +3084,11 @@ func (in *PlatformStatus) DeepCopyInto(out *PlatformStatus) { *out = new(KubevirtPlatformStatus) **out = **in } + if in.EquinixMetal != nil { + in, out := &in.EquinixMetal, &out.EquinixMetal + *out = new(EquinixMetalPlatformStatus) + **out = **in + } return } diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go index ea02878e98..b038e8ec40 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go @@ -779,6 +779,24 @@ func (BareMetalPlatformStatus) SwaggerDoc() map[string]string { return map_BareMetalPlatformStatus } +var map_EquinixMetalPlatformSpec = map[string]string{ + "": "EquinixMetalPlatformSpec holds the desired state of the Equinix Metal infrastructure provider. This only includes fields that can be modified in the cluster.", +} + +func (EquinixMetalPlatformSpec) SwaggerDoc() map[string]string { + return map_EquinixMetalPlatformSpec +} + +var map_EquinixMetalPlatformStatus = map[string]string{ + "": "EquinixMetalPlatformStatus holds the current status of the Equinix Metal infrastructure provider.", + "apiServerInternalIP": "apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI points to. It is the IP for a self-hosted load balancer in front of the API servers.", + "ingressIP": "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names.", +} + +func (EquinixMetalPlatformStatus) SwaggerDoc() map[string]string { + return map_EquinixMetalPlatformStatus +} + var map_GCPPlatformSpec = map[string]string{ "": "GCPPlatformSpec holds the desired state of the Google Cloud Platform infrastructure provider. This only includes fields that can be modified in the cluster.", } @@ -845,13 +863,15 @@ func (InfrastructureSpec) SwaggerDoc() map[string]string { } var map_InfrastructureStatus = map[string]string{ - "": "InfrastructureStatus describes the infrastructure the cluster is leveraging.", - "infrastructureName": "infrastructureName uniquely identifies a cluster with a human friendly name. Once set it should not be changed. Must be of max length 27 and must have only alphanumeric or hyphen characters.", - "platform": "platform is the underlying infrastructure provider for the cluster.\n\nDeprecated: Use platformStatus.type instead.", - "platformStatus": "platformStatus holds status information specific to the underlying infrastructure provider.", - "etcdDiscoveryDomain": "etcdDiscoveryDomain is the domain used to fetch the SRV records for discovering etcd servers and clients. For more info: https://github.com/etcd-io/etcd/blob/329be66e8b3f9e2e6af83c123ff89297e49ebd15/Documentation/op-guide/clustering.md#dns-discovery deprecated: as of 4.7, this field is no longer set or honored. It will be removed in a future release.", - "apiServerURL": "apiServerURL is a valid URI with scheme 'https', address and optionally a port (defaulting to 443). apiServerURL can be used by components like the web console to tell users where to find the Kubernetes API.", - "apiServerInternalURI": "apiServerInternalURL is a valid URI with scheme 'https', address and optionally a port (defaulting to 443). apiServerInternalURL can be used by components like kubelets, to contact the Kubernetes API server using the infrastructure provider rather than Kubernetes networking.", + "": "InfrastructureStatus describes the infrastructure the cluster is leveraging.", + "infrastructureName": "infrastructureName uniquely identifies a cluster with a human friendly name. Once set it should not be changed. Must be of max length 27 and must have only alphanumeric or hyphen characters.", + "platform": "platform is the underlying infrastructure provider for the cluster.\n\nDeprecated: Use platformStatus.type instead.", + "platformStatus": "platformStatus holds status information specific to the underlying infrastructure provider.", + "etcdDiscoveryDomain": "etcdDiscoveryDomain is the domain used to fetch the SRV records for discovering etcd servers and clients. For more info: https://github.com/etcd-io/etcd/blob/329be66e8b3f9e2e6af83c123ff89297e49ebd15/Documentation/op-guide/clustering.md#dns-discovery deprecated: as of 4.7, this field is no longer set or honored. It will be removed in a future release.", + "apiServerURL": "apiServerURL is a valid URI with scheme 'https', address and optionally a port (defaulting to 443). apiServerURL can be used by components like the web console to tell users where to find the Kubernetes API.", + "apiServerInternalURI": "apiServerInternalURL is a valid URI with scheme 'https', address and optionally a port (defaulting to 443). apiServerInternalURL can be used by components like kubelets, to contact the Kubernetes API server using the infrastructure provider rather than Kubernetes networking.", + "controlPlaneTopology": "controlPlaneTopology expresses the expectations for operands that normally run on control nodes. The default is 'HighlyAvailable', which represents the behavior operators have in a \"normal\" cluster. The 'SingleReplica' mode will be used in single-node deployments and the operators should not configure the operand for highly-available operation", + "infrastructureTopology": "infrastructureTopology expresses the expectations for infrastructure services that do not run on control plane nodes, usually indicated by a node selector for a `role` value other than `master`. The default is 'HighlyAvailable', which represents the behavior operators have in a \"normal\" cluster. The 'SingleReplica' mode will be used in single-node deployments and the operators should not configure the operand for highly-available operation", } func (InfrastructureStatus) SwaggerDoc() map[string]string { @@ -916,17 +936,18 @@ func (OvirtPlatformStatus) SwaggerDoc() map[string]string { } var map_PlatformSpec = map[string]string{ - "": "PlatformSpec holds the desired state specific to the underlying infrastructure provider of the current cluster. Since these are used at spec-level for the underlying cluster, it is supposed that only one of the spec structs is set.", - "type": "type is the underlying infrastructure provider for the cluster. This value controls whether infrastructure automation such as service load balancers, dynamic volume provisioning, machine creation and deletion, and other integrations are enabled. If None, no infrastructure automation is enabled. Allowed values are \"AWS\", \"Azure\", \"BareMetal\", \"GCP\", \"Libvirt\", \"OpenStack\", \"VSphere\", \"oVirt\", \"KubeVirt\" and \"None\". Individual components may not support all platforms, and must handle unrecognized platforms as None if they do not support that platform.", - "aws": "AWS contains settings specific to the Amazon Web Services infrastructure provider.", - "azure": "Azure contains settings specific to the Azure infrastructure provider.", - "gcp": "GCP contains settings specific to the Google Cloud Platform infrastructure provider.", - "baremetal": "BareMetal contains settings specific to the BareMetal platform.", - "openstack": "OpenStack contains settings specific to the OpenStack infrastructure provider.", - "ovirt": "Ovirt contains settings specific to the oVirt infrastructure provider.", - "vsphere": "VSphere contains settings specific to the VSphere infrastructure provider.", - "ibmcloud": "IBMCloud contains settings specific to the IBMCloud infrastructure provider.", - "kubevirt": "Kubevirt contains settings specific to the kubevirt infrastructure provider.", + "": "PlatformSpec holds the desired state specific to the underlying infrastructure provider of the current cluster. Since these are used at spec-level for the underlying cluster, it is supposed that only one of the spec structs is set.", + "type": "type is the underlying infrastructure provider for the cluster. This value controls whether infrastructure automation such as service load balancers, dynamic volume provisioning, machine creation and deletion, and other integrations are enabled. If None, no infrastructure automation is enabled. Allowed values are \"AWS\", \"Azure\", \"BareMetal\", \"GCP\", \"Libvirt\", \"OpenStack\", \"VSphere\", \"oVirt\", \"KubeVirt\", \"EquinixMetal\", and \"None\". Individual components may not support all platforms, and must handle unrecognized platforms as None if they do not support that platform.", + "aws": "AWS contains settings specific to the Amazon Web Services infrastructure provider.", + "azure": "Azure contains settings specific to the Azure infrastructure provider.", + "gcp": "GCP contains settings specific to the Google Cloud Platform infrastructure provider.", + "baremetal": "BareMetal contains settings specific to the BareMetal platform.", + "openstack": "OpenStack contains settings specific to the OpenStack infrastructure provider.", + "ovirt": "Ovirt contains settings specific to the oVirt infrastructure provider.", + "vsphere": "VSphere contains settings specific to the VSphere infrastructure provider.", + "ibmcloud": "IBMCloud contains settings specific to the IBMCloud infrastructure provider.", + "kubevirt": "Kubevirt contains settings specific to the kubevirt infrastructure provider.", + "equinixMetal": "EquinixMetal contains settings specific to the Equinix Metal infrastructure provider.", } func (PlatformSpec) SwaggerDoc() map[string]string { @@ -934,17 +955,18 @@ func (PlatformSpec) SwaggerDoc() map[string]string { } var map_PlatformStatus = map[string]string{ - "": "PlatformStatus holds the current status specific to the underlying infrastructure provider of the current cluster. Since these are used at status-level for the underlying cluster, it is supposed that only one of the status structs is set.", - "type": "type is the underlying infrastructure provider for the cluster. This value controls whether infrastructure automation such as service load balancers, dynamic volume provisioning, machine creation and deletion, and other integrations are enabled. If None, no infrastructure automation is enabled. Allowed values are \"AWS\", \"Azure\", \"BareMetal\", \"GCP\", \"Libvirt\", \"OpenStack\", \"VSphere\", \"oVirt\", and \"None\". Individual components may not support all platforms, and must handle unrecognized platforms as None if they do not support that platform.\n\nThis value will be synced with to the `status.platform` and `status.platformStatus.type`. Currently this value cannot be changed once set.", - "aws": "AWS contains settings specific to the Amazon Web Services infrastructure provider.", - "azure": "Azure contains settings specific to the Azure infrastructure provider.", - "gcp": "GCP contains settings specific to the Google Cloud Platform infrastructure provider.", - "baremetal": "BareMetal contains settings specific to the BareMetal platform.", - "openstack": "OpenStack contains settings specific to the OpenStack infrastructure provider.", - "ovirt": "Ovirt contains settings specific to the oVirt infrastructure provider.", - "vsphere": "VSphere contains settings specific to the VSphere infrastructure provider.", - "ibmcloud": "IBMCloud contains settings specific to the IBMCloud infrastructure provider.", - "kubevirt": "Kubevirt contains settings specific to the kubevirt infrastructure provider.", + "": "PlatformStatus holds the current status specific to the underlying infrastructure provider of the current cluster. Since these are used at status-level for the underlying cluster, it is supposed that only one of the status structs is set.", + "type": "type is the underlying infrastructure provider for the cluster. This value controls whether infrastructure automation such as service load balancers, dynamic volume provisioning, machine creation and deletion, and other integrations are enabled. If None, no infrastructure automation is enabled. Allowed values are \"AWS\", \"Azure\", \"BareMetal\", \"GCP\", \"Libvirt\", \"OpenStack\", \"VSphere\", \"oVirt\", \"EquinixMetal\", and \"None\". Individual components may not support all platforms, and must handle unrecognized platforms as None if they do not support that platform.\n\nThis value will be synced with to the `status.platform` and `status.platformStatus.type`. Currently this value cannot be changed once set.", + "aws": "AWS contains settings specific to the Amazon Web Services infrastructure provider.", + "azure": "Azure contains settings specific to the Azure infrastructure provider.", + "gcp": "GCP contains settings specific to the Google Cloud Platform infrastructure provider.", + "baremetal": "BareMetal contains settings specific to the BareMetal platform.", + "openstack": "OpenStack contains settings specific to the OpenStack infrastructure provider.", + "ovirt": "Ovirt contains settings specific to the oVirt infrastructure provider.", + "vsphere": "VSphere contains settings specific to the VSphere infrastructure provider.", + "ibmcloud": "IBMCloud contains settings specific to the IBMCloud infrastructure provider.", + "kubevirt": "Kubevirt contains settings specific to the kubevirt infrastructure provider.", + "equinixMetal": "EquinixMetal contains settings specific to the Equinix Metal infrastructure provider.", } func (PlatformStatus) SwaggerDoc() map[string]string { diff --git a/vendor/github.com/openshift/api/operator/v1/0000_12_etcd-operator_01_config.crd.yaml b/vendor/github.com/openshift/api/operator/v1/0000_12_etcd-operator_01_config.crd.yaml index 654ea4accd..d57ec9e35a 100644 --- a/vendor/github.com/openshift/api/operator/v1/0000_12_etcd-operator_01_config.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/0000_12_etcd-operator_01_config.crd.yaml @@ -24,7 +24,7 @@ spec: schema: openAPIV3Schema: description: Etcd provides information to configure an operator to manage - kube-apiserver. + etcd. type: object required: - spec @@ -187,6 +187,10 @@ spec: successful deployment type: integer format: int32 + lastFailedCount: + description: lastFailedCount is how often the last failed revision + failed. + type: integer lastFailedRevision: description: lastFailedRevision is the generation of the deployment we tried and failed to deploy. @@ -198,6 +202,11 @@ spec: type: array items: type: string + lastFailedTime: + description: lastFailedTime is the time the last failed revision + failed the last time. + type: string + format: date-time nodeName: description: nodeName is the name of the node type: string diff --git a/vendor/github.com/openshift/api/operator/v1/0000_20_kube-apiserver-operator_01_config.crd.yaml b/vendor/github.com/openshift/api/operator/v1/0000_20_kube-apiserver-operator_01_config.crd.yaml index e57cb7f60b..1f37dcc5e5 100644 --- a/vendor/github.com/openshift/api/operator/v1/0000_20_kube-apiserver-operator_01_config.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/0000_20_kube-apiserver-operator_01_config.crd.yaml @@ -179,6 +179,10 @@ spec: successful deployment format: int32 type: integer + lastFailedCount: + description: lastFailedCount is how often the last failed revision + failed. + type: integer lastFailedRevision: description: lastFailedRevision is the generation of the deployment we tried and failed to deploy. @@ -190,6 +194,11 @@ spec: items: type: string type: array + lastFailedTime: + description: lastFailedTime is the time the last failed revision + failed the last time. + format: date-time + type: string nodeName: description: nodeName is the name of the node type: string diff --git a/vendor/github.com/openshift/api/operator/v1/0000_25_kube-controller-manager-operator_01_config.crd.yaml b/vendor/github.com/openshift/api/operator/v1/0000_25_kube-controller-manager-operator_01_config.crd.yaml index dca1e00822..78bb0b7b1f 100644 --- a/vendor/github.com/openshift/api/operator/v1/0000_25_kube-controller-manager-operator_01_config.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/0000_25_kube-controller-manager-operator_01_config.crd.yaml @@ -181,6 +181,10 @@ spec: successful deployment format: int32 type: integer + lastFailedCount: + description: lastFailedCount is how often the last failed revision + failed. + type: integer lastFailedRevision: description: lastFailedRevision is the generation of the deployment we tried and failed to deploy. @@ -192,6 +196,11 @@ spec: items: type: string type: array + lastFailedTime: + description: lastFailedTime is the time the last failed revision + failed the last time. + format: date-time + type: string nodeName: description: nodeName is the name of the node type: string diff --git a/vendor/github.com/openshift/api/operator/v1/0000_25_kube-scheduler-operator_01_config.crd.yaml b/vendor/github.com/openshift/api/operator/v1/0000_25_kube-scheduler-operator_01_config.crd.yaml index e5eae5d77d..a727047069 100644 --- a/vendor/github.com/openshift/api/operator/v1/0000_25_kube-scheduler-operator_01_config.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/0000_25_kube-scheduler-operator_01_config.crd.yaml @@ -181,6 +181,10 @@ spec: successful deployment format: int32 type: integer + lastFailedCount: + description: lastFailedCount is how often the last failed revision + failed. + type: integer lastFailedRevision: description: lastFailedRevision is the generation of the deployment we tried and failed to deploy. @@ -192,6 +196,11 @@ spec: items: type: string type: array + lastFailedTime: + description: lastFailedTime is the time the last failed revision + failed the last time. + format: date-time + type: string nodeName: description: nodeName is the name of the node type: string diff --git a/vendor/github.com/openshift/api/operator/v1/0000_40_cloud-credential-operator_00_config.crd.yaml b/vendor/github.com/openshift/api/operator/v1/0000_40_cloud-credential-operator_00_config.crd.yaml index 30c75bab86..ef2ec14c8c 100644 --- a/vendor/github.com/openshift/api/operator/v1/0000_40_cloud-credential-operator_00_config.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/0000_40_cloud-credential-operator_00_config.crd.yaml @@ -45,12 +45,15 @@ spec: type: object properties: credentialsMode: - description: CredentialsMode allows informing CCO that it should not - attempt to dynamically determine the root cloud credentials capabilities, - and it should just run in the specified mode. It also allows putting - the operator into "manual" mode if desired. Leaving the field in - default mode runs CCO so that the cluster's cloud credentials will - be dynamically probed for capabilities (on supported clouds/platforms). + description: 'CredentialsMode allows informing CCO that it should + not attempt to dynamically determine the root cloud credentials + capabilities, and it should just run in the specified mode. It also + allows putting the operator into "manual" mode if desired. Leaving + the field in default mode runs CCO so that the cluster''s cloud + credentials will be dynamically probed for capabilities (on supported + clouds/platforms). Supported modes: AWS/Azure/GCP: "" (Default), + "Mint", "Passthrough", "Manual" Others: Do not set value as other + platforms only support running in "Passthrough"' type: string enum: - "" diff --git a/vendor/github.com/openshift/api/operator/v1/0000_50_cluster-authentication-operator_01_config.crd.yaml b/vendor/github.com/openshift/api/operator/v1/0000_50_cluster-authentication-operator_01_config.crd.yaml index a1339e4ddc..964793f34d 100644 --- a/vendor/github.com/openshift/api/operator/v1/0000_50_cluster-authentication-operator_01_config.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/0000_50_cluster-authentication-operator_01_config.crd.yaml @@ -142,13 +142,6 @@ spec: description: resource is the resource type of the thing you're tracking type: string - managingOAuthAPIServer: - description: ManagingOAuthAPIServer indicates whether this operator - is managing OAuth related APIs. Setting this field to true will - cause OAS-O to step down. Note that this field will be removed in - the future releases, once https://github.com/openshift/enhancements/blob/master/enhancements/authentication/separate-oauth-resources.md - is fully implemented - type: boolean oauthAPIServer: description: OAuthAPIServer holds status specific only to oauth-apiserver type: object diff --git a/vendor/github.com/openshift/api/operator/v1/0000_50_ingress-operator_00-ingresscontroller.crd.yaml b/vendor/github.com/openshift/api/operator/v1/0000_50_ingress-operator_00-ingresscontroller.crd.yaml index 5816c9c629..ece44a7058 100644 --- a/vendor/github.com/openshift/api/operator/v1/0000_50_ingress-operator_00-ingresscontroller.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/0000_50_ingress-operator_00-ingresscontroller.crd.yaml @@ -137,6 +137,29 @@ spec: required: - type type: object + gcp: + description: "gcp provides configuration settings that + are specific to GCP load balancers. \n If empty, defaults + will be applied. See specific gcp fields for details + about their defaults." + properties: + clientAccess: + description: "clientAccess describes how client access + is restricted for internal load balancers. \n Valid + values are: * \"Global\": Specifying an internal + load balancer with Global client access allows + clients from any region within the VPC to communicate + with the load balancer. \n https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing#global_access + \n * \"Local\": Specifying an internal load balancer + with Local client access means only clients within + the same region (and VPC) as the GCP load balancer + \ can communicate with the load balancer. Note + that this is the default behavior. \n https://cloud.google.com/load-balancing/docs/internal#client_access" + enum: + - Global + - Local + type: string + type: object type: description: type is the underlying infrastructure provider for the load balancer. Allowed values are "AWS", "Azure", @@ -947,6 +970,29 @@ spec: required: - type type: object + gcp: + description: "gcp provides configuration settings that + are specific to GCP load balancers. \n If empty, defaults + will be applied. See specific gcp fields for details + about their defaults." + properties: + clientAccess: + description: "clientAccess describes how client access + is restricted for internal load balancers. \n Valid + values are: * \"Global\": Specifying an internal + load balancer with Global client access allows + clients from any region within the VPC to communicate + with the load balancer. \n https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing#global_access + \n * \"Local\": Specifying an internal load balancer + with Local client access means only clients within + the same region (and VPC) as the GCP load balancer + \ can communicate with the load balancer. Note + that this is the default behavior. \n https://cloud.google.com/load-balancing/docs/internal#client_access" + enum: + - Global + - Local + type: string + type: object type: description: type is the underlying infrastructure provider for the load balancer. Allowed values are "AWS", "Azure", diff --git a/vendor/github.com/openshift/api/operator/v1/0000_70_console-operator.crd.yaml b/vendor/github.com/openshift/api/operator/v1/0000_70_console-operator.crd.yaml index 7435ac92c8..c77d86e2cf 100644 --- a/vendor/github.com/openshift/api/operator/v1/0000_70_console-operator.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/0000_70_console-operator.crd.yaml @@ -201,6 +201,11 @@ spec: - Debug - Trace - TraceAll + plugins: + description: plugins defines a list of enabled console plugin names. + type: array + items: + type: string providers: description: providers contains configuration for using specific service providers. diff --git a/vendor/github.com/openshift/api/operator/v1/0000_90_cluster_csi_driver_01_config.crd.yaml b/vendor/github.com/openshift/api/operator/v1/0000_90_cluster_csi_driver_01_config.crd.yaml index 9d47aa2d6d..279bc865ea 100644 --- a/vendor/github.com/openshift/api/operator/v1/0000_90_cluster_csi_driver_01_config.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/0000_90_cluster_csi_driver_01_config.crd.yaml @@ -37,10 +37,12 @@ spec: name: enum: - ebs.csi.aws.com + - disk.csi.azure.com - pd.csi.storage.gke.io - cinder.csi.openstack.org - manila.csi.openstack.org - csi.ovirt.org + - csi.kubevirt.io type: string type: object spec: diff --git a/vendor/github.com/openshift/api/operator/v1/0000_90_cluster_csi_driver_01_config.crd.yaml-patch b/vendor/github.com/openshift/api/operator/v1/0000_90_cluster_csi_driver_01_config.crd.yaml-patch index 4a47ade417..298082db2c 100644 --- a/vendor/github.com/openshift/api/operator/v1/0000_90_cluster_csi_driver_01_config.crd.yaml-patch +++ b/vendor/github.com/openshift/api/operator/v1/0000_90_cluster_csi_driver_01_config.crd.yaml-patch @@ -5,7 +5,9 @@ type: string enum: - ebs.csi.aws.com + - disk.csi.azure.com - pd.csi.storage.gke.io - cinder.csi.openstack.org - manila.csi.openstack.org - csi.ovirt.org + - csi.kubevirt.io diff --git a/vendor/github.com/openshift/api/operator/v1/types.go b/vendor/github.com/openshift/api/operator/v1/types.go index c4cd345052..c4586ad317 100644 --- a/vendor/github.com/openshift/api/operator/v1/types.go +++ b/vendor/github.com/openshift/api/operator/v1/types.go @@ -215,9 +215,13 @@ type NodeStatus struct { CurrentRevision int32 `json:"currentRevision"` // targetRevision is the generation of the deployment we're trying to apply TargetRevision int32 `json:"targetRevision,omitempty"` + // lastFailedRevision is the generation of the deployment we tried and failed to deploy. LastFailedRevision int32 `json:"lastFailedRevision,omitempty"` - + // lastFailedTime is the time the last failed revision failed the last time. + LastFailedTime *metav1.Time `json:"lastFailedTime,omitempty"` + // lastFailedCount is how often the last failed revision failed. + LastFailedCount int `json:"lastFailedCount,omitempty"` // lastFailedRevisionErrors is a list of the errors during the failed deployment referenced in lastFailedRevision LastFailedRevisionErrors []string `json:"lastFailedRevisionErrors,omitempty"` } diff --git a/vendor/github.com/openshift/api/operator/v1/types_authentication.go b/vendor/github.com/openshift/api/operator/v1/types_authentication.go index cf60fb9639..61c777cf26 100644 --- a/vendor/github.com/openshift/api/operator/v1/types_authentication.go +++ b/vendor/github.com/openshift/api/operator/v1/types_authentication.go @@ -25,11 +25,6 @@ type AuthenticationSpec struct { } type AuthenticationStatus struct { - // ManagingOAuthAPIServer indicates whether this operator is managing OAuth related APIs. Setting this field to true will cause OAS-O to step down. - // Note that this field will be removed in the future releases, once https://github.com/openshift/enhancements/blob/master/enhancements/authentication/separate-oauth-resources.md is fully implemented - // +optional - ManagingOAuthAPIServer bool `json:"managingOAuthAPIServer,omitempty"` - // OAuthAPIServer holds status specific only to oauth-apiserver // +optional OAuthAPIServer OAuthAPIServerStatus `json:"oauthAPIServer,omitempty"` diff --git a/vendor/github.com/openshift/api/operator/v1/types_cloudcredential.go b/vendor/github.com/openshift/api/operator/v1/types_cloudcredential.go index bb17c89ff5..8d1806cd6c 100644 --- a/vendor/github.com/openshift/api/operator/v1/types_cloudcredential.go +++ b/vendor/github.com/openshift/api/operator/v1/types_cloudcredential.go @@ -54,6 +54,9 @@ type CloudCredentialSpec struct { // It also allows putting the operator into "manual" mode if desired. // Leaving the field in default mode runs CCO so that the cluster's cloud credentials // will be dynamically probed for capabilities (on supported clouds/platforms). + // Supported modes: + // AWS/Azure/GCP: "" (Default), "Mint", "Passthrough", "Manual" + // Others: Do not set value as other platforms only support running in "Passthrough" // +optional CredentialsMode CloudCredentialsMode `json:"credentialsMode,omitempty"` } diff --git a/vendor/github.com/openshift/api/operator/v1/types_console.go b/vendor/github.com/openshift/api/operator/v1/types_console.go index d893cae78a..3d3d2b0973 100644 --- a/vendor/github.com/openshift/api/operator/v1/types_console.go +++ b/vendor/github.com/openshift/api/operator/v1/types_console.go @@ -42,6 +42,9 @@ type ConsoleSpec struct { // If not specified, default route will be used. // +optional Route ConsoleConfigRoute `json:"route"` + // plugins defines a list of enabled console plugin names. + // +optional + Plugins []string `json:"plugins,omitempty"` } // ConsoleConfigRoute holds information on external route access to console. diff --git a/vendor/github.com/openshift/api/operator/v1/types_csi_cluster_driver.go b/vendor/github.com/openshift/api/operator/v1/types_csi_cluster_driver.go index e695bcbb8a..f2fa93e1e3 100644 --- a/vendor/github.com/openshift/api/operator/v1/types_csi_cluster_driver.go +++ b/vendor/github.com/openshift/api/operator/v1/types_csi_cluster_driver.go @@ -40,11 +40,13 @@ type CSIDriverName string // If you are adding a new driver name here, ensure that kubebuilder:validation:Enum is updated above // and 0000_90_cluster_csi_driver_01_config.crd.yaml-merge-patch file is also updated with new driver name. const ( - AWSEBSCSIDriver CSIDriverName = "ebs.csi.aws.com" - GCPPDCSIDriver CSIDriverName = "pd.csi.storage.gke.io" - CinderCSIDriver CSIDriverName = "cinder.csi.openstack.org" - ManilaCSIDriver CSIDriverName = "manila.csi.openstack.org" - OvirtCSIDriver CSIDriverName = "csi.ovirt.org" + AWSEBSCSIDriver CSIDriverName = "ebs.csi.aws.com" + AzureDiskCSIDriver CSIDriverName = "disk.csi.azure.com" + GCPPDCSIDriver CSIDriverName = "pd.csi.storage.gke.io" + CinderCSIDriver CSIDriverName = "cinder.csi.openstack.org" + ManilaCSIDriver CSIDriverName = "manila.csi.openstack.org" + OvirtCSIDriver CSIDriverName = "csi.ovirt.org" + KubevirtCSIDriver CSIDriverName = "csi.kubevirt.io" ) // ClusterCSIDriverSpec is the desired behavior of CSI driver operator diff --git a/vendor/github.com/openshift/api/operator/v1/types_etcd.go b/vendor/github.com/openshift/api/operator/v1/types_etcd.go index 6a2fbdb9ac..106c92b813 100644 --- a/vendor/github.com/openshift/api/operator/v1/types_etcd.go +++ b/vendor/github.com/openshift/api/operator/v1/types_etcd.go @@ -8,7 +8,7 @@ import ( // +genclient:nonNamespaced // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// Etcd provides information to configure an operator to manage kube-apiserver. +// Etcd provides information to configure an operator to manage etcd. type Etcd struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata"` diff --git a/vendor/github.com/openshift/api/operator/v1/types_ingress.go b/vendor/github.com/openshift/api/operator/v1/types_ingress.go index 11086adaa8..8e8b018111 100644 --- a/vendor/github.com/openshift/api/operator/v1/types_ingress.go +++ b/vendor/github.com/openshift/api/operator/v1/types_ingress.go @@ -279,6 +279,15 @@ type ProviderLoadBalancerParameters struct { // // +optional AWS *AWSLoadBalancerParameters `json:"aws,omitempty"` + + // gcp provides configuration settings that are specific to GCP + // load balancers. + // + // If empty, defaults will be applied. See specific gcp fields for + // details about their defaults. + // + // +optional + GCP *GCPLoadBalancerParameters `json:"gcp,omitempty"` } // LoadBalancerProviderType is the underlying infrastructure provider for the @@ -344,6 +353,39 @@ const ( AWSNetworkLoadBalancer AWSLoadBalancerType = "NLB" ) +// GCPLoadBalancerParameters provides configuration settings that are +// specific to GCP load balancers. +type GCPLoadBalancerParameters struct { + // clientAccess describes how client access is restricted for internal + // load balancers. + // + // Valid values are: + // * "Global": Specifying an internal load balancer with Global client access + // allows clients from any region within the VPC to communicate with the load + // balancer. + // + // https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing#global_access + // + // * "Local": Specifying an internal load balancer with Local client access + // means only clients within the same region (and VPC) as the GCP load balancer + // can communicate with the load balancer. Note that this is the default behavior. + // + // https://cloud.google.com/load-balancing/docs/internal#client_access + // + // +optional + ClientAccess GCPClientAccess `json:"clientAccess,omitempty"` +} + +// GCPClientAccess describes how client access is restricted for internal +// load balancers. +// +kubebuilder:validation:Enum=Global;Local +type GCPClientAccess string + +const ( + GCPGlobalAccess GCPClientAccess = "Global" + GCPLocalAccess GCPClientAccess = "Local" +) + // AWSClassicLoadBalancerParameters holds configuration parameters for an // AWS Classic load balancer. type AWSClassicLoadBalancerParameters struct { diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/operator/v1/zz_generated.deepcopy.go index 695873afcd..861a5cc6b9 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.deepcopy.go +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.deepcopy.go @@ -729,6 +729,11 @@ func (in *ConsoleSpec) DeepCopyInto(out *ConsoleSpec) { in.Customization.DeepCopyInto(&out.Customization) in.Providers.DeepCopyInto(&out.Providers) out.Route = in.Route + if in.Plugins != nil { + in, out := &in.Plugins, &out.Plugins + *out = make([]string, len(*in)) + copy(*out, *in) + } return } @@ -1133,6 +1138,22 @@ func (in *ForwardPlugin) DeepCopy() *ForwardPlugin { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GCPLoadBalancerParameters) DeepCopyInto(out *GCPLoadBalancerParameters) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPLoadBalancerParameters. +func (in *GCPLoadBalancerParameters) DeepCopy() *GCPLoadBalancerParameters { + if in == nil { + return nil + } + out := new(GCPLoadBalancerParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *GenerationStatus) DeepCopyInto(out *GenerationStatus) { *out = *in @@ -2209,6 +2230,10 @@ func (in *NodePortStrategy) DeepCopy() *NodePortStrategy { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NodeStatus) DeepCopyInto(out *NodeStatus) { *out = *in + if in.LastFailedTime != nil { + in, out := &in.LastFailedTime, &out.LastFailedTime + *out = (*in).DeepCopy() + } if in.LastFailedRevisionErrors != nil { in, out := &in.LastFailedRevisionErrors, &out.LastFailedRevisionErrors *out = make([]string, len(*in)) @@ -2592,6 +2617,11 @@ func (in *ProviderLoadBalancerParameters) DeepCopyInto(out *ProviderLoadBalancer *out = new(AWSLoadBalancerParameters) (*in).DeepCopyInto(*out) } + if in.GCP != nil { + in, out := &in.GCP, &out.GCP + *out = new(GCPLoadBalancerParameters) + **out = **in + } return } diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go index d9eea42bfa..8832d1b441 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go @@ -39,6 +39,8 @@ var map_NodeStatus = map[string]string{ "currentRevision": "currentRevision is the generation of the most recently successful deployment", "targetRevision": "targetRevision is the generation of the deployment we're trying to apply", "lastFailedRevision": "lastFailedRevision is the generation of the deployment we tried and failed to deploy.", + "lastFailedTime": "lastFailedTime is the time the last failed revision failed the last time.", + "lastFailedCount": "lastFailedCount is how often the last failed revision failed.", "lastFailedRevisionErrors": "lastFailedRevisionErrors is a list of the errors during the failed deployment referenced in lastFailedRevision", } @@ -118,8 +120,7 @@ func (AuthenticationList) SwaggerDoc() map[string]string { } var map_AuthenticationStatus = map[string]string{ - "managingOAuthAPIServer": "ManagingOAuthAPIServer indicates whether this operator is managing OAuth related APIs. Setting this field to true will cause OAS-O to step down. Note that this field will be removed in the future releases, once https://github.com/openshift/enhancements/blob/master/enhancements/authentication/separate-oauth-resources.md is fully implemented", - "oauthAPIServer": "OAuthAPIServer holds status specific only to oauth-apiserver", + "oauthAPIServer": "OAuthAPIServer holds status specific only to oauth-apiserver", } func (AuthenticationStatus) SwaggerDoc() map[string]string { @@ -144,7 +145,7 @@ func (CloudCredential) SwaggerDoc() map[string]string { var map_CloudCredentialSpec = map[string]string{ "": "CloudCredentialSpec is the specification of the desired behavior of the cloud-credential-operator.", - "credentialsMode": "CredentialsMode allows informing CCO that it should not attempt to dynamically determine the root cloud credentials capabilities, and it should just run in the specified mode. It also allows putting the operator into \"manual\" mode if desired. Leaving the field in default mode runs CCO so that the cluster's cloud credentials will be dynamically probed for capabilities (on supported clouds/platforms).", + "credentialsMode": "CredentialsMode allows informing CCO that it should not attempt to dynamically determine the root cloud credentials capabilities, and it should just run in the specified mode. It also allows putting the operator into \"manual\" mode if desired. Leaving the field in default mode runs CCO so that the cluster's cloud credentials will be dynamically probed for capabilities (on supported clouds/platforms). Supported modes:\n AWS/Azure/GCP: \"\" (Default), \"Mint\", \"Passthrough\", \"Manual\"\n Others: Do not set value as other platforms only support running in \"Passthrough\"", } func (CloudCredentialSpec) SwaggerDoc() map[string]string { @@ -223,6 +224,7 @@ var map_ConsoleSpec = map[string]string{ "customization": "customization is used to optionally provide a small set of customization options to the web console.", "providers": "providers contains configuration for using specific service providers.", "route": "route contains hostname and secret reference that contains the serving certificate. If a custom route is specified, a new route will be created with the provided hostname, under which console will be available. In case of custom hostname uses the default routing suffix of the cluster, the Secret specification for a serving certificate will not be needed. In case of custom hostname points to an arbitrary domain, manual DNS configurations steps are necessary. The default console route will be maintained to reserve the default hostname for console if the custom route is removed. If not specified, default route will be used.", + "plugins": "plugins defines a list of enabled console plugin names.", } func (ConsoleSpec) SwaggerDoc() map[string]string { @@ -402,7 +404,7 @@ func (Server) SwaggerDoc() map[string]string { } var map_Etcd = map[string]string{ - "": "Etcd provides information to configure an operator to manage kube-apiserver.", + "": "Etcd provides information to configure an operator to manage etcd.", } func (Etcd) SwaggerDoc() map[string]string { @@ -478,6 +480,15 @@ func (EndpointPublishingStrategy) SwaggerDoc() map[string]string { return map_EndpointPublishingStrategy } +var map_GCPLoadBalancerParameters = map[string]string{ + "": "GCPLoadBalancerParameters provides configuration settings that are specific to GCP load balancers.", + "clientAccess": "clientAccess describes how client access is restricted for internal load balancers.\n\nValid values are: * \"Global\": Specifying an internal load balancer with Global client access\n allows clients from any region within the VPC to communicate with the load\n balancer.\n\n https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing#global_access\n\n* \"Local\": Specifying an internal load balancer with Local client access\n means only clients within the same region (and VPC) as the GCP load balancer\n can communicate with the load balancer. Note that this is the default behavior.\n\n https://cloud.google.com/load-balancing/docs/internal#client_access", +} + +func (GCPLoadBalancerParameters) SwaggerDoc() map[string]string { + return map_GCPLoadBalancerParameters +} + var map_HostNetworkStrategy = map[string]string{ "": "HostNetworkStrategy holds parameters for the HostNetwork endpoint publishing strategy.", } @@ -659,6 +670,7 @@ var map_ProviderLoadBalancerParameters = map[string]string{ "": "ProviderLoadBalancerParameters holds desired load balancer information specific to the underlying infrastructure provider.", "type": "type is the underlying infrastructure provider for the load balancer. Allowed values are \"AWS\", \"Azure\", \"BareMetal\", \"GCP\", \"OpenStack\", and \"VSphere\".", "aws": "aws provides configuration settings that are specific to AWS load balancers.\n\nIf empty, defaults will be applied. See specific aws fields for details about their defaults.", + "gcp": "gcp provides configuration settings that are specific to GCP load balancers.\n\nIf empty, defaults will be applied. See specific gcp fields for details about their defaults.", } func (ProviderLoadBalancerParameters) SwaggerDoc() map[string]string { diff --git a/vendor/github.com/openshift/api/operator/v1alpha1/0000_10_config-operator_01_imagecontentsourcepolicy.crd.yaml b/vendor/github.com/openshift/api/operator/v1alpha1/0000_10_config-operator_01_imagecontentsourcepolicy.crd.yaml index 7ce8fa1176..16c5e4f8e5 100644 --- a/vendor/github.com/openshift/api/operator/v1alpha1/0000_10_config-operator_01_imagecontentsourcepolicy.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1alpha1/0000_10_config-operator_01_imagecontentsourcepolicy.crd.yaml @@ -54,7 +54,7 @@ spec: and the image may be pulled down from any of the mirrors in the list instead of the specified repository allowing administrators to choose a potentially faster mirror. Only image pull specifications that have - an image disgest will have this behavior applied to them - tags will + an image digest will have this behavior applied to them - tags will continue to be pulled from the specified repository in the pull spec. \n Each “source” repository is treated independently; configurations for different “source” repositories don’t interact. \n When multiple diff --git a/vendor/github.com/openshift/api/operator/v1alpha1/types_image_content_source_policy.go b/vendor/github.com/openshift/api/operator/v1alpha1/types_image_content_source_policy.go index 49f8b95222..29345e7d90 100644 --- a/vendor/github.com/openshift/api/operator/v1alpha1/types_image_content_source_policy.go +++ b/vendor/github.com/openshift/api/operator/v1alpha1/types_image_content_source_policy.go @@ -25,7 +25,7 @@ type ImageContentSourcePolicySpec struct { // provided to the pod will be compared to the source locations described in RepositoryDigestMirrors // and the image may be pulled down from any of the mirrors in the list instead of the // specified repository allowing administrators to choose a potentially faster mirror. - // Only image pull specifications that have an image disgest will have this behavior applied + // Only image pull specifications that have an image digest will have this behavior applied // to them - tags will continue to be pulled from the specified repository in the pull spec. // // Each “source” repository is treated independently; configurations for different “source” diff --git a/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.swagger_doc_generated.go index 5a32df8389..7af7159552 100644 --- a/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.swagger_doc_generated.go +++ b/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.swagger_doc_generated.go @@ -154,7 +154,7 @@ func (ImageContentSourcePolicyList) SwaggerDoc() map[string]string { var map_ImageContentSourcePolicySpec = map[string]string{ "": "ImageContentSourcePolicySpec is the specification of the ImageContentSourcePolicy CRD.", - "repositoryDigestMirrors": "repositoryDigestMirrors allows images referenced by image digests in pods to be pulled from alternative mirrored repository locations. The image pull specification provided to the pod will be compared to the source locations described in RepositoryDigestMirrors and the image may be pulled down from any of the mirrors in the list instead of the specified repository allowing administrators to choose a potentially faster mirror. Only image pull specifications that have an image disgest will have this behavior applied to them - tags will continue to be pulled from the specified repository in the pull spec.\n\nEach “source” repository is treated independently; configurations for different “source” repositories don’t interact.\n\nWhen multiple policies are defined for the same “source” repository, the sets of defined mirrors will be merged together, preserving the relative order of the mirrors, if possible. For example, if policy A has mirrors `a, b, c` and policy B has mirrors `c, d, e`, the mirrors will be used in the order `a, b, c, d, e`. If the orders of mirror entries conflict (e.g. `a, b` vs. `b, a`) the configuration is not rejected but the resulting order is unspecified.", + "repositoryDigestMirrors": "repositoryDigestMirrors allows images referenced by image digests in pods to be pulled from alternative mirrored repository locations. The image pull specification provided to the pod will be compared to the source locations described in RepositoryDigestMirrors and the image may be pulled down from any of the mirrors in the list instead of the specified repository allowing administrators to choose a potentially faster mirror. Only image pull specifications that have an image digest will have this behavior applied to them - tags will continue to be pulled from the specified repository in the pull spec.\n\nEach “source” repository is treated independently; configurations for different “source” repositories don’t interact.\n\nWhen multiple policies are defined for the same “source” repository, the sets of defined mirrors will be merged together, preserving the relative order of the mirrors, if possible. For example, if policy A has mirrors `a, b, c` and policy B has mirrors `c, d, e`, the mirrors will be used in the order `a, b, c, d, e`. If the orders of mirror entries conflict (e.g. `a, b` vs. `b, a`) the configuration is not rejected but the resulting order is unspecified.", } func (ImageContentSourcePolicySpec) SwaggerDoc() map[string]string { diff --git a/vendor/github.com/openshift/api/project/v1/generated.proto b/vendor/github.com/openshift/api/project/v1/generated.proto index 9b0637dea0..b30c6dda86 100644 --- a/vendor/github.com/openshift/api/project/v1/generated.proto +++ b/vendor/github.com/openshift/api/project/v1/generated.proto @@ -43,7 +43,7 @@ message ProjectList { repeated Project items = 2; } -// ProjecRequest is the set of options necessary to fully qualify a project request +// ProjectRequest is the set of options necessary to fully qualify a project request message ProjectRequest { optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; diff --git a/vendor/github.com/openshift/api/project/v1/types.go b/vendor/github.com/openshift/api/project/v1/types.go index dea150f12f..0aef40ad3b 100644 --- a/vendor/github.com/openshift/api/project/v1/types.go +++ b/vendor/github.com/openshift/api/project/v1/types.go @@ -81,7 +81,7 @@ type Project struct { // +genclient:skipVerbs=get,list,create,update,patch,delete,deleteCollection,watch // +genclient:method=Create,verb=create,result=Project -// ProjecRequest is the set of options necessary to fully qualify a project request +// ProjectRequest is the set of options necessary to fully qualify a project request type ProjectRequest struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` diff --git a/vendor/github.com/openshift/api/project/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/project/v1/zz_generated.swagger_doc_generated.go index 080f2677ae..245c7a76fb 100644 --- a/vendor/github.com/openshift/api/project/v1/zz_generated.swagger_doc_generated.go +++ b/vendor/github.com/openshift/api/project/v1/zz_generated.swagger_doc_generated.go @@ -31,7 +31,7 @@ func (ProjectList) SwaggerDoc() map[string]string { } var map_ProjectRequest = map[string]string{ - "": "ProjecRequest is the set of options necessary to fully qualify a project request", + "": "ProjectRequest is the set of options necessary to fully qualify a project request", "displayName": "DisplayName is the display name to apply to a project", "description": "Description is the description to apply to a project", } diff --git a/vendor/github.com/openshift/api/route/v1/types.go b/vendor/github.com/openshift/api/route/v1/types.go index e36e192d8f..af3e3a6ad1 100644 --- a/vendor/github.com/openshift/api/route/v1/types.go +++ b/vendor/github.com/openshift/api/route/v1/types.go @@ -282,3 +282,24 @@ const ( // Note that this will not match acme.test only *.acme.test WildcardPolicySubdomain WildcardPolicyType = "Subdomain" ) + +// Route Annotations +const ( + // AllowNonDNSCompliantHostAnnotation indicates that the host name in a route + // configuration is not required to follow strict DNS compliance. + // Unless the annotation is set to true, the route host name must have + // at least two labels, with each label no more than 63 characters from the set of + // alphanumeric characters, '-' or '.', and must start and end with an alphanumeric + // character. A trailing dot is allowed. The total host name length must be no more + // than 253 characters. + // + // When the annotation is set to true, the host name must pass a smaller set of + // requirements, i.e.: character set as described above, and total host name + // length must be no more than 253 characters. + // + // NOTE: use of this annotation may validate routes that cannot be admitted and will + // not function. The annotation is provided to allow a custom scenario, e.g. a custom + // ingress controller that relies on the route API, but for some customized purpose + // needs to use routes with invalid hosts. + AllowNonDNSCompliantHostAnnotation = "route.openshift.io/allow-non-dns-compliant-host" +) diff --git a/vendor/modules.txt b/vendor/modules.txt index 45e69bf784..b6e7343dfd 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -147,7 +147,7 @@ github.com/onsi/gomega/matchers/support/goraph/edge github.com/onsi/gomega/matchers/support/goraph/node github.com/onsi/gomega/matchers/support/goraph/util github.com/onsi/gomega/types -# github.com/openshift/api v0.0.0-20201216151826-78a19e96f9eb +# github.com/openshift/api v0.0.0-20210225162315-bae60f47eed7 github.com/openshift/api github.com/openshift/api/apps github.com/openshift/api/apps/v1