diff --git a/config/clientset/versioned/typed/config/v1/fake/fake_proxy.go b/config/clientset/versioned/typed/config/v1/fake/fake_proxy.go index 9cd56e5abd..7ae1b98b15 100644 --- a/config/clientset/versioned/typed/config/v1/fake/fake_proxy.go +++ b/config/clientset/versioned/typed/config/v1/fake/fake_proxy.go @@ -78,6 +78,17 @@ func (c *FakeProxies) Update(proxy *configv1.Proxy) (result *configv1.Proxy, err return obj.(*configv1.Proxy), err } +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeProxies) UpdateStatus(proxy *configv1.Proxy) (*configv1.Proxy, error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateSubresourceAction(proxiesResource, "status", proxy), &configv1.Proxy{}) + if obj == nil { + return nil, err + } + return obj.(*configv1.Proxy), err +} + // Delete takes name of the proxy and deletes it. Returns an error if one occurs. func (c *FakeProxies) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. diff --git a/config/clientset/versioned/typed/config/v1/proxy.go b/config/clientset/versioned/typed/config/v1/proxy.go index 50fa6b49da..189bf0ca26 100644 --- a/config/clientset/versioned/typed/config/v1/proxy.go +++ b/config/clientset/versioned/typed/config/v1/proxy.go @@ -23,6 +23,7 @@ type ProxiesGetter interface { type ProxyInterface interface { Create(*v1.Proxy) (*v1.Proxy, error) Update(*v1.Proxy) (*v1.Proxy, error) + UpdateStatus(*v1.Proxy) (*v1.Proxy, error) Delete(name string, options *metav1.DeleteOptions) error DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error Get(name string, options metav1.GetOptions) (*v1.Proxy, error) @@ -109,6 +110,21 @@ func (c *proxies) Update(proxy *v1.Proxy) (result *v1.Proxy, err error) { return } +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). + +func (c *proxies) UpdateStatus(proxy *v1.Proxy) (result *v1.Proxy, err error) { + result = &v1.Proxy{} + err = c.client.Put(). + Resource("proxies"). + Name(proxy.Name). + SubResource("status"). + Body(proxy). + Do(). + Into(result) + return +} + // Delete takes name of the proxy and deletes it. Returns an error if one occurs. func (c *proxies) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). diff --git a/glide.lock b/glide.lock index b83f928aea..9364e35312 100644 --- a/glide.lock +++ b/glide.lock @@ -1,5 +1,5 @@ hash: 595563cffda70c75833adcf07415011d115db7218cbbddc4c14f1684ad39638a -updated: 2019-05-17T14:11:03.71549+02:00 +updated: 2019-06-12T12:57:01.408584637-04:00 imports: - name: github.com/davecgh/go-spew version: 782f4967f2dc4564575ca782fe2d04090b5faca8 @@ -41,7 +41,7 @@ imports: - name: github.com/modern-go/reflect2 version: 94122c33edd36123c84d5368cfb2b69df93a0ec8 - name: github.com/openshift/api - version: d5b34b957e91dbf64013a866951c3ed5770db0b5 + version: fa9befef991415fa1117f69eec05bfa0d1344732 subpackages: - apps/v1 - authorization/v1 @@ -105,7 +105,7 @@ imports: subpackages: - imports - name: google.golang.org/appengine - version: 311d3c5cf9373249645db030e53c37c209a8b378 + version: b2f4a3cf3c67576a2ee09e1fe62656a5086ce880 subpackages: - internal - internal/base diff --git a/vendor/github.com/openshift/api/build/v1/consts.go b/vendor/github.com/openshift/api/build/v1/consts.go index 96917232d4..3eb187df5e 100644 --- a/vendor/github.com/openshift/api/build/v1/consts.go +++ b/vendor/github.com/openshift/api/build/v1/consts.go @@ -1,5 +1,65 @@ package v1 +// annotations +const ( + // BuildAnnotation is an annotation that identifies a Pod as being for a Build + BuildAnnotation = "openshift.io/build.name" + + // BuildConfigAnnotation is an annotation that identifies the BuildConfig that a Build was created from + BuildConfigAnnotation = "openshift.io/build-config.name" + + // BuildCloneAnnotation is an annotation whose value is the name of the build this build was cloned from + BuildCloneAnnotation = "openshift.io/build.clone-of" + + // BuildNumberAnnotation is an annotation whose value is the sequential number for this Build + BuildNumberAnnotation = "openshift.io/build.number" + + // BuildPodNameAnnotation is an annotation whose value is the name of the pod running this build + BuildPodNameAnnotation = "openshift.io/build.pod-name" + + // BuildJenkinsStatusJSONAnnotation is an annotation holding the Jenkins status information + BuildJenkinsStatusJSONAnnotation = "openshift.io/jenkins-status-json" + + // BuildJenkinsLogURLAnnotation is an annotation holding a link to the raw Jenkins build console log + BuildJenkinsLogURLAnnotation = "openshift.io/jenkins-log-url" + + // BuildJenkinsConsoleLogURLAnnotation is an annotation holding a link to the Jenkins build console log (including Jenkins chrome wrappering) + BuildJenkinsConsoleLogURLAnnotation = "openshift.io/jenkins-console-log-url" + + // BuildJenkinsBlueOceanLogURLAnnotation is an annotation holding a link to the Jenkins build console log via the Jenkins BlueOcean UI Plugin + BuildJenkinsBlueOceanLogURLAnnotation = "openshift.io/jenkins-blueocean-log-url" + + // BuildJenkinsBuildURIAnnotation is an annotation holding a link to the Jenkins build + BuildJenkinsBuildURIAnnotation = "openshift.io/jenkins-build-uri" + + // BuildSourceSecretMatchURIAnnotationPrefix is a prefix for annotations on a Secret which indicate a source URI against which the Secret can be used + BuildSourceSecretMatchURIAnnotationPrefix = "build.openshift.io/source-secret-match-uri-" + + // BuildConfigPausedAnnotation is an annotation that marks a BuildConfig as paused. + // New Builds cannot be instantiated from a paused BuildConfig. + BuildConfigPausedAnnotation = "openshift.io/build-config.paused" +) + +// labels +const ( + // BuildConfigLabel is the key of a Build label whose value is the ID of a BuildConfig + // on which the Build is based. NOTE: The value for this label may not contain the entire + // BuildConfig name because it will be truncated to maximum label length. + BuildConfigLabel = "openshift.io/build-config.name" + + // BuildLabel is the key of a Pod label whose value is the Name of a Build which is run. + // NOTE: The value for this label may not contain the entire Build name because it will be + // truncated to maximum label length. + BuildLabel = "openshift.io/build.name" + + // BuildRunPolicyLabel represents the start policy used to to start the build. + BuildRunPolicyLabel = "openshift.io/build.start-policy" + + // BuildConfigLabelDeprecated was used as BuildConfigLabel before adding namespaces. + // We keep it for backward compatibility. + BuildConfigLabelDeprecated = "buildconfig" +) + const ( // StatusReasonError is a generic reason for a build error condition. StatusReasonError StatusReason = "Error" @@ -95,3 +155,38 @@ const ( // from its node StatusReasonBuildPodEvicted StatusReason = "BuildPodEvicted" ) + +// env vars +// WhitelistEnvVarNames is a list of special env vars allows s2i containers +var WhitelistEnvVarNames = []string{"BUILD_LOGLEVEL", "GIT_SSL_NO_VERIFY", "HTTP_PROXY", "HTTPS_PROXY", "LANG", "NO_PROXY"} + +// env vars +const ( + + // CustomBuildStrategyBaseImageKey is the environment variable that indicates the base image to be used when + // performing a custom build, if needed. + CustomBuildStrategyBaseImageKey = "OPENSHIFT_CUSTOM_BUILD_BASE_IMAGE" + + // AllowedUIDs is an environment variable that contains ranges of UIDs that are allowed in + // Source builder images + AllowedUIDs = "ALLOWED_UIDS" + // DropCapabilities is an environment variable that contains a list of capabilities to drop when + // executing a Source build + DropCapabilities = "DROP_CAPS" +) + +// keys inside of secrets and configmaps +const ( + // WebHookSecretKey is the key used to identify the value containing the webhook invocation + // secret within a secret referenced by a webhook trigger. + WebHookSecretKey = "WebHookSecretKey" + + // RegistryConfKey is the ConfigMap key for the build pod's registry configuration file. + RegistryConfKey = "registries.conf" + + // SignaturePolicyKey is the ConfigMap key for the build pod's image signature policy file. + SignaturePolicyKey = "policy.json" + + // ServiceCAKey is the ConfigMap key for the service signing certificate authority mounted into build pods. + ServiceCAKey = "service-ca.crt" +) diff --git a/vendor/github.com/openshift/api/config/v1/types_image.go b/vendor/github.com/openshift/api/config/v1/types_image.go index ca51f16378..d9e54b633e 100644 --- a/vendor/github.com/openshift/api/config/v1/types_image.go +++ b/vendor/github.com/openshift/api/config/v1/types_image.go @@ -94,7 +94,7 @@ type RegistryLocation struct { // RegistrySources holds cluster-wide information about how to handle the registries config. type RegistrySources struct { - // InsecureRegistries are registries which do not have a valid SSL certificate or only support HTTP connections. + // InsecureRegistries are registries which do not have a valid TLS certificates or only support HTTP connections. // +optional InsecureRegistries []string `json:"insecureRegistries,omitempty"` // BlockedRegistries are blacklisted from image pull/push. All other registries are allowed. diff --git a/vendor/github.com/openshift/api/config/v1/types_proxy.go b/vendor/github.com/openshift/api/config/v1/types_proxy.go index 4004ace8b0..5539c9aa57 100644 --- a/vendor/github.com/openshift/api/config/v1/types_proxy.go +++ b/vendor/github.com/openshift/api/config/v1/types_proxy.go @@ -15,8 +15,12 @@ type Proxy struct { // Spec holds user-settable values for the proxy configuration // +required Spec ProxySpec `json:"spec"` + // status holds observed values from the cluster. They may not be overridden. + // +optional + Status ProxyStatus `json:"status"` } +// ProxySpec contains cluster proxy creation configuration. type ProxySpec struct { // httpProxy is the URL of the proxy for HTTP requests. Empty means unset and will not result in an env var. // +optional @@ -26,7 +30,26 @@ type ProxySpec struct { // +optional HTTPSProxy string `json:"httpsProxy,omitempty"` - // noProxy is the list of domains for which the proxy should not be used. Empty means unset and will not result in an env var. + // noProxy is a comma-separated list of hostnames and/or CIDRs for which the proxy should not be used. + // Each name is matched as either a domain which contains the host name as a suffix, or the host name itself. + // For instance, example.com would match example.com, example.com:80, and www.example.com. + // Wildcard(*) characters are not accepted, except a single * character which matches all hosts + // and effectively disables the proxy. Empty means unset and will not result in an env var. + // +optional + NoProxy string `json:"noProxy,omitempty"` +} + +// ProxyStatus shows current known state of the cluster proxy. +type ProxyStatus struct { + // httpProxy is the URL of the proxy for HTTP requests. + // +optional + HTTPProxy string `json:"httpProxy,omitempty"` + + // httpsProxy is the URL of the proxy for HTTPS requests. + // +optional + HTTPSProxy string `json:"httpsProxy,omitempty"` + + // noProxy is a comma-separated list of hostnames and/or CIDRs for which the proxy should not be used. // +optional NoProxy string `json:"noProxy,omitempty"` } 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 bb944cd89f..aa7adfb603 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 @@ -2413,6 +2413,7 @@ func (in *Proxy) DeepCopyInto(out *Proxy) { out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) out.Spec = in.Spec + out.Status = in.Status return } @@ -2483,6 +2484,22 @@ func (in *ProxySpec) DeepCopy() *ProxySpec { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProxyStatus) DeepCopyInto(out *ProxyStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyStatus. +func (in *ProxyStatus) DeepCopy() *ProxyStatus { + if in == nil { + return nil + } + out := new(ProxyStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RegistryLocation) DeepCopyInto(out *RegistryLocation) { *out = *in 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 18e6fb47b9..07da832296 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 @@ -690,7 +690,7 @@ func (RegistryLocation) SwaggerDoc() map[string]string { var map_RegistrySources = map[string]string{ "": "RegistrySources holds cluster-wide information about how to handle the registries config.", - "insecureRegistries": "InsecureRegistries are registries which do not have a valid SSL certificate or only support HTTP connections.", + "insecureRegistries": "InsecureRegistries are registries which do not have a valid TLS certificates or only support HTTP connections.", "blockedRegistries": "BlockedRegistries are blacklisted from image pull/push. All other registries are allowed.\n\nOnly one of BlockedRegistries or AllowedRegistries may be set.", "allowedRegistries": "AllowedRegistries are whitelisted for image pull/push. All other registries are blocked.\n\nOnly one of BlockedRegistries or AllowedRegistries may be set.", } @@ -1098,8 +1098,9 @@ func (TemplateReference) SwaggerDoc() map[string]string { } var map_Proxy = map[string]string{ - "": "Proxy holds cluster-wide information on how to configure default proxies for the cluster. The canonical name is `cluster`", - "spec": "Spec holds user-settable values for the proxy configuration", + "": "Proxy holds cluster-wide information on how to configure default proxies for the cluster. The canonical name is `cluster`", + "spec": "Spec holds user-settable values for the proxy configuration", + "status": "status holds observed values from the cluster. They may not be overridden.", } func (Proxy) SwaggerDoc() map[string]string { @@ -1115,15 +1116,27 @@ func (ProxyList) SwaggerDoc() map[string]string { } var map_ProxySpec = map[string]string{ + "": "ProxySpec contains cluster proxy creation configuration.", "httpProxy": "httpProxy is the URL of the proxy for HTTP requests. Empty means unset and will not result in an env var.", "httpsProxy": "httpsProxy is the URL of the proxy for HTTPS requests. Empty means unset and will not result in an env var.", - "noProxy": "noProxy is the list of domains for which the proxy should not be used. Empty means unset and will not result in an env var.", + "noProxy": "noProxy is a comma-separated list of hostnames and/or CIDRs for which the proxy should not be used. Each name is matched as either a domain which contains the host name as a suffix, or the host name itself. For instance, example.com would match example.com, example.com:80, and www.example.com. Wildcard(*) characters are not accepted, except a single * character which matches all hosts and effectively disables the proxy. Empty means unset and will not result in an env var.", } func (ProxySpec) SwaggerDoc() map[string]string { return map_ProxySpec } +var map_ProxyStatus = map[string]string{ + "": "ProxyStatus shows current known state of the cluster proxy.", + "httpProxy": "httpProxy is the URL of the proxy for HTTP requests.", + "httpsProxy": "httpsProxy is the URL of the proxy for HTTPS requests.", + "noProxy": "noProxy is a comma-separated list of hostnames and/or CIDRs for which the proxy should not be used.", +} + +func (ProxyStatus) SwaggerDoc() map[string]string { + return map_ProxyStatus +} + var map_Scheduler = map[string]string{ "": "Scheduler holds cluster-wide information about Scheduler. The canonical name is `cluster`", "metadata": "Standard object's metadata.", diff --git a/vendor/github.com/openshift/api/hack/lib/init.sh b/vendor/github.com/openshift/api/hack/lib/init.sh index ecda5d0cb8..9b2c2e7d6d 100644 --- a/vendor/github.com/openshift/api/hack/lib/init.sh +++ b/vendor/github.com/openshift/api/hack/lib/init.sh @@ -13,6 +13,7 @@ API_GROUP_VERSIONS="\ apps/v1 \ authorization/v1 \ build/v1 \ +console/v1 \ config/v1 \ image/v1 \ kubecontrolplane/v1 \ diff --git a/vendor/github.com/openshift/api/hack/update-deepcopy.sh b/vendor/github.com/openshift/api/hack/update-deepcopy.sh index c159baea75..b9a2a21ba3 100755 --- a/vendor/github.com/openshift/api/hack/update-deepcopy.sh +++ b/vendor/github.com/openshift/api/hack/update-deepcopy.sh @@ -10,6 +10,7 @@ verify="${VERIFY:-}" ${CODEGEN_PKG}/generate-groups.sh "deepcopy" \ github.com/openshift/api/generated \ github.com/openshift/api \ - "apps:v1 authorization:v1 build:v1 config:v1 image:v1,docker10,dockerpre012 kubecontrolplane:v1 legacyconfig:v1 network:v1 oauth:v1 openshiftcontrolplane:v1 operator:v1 operator:v1alpha1 osin:v1 project:v1 quota:v1 route:v1 security:v1 servicecertsigner:v1alpha1 template:v1 user:v1 webconsole:v1" \ + "apps:v1 authorization:v1 build:v1 config:v1 console:v1 image:v1,docker10,dockerpre012 kubecontrolplane:v1 legacyconfig:v1 network:v1 oauth:v1 openshiftcontrolplane:v1 operator:v1 operator:v1alpha1 osin:v1 project:v1 quota:v1 route:v1 security:v1 servicecertsigner:v1alpha1 template:v1 user:v1 webconsole:v1" \ --go-header-file ${SCRIPT_ROOT}/hack/empty.txt \ ${verify} + diff --git a/vendor/github.com/openshift/api/image/v1/types.go b/vendor/github.com/openshift/api/image/v1/types.go index 90b70f4670..6524942500 100644 --- a/vendor/github.com/openshift/api/image/v1/types.go +++ b/vendor/github.com/openshift/api/image/v1/types.go @@ -6,27 +6,6 @@ import ( "k8s.io/apimachinery/pkg/runtime" ) -const ( - // ResourceImageStreams represents a number of image streams in a project. - ResourceImageStreams corev1.ResourceName = "openshift.io/imagestreams" - - // ResourceImageStreamImages represents a number of unique references to images in all image stream - // statuses of a project. - ResourceImageStreamImages corev1.ResourceName = "openshift.io/images" - - // ResourceImageStreamTags represents a number of unique references to images in all image stream specs - // of a project. - ResourceImageStreamTags corev1.ResourceName = "openshift.io/image-tags" - - // Limit that applies to images. Used with a max["storage"] LimitRangeItem to set - // the maximum size of an image. - LimitTypeImage corev1.LimitType = "openshift.io/Image" - - // Limit that applies to image streams. Used with a max[resource] LimitRangeItem to set the maximum number - // of resource. Where the resource is one of "openshift.io/images" and "openshift.io/image-tags". - LimitTypeImageStream corev1.LimitType = "openshift.io/ImageStream" -) - // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // ImageList is a list of Image objects. diff --git a/vendor/github.com/openshift/api/network/v1/generated.pb.go b/vendor/github.com/openshift/api/network/v1/generated.pb.go index 4350b10a56..9264f76646 100644 --- a/vendor/github.com/openshift/api/network/v1/generated.pb.go +++ b/vendor/github.com/openshift/api/network/v1/generated.pb.go @@ -160,6 +160,11 @@ func (m *ClusterNetwork) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(*m.VXLANPort)) } + if m.MTU != nil { + dAtA[i] = 0x40 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.MTU)) + } return i, nil } @@ -606,6 +611,9 @@ func (m *ClusterNetwork) Size() (n int) { if m.VXLANPort != nil { n += 1 + sovGenerated(uint64(*m.VXLANPort)) } + if m.MTU != nil { + n += 1 + sovGenerated(uint64(*m.MTU)) + } return n } @@ -784,6 +792,7 @@ func (this *ClusterNetwork) String() string { `PluginName:` + fmt.Sprintf("%v", this.PluginName) + `,`, `ClusterNetworks:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ClusterNetworks), "ClusterNetworkEntry", "ClusterNetworkEntry", 1), `&`, ``, 1) + `,`, `VXLANPort:` + valueToStringGenerated(this.VXLANPort) + `,`, + `MTU:` + valueToStringGenerated(this.MTU) + `,`, `}`, }, "") return s @@ -1138,6 +1147,26 @@ func (m *ClusterNetwork) Unmarshal(dAtA []byte) error { } } m.VXLANPort = &v + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MTU", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.MTU = &v default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -2601,65 +2630,66 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 946 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0x4f, 0x6f, 0xe3, 0x44, - 0x14, 0x8f, 0xd3, 0xa4, 0xdd, 0x4c, 0xda, 0xb4, 0x9a, 0x45, 0xac, 0x55, 0xa4, 0x24, 0xf2, 0x4a, - 0x28, 0x68, 0x85, 0x4d, 0xba, 0x08, 0xf5, 0x80, 0x40, 0x78, 0x5b, 0x69, 0x23, 0x95, 0x10, 0x4d, - 0xaa, 0x55, 0x85, 0x00, 0xe1, 0x3a, 0x6f, 0x1d, 0xd3, 0xc4, 0xb6, 0x3c, 0x93, 0x40, 0x84, 0xf8, - 0xf7, 0x0d, 0xf8, 0x30, 0x7c, 0x00, 0x0e, 0x1c, 0x7a, 0xe0, 0xb0, 0x27, 0xd8, 0x53, 0x44, 0xc3, - 0x99, 0x2f, 0xc0, 0x09, 0xcd, 0x78, 0x1c, 0xdb, 0x5d, 0x17, 0xa2, 0xa2, 0xcd, 0x29, 0x99, 0xf7, - 0x7b, 0x7f, 0xe7, 0xf7, 0xde, 0x1b, 0xa3, 0x87, 0x8e, 0xcb, 0x86, 0x93, 0x73, 0xdd, 0xf6, 0xc7, - 0x86, 0x1f, 0x80, 0x47, 0x87, 0xee, 0x53, 0x66, 0x58, 0x81, 0x6b, 0x78, 0xc0, 0xbe, 0xf4, 0xc3, - 0x0b, 0x63, 0xda, 0x36, 0x1c, 0xf0, 0x20, 0xb4, 0x18, 0x0c, 0xf4, 0x20, 0xf4, 0x99, 0x8f, 0xef, - 0x27, 0x46, 0xfa, 0xd2, 0x48, 0xb7, 0x02, 0x57, 0x97, 0x46, 0xfa, 0xb4, 0xbd, 0xff, 0x66, 0xca, - 0xb3, 0xe3, 0x3b, 0xbe, 0x21, 0x6c, 0xcf, 0x27, 0x4f, 0xc5, 0x49, 0x1c, 0xc4, 0xbf, 0xc8, 0xe7, - 0xfe, 0xdb, 0x17, 0x87, 0x54, 0x77, 0x7d, 0x1e, 0x7a, 0x6c, 0xd9, 0x43, 0xd7, 0x83, 0x70, 0x66, - 0x04, 0x17, 0x0e, 0x17, 0x50, 0x63, 0x0c, 0xcc, 0xca, 0xc9, 0x64, 0xff, 0x9d, 0x9b, 0xac, 0xc2, - 0x89, 0xc7, 0xdc, 0x31, 0x18, 0xd4, 0x1e, 0xc2, 0xd8, 0xba, 0x6e, 0xa7, 0xfd, 0x50, 0x42, 0xb5, - 0x47, 0xa3, 0x09, 0x65, 0x10, 0x76, 0xa3, 0x94, 0xf1, 0xe7, 0xe8, 0x0e, 0x8f, 0x32, 0xb0, 0x98, - 0xa5, 0x2a, 0x4d, 0xa5, 0x55, 0x3d, 0x78, 0x4b, 0x8f, 0xbc, 0xeb, 0x69, 0xef, 0x7a, 0x70, 0xe1, - 0x70, 0x01, 0xd5, 0xb9, 0xb6, 0x3e, 0x6d, 0xeb, 0x1f, 0x9d, 0x7f, 0x01, 0x36, 0xfb, 0x10, 0x98, - 0x65, 0xe2, 0xcb, 0x79, 0xa3, 0xb0, 0x98, 0x37, 0x50, 0x22, 0x23, 0x4b, 0xaf, 0xf8, 0x0d, 0xb4, - 0x25, 0xef, 0x47, 0x2d, 0x36, 0x95, 0x56, 0xc5, 0xdc, 0x95, 0xea, 0x5b, 0x32, 0x07, 0x12, 0xe3, - 0xf8, 0x08, 0xed, 0x0d, 0x7d, 0xca, 0xe8, 0xe4, 0xdc, 0x03, 0x36, 0x02, 0xcf, 0x61, 0x43, 0x75, - 0xa3, 0xa9, 0xb4, 0x76, 0x4c, 0x55, 0xda, 0xec, 0x3d, 0xf6, 0x29, 0xeb, 0x0b, 0xfc, 0x44, 0xe0, - 0xe4, 0x05, 0x0b, 0xfc, 0x1e, 0xaa, 0x51, 0x08, 0xa7, 0xae, 0x0d, 0x32, 0x80, 0x5a, 0x12, 0x71, - 0x5f, 0x95, 0x3e, 0x6a, 0xfd, 0x0c, 0x4a, 0xae, 0x69, 0xe3, 0x03, 0x84, 0x82, 0xd1, 0xc4, 0x71, - 0xbd, 0xae, 0x35, 0x06, 0xb5, 0x2c, 0x6c, 0x97, 0x25, 0xf6, 0x96, 0x08, 0x49, 0x69, 0xe1, 0xaf, - 0xd1, 0xae, 0x9d, 0xb9, 0x58, 0xaa, 0x6e, 0x36, 0x37, 0x5a, 0xd5, 0x83, 0x43, 0x7d, 0x85, 0xae, - 0xd1, 0xb3, 0xa4, 0x1c, 0x7b, 0x2c, 0x9c, 0x99, 0xf7, 0x64, 0xc8, 0xdd, 0x2c, 0x48, 0xc9, 0xf5, - 0x48, 0xf8, 0x01, 0xaa, 0x4c, 0xbf, 0x1a, 0x59, 0x5e, 0xcf, 0x0f, 0x99, 0xba, 0x25, 0xee, 0x6b, - 0x67, 0x31, 0x6f, 0x54, 0x9e, 0x9c, 0x9d, 0x7c, 0xd0, 0xe5, 0x42, 0x92, 0xe0, 0xda, 0x37, 0xe8, - 0x6e, 0x4e, 0x34, 0xdc, 0x44, 0x25, 0xdb, 0x1d, 0x84, 0xa2, 0x07, 0x2a, 0xe6, 0xb6, 0x8c, 0x5d, - 0x7a, 0xd4, 0x39, 0x22, 0x44, 0x20, 0x31, 0x39, 0xe9, 0xcb, 0x17, 0x84, 0xfe, 0x27, 0x39, 0x69, - 0x89, 0xf6, 0xab, 0x82, 0x70, 0x36, 0xfe, 0x89, 0x4b, 0x19, 0xfe, 0xe4, 0x85, 0x36, 0xd4, 0x57, - 0x6b, 0x43, 0x6e, 0x2d, 0x9a, 0x70, 0x4f, 0x26, 0x71, 0x27, 0x96, 0xa4, 0x5a, 0xf0, 0x0c, 0x95, - 0x5d, 0x06, 0x63, 0xaa, 0x16, 0x05, 0x27, 0x0f, 0x6f, 0xc1, 0x89, 0xb9, 0x23, 0xfd, 0x97, 0x3b, - 0xdc, 0x13, 0x89, 0x1c, 0x6a, 0xbf, 0x2b, 0xe8, 0xee, 0xb1, 0x13, 0x02, 0xa5, 0x52, 0xaf, 0xe7, - 0x8f, 0x5c, 0x7b, 0xb6, 0x86, 0xb1, 0xfa, 0x0c, 0x95, 0x68, 0x00, 0xb6, 0xa0, 0xa0, 0x7a, 0xf0, - 0xee, 0x4a, 0x25, 0xe5, 0x64, 0xda, 0x0f, 0xc0, 0x4e, 0xe8, 0xe6, 0x27, 0x22, 0xfc, 0x6a, 0xbf, - 0x29, 0xe8, 0x5e, 0x8e, 0xfe, 0x1a, 0xd8, 0xfa, 0x34, 0xcb, 0xd6, 0xe1, 0x6d, 0x4b, 0xbb, 0x81, - 0xb2, 0x6f, 0x73, 0xeb, 0xea, 0x01, 0x84, 0xf8, 0x10, 0x6d, 0xf3, 0x56, 0xef, 0xc3, 0x08, 0x6c, - 0xe6, 0xc7, 0xc3, 0xf0, 0x8a, 0x74, 0xb3, 0xcd, 0x87, 0x21, 0xc6, 0x48, 0x46, 0x93, 0x2f, 0xb9, - 0x81, 0x47, 0xc5, 0xc2, 0xb8, 0xb6, 0xe4, 0x8e, 0xba, 0x7d, 0xb1, 0x2d, 0x62, 0x5c, 0xfb, 0x29, - 0xff, 0x62, 0xc9, 0x64, 0x04, 0xf8, 0x7d, 0x54, 0x62, 0xb3, 0x00, 0x64, 0xe0, 0x07, 0x31, 0x2d, - 0xa7, 0xb3, 0x00, 0xfe, 0x9e, 0x37, 0x5e, 0xbb, 0xc1, 0x8c, 0xc3, 0x44, 0x18, 0xe2, 0x33, 0x54, - 0x64, 0xfe, 0xff, 0xed, 0x09, 0x7e, 0x17, 0x26, 0x92, 0xc1, 0x8b, 0xa7, 0x3e, 0x29, 0x32, 0x5f, - 0xfb, 0x2e, 0x37, 0x6b, 0xde, 0x30, 0x78, 0x80, 0x36, 0x41, 0x40, 0xaa, 0x22, 0x18, 0xbb, 0x75, - 0x60, 0x5e, 0x8c, 0x59, 0x93, 0x81, 0x37, 0x23, 0x05, 0x22, 0x7d, 0x6b, 0x3f, 0x17, 0x11, 0x4a, - 0x16, 0xcc, 0x1a, 0x26, 0xac, 0x89, 0x4a, 0x7c, 0x7d, 0x49, 0x42, 0x97, 0x33, 0xc2, 0x73, 0x20, - 0x02, 0xc1, 0xaf, 0xa3, 0x4d, 0xfe, 0xdb, 0xe9, 0x89, 0x57, 0xaa, 0x92, 0xa4, 0xfe, 0x58, 0x48, - 0x89, 0x44, 0xb9, 0x5e, 0xf4, 0x42, 0xc9, 0x97, 0x68, 0xa9, 0x17, 0xd5, 0x42, 0x24, 0xca, 0x17, - 0x79, 0x54, 0x6c, 0xa7, 0x47, 0xd5, 0x72, 0x73, 0xa3, 0x55, 0x89, 0x16, 0xf9, 0x71, 0x2c, 0x24, - 0x09, 0x8e, 0xdb, 0xa8, 0x1a, 0x1d, 0x78, 0x5b, 0x46, 0xcf, 0x4d, 0xc5, 0xdc, 0x5d, 0xcc, 0x1b, - 0xd5, 0xe3, 0x44, 0x4c, 0xd2, 0x3a, 0xda, 0x2f, 0x0a, 0xaa, 0xa5, 0x76, 0xf4, 0xcb, 0x1f, 0xe5, - 0xd3, 0xec, 0x28, 0x1b, 0x2b, 0x35, 0x46, 0x92, 0xe1, 0x0d, 0x13, 0xfc, 0x97, 0x82, 0xb6, 0xbb, - 0xc0, 0xf8, 0x34, 0xd1, 0xc0, 0xb2, 0x61, 0x6d, 0x1f, 0x31, 0x5e, 0xce, 0x7c, 0xcb, 0x44, 0x48, - 0x8c, 0xe3, 0xfb, 0xa8, 0xec, 0x01, 0x73, 0x07, 0xf2, 0xcb, 0x65, 0x59, 0x42, 0x17, 0x58, 0xe7, - 0x88, 0x44, 0x58, 0x96, 0xe9, 0xd2, 0xbf, 0x33, 0xad, 0x5d, 0x2a, 0x68, 0x2f, 0x5d, 0xef, 0x1a, - 0x88, 0x7b, 0x92, 0x25, 0xae, 0xbd, 0x12, 0x71, 0xe9, 0x1c, 0xf3, 0xa9, 0x33, 0x5b, 0x97, 0x57, - 0xf5, 0xc2, 0xb3, 0xab, 0x7a, 0xe1, 0xf9, 0x55, 0xbd, 0xf0, 0xfd, 0xa2, 0xae, 0x5c, 0x2e, 0xea, - 0xca, 0xb3, 0x45, 0x5d, 0x79, 0xbe, 0xa8, 0x2b, 0x7f, 0x2c, 0xea, 0xca, 0x8f, 0x7f, 0xd6, 0x0b, - 0x1f, 0x17, 0xa7, 0xed, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xd4, 0x18, 0x07, 0x95, 0xa3, 0x0b, - 0x00, 0x00, + // 967 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xcf, 0x6e, 0xe3, 0x44, + 0x18, 0x8f, 0xf3, 0xa7, 0x6d, 0x26, 0x6d, 0x5a, 0xcd, 0x22, 0xd6, 0x14, 0xc9, 0x89, 0xbc, 0x12, + 0x0a, 0x5a, 0x61, 0x93, 0x2e, 0x42, 0x3d, 0x20, 0x10, 0xde, 0x56, 0xda, 0x48, 0xdd, 0x10, 0x4d, + 0xca, 0xaa, 0x42, 0x80, 0x70, 0x9d, 0x59, 0xc7, 0x34, 0xb1, 0x2d, 0xcf, 0x38, 0x10, 0x21, 0xfe, + 0x3c, 0x02, 0x0f, 0xc0, 0x63, 0xf0, 0x00, 0x1c, 0x38, 0xf4, 0xc0, 0x61, 0x4f, 0xb0, 0xa7, 0x88, + 0x9a, 0x33, 0x2f, 0xc0, 0x09, 0xcd, 0x78, 0x1c, 0xdb, 0x5d, 0x17, 0xa2, 0x22, 0x72, 0x4a, 0xe6, + 0xfb, 0x7d, 0x7f, 0xe7, 0xf7, 0x7d, 0xdf, 0x18, 0x3c, 0xb0, 0x1d, 0x3a, 0x0e, 0xcf, 0x35, 0xcb, + 0x9b, 0xea, 0x9e, 0x8f, 0x5d, 0x32, 0x76, 0x9e, 0x52, 0xdd, 0xf4, 0x1d, 0xdd, 0xc5, 0xf4, 0x0b, + 0x2f, 0xb8, 0xd0, 0x67, 0x5d, 0xdd, 0xc6, 0x2e, 0x0e, 0x4c, 0x8a, 0x47, 0x9a, 0x1f, 0x78, 0xd4, + 0x83, 0xf7, 0x52, 0x23, 0x6d, 0x69, 0xa4, 0x99, 0xbe, 0xa3, 0x09, 0x23, 0x6d, 0xd6, 0xdd, 0x7f, + 0x23, 0xe3, 0xd9, 0xf6, 0x6c, 0x4f, 0xe7, 0xb6, 0xe7, 0xe1, 0x53, 0x7e, 0xe2, 0x07, 0xfe, 0x2f, + 0xf6, 0xb9, 0xff, 0xd6, 0xc5, 0x21, 0xd1, 0x1c, 0x8f, 0x85, 0x9e, 0x9a, 0xd6, 0xd8, 0x71, 0x71, + 0x30, 0xd7, 0xfd, 0x0b, 0x9b, 0x09, 0x88, 0x3e, 0xc5, 0xd4, 0x2c, 0xc8, 0x64, 0xff, 0xed, 0x9b, + 0xac, 0x82, 0xd0, 0xa5, 0xce, 0x14, 0xeb, 0xc4, 0x1a, 0xe3, 0xa9, 0x79, 0xdd, 0x4e, 0xfd, 0xa1, + 0x0a, 0x9a, 0x0f, 0x27, 0x21, 0xa1, 0x38, 0xe8, 0xc7, 0x29, 0xc3, 0xcf, 0xc0, 0x16, 0x8b, 0x32, + 0x32, 0xa9, 0x29, 0x4b, 0x6d, 0xa9, 0xd3, 0x38, 0x78, 0x53, 0x8b, 0xbd, 0x6b, 0x59, 0xef, 0x9a, + 0x7f, 0x61, 0x33, 0x01, 0xd1, 0x98, 0xb6, 0x36, 0xeb, 0x6a, 0x1f, 0x9c, 0x7f, 0x8e, 0x2d, 0xfa, + 0x18, 0x53, 0xd3, 0x80, 0x97, 0x8b, 0x56, 0x29, 0x5a, 0xb4, 0x40, 0x2a, 0x43, 0x4b, 0xaf, 0xf0, + 0x75, 0xb0, 0x29, 0xee, 0x47, 0x2e, 0xb7, 0xa5, 0x4e, 0xdd, 0xd8, 0x15, 0xea, 0x9b, 0x22, 0x07, + 0x94, 0xe0, 0xf0, 0x08, 0xec, 0x8d, 0x3d, 0x42, 0x49, 0x78, 0xee, 0x62, 0x3a, 0xc1, 0xae, 0x4d, + 0xc7, 0x72, 0xa5, 0x2d, 0x75, 0x76, 0x0c, 0x59, 0xd8, 0xec, 0x3d, 0xf2, 0x08, 0x1d, 0x72, 0xfc, + 0x84, 0xe3, 0xe8, 0x05, 0x0b, 0xf8, 0x2e, 0x68, 0x12, 0x1c, 0xcc, 0x1c, 0x0b, 0x8b, 0x00, 0x72, + 0x95, 0xc7, 0x7d, 0x59, 0xf8, 0x68, 0x0e, 0x73, 0x28, 0xba, 0xa6, 0x0d, 0x0f, 0x00, 0xf0, 0x27, + 0xa1, 0xed, 0xb8, 0x7d, 0x73, 0x8a, 0xe5, 0x1a, 0xb7, 0x5d, 0x96, 0x38, 0x58, 0x22, 0x28, 0xa3, + 0x05, 0xbf, 0x02, 0xbb, 0x56, 0xee, 0x62, 0x89, 0xbc, 0xd1, 0xae, 0x74, 0x1a, 0x07, 0x87, 0xda, + 0x0a, 0x5d, 0xa3, 0xe5, 0x49, 0x39, 0x76, 0x69, 0x30, 0x37, 0xee, 0x8a, 0x90, 0xbb, 0x79, 0x90, + 0xa0, 0xeb, 0x91, 0xe0, 0x7d, 0x50, 0x9f, 0x7d, 0x39, 0x31, 0xdd, 0x81, 0x17, 0x50, 0x79, 0x93, + 0xdf, 0xd7, 0x4e, 0xb4, 0x68, 0xd5, 0x9f, 0x9c, 0x9d, 0xbc, 0xdf, 0x67, 0x42, 0x94, 0xe2, 0xf0, + 0x15, 0x50, 0x99, 0xd2, 0x50, 0xde, 0xe2, 0x6a, 0x9b, 0xd1, 0xa2, 0x55, 0x79, 0x7c, 0xfa, 0x21, + 0x62, 0x32, 0xf5, 0x6b, 0x70, 0xa7, 0x20, 0x11, 0xd8, 0x06, 0x55, 0xcb, 0x19, 0x05, 0xbc, 0x3d, + 0xea, 0xc6, 0xb6, 0x48, 0xab, 0xfa, 0xb0, 0x77, 0x84, 0x10, 0x47, 0x12, 0xde, 0xb2, 0xbc, 0x70, + 0xae, 0xff, 0x95, 0xb7, 0xac, 0x44, 0xfd, 0x45, 0x02, 0x30, 0x1f, 0xff, 0xc4, 0x21, 0x14, 0x7e, + 0xfc, 0x42, 0x87, 0x6a, 0xab, 0x75, 0x28, 0xb3, 0xe6, 0xfd, 0xb9, 0x27, 0x92, 0xd8, 0x4a, 0x24, + 0x99, 0xee, 0x3c, 0x03, 0x35, 0x87, 0xe2, 0x29, 0x91, 0xcb, 0x9c, 0xae, 0x07, 0xb7, 0xa0, 0xcb, + 0xd8, 0x11, 0xfe, 0x6b, 0x3d, 0xe6, 0x09, 0xc5, 0x0e, 0xd5, 0xdf, 0x24, 0x70, 0xe7, 0xd8, 0x0e, + 0x30, 0x21, 0x42, 0x6f, 0xe0, 0x4d, 0x1c, 0x6b, 0xbe, 0x86, 0x89, 0xfb, 0x14, 0x54, 0x89, 0x8f, + 0x2d, 0x4e, 0x41, 0xe3, 0xe0, 0x9d, 0x95, 0x4a, 0x2a, 0xc8, 0x74, 0xe8, 0x63, 0x2b, 0xa5, 0x9b, + 0x9d, 0x10, 0xf7, 0xab, 0xfe, 0x2a, 0x81, 0xbb, 0x05, 0xfa, 0x6b, 0x60, 0xeb, 0x93, 0x3c, 0x5b, + 0x87, 0xb7, 0x2d, 0xed, 0x06, 0xca, 0xbe, 0x29, 0xac, 0x6b, 0x80, 0x71, 0x00, 0x0f, 0xc1, 0x36, + 0x6b, 0xf5, 0x21, 0x9e, 0x60, 0x8b, 0x7a, 0xc9, 0x30, 0xbc, 0x24, 0xdc, 0x6c, 0xb3, 0x61, 0x48, + 0x30, 0x94, 0xd3, 0x64, 0xfb, 0x6f, 0xe4, 0x12, 0xbe, 0x4b, 0xae, 0xed, 0xbf, 0xa3, 0xfe, 0x90, + 0x2f, 0x92, 0x04, 0x57, 0x7f, 0x2c, 0xbe, 0x58, 0x14, 0x4e, 0x30, 0x7c, 0x0f, 0x54, 0xe9, 0xdc, + 0xc7, 0x22, 0xf0, 0xfd, 0x84, 0x96, 0xd3, 0xb9, 0x8f, 0xff, 0x5a, 0xb4, 0x5e, 0xbd, 0xc1, 0x8c, + 0xc1, 0x88, 0x1b, 0xc2, 0x33, 0x50, 0xa6, 0xde, 0x7f, 0xed, 0x09, 0x76, 0x17, 0x06, 0x10, 0xc1, + 0xcb, 0xa7, 0x1e, 0x2a, 0x53, 0x4f, 0xfd, 0xb6, 0x30, 0x6b, 0xd6, 0x30, 0x70, 0x04, 0x36, 0x30, + 0x87, 0x64, 0x89, 0x33, 0x76, 0xeb, 0xc0, 0xac, 0x18, 0xa3, 0x29, 0x02, 0x6f, 0xc4, 0x0a, 0x48, + 0xf8, 0x56, 0x7f, 0x2a, 0x03, 0x90, 0x2e, 0x98, 0x35, 0x4c, 0x58, 0x1b, 0x54, 0xd9, 0xfa, 0x12, + 0x84, 0x2e, 0x67, 0x84, 0xe5, 0x80, 0x38, 0x02, 0x5f, 0x03, 0x1b, 0xec, 0xb7, 0x37, 0xe0, 0x0f, + 0x58, 0x3d, 0x4d, 0xfd, 0x11, 0x97, 0x22, 0x81, 0x32, 0xbd, 0xf8, 0xf1, 0x12, 0x8f, 0xd4, 0x52, + 0x2f, 0xae, 0x05, 0x09, 0x94, 0xed, 0xf8, 0xb8, 0xd8, 0xde, 0x80, 0xc8, 0xb5, 0x76, 0xa5, 0x53, + 0x8f, 0x77, 0xfc, 0x71, 0x22, 0x44, 0x29, 0x0e, 0xbb, 0xa0, 0x11, 0x1f, 0x58, 0x5b, 0xc6, 0x2f, + 0x51, 0xdd, 0xd8, 0x8d, 0x16, 0xad, 0xc6, 0x71, 0x2a, 0x46, 0x59, 0x1d, 0xf5, 0x67, 0x09, 0x34, + 0x33, 0x3b, 0xfa, 0xff, 0x1f, 0xe5, 0xd3, 0xfc, 0x28, 0xeb, 0x2b, 0x35, 0x46, 0x9a, 0xe1, 0x0d, + 0x13, 0xfc, 0xa7, 0x04, 0xb6, 0xfb, 0x98, 0xb2, 0x69, 0x22, 0xbe, 0x69, 0xe1, 0xb5, 0x7d, 0xdf, + 0xb8, 0x05, 0xf3, 0x2d, 0x12, 0x41, 0x09, 0x0e, 0xef, 0x81, 0x9a, 0x8b, 0xa9, 0x33, 0x12, 0x1f, + 0x35, 0xcb, 0x12, 0xfa, 0x98, 0xf6, 0x8e, 0x50, 0x8c, 0xe5, 0x99, 0xae, 0xfe, 0x33, 0xd3, 0xea, + 0xa5, 0x04, 0xf6, 0xb2, 0xf5, 0xae, 0x81, 0xb8, 0x27, 0x79, 0xe2, 0xba, 0x2b, 0x11, 0x97, 0xcd, + 0xb1, 0x98, 0x3a, 0xa3, 0x73, 0x79, 0xa5, 0x94, 0x9e, 0x5d, 0x29, 0xa5, 0xe7, 0x57, 0x4a, 0xe9, + 0xbb, 0x48, 0x91, 0x2e, 0x23, 0x45, 0x7a, 0x16, 0x29, 0xd2, 0xf3, 0x48, 0x91, 0x7e, 0x8f, 0x14, + 0xe9, 0xfb, 0x3f, 0x94, 0xd2, 0x47, 0xe5, 0x59, 0xf7, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf8, + 0xb8, 0xfc, 0x5f, 0xbe, 0x0b, 0x00, 0x00, } diff --git a/vendor/github.com/openshift/api/network/v1/generated.proto b/vendor/github.com/openshift/api/network/v1/generated.proto index c76b61ec87..a5f3ccac78 100644 --- a/vendor/github.com/openshift/api/network/v1/generated.proto +++ b/vendor/github.com/openshift/api/network/v1/generated.proto @@ -35,6 +35,9 @@ message ClusterNetwork { // VXLANPort sets the VXLAN destination port used by the cluster. It is set by the master configuration file on startup and cannot be edited manually. Valid values for VXLANPort are integers 1-65535 inclusive and if unset defaults to 4789. Changing VXLANPort allows users to resolve issues between openshift SDN and other software trying to use the same VXLAN destination port. optional uint32 vxlanPort = 7; + + // MTU is the MTU for the overlay network. This should be 50 less than the MTU of the network connecting the nodes. It is normally autodetected by the cluster network operator. + optional uint32 mtu = 8; } // ClusterNetworkEntry defines an individual cluster network. The CIDRs cannot overlap with other cluster network CIDRs, CIDRs reserved for external ips, CIDRs reserved for service networks, and CIDRs reserved for ingress ips. diff --git a/vendor/github.com/openshift/api/network/v1/types.go b/vendor/github.com/openshift/api/network/v1/types.go index 9413854397..52e4fd70ff 100644 --- a/vendor/github.com/openshift/api/network/v1/types.go +++ b/vendor/github.com/openshift/api/network/v1/types.go @@ -32,6 +32,8 @@ type ClusterNetwork struct { ClusterNetworks []ClusterNetworkEntry `json:"clusterNetworks" protobuf:"bytes,6,rep,name=clusterNetworks"` // VXLANPort sets the VXLAN destination port used by the cluster. It is set by the master configuration file on startup and cannot be edited manually. Valid values for VXLANPort are integers 1-65535 inclusive and if unset defaults to 4789. Changing VXLANPort allows users to resolve issues between openshift SDN and other software trying to use the same VXLAN destination port. VXLANPort *uint32 `json:"vxlanPort,omitempty" protobuf:"varint,7,opt,name=vxlanPort"` + // MTU is the MTU for the overlay network. This should be 50 less than the MTU of the network connecting the nodes. It is normally autodetected by the cluster network operator. + MTU *uint32 `json:"mtu,omitempty" protobuf:"varint,8,opt,name=mtu"` } // ClusterNetworkEntry defines an individual cluster network. The CIDRs cannot overlap with other cluster network CIDRs, CIDRs reserved for external ips, CIDRs reserved for service networks, and CIDRs reserved for ingress ips. diff --git a/vendor/github.com/openshift/api/network/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/network/v1/zz_generated.deepcopy.go index 1f55d84627..c7438d9154 100644 --- a/vendor/github.com/openshift/api/network/v1/zz_generated.deepcopy.go +++ b/vendor/github.com/openshift/api/network/v1/zz_generated.deepcopy.go @@ -23,6 +23,11 @@ func (in *ClusterNetwork) DeepCopyInto(out *ClusterNetwork) { *out = new(uint32) **out = **in } + if in.MTU != nil { + in, out := &in.MTU, &out.MTU + *out = new(uint32) + **out = **in + } return } diff --git a/vendor/github.com/openshift/api/network/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/network/v1/zz_generated.swagger_doc_generated.go index 71db34c99b..a5457ac2eb 100644 --- a/vendor/github.com/openshift/api/network/v1/zz_generated.swagger_doc_generated.go +++ b/vendor/github.com/openshift/api/network/v1/zz_generated.swagger_doc_generated.go @@ -20,6 +20,7 @@ var map_ClusterNetwork = map[string]string{ "pluginName": "PluginName is the name of the network plugin being used", "clusterNetworks": "ClusterNetworks is a list of ClusterNetwork objects that defines the global overlay network's L3 space by specifying a set of CIDR and netmasks that the SDN can allocate addressed from.", "vxlanPort": "VXLANPort sets the VXLAN destination port used by the cluster. It is set by the master configuration file on startup and cannot be edited manually. Valid values for VXLANPort are integers 1-65535 inclusive and if unset defaults to 4789. Changing VXLANPort allows users to resolve issues between openshift SDN and other software trying to use the same VXLAN destination port.", + "mtu": "MTU is the MTU for the overlay network. This should be 50 less than the MTU of the network connecting the nodes. It is normally autodetected by the cluster network operator.", } func (ClusterNetwork) SwaggerDoc() map[string]string { diff --git a/vendor/github.com/openshift/api/operator/v1/types.go b/vendor/github.com/openshift/api/operator/v1/types.go index 18645517c6..48bdb385b3 100644 --- a/vendor/github.com/openshift/api/operator/v1/types.go +++ b/vendor/github.com/openshift/api/operator/v1/types.go @@ -23,6 +23,7 @@ type MyOperatorResourceStatus struct { OperatorStatus `json:",inline"` } +// +kubebuilder:validation:Pattern=^(Managed|Unmanaged|Force|Removed)$ type ManagementState string var ( @@ -45,7 +46,6 @@ var ( // inside of the Spec struct for your particular operator. type OperatorSpec struct { // managementState indicates whether and how the operator should manage the component - // +kubebuilder:validation:Pattern=^(Managed|Unmanaged|Force|Removed)$ ManagementState ManagementState `json:"managementState"` // logLevel is an intent based logging for an overall component. It does not give fine grained control, but it is a 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 92e74e5644..54a11defde 100644 --- a/vendor/github.com/openshift/api/operator/v1/types_console.go +++ b/vendor/github.com/openshift/api/operator/v1/types_console.go @@ -1,6 +1,10 @@ package v1 -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/openshift/api/config/v1" +) // +genclient // +genclient:nonNamespaced @@ -22,12 +26,26 @@ type ConsoleSpec struct { // customization options to the web console. // +optional Customization ConsoleCustomization `json:"customization"` + // providers contains configuration for using specific service providers. + Providers ConsoleProviders `json:"providers"` } type ConsoleStatus struct { OperatorStatus `json:",inline"` } +type ConsoleProviders struct { + // statuspage contains ID for statuspage.io page that provides status info about. + // +optional + Statuspage *StatuspageProvider `json:"statuspage,omitempty"` +} + +// StatuspageProvider provides identity for statuspage account. +type StatuspageProvider struct { + // pageID is the unique ID assigned by Statuspage for your page. This must be a public page. + PageID string `json:"pageID"` +} + type ConsoleCustomization struct { // brand is the default branding of the web console which can be overridden by // providing the brand field. There is a limited set of specific brand options. @@ -39,6 +57,21 @@ type ConsoleCustomization struct { // documentation URL. // Invalid value will prevent a console rollout. DocumentationBaseURL string `json:"documentationBaseURL,omitempty"` + // customProductName is the name that will be displayed in page titles, logo alt text, and the about dialog + // instead of the normal OpenShift product name. + // +optional + CustomProductName string `json:"customProductName,omitempty"` + // customLogoFile replaces the default OpenShift logo in the masthead and about dialog. It is a reference to a + // ConfigMap in the openshift-config namespace. This can be created with a command like + // 'oc create configmap custom-logo --from-file=/path/to/file -n openshift-config'. + // Image size must be less than 1 MB due to constraints on the ConfigMap size. + // The ConfigMap key should include a file extension so that the console serves the file + // with the correct MIME type. + // Recommended logo specifications: + // Dimensions: Max height of 68px and max width of 200px + // SVG format preferred + // +optional + CustomLogoFile v1.ConfigMapFileReference `json:"customLogoFile,omitempty"` } // Brand is a specific supported brand within the console diff --git a/vendor/github.com/openshift/api/operator/v1/types_dns.go b/vendor/github.com/openshift/api/operator/v1/types_dns.go index 1638090b4c..467696bb5b 100644 --- a/vendor/github.com/openshift/api/operator/v1/types_dns.go +++ b/vendor/github.com/openshift/api/operator/v1/types_dns.go @@ -7,6 +7,9 @@ import ( // +genclient // +genclient:nonNamespaced // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:object:root=true +// +kubebuilder:resource:path=dnses,scope=Cluster +// +kubebuilder:subresource:status // DNS manages the CoreDNS component to provide a name resolution service // for pods and services in the cluster. @@ -72,6 +75,7 @@ type DNSStatus struct { } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:object:root=true // DNSList contains a list of DNS type DNSList struct { 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 58c799c29f..5bd1d32802 100644 --- a/vendor/github.com/openshift/api/operator/v1/types_ingress.go +++ b/vendor/github.com/openshift/api/operator/v1/types_ingress.go @@ -8,6 +8,9 @@ import ( // +genclient // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.availableReplicas,selectorpath=.status.labelSelector // IngressController describes a managed ingress controller for the cluster. The // controller can service OpenShift Route and Kubernetes Ingress resources. @@ -69,6 +72,7 @@ type IngressControllerSpec struct { // // AWS: LoadBalancerService // Azure: LoadBalancerService + // GCP: LoadBalancerService // Libvirt: HostNetwork // // Any other platform types (including None) default to HostNetwork. @@ -121,6 +125,13 @@ type IngressControllerSpec struct { // // +optional NodePlacement *NodePlacement `json:"nodePlacement,omitempty"` + + // securitySpec specifies settings for securing IngressController connections. + // + // If unset, the "Intermediate" security profile is used. + // + // +optional + SecuritySpec *SecuritySpec `json:"securitySpec,omitempty"` } // NodePlacement describes node scheduling configuration for an ingress @@ -225,6 +236,138 @@ var ( DNSReadyIngressConditionType = "DNSReady" ) +// SecuritySpec defines the settings for securing IngressController connections. +type SecuritySpec struct { + // profile is one of "Old", "Intermediate", "Modern" or "Custom". "Old", + // "Intermediate" and "Modern" profiles map to security configurations from [1]: + // + // [1] https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations + // + // When a profile of type "Old", "Intermediate" or "Modern" is set, the CustomSettings + // field is forbidden. + // + // customSettings must be provided if, and only if, profile is "Custom". + // + // If unset, the "Intermediate" profile is used. + // + Profile SecurityProfileType `json:"profile"` + // customSettings defines the schema for settings of a "Custom" profile + // and is ignored unless a "Custom" profile is specified. + // + // +optional + CustomSettings *CustomProfileSettings `json:"customSettings,omitempty"` + +} + +// SecurityProfileType defines a security profile. +type SecurityProfileType string + +const ( + // SecurityProfileOldType is a security profile that maps to: + // https://wiki.mozilla.org/Security/Server_Side_TLS#Old_backward_compatibility + SecurityProfileOldType SecurityProfileType = "Old" + // SecurityProfileIntermediateType is a security profile that maps to: + // https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29 + SecurityProfileIntermediateType SecurityProfileType = "Intermediate" + // SecurityProfileModernType is a security profile that maps to: + // https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility + SecurityProfileModernType SecurityProfileType = "Modern" + // SecurityProfileCustomType is a security profile that allows for custom settings + // through type CustomProfileSettings. + SecurityProfileCustomType SecurityProfileType = "Custom" + +) + +// CustomProfileSettings defines the schema for a custom security profile. +type CustomProfileSettings struct { + // ciphers is used to specify the cipher algorithms that are negotiated + // during the SSL/TLS handshake with an IngressController. Each cipher must + // be an explicit, colon-delimited list of ciphers. + // + // If unset, the "Intermediate" Ciphersuites [1] are used: + // + // [1] https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29 + // + // +optional + Ciphers *string `json:"ciphers,omitempty"` + // securityProtocol is used to specify one or more encryption protocols + // that are negotiated during the SSL/TLS handshake with the IngressController. + // + // If unset, the "Intermediate" Versions [1] are used: + // + // [1] https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29 + // + // + // +optional + SecurityProtocol *SecurityProtocol `json:"securityProtocol,omitempty"` + // dhParamSize sets the maximum size of the Diffie-Hellman parameters used for generating + // the ephemeral/temporary Diffie-Hellman key in case of DHE key exchange. The final size + // will try to match the size of the server's RSA (or DSA) key (e.g, a 2048 bits temporary + // DH key for a 2048 bits RSA key), but will not exceed this maximum value. Only 1024 or 2048 + // values are allowed. + // + // If unset, the "Intermediate" DH Parameter size [1] is used: + // + // [1] https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29 + // + // +optional + DHParamSize *DHParamSize `json:"dHParamSize,omitempty"` +} + +// SecurityProtocol defines one or more security protocols used by +// an IngressController to secure network connections. +type SecurityProtocol struct { + // minimumVersion enforces use of SecurityProtocolVersion or newer on + // SSL connections instantiated from an IngressController. minimumVersion + // must be lower than maximumVersion. + // + // If unset and maximumVersion is set, minimumVersion will be set + // to maximumVersion. If minimumVersion and maximumVersion are unset, + // the minimum version in "Intermediate" Versions [1] is used: + // + // [1] https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29 + // + // +optional + MinimumVersion *SecurityProtocolVersion `json:"minimumVersion,omitempty"` + // maximumVersion enforces use of SecurityProtocolVersion or older on + // SSL connections instantiated from an IngressController. maximumVersion + // must be higher than minimumVersion. + // + // If unset and minimumVersion is set, maximumVersion will be set + // to minimumVersion. If minimumVersion and maximumVersion are unset, + // the maximum version in "Intermediate" Versions [1] is used: + // + // [1] https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29 + // + // +optional + MaximumVersion *SecurityProtocolVersion `json:"maximumVersion,omitempty"` +} + +// SecurityProtocolVersion is a way to specify an IngressController security protocol. +type SecurityProtocolVersion string + +const ( + // SecurityProtocolTLS10Version is v1.0 of the TLS security protocol. + SecurityProtocolTLS10Version SecurityProtocolVersion = "TLSv1.0" + // SecurityProtocolTLS11Version is v1.1 of the TLS security protocol. + SecurityProtocolTLS11Version SecurityProtocolVersion = "TLSv1.1" + // SecurityProtocolTLS12Version is v1.2 of the TLS security protocol. + SecurityProtocolTLS12Version SecurityProtocolVersion = "TLSv1.2" + // SecurityProtocolTLS13Version is v1.3 of the TLS security protocol. + SecurityProtocolTLS13Version SecurityProtocolVersion = "TLSv1.3" +) + +// DHParamSize sets the maximum size of the Diffie-Hellman parameters used for generating +// the ephemeral/temporary Diffie-Hellman key in case of DHE key exchange. +type DHParamSize string + +const ( + // DHParamSize1024 is a Diffie-Hellman parameter of 1024 bits. + DHParamSize1024 DHParamSize = "1024" + // DHParamSize2048 is a Diffie-Hellman parameter of 2048 bits. + DHParamSize2048 DHParamSize = "2048" +) + // IngressControllerStatus defines the observed status of the IngressController. type IngressControllerStatus struct { // availableReplicas is number of observed available replicas according to the @@ -242,6 +385,9 @@ type IngressControllerStatus struct { // endpointPublishingStrategy is the actual strategy in use. EndpointPublishingStrategy *EndpointPublishingStrategy `json:"endpointPublishingStrategy,omitempty"` + // securityProfileType is the actual security profile in use. + SecurityProfile *SecurityProfileType `json:"securityProfile,omitempty"` + // conditions is a list of conditions and their status. // // Available means the ingress controller deployment is available and @@ -278,6 +424,7 @@ type IngressControllerStatus struct { } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:object:root=true // IngressControllerList contains a list of IngressControllers. type IngressControllerList struct { diff --git a/vendor/github.com/openshift/api/operator/v1/types_network.go b/vendor/github.com/openshift/api/operator/v1/types_network.go index 8ba638ce9d..37188d4e5f 100644 --- a/vendor/github.com/openshift/api/operator/v1/types_network.go +++ b/vendor/github.com/openshift/api/operator/v1/types_network.go @@ -94,6 +94,10 @@ type DefaultNetworkDefinition struct { // not implemented. // +optional OVNKubernetesConfig *OVNKubernetesConfig `json:"ovnKubernetesConfig,omitempty"` + + // KuryrConfig configures the kuryr plugin + // +optional + KuryrConfig *KuryrConfig `json:"kuryrConfig,omitempty"` } // AdditionalNetworkDefinition configures an extra network that is available but not @@ -137,6 +141,17 @@ type OpenShiftSDNConfig struct { UseExternalOpenvswitch *bool `json:"useExternalOpenvswitch,omitempty"` } +// KuryrConfig configures the Kuryr-Kubernetes SDN +type KuryrConfig struct { + // The port kuryr-daemon will listen for readiness and liveness requests. + // +optional + DaemonProbesPort *uint32 `json:"daemonProbesPort,omitempty"` + + // The port kuryr-controller will listen for readiness and liveness requests. + // +optional + ControllerProbesPort *uint32 `json:"controllerProbesPort,omitempty"` +} + // ovnKubernetesConfig is the proposed configuration parameters for networks // using the ovn-kubernetes network project type OVNKubernetesConfig struct { @@ -172,6 +187,9 @@ const ( // This is currently not implemented. NetworkTypeOVNKubernetes NetworkType = "OVNKubernetes" + // NetworkTypeKuryr means the kuryr-kubernetes project will be configured. + NetworkTypeKuryr NetworkType = "Kuryr" + // NetworkTypeRaw NetworkTypeRaw NetworkType = "Raw" ) 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 8974078f61..e123096eb7 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 @@ -168,6 +168,7 @@ func (in *Console) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ConsoleCustomization) DeepCopyInto(out *ConsoleCustomization) { *out = *in + out.CustomLogoFile = in.CustomLogoFile return } @@ -214,11 +215,33 @@ func (in *ConsoleList) DeepCopyObject() runtime.Object { return nil } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConsoleProviders) DeepCopyInto(out *ConsoleProviders) { + *out = *in + if in.Statuspage != nil { + in, out := &in.Statuspage, &out.Statuspage + *out = new(StatuspageProvider) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConsoleProviders. +func (in *ConsoleProviders) DeepCopy() *ConsoleProviders { + if in == nil { + return nil + } + out := new(ConsoleProviders) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ConsoleSpec) DeepCopyInto(out *ConsoleSpec) { *out = *in in.OperatorSpec.DeepCopyInto(&out.OperatorSpec) out.Customization = in.Customization + in.Providers.DeepCopyInto(&out.Providers) return } @@ -249,6 +272,37 @@ func (in *ConsoleStatus) DeepCopy() *ConsoleStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CustomProfileSettings) DeepCopyInto(out *CustomProfileSettings) { + *out = *in + if in.Ciphers != nil { + in, out := &in.Ciphers, &out.Ciphers + *out = new(string) + **out = **in + } + if in.SecurityProtocol != nil { + in, out := &in.SecurityProtocol, &out.SecurityProtocol + *out = new(SecurityProtocol) + (*in).DeepCopyInto(*out) + } + if in.DHParamSize != nil { + in, out := &in.DHParamSize, &out.DHParamSize + *out = new(DHParamSize) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomProfileSettings. +func (in *CustomProfileSettings) DeepCopy() *CustomProfileSettings { + if in == nil { + return nil + } + out := new(CustomProfileSettings) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DNS) DeepCopyInto(out *DNS) { *out = *in @@ -362,6 +416,11 @@ func (in *DefaultNetworkDefinition) DeepCopyInto(out *DefaultNetworkDefinition) *out = new(OVNKubernetesConfig) (*in).DeepCopyInto(*out) } + if in.KuryrConfig != nil { + in, out := &in.KuryrConfig, &out.KuryrConfig + *out = new(KuryrConfig) + (*in).DeepCopyInto(*out) + } return } @@ -596,6 +655,11 @@ func (in *IngressControllerSpec) DeepCopyInto(out *IngressControllerSpec) { *out = new(NodePlacement) (*in).DeepCopyInto(*out) } + if in.SecuritySpec != nil { + in, out := &in.SecuritySpec, &out.SecuritySpec + *out = new(SecuritySpec) + (*in).DeepCopyInto(*out) + } return } @@ -617,6 +681,11 @@ func (in *IngressControllerStatus) DeepCopyInto(out *IngressControllerStatus) { *out = new(EndpointPublishingStrategy) **out = **in } + if in.SecurityProfile != nil { + in, out := &in.SecurityProfile, &out.SecurityProfile + *out = new(SecurityProfileType) + **out = **in + } if in.Conditions != nil { in, out := &in.Conditions, &out.Conditions *out = make([]OperatorCondition, len(*in)) @@ -922,6 +991,32 @@ func (in *KubeSchedulerStatus) DeepCopy() *KubeSchedulerStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KuryrConfig) DeepCopyInto(out *KuryrConfig) { + *out = *in + if in.DaemonProbesPort != nil { + in, out := &in.DaemonProbesPort, &out.DaemonProbesPort + *out = new(uint32) + **out = **in + } + if in.ControllerProbesPort != nil { + in, out := &in.ControllerProbesPort, &out.ControllerProbesPort + *out = new(uint32) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KuryrConfig. +func (in *KuryrConfig) DeepCopy() *KuryrConfig { + if in == nil { + return nil + } + out := new(KuryrConfig) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MyOperatorResource) DeepCopyInto(out *MyOperatorResource) { *out = *in @@ -1485,6 +1580,53 @@ func (in *ProxyConfig) DeepCopy() *ProxyConfig { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecurityProtocol) DeepCopyInto(out *SecurityProtocol) { + *out = *in + if in.MinimumVersion != nil { + in, out := &in.MinimumVersion, &out.MinimumVersion + *out = new(SecurityProtocolVersion) + **out = **in + } + if in.MaximumVersion != nil { + in, out := &in.MaximumVersion, &out.MaximumVersion + *out = new(SecurityProtocolVersion) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityProtocol. +func (in *SecurityProtocol) DeepCopy() *SecurityProtocol { + if in == nil { + return nil + } + out := new(SecurityProtocol) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecuritySpec) DeepCopyInto(out *SecuritySpec) { + *out = *in + if in.CustomSettings != nil { + in, out := &in.CustomSettings, &out.CustomSettings + *out = new(CustomProfileSettings) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecuritySpec. +func (in *SecuritySpec) DeepCopy() *SecuritySpec { + if in == nil { + return nil + } + out := new(SecuritySpec) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ServiceCA) DeepCopyInto(out *ServiceCA) { *out = *in @@ -1810,3 +1952,19 @@ func (in *StaticPodOperatorStatus) DeepCopy() *StaticPodOperatorStatus { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StatuspageProvider) DeepCopyInto(out *StatuspageProvider) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatuspageProvider. +func (in *StatuspageProvider) DeepCopy() *StatuspageProvider { + if in == nil { + return nil + } + out := new(StatuspageProvider) + in.DeepCopyInto(out) + return out +} 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 472612ee1d..56054543ec 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 @@ -120,20 +120,40 @@ func (AuthenticationList) SwaggerDoc() map[string]string { var map_ConsoleCustomization = map[string]string{ "brand": "brand is the default branding of the web console which can be overridden by providing the brand field. There is a limited set of specific brand options. This field controls elements of the console such as the logo. Invalid value will prevent a console rollout.", "documentationBaseURL": "documentationBaseURL links to external documentation are shown in various sections of the web console. Providing documentationBaseURL will override the default documentation URL. Invalid value will prevent a console rollout.", + "customProductName": "customProductName is the name that will be displayed in page titles, logo alt text, and the about dialog instead of the normal OpenShift product name.", + "customLogoFile": "customLogoFile replaces the default OpenShift logo in the masthead and about dialog. It is a reference to a ConfigMap in the openshift-config namespace. This can be created with a command like 'oc create configmap custom-logo --from-file=/path/to/file -n openshift-config'. Image size must be less than 1 MB due to constraints on the ConfigMap size. The ConfigMap key should include a file extension so that the console serves the file with the correct MIME type. Recommended logo specifications: Dimensions: Max height of 68px and max width of 200px SVG format preferred", } func (ConsoleCustomization) SwaggerDoc() map[string]string { return map_ConsoleCustomization } +var map_ConsoleProviders = map[string]string{ + "statuspage": "statuspage contains ID for statuspage.io page that provides status info about.", +} + +func (ConsoleProviders) SwaggerDoc() map[string]string { + return map_ConsoleProviders +} + 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.", } func (ConsoleSpec) SwaggerDoc() map[string]string { return map_ConsoleSpec } +var map_StatuspageProvider = map[string]string{ + "": "StatuspageProvider provides identity for statuspage account.", + "pageID": "pageID is the unique ID assigned by Statuspage for your page. This must be a public page.", +} + +func (StatuspageProvider) SwaggerDoc() map[string]string { + return map_StatuspageProvider +} + var map_DNS = map[string]string{ "": "DNS manages the CoreDNS component to provide a name resolution service for pods and services in the cluster.\n\nThis supports the DNS-based service discovery specification: https://github.com/kubernetes/dns/blob/master/docs/specification.md\n\nMore details: https://kubernetes.io/docs/tasks/administer-cluster/coredns", "spec": "spec is the specification of the desired behavior of the DNS.", @@ -189,6 +209,17 @@ func (EtcdList) SwaggerDoc() map[string]string { return map_EtcdList } +var map_CustomProfileSettings = map[string]string{ + "": "CustomProfileSettings defines the schema for a custom security profile.", + "ciphers": "ciphers is used to specify the cipher algorithms that are negotiated during the SSL/TLS handshake with an IngressController. Each cipher must be an explicit, colon-delimited list of ciphers.\n\nIf unset, the \"Intermediate\" Ciphersuites [1] are used:\n\n[1] https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29", + "securityProtocol": "securityProtocol is used to specify one or more encryption protocols that are negotiated during the SSL/TLS handshake with the IngressController.\n\nIf unset, the \"Intermediate\" Versions [1] are used:\n\n[1] https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29", + "dHParamSize": "dhParamSize sets the maximum size of the Diffie-Hellman parameters used for generating the ephemeral/temporary Diffie-Hellman key in case of DHE key exchange. The final size will try to match the size of the server's RSA (or DSA) key (e.g, a 2048 bits temporary DH key for a 2048 bits RSA key), but will not exceed this maximum value. Only 1024 or 2048 values are allowed.\n\nIf unset, the \"Intermediate\" DH Parameter size [1] is used:\n\n[1] https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29", +} + +func (CustomProfileSettings) SwaggerDoc() map[string]string { + return map_CustomProfileSettings +} + var map_EndpointPublishingStrategy = map[string]string{ "": "EndpointPublishingStrategy is a way to publish the endpoints of an IngressController, and represents the type and any additional configuration for a specific type.", "type": "type is the publishing strategy to use. Valid values are:\n\n* LoadBalancerService\n\nPublishes the ingress controller using a Kubernetes LoadBalancer Service.\n\nIn this configuration, the ingress controller deployment uses container networking. A LoadBalancer Service is created to publish the deployment.\n\nSee: https://kubernetes.io/docs/concepts/services-networking/#loadbalancer\n\nIf domain is set, a wildcard DNS record will be managed to point at the LoadBalancer Service's external name. DNS records are managed only in DNS zones defined by dns.config.openshift.io/cluster .spec.publicZone and .spec.privateZone.\n\nWildcard DNS management is currently supported only on the AWS platform.\n\n* HostNetwork\n\nPublishes the ingress controller on node ports where the ingress controller is deployed.\n\nIn this configuration, the ingress controller deployment uses host networking, bound to node ports 80 and 443. The user is responsible for configuring an external load balancer to publish the ingress controller via the node ports.\n\n* Private\n\nDoes not publish the ingress controller.\n\nIn this configuration, the ingress controller deployment uses container networking, and is not explicitly published. The user must manually publish the ingress controller.", @@ -220,11 +251,12 @@ var map_IngressControllerSpec = map[string]string{ "": "IngressControllerSpec is the specification of the desired behavior of the IngressController.", "domain": "domain is a DNS name serviced by the ingress controller and is used to configure multiple features:\n\n* For the LoadBalancerService endpoint publishing strategy, domain is\n used to configure DNS records. See endpointPublishingStrategy.\n\n* When using a generated default certificate, the certificate will be valid\n for domain and its subdomains. See defaultCertificate.\n\n* The value is published to individual Route statuses so that end-users\n know where to target external DNS records.\n\ndomain must be unique among all IngressControllers, and cannot be updated.\n\nIf empty, defaults to ingress.config.openshift.io/cluster .spec.domain.", "replicas": "replicas is the desired number of ingress controller replicas. If unset, defaults to 2.", - "endpointPublishingStrategy": "endpointPublishingStrategy is used to publish the ingress controller endpoints to other networks, enable load balancer integrations, etc.\n\nIf unset, the default is based on infrastructure.config.openshift.io/cluster .status.platform:\n\n AWS: LoadBalancerService\n Azure: LoadBalancerService\n Libvirt: HostNetwork\n\nAny other platform types (including None) default to HostNetwork.\n\nendpointPublishingStrategy cannot be updated.", + "endpointPublishingStrategy": "endpointPublishingStrategy is used to publish the ingress controller endpoints to other networks, enable load balancer integrations, etc.\n\nIf unset, the default is based on infrastructure.config.openshift.io/cluster .status.platform:\n\n AWS: LoadBalancerService\n Azure: LoadBalancerService\n GCP: LoadBalancerService\n Libvirt: HostNetwork\n\nAny other platform types (including None) default to HostNetwork.\n\nendpointPublishingStrategy cannot be updated.", "defaultCertificate": "defaultCertificate is a reference to a secret containing the default certificate served by the ingress controller. When Routes don't specify their own certificate, defaultCertificate is used.\n\nThe secret must contain the following keys and data:\n\n tls.crt: certificate file contents\n tls.key: key file contents\n\nIf unset, a wildcard certificate is automatically generated and used. The certificate is valid for the ingress controller domain (and subdomains) and the generated certificate's CA will be automatically integrated with the cluster's trust store.\n\nThe in-use certificate (whether generated or user-specified) will be automatically integrated with OpenShift's built-in OAuth server.", "namespaceSelector": "namespaceSelector is used to filter the set of namespaces serviced by the ingress controller. This is useful for implementing shards.\n\nIf unset, the default is no filtering.", "routeSelector": "routeSelector is used to filter the set of Routes serviced by the ingress controller. This is useful for implementing shards.\n\nIf unset, the default is no filtering.", "nodePlacement": "nodePlacement enables explicit control over the scheduling of the ingress controller.\n\nIf unset, defaults are used. See NodePlacement for more details.", + "securitySpec": "securitySpec specifies settings for securing IngressController connections.\n\nIf unset, the \"Intermediate\" security profile is used.", } func (IngressControllerSpec) SwaggerDoc() map[string]string { @@ -237,6 +269,7 @@ var map_IngressControllerStatus = map[string]string{ "selector": "selector is a label selector, in string format, for ingress controller pods corresponding to the IngressController. The number of matching pods should equal the value of availableReplicas.", "domain": "domain is the actual domain in use.", "endpointPublishingStrategy": "endpointPublishingStrategy is the actual strategy in use.", + "securityProfile": "securityProfileType is the actual security profile in use.", "conditions": "conditions is a list of conditions and their status.\n\nAvailable means the ingress controller deployment is available and servicing route and ingress resources (i.e, .status.availableReplicas equals .spec.replicas)\n\nThere are additional conditions which indicate the status of other ingress controller features and capabilities.\n\n * LoadBalancerManaged\n - True if the following conditions are met:\n * The endpoint publishing strategy requires a service load balancer.\n - False if any of those conditions are unsatisfied.\n\n * LoadBalancerReady\n - True if the following conditions are met:\n * A load balancer is managed.\n * The load balancer is ready.\n - False if any of those conditions are unsatisfied.\n\n * DNSManaged\n - True if the following conditions are met:\n * The endpoint publishing strategy and platform support DNS.\n * The ingress controller domain is set.\n * dns.config.openshift.io/cluster configures DNS zones.\n - False if any of those conditions are unsatisfied.\n\n * DNSReady\n - True if the following conditions are met:\n * DNS is managed.\n * DNS records have been successfully created.\n - False if any of those conditions are unsatisfied.", } @@ -254,6 +287,26 @@ func (NodePlacement) SwaggerDoc() map[string]string { return map_NodePlacement } +var map_SecurityProtocol = map[string]string{ + "": "SecurityProtocol defines one or more security protocols used by an IngressController to secure network connections.", + "minimumVersion": "minimumVersion enforces use of SecurityProtocolVersion or newer on SSL connections instantiated from an IngressController. minimumVersion must be lower than maximumVersion.\n\nIf unset and maximumVersion is set, minimumVersion will be set to maximumVersion. If minimumVersion and maximumVersion are unset, the minimum version in \"Intermediate\" Versions [1] is used:\n\n[1] https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29", + "maximumVersion": "maximumVersion enforces use of SecurityProtocolVersion or older on SSL connections instantiated from an IngressController. maximumVersion must be higher than minimumVersion.\n\nIf unset and minimumVersion is set, maximumVersion will be set to minimumVersion. If minimumVersion and maximumVersion are unset, the maximum version in \"Intermediate\" Versions [1] is used:\n\n[1] https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29", +} + +func (SecurityProtocol) SwaggerDoc() map[string]string { + return map_SecurityProtocol +} + +var map_SecuritySpec = map[string]string{ + "": "SecuritySpec defines the settings for securing IngressController connections.", + "profile": "profile is one of \"Old\", \"Intermediate\", \"Modern\" or \"Custom\". \"Old\", \"Intermediate\" and \"Modern\" profiles map to security configurations from [1]:\n\n[1] https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations\n\nWhen a profile of type \"Old\", \"Intermediate\" or \"Modern\" is set, the CustomSettings field is forbidden.\n\ncustomSettings must be provided if, and only if, profile is \"Custom\".\n\nIf unset, the \"Intermediate\" profile is used.", + "customSettings": "customSettings defines the schema for settings of a \"Custom\" profile and is ignored unless a \"Custom\" profile is specified.", +} + +func (SecuritySpec) SwaggerDoc() map[string]string { + return map_SecuritySpec +} + var map_KubeAPIServer = map[string]string{ "": "KubeAPIServer provides information to configure an operator to manage kube-apiserver.", } @@ -315,12 +368,23 @@ var map_DefaultNetworkDefinition = map[string]string{ "type": "type is the type of network All NetworkTypes are supported except for NetworkTypeRaw", "openshiftSDNConfig": "openShiftSDNConfig configures the openshift-sdn plugin", "ovnKubernetesConfig": "oVNKubernetesConfig configures the ovn-kubernetes plugin. This is currently not implemented.", + "kuryrConfig": "KuryrConfig configures the kuryr plugin", } func (DefaultNetworkDefinition) SwaggerDoc() map[string]string { return map_DefaultNetworkDefinition } +var map_KuryrConfig = map[string]string{ + "": "KuryrConfig configures the Kuryr-Kubernetes SDN", + "daemonProbesPort": "The port kuryr-daemon will listen for readiness and liveness requests.", + "controllerProbesPort": "The port kuryr-controller will listen for readiness and liveness requests.", +} + +func (KuryrConfig) SwaggerDoc() map[string]string { + return map_KuryrConfig +} + var map_Network = map[string]string{ "": "Network describes the cluster's desired network configuration. It is consumed by the cluster-network-operator.", } diff --git a/vendor/github.com/openshift/api/osin/v1/register.go b/vendor/github.com/openshift/api/osin/v1/register.go index 1015fbbaef..4d54a5df40 100644 --- a/vendor/github.com/openshift/api/osin/v1/register.go +++ b/vendor/github.com/openshift/api/osin/v1/register.go @@ -43,6 +43,8 @@ func addKnownTypes(scheme *runtime.Scheme) error { &GitLabIdentityProvider{}, &GoogleIdentityProvider{}, &OpenIDIdentityProvider{}, + + &SessionSecrets{}, ) return nil } diff --git a/vendor/github.com/openshift/api/osin/v1/types.go b/vendor/github.com/openshift/api/osin/v1/types.go index 6a96f56ab5..e7d4f164c2 100644 --- a/vendor/github.com/openshift/api/osin/v1/types.go +++ b/vendor/github.com/openshift/api/osin/v1/types.go @@ -408,3 +408,23 @@ type TokenConfig struct { // The current minimum allowed value for X is 300 (5 minutes) AccessTokenInactivityTimeoutSeconds *int32 `json:"accessTokenInactivityTimeoutSeconds,omitempty"` } + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// SessionSecrets list the secrets to use to sign/encrypt and authenticate/decrypt created sessions. +type SessionSecrets struct { + metav1.TypeMeta `json:",inline"` + + // Secrets is a list of secrets + // New sessions are signed and encrypted using the first secret. + // Existing sessions are decrypted/authenticated by each secret until one succeeds. This allows rotating secrets. + Secrets []SessionSecret `json:"secrets"` +} + +// SessionSecret is a secret used to authenticate/decrypt cookie-based sessions +type SessionSecret struct { + // Authentication is used to authenticate sessions using HMAC. Recommended to use a secret with 32 or 64 bytes. + Authentication string `json:"authentication"` + // Encryption is used to encrypt sessions. Must be 16, 24, or 32 characters long, to select AES-128, AES- + Encryption string `json:"encryption"` +} diff --git a/vendor/github.com/openshift/api/osin/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/osin/v1/zz_generated.deepcopy.go index fb73989345..8636ca9500 100644 --- a/vendor/github.com/openshift/api/osin/v1/zz_generated.deepcopy.go +++ b/vendor/github.com/openshift/api/osin/v1/zz_generated.deepcopy.go @@ -565,6 +565,52 @@ func (in *SessionConfig) DeepCopy() *SessionConfig { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SessionSecret) DeepCopyInto(out *SessionSecret) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SessionSecret. +func (in *SessionSecret) DeepCopy() *SessionSecret { + if in == nil { + return nil + } + out := new(SessionSecret) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SessionSecrets) DeepCopyInto(out *SessionSecrets) { + *out = *in + out.TypeMeta = in.TypeMeta + if in.Secrets != nil { + in, out := &in.Secrets, &out.Secrets + *out = make([]SessionSecret, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SessionSecrets. +func (in *SessionSecrets) DeepCopy() *SessionSecrets { + if in == nil { + return nil + } + out := new(SessionSecrets) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SessionSecrets) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TokenConfig) DeepCopyInto(out *TokenConfig) { *out = *in diff --git a/vendor/github.com/openshift/api/project/v1/types.go b/vendor/github.com/openshift/api/project/v1/types.go index c4ed0555ff..7952929c03 100644 --- a/vendor/github.com/openshift/api/project/v1/types.go +++ b/vendor/github.com/openshift/api/project/v1/types.go @@ -19,6 +19,9 @@ type ProjectList struct { const ( // These are internal finalizer values to Origin FinalizerOrigin corev1.FinalizerName = "openshift.io/origin" + // ProjectNodeSelector is an annotation that holds the node selector; + // the node selector annotation determines which nodes will have pods from this project scheduled to them + ProjectNodeSelector = "openshift.io/node-selector" ) // ProjectSpec describes the attributes on a Project diff --git a/vendor/google.golang.org/appengine/file/file.go b/vendor/google.golang.org/appengine/file/file.go index c3cd58baf0..e63a4aca97 100644 --- a/vendor/google.golang.org/appengine/file/file.go +++ b/vendor/google.golang.org/appengine/file/file.go @@ -22,7 +22,7 @@ func DefaultBucketName(c context.Context) (string, error) { err := internal.Call(c, "app_identity_service", "GetDefaultGcsBucketName", req, res) if err != nil { - return "", fmt.Errorf("file: no default bucket name returned in RPC response: %v", res) + return "", fmt.Errorf("file: no default bucket name returned in RPC response: %v", err) } return res.GetDefaultGcsBucketName(), nil } diff --git a/vendor/google.golang.org/appengine/go.mod b/vendor/google.golang.org/appengine/go.mod index f449359d2f..4515927985 100644 --- a/vendor/google.golang.org/appengine/go.mod +++ b/vendor/google.golang.org/appengine/go.mod @@ -1,7 +1,10 @@ module google.golang.org/appengine require ( - github.com/golang/protobuf v1.2.0 - golang.org/x/net v0.0.0-20180724234803-3673e40ba225 - golang.org/x/text v0.3.0 + github.com/golang/protobuf v1.3.1 + golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5 // indirect + golang.org/x/net v0.0.0-20190603091049-60506f45cf65 + golang.org/x/sys v0.0.0-20190606165138-5da285871e9c // indirect + golang.org/x/text v0.3.2 + golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b // indirect ) diff --git a/vendor/google.golang.org/appengine/go.sum b/vendor/google.golang.org/appengine/go.sum index 1a221c0896..cb3232556b 100644 --- a/vendor/google.golang.org/appengine/go.sum +++ b/vendor/google.golang.org/appengine/go.sum @@ -1,6 +1,22 @@ github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/net v0.0.0-20180724234803-3673e40ba225 h1:kNX+jCowfMYzvlSvJu5pQWEmyWFrBXJ3PBy10xKMXK8= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65 h1:+rhAzEzT3f4JtomfC371qB+0Ola2caSKcY69NUBZrRQ= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=