From ee2ee9a5cf6ce14866b2ad67aefb0072feb48a22 Mon Sep 17 00:00:00 2001 From: LuciferInLove <34190954+LuciferInLove@users.noreply.github.com> Date: Mon, 27 Feb 2023 16:06:48 +0100 Subject: [PATCH] add Probes message to correctly handle IntOrString for 1.17 --- Makefile | 2 +- api/v1alpha1/common.gen.json | 284 ++- api/v1alpha1/common.pb.go | 1259 ++++++---- api/v1alpha1/common.pb.html | 513 +++- api/v1alpha1/common.proto | 106 +- api/v1alpha1/common_deepcopy.gen.go | 63 + api/v1alpha1/common_json.gen.go | 33 + api/v1alpha1/istiocontrolplane.gen.json | 226 +- api/v1alpha1/istiocontrolplane.pb.html | 4 +- api/v1alpha1/istiomeshgateway.gen.json | 284 ++- api/v1alpha1/istiomeshgateway.pb.html | 4 +- api/v1alpha1/zz_generated.deepcopy.go | 79 + config/crd/bases/istio-operator-crds.gen.yaml | 2102 ++++++++++------- .../crds/istio-operator-crds.gen.yaml | 2102 ++++++++++------- .../sidecarinjector/testdata/icp-test-cr.yaml | 13 +- 15 files changed, 4436 insertions(+), 2638 deletions(-) diff --git a/Makefile b/Makefile index b24ea47f4..b40c54b54 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,7 @@ KUSTOMIZE_VERSION = 4.1.2 ISTIO_VERSION = 1.17.1 BUF_VERSION = 1.7.0 -PATH := $(PATH):$(PWD)/bin +PATH := $(PWD)/bin:$(PATH) all: check manager diff --git a/api/v1alpha1/common.gen.json b/api/v1alpha1/common.gen.json index e08eb3feb..a40687984 100644 --- a/api/v1alpha1/common.gen.json +++ b/api/v1alpha1/common.gen.json @@ -63,10 +63,10 @@ } }, "livenessProbe": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.Probe" + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.Probe" }, "readinessProbe": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.Probe" + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.Probe" }, "imagePullPolicy": { "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", @@ -192,6 +192,34 @@ } } }, + "istio_operator.v2.api.v1alpha1.HTTPGetAction": { + "description": "HTTPGetAction describes an action based on HTTP Get requests.", + "type": "object", + "properties": { + "path": { + "description": "Path to access on the HTTP server.", + "type": "string" + }, + "port": { + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.IntOrString" + }, + "host": { + "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead.", + "type": "string" + }, + "scheme": { + "description": "Scheme to use for connecting to the host. Defaults to HTTP.", + "type": "string" + }, + "httpHeaders": { + "description": "Custom headers to set in the request. HTTP allows repeated headers.", + "type": "array", + "items": { + "$ref": "#/components/schemas/k8s.io.api.core.v1.HTTPHeader" + } + } + } + }, "istio_operator.v2.api.v1alpha1.IntOrString": { "description": "IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number. GOTYPE: *IntOrString", "oneOf": [ @@ -304,6 +332,130 @@ } } }, + "istio_operator.v2.api.v1alpha1.Probe": { + "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", + "type": "object", + "properties": { + "timeoutSeconds": { + "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + "type": "integer", + "format": "int32" + }, + "terminationGracePeriodSeconds": { + "description": "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", + "type": "integer", + "format": "int64" + }, + "initialDelaySeconds": { + "description": "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + "type": "integer", + "format": "int32" + }, + "periodSeconds": { + "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", + "type": "integer", + "format": "int32" + }, + "successThreshold": { + "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", + "type": "integer", + "format": "int32" + }, + "failureThreshold": { + "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", + "type": "integer", + "format": "int32" + } + }, + "oneOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "exec" + ], + "properties": { + "exec": { + "$ref": "#/components/schemas/k8s.io.api.core.v1.ExecAction" + } + } + }, + { + "required": [ + "httpGet" + ], + "properties": { + "httpGet": { + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.HTTPGetAction" + } + } + }, + { + "required": [ + "tcpSocket" + ], + "properties": { + "tcpSocket": { + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.TCPSocketAction" + } + } + }, + { + "required": [ + "grpc" + ], + "properties": { + "grpc": { + "$ref": "#/components/schemas/k8s.io.api.core.v1.GRPCAction" + } + } + } + ] + } + }, + { + "required": [ + "exec" + ], + "properties": { + "exec": { + "$ref": "#/components/schemas/k8s.io.api.core.v1.ExecAction" + } + } + }, + { + "required": [ + "httpGet" + ], + "properties": { + "httpGet": { + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.HTTPGetAction" + } + } + }, + { + "required": [ + "tcpSocket" + ], + "properties": { + "tcpSocket": { + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.TCPSocketAction" + } + } + }, + { + "required": [ + "grpc" + ], + "properties": { + "grpc": { + "$ref": "#/components/schemas/k8s.io.api.core.v1.GRPCAction" + } + } + } + ] + }, "istio_operator.v2.api.v1alpha1.Quantity": { "description": "Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and Int64() accessors. GOTYPE: *Quantity", "oneOf": [ @@ -467,6 +619,19 @@ } } }, + "istio_operator.v2.api.v1alpha1.TCPSocketAction": { + "description": "TCPSocketAction describes an action based on opening a socket", + "type": "object", + "properties": { + "port": { + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.IntOrString" + }, + "host": { + "description": "Optional: Host name to connect to, defaults to the pod IP.", + "type": "string" + } + } + }, "istio_operator.v2.api.v1alpha1.UnprotectedService": { "description": "Service describes the attributes that a user creates on a service.", "type": "object", @@ -1075,34 +1240,6 @@ } } }, - "k8s.io.api.core.v1.HTTPGetAction": { - "description": "HTTPGetAction describes an action based on HTTP Get requests.", - "type": "object", - "properties": { - "path": { - "description": "Path to access on the HTTP server.", - "type": "string" - }, - "port": { - "$ref": "#/components/schemas/k8s.io.apimachinery.pkg.util.intstr.IntOrString" - }, - "host": { - "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead.", - "type": "string" - }, - "scheme": { - "description": "Scheme to use for connecting to the host. Defaults to HTTP.", - "type": "string" - }, - "httpHeaders": { - "description": "Custom headers to set in the request. HTTP allows repeated headers.", - "type": "array", - "items": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.HTTPHeader" - } - } - } - }, "k8s.io.api.core.v1.HTTPHeader": { "description": "HTTPHeader describes a custom header to be used in HTTP probes", "type": "object", @@ -1540,63 +1677,6 @@ } } }, - "k8s.io.api.core.v1.Probe": { - "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", - "type": "object", - "properties": { - "timeoutSeconds": { - "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - "type": "integer", - "format": "int32" - }, - "terminationGracePeriodSeconds": { - "description": "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - "type": "integer", - "format": "int64" - }, - "handler": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.ProbeHandler" - }, - "initialDelaySeconds": { - "description": "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - "type": "integer", - "format": "int32" - }, - "periodSeconds": { - "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - "type": "integer", - "format": "int32" - }, - "successThreshold": { - "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - "type": "integer", - "format": "int32" - }, - "failureThreshold": { - "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - "type": "integer", - "format": "int32" - } - } - }, - "k8s.io.api.core.v1.ProbeHandler": { - "description": "ProbeHandler defines a specific action that should be taken in a probe. One and only one of the fields must be specified.", - "type": "object", - "properties": { - "exec": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.ExecAction" - }, - "httpGet": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.HTTPGetAction" - }, - "tcpSocket": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.TCPSocketAction" - }, - "grpc": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.GRPCAction" - } - } - }, "k8s.io.api.core.v1.ProjectedVolumeSource": { "description": "Represents a projected volume source", "type": "object", @@ -1981,19 +2061,6 @@ } } }, - "k8s.io.api.core.v1.TCPSocketAction": { - "description": "TCPSocketAction describes an action based on opening a socket", - "type": "object", - "properties": { - "port": { - "$ref": "#/components/schemas/k8s.io.apimachinery.pkg.util.intstr.IntOrString" - }, - "host": { - "description": "Optional: Host name to connect to, defaults to the pod IP.", - "type": "string" - } - } - }, "k8s.io.api.core.v1.Toleration": { "description": "The pod this Toleration is attached to tolerates any taint that matches the triple \u003ckey,value,effect\u003e using the matching operator \u003coperator\u003e.", "type": "object", @@ -2496,23 +2563,6 @@ "format": "int32" } } - }, - "k8s.io.apimachinery.pkg.util.intstr.IntOrString": { - "description": "IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number. TODO: Rename to Int32OrString", - "type": "object", - "properties": { - "type": { - "type": "integer", - "format": "int64" - }, - "intVal": { - "type": "integer", - "format": "int32" - }, - "strVal": { - "type": "string" - } - } } } } diff --git a/api/v1alpha1/common.pb.go b/api/v1alpha1/common.pb.go index e3df431b6..fb78d3020 100644 --- a/api/v1alpha1/common.pb.go +++ b/api/v1alpha1/common.pb.go @@ -143,7 +143,7 @@ func (x K8SResourceOverlayPatch_Type) Number() protoreflect.EnumNumber { // Deprecated: Use K8SResourceOverlayPatch_Type.Descriptor instead. func (K8SResourceOverlayPatch_Type) EnumDescriptor() ([]byte, []int) { - return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{12, 0} + return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{15, 0} } // Generic k8s resource metadata @@ -445,13 +445,13 @@ type BaseKubernetesResourceConfig struct { // Cannot be updated. // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes // +optional - LivenessProbe *v1.Probe `protobuf:"bytes,19,opt,name=livenessProbe,proto3" json:"livenessProbe,omitempty"` + LivenessProbe *Probe `protobuf:"bytes,19,opt,name=livenessProbe,proto3" json:"livenessProbe,omitempty"` // Periodic probe of container service readiness. // Container will be removed from service endpoints if the probe fails. // Cannot be updated. // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes // +optional - ReadinessProbe *v1.Probe `protobuf:"bytes,20,opt,name=readinessProbe,proto3" json:"readinessProbe,omitempty"` + ReadinessProbe *Probe `protobuf:"bytes,20,opt,name=readinessProbe,proto3" json:"readinessProbe,omitempty"` // Used to control how Pods are spread across a cluster among failure-domains. // This can help to achieve high availability as well as efficient resource utilization. // More info: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints @@ -617,14 +617,14 @@ func (x *BaseKubernetesResourceConfig) GetPodSecurityContext() *v1.PodSecurityCo return nil } -func (x *BaseKubernetesResourceConfig) GetLivenessProbe() *v1.Probe { +func (x *BaseKubernetesResourceConfig) GetLivenessProbe() *Probe { if x != nil { return x.LivenessProbe } return nil } -func (x *BaseKubernetesResourceConfig) GetReadinessProbe() *v1.Probe { +func (x *BaseKubernetesResourceConfig) GetReadinessProbe() *Probe { if x != nil { return x.ReadinessProbe } @@ -764,6 +764,357 @@ func (x *PodDisruptionBudget) GetMaxUnavailable() *IntOrString { return nil } +// Probe describes a health check to be performed against a container to determine whether it is +// alive or ready to receive traffic. +type Probe struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The action taken to determine the health of a container + // + // Types that are assignable to Handler: + // *Probe_Exec + // *Probe_HttpGet + // *Probe_TcpSocket + // *Probe_Grpc + Handler isProbe_Handler `protobuf_oneof:"handler"` + // Number of seconds after the container has started before liveness probes are initiated. + // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + // +optional + InitialDelaySeconds int32 `protobuf:"varint,5,opt,name=initialDelaySeconds,proto3" json:"initialDelaySeconds,omitempty"` + // Number of seconds after which the probe times out. + // Defaults to 1 second. Minimum value is 1. + // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + // +optional + TimeoutSeconds int32 `protobuf:"varint,6,opt,name=timeoutSeconds,proto3" json:"timeoutSeconds,omitempty"` + // How often (in seconds) to perform the probe. + // Default to 10 seconds. Minimum value is 1. + // +optional + PeriodSeconds int32 `protobuf:"varint,7,opt,name=periodSeconds,proto3" json:"periodSeconds,omitempty"` + // Minimum consecutive successes for the probe to be considered successful after having failed. + // Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. + // +optional + SuccessThreshold int32 `protobuf:"varint,8,opt,name=successThreshold,proto3" json:"successThreshold,omitempty"` + // Minimum consecutive failures for the probe to be considered failed after having succeeded. + // Defaults to 3. Minimum value is 1. + // +optional + FailureThreshold int32 `protobuf:"varint,9,opt,name=failureThreshold,proto3" json:"failureThreshold,omitempty"` + // Optional duration in seconds the pod needs to terminate gracefully upon probe failure. + // The grace period is the duration in seconds after the processes running in the pod are sent + // a termination signal and the time when the processes are forcibly halted with a kill signal. + // Set this value longer than the expected cleanup time for your process. + // If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this + // value overrides the value provided by the pod spec. + // Value must be non-negative integer. The value zero indicates stop immediately via + // the kill signal (no opportunity to shut down). + // This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. + // Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. + // +optional + TerminationGracePeriodSeconds int64 `protobuf:"varint,10,opt,name=terminationGracePeriodSeconds,proto3" json:"terminationGracePeriodSeconds,omitempty"` +} + +func (x *Probe) Reset() { + *x = Probe{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1alpha1_common_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Probe) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Probe) ProtoMessage() {} + +func (x *Probe) ProtoReflect() protoreflect.Message { + mi := &file_api_v1alpha1_common_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Probe.ProtoReflect.Descriptor instead. +func (*Probe) Descriptor() ([]byte, []int) { + return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{6} +} + +func (m *Probe) GetHandler() isProbe_Handler { + if m != nil { + return m.Handler + } + return nil +} + +func (x *Probe) GetExec() *v1.ExecAction { + if x, ok := x.GetHandler().(*Probe_Exec); ok { + return x.Exec + } + return nil +} + +func (x *Probe) GetHttpGet() *HTTPGetAction { + if x, ok := x.GetHandler().(*Probe_HttpGet); ok { + return x.HttpGet + } + return nil +} + +func (x *Probe) GetTcpSocket() *TCPSocketAction { + if x, ok := x.GetHandler().(*Probe_TcpSocket); ok { + return x.TcpSocket + } + return nil +} + +func (x *Probe) GetGrpc() *v1.GRPCAction { + if x, ok := x.GetHandler().(*Probe_Grpc); ok { + return x.Grpc + } + return nil +} + +func (x *Probe) GetInitialDelaySeconds() int32 { + if x != nil { + return x.InitialDelaySeconds + } + return 0 +} + +func (x *Probe) GetTimeoutSeconds() int32 { + if x != nil { + return x.TimeoutSeconds + } + return 0 +} + +func (x *Probe) GetPeriodSeconds() int32 { + if x != nil { + return x.PeriodSeconds + } + return 0 +} + +func (x *Probe) GetSuccessThreshold() int32 { + if x != nil { + return x.SuccessThreshold + } + return 0 +} + +func (x *Probe) GetFailureThreshold() int32 { + if x != nil { + return x.FailureThreshold + } + return 0 +} + +func (x *Probe) GetTerminationGracePeriodSeconds() int64 { + if x != nil { + return x.TerminationGracePeriodSeconds + } + return 0 +} + +type isProbe_Handler interface { + isProbe_Handler() +} + +type Probe_Exec struct { + // Exec specifies the action to take. + // +optional + Exec *v1.ExecAction `protobuf:"bytes,1,opt,name=exec,proto3,oneof"` +} + +type Probe_HttpGet struct { + // HTTPGet specifies the http request to perform. + // +optional + HttpGet *HTTPGetAction `protobuf:"bytes,2,opt,name=httpGet,proto3,oneof"` +} + +type Probe_TcpSocket struct { + // TCPSocket specifies an action involving a TCP port. + // +optional + TcpSocket *TCPSocketAction `protobuf:"bytes,3,opt,name=tcpSocket,proto3,oneof"` +} + +type Probe_Grpc struct { + // GRPC specifies an action involving a GRPC port. + // This is a beta field and requires enabling GRPCContainerProbe feature gate. + // +featureGate=GRPCContainerProbe + // +optional + Grpc *v1.GRPCAction `protobuf:"bytes,4,opt,name=grpc,proto3,oneof"` +} + +func (*Probe_Exec) isProbe_Handler() {} + +func (*Probe_HttpGet) isProbe_Handler() {} + +func (*Probe_TcpSocket) isProbe_Handler() {} + +func (*Probe_Grpc) isProbe_Handler() {} + +// HTTPGetAction describes an action based on HTTP Get requests. +type HTTPGetAction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Path to access on the HTTP server. + // +optional + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` + // Name or number of the port to access on the container. + // Number must be in the range 1 to 65535. + // Name must be an IANA_SVC_NAME. + Port *IntOrString `protobuf:"bytes,2,opt,name=port,proto3" json:"port,omitempty"` + // Host name to connect to, defaults to the pod IP. You probably want to set + // "Host" in httpHeaders instead. + // +optional + Host string `protobuf:"bytes,3,opt,name=host,proto3" json:"host,omitempty"` + // Scheme to use for connecting to the host. + // Defaults to HTTP. + // +optional + Scheme string `protobuf:"bytes,4,opt,name=scheme,proto3" json:"scheme,omitempty"` + // Custom headers to set in the request. HTTP allows repeated headers. + // +optional + HttpHeaders []*v1.HTTPHeader `protobuf:"bytes,5,rep,name=httpHeaders,proto3" json:"httpHeaders,omitempty"` +} + +func (x *HTTPGetAction) Reset() { + *x = HTTPGetAction{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1alpha1_common_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HTTPGetAction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HTTPGetAction) ProtoMessage() {} + +func (x *HTTPGetAction) ProtoReflect() protoreflect.Message { + mi := &file_api_v1alpha1_common_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HTTPGetAction.ProtoReflect.Descriptor instead. +func (*HTTPGetAction) Descriptor() ([]byte, []int) { + return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{7} +} + +func (x *HTTPGetAction) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (x *HTTPGetAction) GetPort() *IntOrString { + if x != nil { + return x.Port + } + return nil +} + +func (x *HTTPGetAction) GetHost() string { + if x != nil { + return x.Host + } + return "" +} + +func (x *HTTPGetAction) GetScheme() string { + if x != nil { + return x.Scheme + } + return "" +} + +func (x *HTTPGetAction) GetHttpHeaders() []*v1.HTTPHeader { + if x != nil { + return x.HttpHeaders + } + return nil +} + +// TCPSocketAction describes an action based on opening a socket +type TCPSocketAction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Number or name of the port to access on the container. + // Number must be in the range 1 to 65535. + // Name must be an IANA_SVC_NAME. + Port *IntOrString `protobuf:"bytes,1,opt,name=port,proto3" json:"port,omitempty"` + // Optional: Host name to connect to, defaults to the pod IP. + // +optional + Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"` +} + +func (x *TCPSocketAction) Reset() { + *x = TCPSocketAction{} + if protoimpl.UnsafeEnabled { + mi := &file_api_v1alpha1_common_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TCPSocketAction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TCPSocketAction) ProtoMessage() {} + +func (x *TCPSocketAction) ProtoReflect() protoreflect.Message { + mi := &file_api_v1alpha1_common_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TCPSocketAction.ProtoReflect.Descriptor instead. +func (*TCPSocketAction) Descriptor() ([]byte, []int) { + return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{8} +} + +func (x *TCPSocketAction) GetPort() *IntOrString { + if x != nil { + return x.Port + } + return nil +} + +func (x *TCPSocketAction) GetHost() string { + if x != nil { + return x.Host + } + return "" +} + // Service describes the attributes that a user creates on a service. type Service struct { state protoimpl.MessageState @@ -889,7 +1240,7 @@ type Service struct { func (x *Service) Reset() { *x = Service{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1alpha1_common_proto_msgTypes[6] + mi := &file_api_v1alpha1_common_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -902,7 +1253,7 @@ func (x *Service) String() string { func (*Service) ProtoMessage() {} func (x *Service) ProtoReflect() protoreflect.Message { - mi := &file_api_v1alpha1_common_proto_msgTypes[6] + mi := &file_api_v1alpha1_common_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -915,7 +1266,7 @@ func (x *Service) ProtoReflect() protoreflect.Message { // Deprecated: Use Service.ProtoReflect.Descriptor instead. func (*Service) Descriptor() ([]byte, []int) { - return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{6} + return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{9} } func (x *Service) GetMetadata() *K8SObjectMeta { @@ -1147,7 +1498,7 @@ type UnprotectedService struct { func (x *UnprotectedService) Reset() { *x = UnprotectedService{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1alpha1_common_proto_msgTypes[7] + mi := &file_api_v1alpha1_common_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1160,7 +1511,7 @@ func (x *UnprotectedService) String() string { func (*UnprotectedService) ProtoMessage() {} func (x *UnprotectedService) ProtoReflect() protoreflect.Message { - mi := &file_api_v1alpha1_common_proto_msgTypes[7] + mi := &file_api_v1alpha1_common_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1173,7 +1524,7 @@ func (x *UnprotectedService) ProtoReflect() protoreflect.Message { // Deprecated: Use UnprotectedService.ProtoReflect.Descriptor instead. func (*UnprotectedService) Descriptor() ([]byte, []int) { - return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{7} + return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{10} } func (x *UnprotectedService) GetMetadata() *K8SObjectMeta { @@ -1323,7 +1674,7 @@ type ServicePort struct { func (x *ServicePort) Reset() { *x = ServicePort{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1alpha1_common_proto_msgTypes[8] + mi := &file_api_v1alpha1_common_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1336,7 +1687,7 @@ func (x *ServicePort) String() string { func (*ServicePort) ProtoMessage() {} func (x *ServicePort) ProtoReflect() protoreflect.Message { - mi := &file_api_v1alpha1_common_proto_msgTypes[8] + mi := &file_api_v1alpha1_common_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1349,7 +1700,7 @@ func (x *ServicePort) ProtoReflect() protoreflect.Message { // Deprecated: Use ServicePort.ProtoReflect.Descriptor instead. func (*ServicePort) Descriptor() ([]byte, []int) { - return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{8} + return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{11} } func (x *ServicePort) GetName() string { @@ -1401,7 +1752,7 @@ type NamespacedName struct { func (x *NamespacedName) Reset() { *x = NamespacedName{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1alpha1_common_proto_msgTypes[9] + mi := &file_api_v1alpha1_common_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1414,7 +1765,7 @@ func (x *NamespacedName) String() string { func (*NamespacedName) ProtoMessage() {} func (x *NamespacedName) ProtoReflect() protoreflect.Message { - mi := &file_api_v1alpha1_common_proto_msgTypes[9] + mi := &file_api_v1alpha1_common_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1427,7 +1778,7 @@ func (x *NamespacedName) ProtoReflect() protoreflect.Message { // Deprecated: Use NamespacedName.ProtoReflect.Descriptor instead. func (*NamespacedName) Descriptor() ([]byte, []int) { - return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{9} + return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{12} } func (x *NamespacedName) GetName() string { @@ -1465,7 +1816,7 @@ type ResourceRequirements struct { func (x *ResourceRequirements) Reset() { *x = ResourceRequirements{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1alpha1_common_proto_msgTypes[10] + mi := &file_api_v1alpha1_common_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1478,7 +1829,7 @@ func (x *ResourceRequirements) String() string { func (*ResourceRequirements) ProtoMessage() {} func (x *ResourceRequirements) ProtoReflect() protoreflect.Message { - mi := &file_api_v1alpha1_common_proto_msgTypes[10] + mi := &file_api_v1alpha1_common_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1491,7 +1842,7 @@ func (x *ResourceRequirements) ProtoReflect() protoreflect.Message { // Deprecated: Use ResourceRequirements.ProtoReflect.Descriptor instead. func (*ResourceRequirements) Descriptor() ([]byte, []int) { - return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{10} + return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{13} } func (x *ResourceRequirements) GetLimits() map[string]*Quantity { @@ -1537,7 +1888,7 @@ type Replicas struct { func (x *Replicas) Reset() { *x = Replicas{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1alpha1_common_proto_msgTypes[11] + mi := &file_api_v1alpha1_common_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1550,7 +1901,7 @@ func (x *Replicas) String() string { func (*Replicas) ProtoMessage() {} func (x *Replicas) ProtoReflect() protoreflect.Message { - mi := &file_api_v1alpha1_common_proto_msgTypes[11] + mi := &file_api_v1alpha1_common_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1563,7 +1914,7 @@ func (x *Replicas) ProtoReflect() protoreflect.Message { // Deprecated: Use Replicas.ProtoReflect.Descriptor instead. func (*Replicas) Descriptor() ([]byte, []int) { - return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{11} + return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{14} } func (x *Replicas) GetCount() *wrappers.Int32Value { @@ -1607,7 +1958,7 @@ type K8SResourceOverlayPatch struct { func (x *K8SResourceOverlayPatch) Reset() { *x = K8SResourceOverlayPatch{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1alpha1_common_proto_msgTypes[12] + mi := &file_api_v1alpha1_common_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1620,7 +1971,7 @@ func (x *K8SResourceOverlayPatch) String() string { func (*K8SResourceOverlayPatch) ProtoMessage() {} func (x *K8SResourceOverlayPatch) ProtoReflect() protoreflect.Message { - mi := &file_api_v1alpha1_common_proto_msgTypes[12] + mi := &file_api_v1alpha1_common_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1633,7 +1984,7 @@ func (x *K8SResourceOverlayPatch) ProtoReflect() protoreflect.Message { // Deprecated: Use K8SResourceOverlayPatch.ProtoReflect.Descriptor instead. func (*K8SResourceOverlayPatch) Descriptor() ([]byte, []int) { - return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{12} + return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{15} } func (x *K8SResourceOverlayPatch) GetGroupVersionKind() *K8SResourceOverlayPatch_GroupVersionKind { @@ -1678,7 +2029,7 @@ type DeploymentStrategy_RollingUpdateDeployment struct { func (x *DeploymentStrategy_RollingUpdateDeployment) Reset() { *x = DeploymentStrategy_RollingUpdateDeployment{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1alpha1_common_proto_msgTypes[18] + mi := &file_api_v1alpha1_common_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1691,7 +2042,7 @@ func (x *DeploymentStrategy_RollingUpdateDeployment) String() string { func (*DeploymentStrategy_RollingUpdateDeployment) ProtoMessage() {} func (x *DeploymentStrategy_RollingUpdateDeployment) ProtoReflect() protoreflect.Message { - mi := &file_api_v1alpha1_common_proto_msgTypes[18] + mi := &file_api_v1alpha1_common_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1734,7 +2085,7 @@ type K8SResourceOverlayPatch_GroupVersionKind struct { func (x *K8SResourceOverlayPatch_GroupVersionKind) Reset() { *x = K8SResourceOverlayPatch_GroupVersionKind{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1alpha1_common_proto_msgTypes[23] + mi := &file_api_v1alpha1_common_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1747,7 +2098,7 @@ func (x *K8SResourceOverlayPatch_GroupVersionKind) String() string { func (*K8SResourceOverlayPatch_GroupVersionKind) ProtoMessage() {} func (x *K8SResourceOverlayPatch_GroupVersionKind) ProtoReflect() protoreflect.Message { - mi := &file_api_v1alpha1_common_proto_msgTypes[23] + mi := &file_api_v1alpha1_common_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1760,7 +2111,7 @@ func (x *K8SResourceOverlayPatch_GroupVersionKind) ProtoReflect() protoreflect.M // Deprecated: Use K8SResourceOverlayPatch_GroupVersionKind.ProtoReflect.Descriptor instead. func (*K8SResourceOverlayPatch_GroupVersionKind) Descriptor() ([]byte, []int) { - return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{12, 0} + return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{15, 0} } func (x *K8SResourceOverlayPatch_GroupVersionKind) GetKind() string { @@ -1798,7 +2149,7 @@ type K8SResourceOverlayPatch_Patch struct { func (x *K8SResourceOverlayPatch_Patch) Reset() { *x = K8SResourceOverlayPatch_Patch{} if protoimpl.UnsafeEnabled { - mi := &file_api_v1alpha1_common_proto_msgTypes[24] + mi := &file_api_v1alpha1_common_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1811,7 +2162,7 @@ func (x *K8SResourceOverlayPatch_Patch) String() string { func (*K8SResourceOverlayPatch_Patch) ProtoMessage() {} func (x *K8SResourceOverlayPatch_Patch) ProtoReflect() protoreflect.Message { - mi := &file_api_v1alpha1_common_proto_msgTypes[24] + mi := &file_api_v1alpha1_common_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1824,7 +2175,7 @@ func (x *K8SResourceOverlayPatch_Patch) ProtoReflect() protoreflect.Message { // Deprecated: Use K8SResourceOverlayPatch_Patch.ProtoReflect.Descriptor instead. func (*K8SResourceOverlayPatch_Patch) Descriptor() ([]byte, []int) { - return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{12, 1} + return file_api_v1alpha1_common_proto_rawDescGZIP(), []int{15, 1} } func (x *K8SResourceOverlayPatch_Patch) GetPath() string { @@ -1925,7 +2276,7 @@ var file_api_v1alpha1_common_proto_rawDesc = []byte{ 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0c, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0xd4, 0x0c, 0x0a, 0x1c, 0x42, 0x61, 0x73, + 0x6d, 0x65, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0xec, 0x0c, 0x0a, 0x1c, 0x42, 0x61, 0x73, 0x65, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x49, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x73, @@ -2007,286 +2358,344 @@ var file_api_v1alpha1_common_proto_rawDesc = []byte{ 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x64, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x12, 0x70, 0x6f, 0x64, 0x53, - 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x3f, + 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x4b, 0x0a, 0x0d, 0x6c, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x18, - 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x62, 0x65, - 0x52, 0x0d, 0x6c, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x12, - 0x41, 0x0a, 0x0e, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 0x62, - 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, - 0x62, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, - 0x62, 0x65, 0x12, 0x6a, 0x0a, 0x19, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x53, 0x70, - 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x18, - 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x6f, 0x6c, - 0x6f, 0x67, 0x79, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x6e, 0x74, 0x52, 0x19, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x53, 0x70, 0x72, - 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0x3f, - 0x0a, 0x11, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0xea, 0x02, 0x0a, 0x12, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, - 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x70, 0x0a, 0x0d, 0x72, 0x6f, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x4a, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, - 0x61, 0x74, 0x65, 0x67, 0x79, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0d, 0x72, - 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0xcd, 0x01, 0x0a, - 0x17, 0x52, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x5e, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x55, - 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2b, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x4f, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x09, 0xfa, - 0x82, 0x87, 0x03, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x55, 0x6e, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x52, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x53, - 0x75, 0x72, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x73, 0x74, - 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x4f, - 0x72, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x09, 0xfa, 0x82, 0x87, 0x03, 0x04, 0x74, 0x72, - 0x75, 0x65, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x53, 0x75, 0x72, 0x67, 0x65, 0x22, 0xd1, 0x01, 0x0a, - 0x13, 0x50, 0x6f, 0x64, 0x44, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, - 0x64, 0x67, 0x65, 0x74, 0x12, 0x5a, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x41, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x73, 0x74, - 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x4f, - 0x72, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x09, 0xfa, 0x82, 0x87, 0x03, 0x04, 0x74, 0x72, - 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x52, 0x0d, 0x6c, 0x69, + 0x76, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x12, 0x4d, 0x0a, 0x0e, 0x72, + 0x65, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x61, 0x64, + 0x69, 0x6e, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x12, 0x6a, 0x0a, 0x19, 0x74, 0x6f, + 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x53, 0x70, 0x72, 0x65, 0x61, + 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x52, 0x19, 0x74, 0x6f, 0x70, + 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0x3f, 0x0a, 0x11, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xea, 0x02, 0x0a, 0x12, 0x44, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x70, 0x0a, 0x0d, 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x69, 0x73, 0x74, 0x69, + 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x2e, 0x52, 0x6f, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0d, 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x1a, 0xcd, 0x01, 0x0a, 0x17, 0x52, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x5e, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x4f, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x09, 0xfa, 0x82, 0x87, 0x03, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x22, 0xf6, 0x06, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x49, 0x0a, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, - 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x47, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, - 0x6f, 0x72, 0x74, 0x42, 0x04, 0xe2, 0x41, 0x01, 0x02, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x12, 0x51, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x12, 0x52, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x53, 0x75, 0x72, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x50, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x50, 0x12, 0x18, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x04, 0xe2, 0x41, 0x01, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x50, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x50, 0x73, 0x12, 0x28, 0x0a, - 0x0f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, - 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x6f, 0x61, 0x64, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x49, 0x50, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x49, 0x50, 0x12, - 0x3a, 0x0a, 0x18, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x18, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x65, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x34, 0x0a, 0x15, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, - 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x30, 0x0a, 0x13, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x13, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, - 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x56, 0x0a, 0x18, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4e, 0x6f, - 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, - 0x5f, 0x0a, 0x15, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, - 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x66, 0x69, 0x6e, - 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x15, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x70, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x1a, 0x3b, 0x0a, 0x0d, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x80, 0x07, 0x0a, 0x12, 0x55, 0x6e, - 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x49, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x4f, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, + 0x09, 0xfa, 0x82, 0x87, 0x03, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x53, + 0x75, 0x72, 0x67, 0x65, 0x22, 0xd1, 0x01, 0x0a, 0x13, 0x50, 0x6f, 0x64, 0x44, 0x69, 0x73, 0x72, + 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x12, 0x5a, 0x0a, 0x0c, + 0x6d, 0x69, 0x6e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x05, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x73, 0x74, - 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x5c, - 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x40, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x4f, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, + 0x09, 0xfa, 0x82, 0x87, 0x03, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x41, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x5e, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x55, + 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x55, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x50, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x50, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x50, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x50, 0x73, - 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x66, 0x69, 0x6e, - 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x6f, - 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x49, 0x50, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, - 0x49, 0x50, 0x12, 0x3a, 0x0a, 0x18, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x18, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x22, - 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x15, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x30, 0x0a, 0x13, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x56, 0x0a, 0x18, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, - 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x15, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x66, - 0x69, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x66, - 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x15, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x70, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x1a, - 0x3b, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xcb, 0x01, 0x0a, - 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x04, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x04, 0xe2, 0x41, 0x01, 0x02, - 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x56, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x50, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x73, 0x74, - 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x4f, - 0x72, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x09, 0xfa, 0x82, 0x87, 0x03, 0x04, 0x74, 0x72, - 0x75, 0x65, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x42, 0x0a, 0x0e, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0xb0, - 0x03, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x62, 0x0a, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, + 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x4f, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x09, 0xfa, + 0x82, 0x87, 0x03, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x55, 0x6e, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x22, 0xb8, 0x04, 0x0a, 0x05, 0x50, 0x72, 0x6f, + 0x62, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x65, 0x78, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x48, 0x00, 0x52, 0x04, 0x65, 0x78, 0x65, 0x63, 0x12, 0x49, 0x0a, 0x07, 0x68, 0x74, 0x74, 0x70, + 0x47, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x73, 0x74, 0x69, + 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x47, + 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x68, 0x74, 0x74, 0x70, + 0x47, 0x65, 0x74, 0x12, 0x4f, 0x0a, 0x09, 0x74, 0x63, 0x70, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x43, 0x50, 0x53, 0x6f, 0x63, 0x6b, 0x65, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x74, 0x63, 0x70, 0x53, 0x6f, + 0x63, 0x6b, 0x65, 0x74, 0x12, 0x34, 0x0a, 0x04, 0x67, 0x72, 0x70, 0x63, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x52, 0x50, 0x43, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x67, 0x72, 0x70, 0x63, 0x12, 0x30, 0x0a, 0x13, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, + 0x44, 0x65, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x65, 0x72, + 0x69, 0x6f, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, + 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x10, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x12, 0x44, 0x0a, 0x1d, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x47, 0x72, 0x61, 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x74, 0x65, 0x72, 0x6d, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, + 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x72, 0x22, 0xdd, 0x01, 0x0a, 0x0d, 0x48, 0x54, 0x54, 0x50, 0x47, 0x65, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x04, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x08, 0xfa, 0x82, 0x87, 0x03, 0x03, - 0x6d, 0x61, 0x70, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x68, 0x0a, 0x08, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x4f, 0x72, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x42, 0x09, 0xfa, 0x82, 0x87, 0x03, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, + 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x68, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0b, 0x68, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x73, 0x22, 0x71, 0x0a, 0x0f, 0x54, 0x43, 0x50, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x4f, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x42, 0x09, 0xfa, 0x82, 0x87, 0x03, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x04, 0x70, 0x6f, + 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x22, 0xf6, 0x06, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x49, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x47, 0x0a, + 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, + 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x04, 0xe2, 0x41, 0x01, 0x02, 0x52, + 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x51, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, + 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x50, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x50, 0x12, 0x18, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0xe2, 0x41, 0x01, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x50, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x49, 0x50, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x66, + 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x26, 0x0a, + 0x0e, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x49, 0x50, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x72, 0x49, 0x50, 0x12, 0x3a, 0x0a, 0x18, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x18, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x30, 0x0a, 0x13, 0x68, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, + 0x72, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x56, 0x0a, + 0x18, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x15, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x15, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x70, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x1a, 0x3b, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0x80, 0x07, 0x0a, 0x12, 0x55, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x49, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, + 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x41, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x12, 0x5c, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x50, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x50, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x49, 0x50, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x49, 0x50, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, + 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, + 0x49, 0x50, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x49, 0x50, 0x12, 0x3a, 0x0a, 0x18, 0x6c, 0x6f, 0x61, 0x64, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x18, 0x6c, 0x6f, 0x61, 0x64, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x65, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x30, + 0x0a, 0x13, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, + 0x65, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x68, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, + 0x12, 0x56, 0x0a, 0x18, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4e, 0x6f, 0x74, 0x52, 0x65, + 0x61, 0x64, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x15, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x15, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x70, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x1a, 0x3b, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0xcb, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, + 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x42, 0x04, 0xe2, 0x41, 0x01, 0x02, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x56, 0x0a, 0x0a, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x4f, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x09, 0xfa, + 0x82, 0x87, 0x03, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, + 0x22, 0x42, 0x0a, 0x0e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x64, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x22, 0xb0, 0x03, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x62, 0x0a, + 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x42, 0x08, 0xfa, 0x82, 0x87, 0x03, 0x03, 0x6d, 0x61, 0x70, 0x52, 0x08, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x73, 0x1a, 0x63, 0x0a, 0x0b, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, 0x0a, 0x0d, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3e, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, - 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, - 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x80, 0x02, 0x0a, 0x08, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x31, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x2d, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x6d, 0x69, 0x6e, - 0x12, 0x2d, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x6e, 0x74, 0x73, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, + 0x08, 0xfa, 0x82, 0x87, 0x03, 0x03, 0x6d, 0x61, 0x70, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x73, 0x12, 0x68, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x08, 0xfa, 0x82, 0x87, 0x03, 0x03, 0x6d, 0x61, + 0x70, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x1a, 0x63, 0x0a, 0x0b, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x73, + 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x65, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x80, 0x02, 0x0a, 0x08, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x73, 0x12, 0x31, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x2d, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, 0x63, 0x0a, 0x1e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, + 0x50, 0x55, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, - 0x63, 0x0a, 0x1e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x50, 0x55, 0x55, 0x74, 0x69, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x50, 0x55, 0x55, - 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, - 0x74, 0x61, 0x67, 0x65, 0x22, 0xe6, 0x04, 0x0a, 0x17, 0x4b, 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x74, 0x63, 0x68, - 0x12, 0x74, 0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x4b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x69, 0x73, 0x74, - 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x50, 0x61, - 0x74, 0x63, 0x68, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x4c, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x73, 0x74, 0x69, - 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x4b, 0x65, 0x79, 0x12, 0x57, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x50, - 0x61, 0x74, 0x63, 0x68, 0x52, 0x07, 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x1a, 0x56, 0x0a, - 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4b, 0x69, 0x6e, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0xa3, 0x01, 0x0a, 0x05, 0x50, 0x61, 0x74, 0x63, 0x68, 0x12, - 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, - 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x72, - 0x73, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, - 0x61, 0x72, 0x73, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x50, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x74, 0x63, 0x68, - 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x10, - 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x10, 0x02, 0x22, 0x0a, 0x0a, - 0x08, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x0d, 0x0a, 0x0b, 0x49, 0x6e, 0x74, - 0x4f, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2a, 0x6f, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, - 0x6c, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x65, - 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x41, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x6e, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x10, 0x05, 0x42, 0x37, 0x5a, 0x35, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61, 0x6e, 0x7a, 0x61, 0x69, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2f, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1e, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x43, 0x50, 0x55, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x22, 0xe6, 0x04, 0x0a, 0x17, 0x4b, + 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, + 0x79, 0x50, 0x61, 0x74, 0x63, 0x68, 0x12, 0x74, 0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x48, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x4b, 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x76, 0x65, + 0x72, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x10, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x4c, 0x0a, 0x09, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x52, + 0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x57, 0x0a, 0x07, 0x70, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x69, 0x73, + 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4b, 0x38, 0x73, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x50, + 0x61, 0x74, 0x63, 0x68, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x52, 0x07, 0x70, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x73, 0x1a, 0x56, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0xa3, 0x01, 0x0a, 0x05, + 0x50, 0x61, 0x74, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x73, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x73, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x50, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, + 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, + 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4b, + 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, + 0x79, 0x50, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x30, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x72, 0x65, + 0x70, 0x6c, 0x61, 0x63, 0x65, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x10, 0x02, 0x22, 0x0a, 0x0a, 0x08, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, + 0x0d, 0x0a, 0x0b, 0x49, 0x6e, 0x74, 0x4f, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2a, 0x6f, + 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, + 0x0b, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, + 0x0a, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x52, + 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, + 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x6e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x10, 0x05, 0x42, + 0x37, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61, + 0x6e, 0x7a, 0x61, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2d, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2302,7 +2711,7 @@ func file_api_v1alpha1_common_proto_rawDescGZIP() []byte { } var file_api_v1alpha1_common_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_api_v1alpha1_common_proto_msgTypes = make([]protoimpl.MessageInfo, 25) +var file_api_v1alpha1_common_proto_msgTypes = make([]protoimpl.MessageInfo, 28) var file_api_v1alpha1_common_proto_goTypes = []interface{}{ (ConfigState)(0), // 0: istio_operator.v2.api.v1alpha1.ConfigState (K8SResourceOverlayPatch_Type)(0), // 1: istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch.Type @@ -2312,98 +2721,110 @@ var file_api_v1alpha1_common_proto_goTypes = []interface{}{ (*BaseKubernetesResourceConfig)(nil), // 5: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig (*DeploymentStrategy)(nil), // 6: istio_operator.v2.api.v1alpha1.DeploymentStrategy (*PodDisruptionBudget)(nil), // 7: istio_operator.v2.api.v1alpha1.PodDisruptionBudget - (*Service)(nil), // 8: istio_operator.v2.api.v1alpha1.Service - (*UnprotectedService)(nil), // 9: istio_operator.v2.api.v1alpha1.UnprotectedService - (*ServicePort)(nil), // 10: istio_operator.v2.api.v1alpha1.ServicePort - (*NamespacedName)(nil), // 11: istio_operator.v2.api.v1alpha1.NamespacedName - (*ResourceRequirements)(nil), // 12: istio_operator.v2.api.v1alpha1.ResourceRequirements - (*Replicas)(nil), // 13: istio_operator.v2.api.v1alpha1.Replicas - (*K8SResourceOverlayPatch)(nil), // 14: istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch - (*Quantity)(nil), // 15: istio_operator.v2.api.v1alpha1.Quantity - (*IntOrString)(nil), // 16: istio_operator.v2.api.v1alpha1.IntOrString - nil, // 17: istio_operator.v2.api.v1alpha1.K8sObjectMeta.LabelsEntry - nil, // 18: istio_operator.v2.api.v1alpha1.K8sObjectMeta.AnnotationsEntry - nil, // 19: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.NodeSelectorEntry - (*DeploymentStrategy_RollingUpdateDeployment)(nil), // 20: istio_operator.v2.api.v1alpha1.DeploymentStrategy.RollingUpdateDeployment - nil, // 21: istio_operator.v2.api.v1alpha1.Service.SelectorEntry - nil, // 22: istio_operator.v2.api.v1alpha1.UnprotectedService.SelectorEntry - nil, // 23: istio_operator.v2.api.v1alpha1.ResourceRequirements.LimitsEntry - nil, // 24: istio_operator.v2.api.v1alpha1.ResourceRequirements.RequestsEntry - (*K8SResourceOverlayPatch_GroupVersionKind)(nil), // 25: istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch.GroupVersionKind - (*K8SResourceOverlayPatch_Patch)(nil), // 26: istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch.Patch - (*v1.LocalObjectReference)(nil), // 27: k8s.io.api.core.v1.LocalObjectReference - (*v1.EnvVar)(nil), // 28: k8s.io.api.core.v1.EnvVar - (*v1.SecurityContext)(nil), // 29: k8s.io.api.core.v1.SecurityContext - (*v1.VolumeMount)(nil), // 30: k8s.io.api.core.v1.VolumeMount - (*v1.Affinity)(nil), // 31: k8s.io.api.core.v1.Affinity - (*v1.Toleration)(nil), // 32: k8s.io.api.core.v1.Toleration - (*v1.Volume)(nil), // 33: k8s.io.api.core.v1.Volume - (*v1.PodSecurityContext)(nil), // 34: k8s.io.api.core.v1.PodSecurityContext - (*v1.Probe)(nil), // 35: k8s.io.api.core.v1.Probe - (*v1.TopologySpreadConstraint)(nil), // 36: k8s.io.api.core.v1.TopologySpreadConstraint - (*wrappers.BoolValue)(nil), // 37: google.protobuf.BoolValue - (*v1.SessionAffinityConfig)(nil), // 38: k8s.io.api.core.v1.SessionAffinityConfig - (*wrappers.Int32Value)(nil), // 39: google.protobuf.Int32Value + (*Probe)(nil), // 8: istio_operator.v2.api.v1alpha1.Probe + (*HTTPGetAction)(nil), // 9: istio_operator.v2.api.v1alpha1.HTTPGetAction + (*TCPSocketAction)(nil), // 10: istio_operator.v2.api.v1alpha1.TCPSocketAction + (*Service)(nil), // 11: istio_operator.v2.api.v1alpha1.Service + (*UnprotectedService)(nil), // 12: istio_operator.v2.api.v1alpha1.UnprotectedService + (*ServicePort)(nil), // 13: istio_operator.v2.api.v1alpha1.ServicePort + (*NamespacedName)(nil), // 14: istio_operator.v2.api.v1alpha1.NamespacedName + (*ResourceRequirements)(nil), // 15: istio_operator.v2.api.v1alpha1.ResourceRequirements + (*Replicas)(nil), // 16: istio_operator.v2.api.v1alpha1.Replicas + (*K8SResourceOverlayPatch)(nil), // 17: istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch + (*Quantity)(nil), // 18: istio_operator.v2.api.v1alpha1.Quantity + (*IntOrString)(nil), // 19: istio_operator.v2.api.v1alpha1.IntOrString + nil, // 20: istio_operator.v2.api.v1alpha1.K8sObjectMeta.LabelsEntry + nil, // 21: istio_operator.v2.api.v1alpha1.K8sObjectMeta.AnnotationsEntry + nil, // 22: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.NodeSelectorEntry + (*DeploymentStrategy_RollingUpdateDeployment)(nil), // 23: istio_operator.v2.api.v1alpha1.DeploymentStrategy.RollingUpdateDeployment + nil, // 24: istio_operator.v2.api.v1alpha1.Service.SelectorEntry + nil, // 25: istio_operator.v2.api.v1alpha1.UnprotectedService.SelectorEntry + nil, // 26: istio_operator.v2.api.v1alpha1.ResourceRequirements.LimitsEntry + nil, // 27: istio_operator.v2.api.v1alpha1.ResourceRequirements.RequestsEntry + (*K8SResourceOverlayPatch_GroupVersionKind)(nil), // 28: istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch.GroupVersionKind + (*K8SResourceOverlayPatch_Patch)(nil), // 29: istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch.Patch + (*v1.LocalObjectReference)(nil), // 30: k8s.io.api.core.v1.LocalObjectReference + (*v1.EnvVar)(nil), // 31: k8s.io.api.core.v1.EnvVar + (*v1.SecurityContext)(nil), // 32: k8s.io.api.core.v1.SecurityContext + (*v1.VolumeMount)(nil), // 33: k8s.io.api.core.v1.VolumeMount + (*v1.Affinity)(nil), // 34: k8s.io.api.core.v1.Affinity + (*v1.Toleration)(nil), // 35: k8s.io.api.core.v1.Toleration + (*v1.Volume)(nil), // 36: k8s.io.api.core.v1.Volume + (*v1.PodSecurityContext)(nil), // 37: k8s.io.api.core.v1.PodSecurityContext + (*v1.TopologySpreadConstraint)(nil), // 38: k8s.io.api.core.v1.TopologySpreadConstraint + (*v1.ExecAction)(nil), // 39: k8s.io.api.core.v1.ExecAction + (*v1.GRPCAction)(nil), // 40: k8s.io.api.core.v1.GRPCAction + (*v1.HTTPHeader)(nil), // 41: k8s.io.api.core.v1.HTTPHeader + (*wrappers.BoolValue)(nil), // 42: google.protobuf.BoolValue + (*v1.SessionAffinityConfig)(nil), // 43: k8s.io.api.core.v1.SessionAffinityConfig + (*wrappers.Int32Value)(nil), // 44: google.protobuf.Int32Value } var file_api_v1alpha1_common_proto_depIdxs = []int32{ - 17, // 0: istio_operator.v2.api.v1alpha1.K8sObjectMeta.labels:type_name -> istio_operator.v2.api.v1alpha1.K8sObjectMeta.LabelsEntry - 18, // 1: istio_operator.v2.api.v1alpha1.K8sObjectMeta.annotations:type_name -> istio_operator.v2.api.v1alpha1.K8sObjectMeta.AnnotationsEntry - 27, // 2: istio_operator.v2.api.v1alpha1.ContainerImageConfiguration.imagePullSecrets:type_name -> k8s.io.api.core.v1.LocalObjectReference - 28, // 3: istio_operator.v2.api.v1alpha1.BaseKubernetesContainerConfiguration.env:type_name -> k8s.io.api.core.v1.EnvVar - 12, // 4: istio_operator.v2.api.v1alpha1.BaseKubernetesContainerConfiguration.resources:type_name -> istio_operator.v2.api.v1alpha1.ResourceRequirements - 29, // 5: istio_operator.v2.api.v1alpha1.BaseKubernetesContainerConfiguration.securityContext:type_name -> k8s.io.api.core.v1.SecurityContext - 30, // 6: istio_operator.v2.api.v1alpha1.BaseKubernetesContainerConfiguration.volumeMounts:type_name -> k8s.io.api.core.v1.VolumeMount + 20, // 0: istio_operator.v2.api.v1alpha1.K8sObjectMeta.labels:type_name -> istio_operator.v2.api.v1alpha1.K8sObjectMeta.LabelsEntry + 21, // 1: istio_operator.v2.api.v1alpha1.K8sObjectMeta.annotations:type_name -> istio_operator.v2.api.v1alpha1.K8sObjectMeta.AnnotationsEntry + 30, // 2: istio_operator.v2.api.v1alpha1.ContainerImageConfiguration.imagePullSecrets:type_name -> k8s.io.api.core.v1.LocalObjectReference + 31, // 3: istio_operator.v2.api.v1alpha1.BaseKubernetesContainerConfiguration.env:type_name -> k8s.io.api.core.v1.EnvVar + 15, // 4: istio_operator.v2.api.v1alpha1.BaseKubernetesContainerConfiguration.resources:type_name -> istio_operator.v2.api.v1alpha1.ResourceRequirements + 32, // 5: istio_operator.v2.api.v1alpha1.BaseKubernetesContainerConfiguration.securityContext:type_name -> k8s.io.api.core.v1.SecurityContext + 33, // 6: istio_operator.v2.api.v1alpha1.BaseKubernetesContainerConfiguration.volumeMounts:type_name -> k8s.io.api.core.v1.VolumeMount 2, // 7: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.metadata:type_name -> istio_operator.v2.api.v1alpha1.K8sObjectMeta - 28, // 8: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.env:type_name -> k8s.io.api.core.v1.EnvVar - 12, // 9: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.resources:type_name -> istio_operator.v2.api.v1alpha1.ResourceRequirements - 19, // 10: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.nodeSelector:type_name -> istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.NodeSelectorEntry - 31, // 11: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.affinity:type_name -> k8s.io.api.core.v1.Affinity - 29, // 12: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.securityContext:type_name -> k8s.io.api.core.v1.SecurityContext - 27, // 13: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.imagePullSecrets:type_name -> k8s.io.api.core.v1.LocalObjectReference - 32, // 14: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.tolerations:type_name -> k8s.io.api.core.v1.Toleration - 33, // 15: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.volumes:type_name -> k8s.io.api.core.v1.Volume - 30, // 16: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.volumeMounts:type_name -> k8s.io.api.core.v1.VolumeMount - 13, // 17: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.replicas:type_name -> istio_operator.v2.api.v1alpha1.Replicas + 31, // 8: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.env:type_name -> k8s.io.api.core.v1.EnvVar + 15, // 9: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.resources:type_name -> istio_operator.v2.api.v1alpha1.ResourceRequirements + 22, // 10: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.nodeSelector:type_name -> istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.NodeSelectorEntry + 34, // 11: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.affinity:type_name -> k8s.io.api.core.v1.Affinity + 32, // 12: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.securityContext:type_name -> k8s.io.api.core.v1.SecurityContext + 30, // 13: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.imagePullSecrets:type_name -> k8s.io.api.core.v1.LocalObjectReference + 35, // 14: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.tolerations:type_name -> k8s.io.api.core.v1.Toleration + 36, // 15: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.volumes:type_name -> k8s.io.api.core.v1.Volume + 33, // 16: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.volumeMounts:type_name -> k8s.io.api.core.v1.VolumeMount + 16, // 17: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.replicas:type_name -> istio_operator.v2.api.v1alpha1.Replicas 2, // 18: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.podMetadata:type_name -> istio_operator.v2.api.v1alpha1.K8sObjectMeta 7, // 19: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.podDisruptionBudget:type_name -> istio_operator.v2.api.v1alpha1.PodDisruptionBudget 6, // 20: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.deploymentStrategy:type_name -> istio_operator.v2.api.v1alpha1.DeploymentStrategy - 34, // 21: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.podSecurityContext:type_name -> k8s.io.api.core.v1.PodSecurityContext - 35, // 22: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.livenessProbe:type_name -> k8s.io.api.core.v1.Probe - 35, // 23: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.readinessProbe:type_name -> k8s.io.api.core.v1.Probe - 36, // 24: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.topologySpreadConstraints:type_name -> k8s.io.api.core.v1.TopologySpreadConstraint - 20, // 25: istio_operator.v2.api.v1alpha1.DeploymentStrategy.rollingUpdate:type_name -> istio_operator.v2.api.v1alpha1.DeploymentStrategy.RollingUpdateDeployment - 16, // 26: istio_operator.v2.api.v1alpha1.PodDisruptionBudget.minAvailable:type_name -> istio_operator.v2.api.v1alpha1.IntOrString - 16, // 27: istio_operator.v2.api.v1alpha1.PodDisruptionBudget.maxUnavailable:type_name -> istio_operator.v2.api.v1alpha1.IntOrString - 2, // 28: istio_operator.v2.api.v1alpha1.Service.metadata:type_name -> istio_operator.v2.api.v1alpha1.K8sObjectMeta - 10, // 29: istio_operator.v2.api.v1alpha1.Service.ports:type_name -> istio_operator.v2.api.v1alpha1.ServicePort - 21, // 30: istio_operator.v2.api.v1alpha1.Service.selector:type_name -> istio_operator.v2.api.v1alpha1.Service.SelectorEntry - 37, // 31: istio_operator.v2.api.v1alpha1.Service.publishNotReadyAddresses:type_name -> google.protobuf.BoolValue - 38, // 32: istio_operator.v2.api.v1alpha1.Service.sessionAffinityConfig:type_name -> k8s.io.api.core.v1.SessionAffinityConfig - 2, // 33: istio_operator.v2.api.v1alpha1.UnprotectedService.metadata:type_name -> istio_operator.v2.api.v1alpha1.K8sObjectMeta - 10, // 34: istio_operator.v2.api.v1alpha1.UnprotectedService.ports:type_name -> istio_operator.v2.api.v1alpha1.ServicePort - 22, // 35: istio_operator.v2.api.v1alpha1.UnprotectedService.selector:type_name -> istio_operator.v2.api.v1alpha1.UnprotectedService.SelectorEntry - 37, // 36: istio_operator.v2.api.v1alpha1.UnprotectedService.publishNotReadyAddresses:type_name -> google.protobuf.BoolValue - 38, // 37: istio_operator.v2.api.v1alpha1.UnprotectedService.sessionAffinityConfig:type_name -> k8s.io.api.core.v1.SessionAffinityConfig - 16, // 38: istio_operator.v2.api.v1alpha1.ServicePort.targetPort:type_name -> istio_operator.v2.api.v1alpha1.IntOrString - 23, // 39: istio_operator.v2.api.v1alpha1.ResourceRequirements.limits:type_name -> istio_operator.v2.api.v1alpha1.ResourceRequirements.LimitsEntry - 24, // 40: istio_operator.v2.api.v1alpha1.ResourceRequirements.requests:type_name -> istio_operator.v2.api.v1alpha1.ResourceRequirements.RequestsEntry - 39, // 41: istio_operator.v2.api.v1alpha1.Replicas.count:type_name -> google.protobuf.Int32Value - 39, // 42: istio_operator.v2.api.v1alpha1.Replicas.min:type_name -> google.protobuf.Int32Value - 39, // 43: istio_operator.v2.api.v1alpha1.Replicas.max:type_name -> google.protobuf.Int32Value - 39, // 44: istio_operator.v2.api.v1alpha1.Replicas.targetCPUUtilizationPercentage:type_name -> google.protobuf.Int32Value - 25, // 45: istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch.groupVersionKind:type_name -> istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch.GroupVersionKind - 11, // 46: istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch.objectKey:type_name -> istio_operator.v2.api.v1alpha1.NamespacedName - 26, // 47: istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch.patches:type_name -> istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch.Patch - 16, // 48: istio_operator.v2.api.v1alpha1.DeploymentStrategy.RollingUpdateDeployment.maxUnavailable:type_name -> istio_operator.v2.api.v1alpha1.IntOrString - 16, // 49: istio_operator.v2.api.v1alpha1.DeploymentStrategy.RollingUpdateDeployment.maxSurge:type_name -> istio_operator.v2.api.v1alpha1.IntOrString - 15, // 50: istio_operator.v2.api.v1alpha1.ResourceRequirements.LimitsEntry.value:type_name -> istio_operator.v2.api.v1alpha1.Quantity - 15, // 51: istio_operator.v2.api.v1alpha1.ResourceRequirements.RequestsEntry.value:type_name -> istio_operator.v2.api.v1alpha1.Quantity - 1, // 52: istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch.Patch.type:type_name -> istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch.Type - 53, // [53:53] is the sub-list for method output_type - 53, // [53:53] is the sub-list for method input_type - 53, // [53:53] is the sub-list for extension type_name - 53, // [53:53] is the sub-list for extension extendee - 0, // [0:53] is the sub-list for field type_name + 37, // 21: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.podSecurityContext:type_name -> k8s.io.api.core.v1.PodSecurityContext + 8, // 22: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.livenessProbe:type_name -> istio_operator.v2.api.v1alpha1.Probe + 8, // 23: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.readinessProbe:type_name -> istio_operator.v2.api.v1alpha1.Probe + 38, // 24: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig.topologySpreadConstraints:type_name -> k8s.io.api.core.v1.TopologySpreadConstraint + 23, // 25: istio_operator.v2.api.v1alpha1.DeploymentStrategy.rollingUpdate:type_name -> istio_operator.v2.api.v1alpha1.DeploymentStrategy.RollingUpdateDeployment + 19, // 26: istio_operator.v2.api.v1alpha1.PodDisruptionBudget.minAvailable:type_name -> istio_operator.v2.api.v1alpha1.IntOrString + 19, // 27: istio_operator.v2.api.v1alpha1.PodDisruptionBudget.maxUnavailable:type_name -> istio_operator.v2.api.v1alpha1.IntOrString + 39, // 28: istio_operator.v2.api.v1alpha1.Probe.exec:type_name -> k8s.io.api.core.v1.ExecAction + 9, // 29: istio_operator.v2.api.v1alpha1.Probe.httpGet:type_name -> istio_operator.v2.api.v1alpha1.HTTPGetAction + 10, // 30: istio_operator.v2.api.v1alpha1.Probe.tcpSocket:type_name -> istio_operator.v2.api.v1alpha1.TCPSocketAction + 40, // 31: istio_operator.v2.api.v1alpha1.Probe.grpc:type_name -> k8s.io.api.core.v1.GRPCAction + 19, // 32: istio_operator.v2.api.v1alpha1.HTTPGetAction.port:type_name -> istio_operator.v2.api.v1alpha1.IntOrString + 41, // 33: istio_operator.v2.api.v1alpha1.HTTPGetAction.httpHeaders:type_name -> k8s.io.api.core.v1.HTTPHeader + 19, // 34: istio_operator.v2.api.v1alpha1.TCPSocketAction.port:type_name -> istio_operator.v2.api.v1alpha1.IntOrString + 2, // 35: istio_operator.v2.api.v1alpha1.Service.metadata:type_name -> istio_operator.v2.api.v1alpha1.K8sObjectMeta + 13, // 36: istio_operator.v2.api.v1alpha1.Service.ports:type_name -> istio_operator.v2.api.v1alpha1.ServicePort + 24, // 37: istio_operator.v2.api.v1alpha1.Service.selector:type_name -> istio_operator.v2.api.v1alpha1.Service.SelectorEntry + 42, // 38: istio_operator.v2.api.v1alpha1.Service.publishNotReadyAddresses:type_name -> google.protobuf.BoolValue + 43, // 39: istio_operator.v2.api.v1alpha1.Service.sessionAffinityConfig:type_name -> k8s.io.api.core.v1.SessionAffinityConfig + 2, // 40: istio_operator.v2.api.v1alpha1.UnprotectedService.metadata:type_name -> istio_operator.v2.api.v1alpha1.K8sObjectMeta + 13, // 41: istio_operator.v2.api.v1alpha1.UnprotectedService.ports:type_name -> istio_operator.v2.api.v1alpha1.ServicePort + 25, // 42: istio_operator.v2.api.v1alpha1.UnprotectedService.selector:type_name -> istio_operator.v2.api.v1alpha1.UnprotectedService.SelectorEntry + 42, // 43: istio_operator.v2.api.v1alpha1.UnprotectedService.publishNotReadyAddresses:type_name -> google.protobuf.BoolValue + 43, // 44: istio_operator.v2.api.v1alpha1.UnprotectedService.sessionAffinityConfig:type_name -> k8s.io.api.core.v1.SessionAffinityConfig + 19, // 45: istio_operator.v2.api.v1alpha1.ServicePort.targetPort:type_name -> istio_operator.v2.api.v1alpha1.IntOrString + 26, // 46: istio_operator.v2.api.v1alpha1.ResourceRequirements.limits:type_name -> istio_operator.v2.api.v1alpha1.ResourceRequirements.LimitsEntry + 27, // 47: istio_operator.v2.api.v1alpha1.ResourceRequirements.requests:type_name -> istio_operator.v2.api.v1alpha1.ResourceRequirements.RequestsEntry + 44, // 48: istio_operator.v2.api.v1alpha1.Replicas.count:type_name -> google.protobuf.Int32Value + 44, // 49: istio_operator.v2.api.v1alpha1.Replicas.min:type_name -> google.protobuf.Int32Value + 44, // 50: istio_operator.v2.api.v1alpha1.Replicas.max:type_name -> google.protobuf.Int32Value + 44, // 51: istio_operator.v2.api.v1alpha1.Replicas.targetCPUUtilizationPercentage:type_name -> google.protobuf.Int32Value + 28, // 52: istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch.groupVersionKind:type_name -> istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch.GroupVersionKind + 14, // 53: istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch.objectKey:type_name -> istio_operator.v2.api.v1alpha1.NamespacedName + 29, // 54: istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch.patches:type_name -> istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch.Patch + 19, // 55: istio_operator.v2.api.v1alpha1.DeploymentStrategy.RollingUpdateDeployment.maxUnavailable:type_name -> istio_operator.v2.api.v1alpha1.IntOrString + 19, // 56: istio_operator.v2.api.v1alpha1.DeploymentStrategy.RollingUpdateDeployment.maxSurge:type_name -> istio_operator.v2.api.v1alpha1.IntOrString + 18, // 57: istio_operator.v2.api.v1alpha1.ResourceRequirements.LimitsEntry.value:type_name -> istio_operator.v2.api.v1alpha1.Quantity + 18, // 58: istio_operator.v2.api.v1alpha1.ResourceRequirements.RequestsEntry.value:type_name -> istio_operator.v2.api.v1alpha1.Quantity + 1, // 59: istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch.Patch.type:type_name -> istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch.Type + 60, // [60:60] is the sub-list for method output_type + 60, // [60:60] is the sub-list for method input_type + 60, // [60:60] is the sub-list for extension type_name + 60, // [60:60] is the sub-list for extension extendee + 0, // [0:60] is the sub-list for field type_name } func init() { file_api_v1alpha1_common_proto_init() } @@ -2485,7 +2906,7 @@ func file_api_v1alpha1_common_proto_init() { } } file_api_v1alpha1_common_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Service); i { + switch v := v.(*Probe); i { case 0: return &v.state case 1: @@ -2497,7 +2918,7 @@ func file_api_v1alpha1_common_proto_init() { } } file_api_v1alpha1_common_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnprotectedService); i { + switch v := v.(*HTTPGetAction); i { case 0: return &v.state case 1: @@ -2509,7 +2930,7 @@ func file_api_v1alpha1_common_proto_init() { } } file_api_v1alpha1_common_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServicePort); i { + switch v := v.(*TCPSocketAction); i { case 0: return &v.state case 1: @@ -2521,7 +2942,7 @@ func file_api_v1alpha1_common_proto_init() { } } file_api_v1alpha1_common_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NamespacedName); i { + switch v := v.(*Service); i { case 0: return &v.state case 1: @@ -2533,7 +2954,7 @@ func file_api_v1alpha1_common_proto_init() { } } file_api_v1alpha1_common_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResourceRequirements); i { + switch v := v.(*UnprotectedService); i { case 0: return &v.state case 1: @@ -2545,7 +2966,7 @@ func file_api_v1alpha1_common_proto_init() { } } file_api_v1alpha1_common_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Replicas); i { + switch v := v.(*ServicePort); i { case 0: return &v.state case 1: @@ -2557,6 +2978,42 @@ func file_api_v1alpha1_common_proto_init() { } } file_api_v1alpha1_common_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NamespacedName); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1alpha1_common_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResourceRequirements); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1alpha1_common_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Replicas); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_v1alpha1_common_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*K8SResourceOverlayPatch); i { case 0: return &v.state @@ -2568,7 +3025,7 @@ func file_api_v1alpha1_common_proto_init() { return nil } } - file_api_v1alpha1_common_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_api_v1alpha1_common_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeploymentStrategy_RollingUpdateDeployment); i { case 0: return &v.state @@ -2580,7 +3037,7 @@ func file_api_v1alpha1_common_proto_init() { return nil } } - file_api_v1alpha1_common_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_api_v1alpha1_common_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*K8SResourceOverlayPatch_GroupVersionKind); i { case 0: return &v.state @@ -2592,7 +3049,7 @@ func file_api_v1alpha1_common_proto_init() { return nil } } - file_api_v1alpha1_common_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_api_v1alpha1_common_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*K8SResourceOverlayPatch_Patch); i { case 0: return &v.state @@ -2605,13 +3062,19 @@ func file_api_v1alpha1_common_proto_init() { } } } + file_api_v1alpha1_common_proto_msgTypes[6].OneofWrappers = []interface{}{ + (*Probe_Exec)(nil), + (*Probe_HttpGet)(nil), + (*Probe_TcpSocket)(nil), + (*Probe_Grpc)(nil), + } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_api_v1alpha1_common_proto_rawDesc, NumEnums: 2, - NumMessages: 25, + NumMessages: 28, NumExtensions: 0, NumServices: 0, }, diff --git a/api/v1alpha1/common.pb.html b/api/v1alpha1/common.pb.html index 1964a2e63..289195ea6 100644 --- a/api/v1alpha1/common.pb.html +++ b/api/v1alpha1/common.pb.html @@ -2,7 +2,7 @@ title: istio_operator.v2.api.v1alpha1 layout: protoc-gen-docs generator: protoc-gen-docs -number_of_entries: 31 +number_of_entries: 36 ---

K8sObjectMeta

@@ -420,7 +420,7 @@

BaseKubernetesResourceConfig

livenessProbe -Probe +Probe

Periodic probe of container liveness. Container will be restarted if the probe fails. @@ -435,7 +435,7 @@

BaseKubernetesResourceConfig

readinessProbe -Probe +Probe

Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. @@ -544,6 +544,283 @@

PodDisruptionBudget

by specifying 0. This is a mutually exclusive setting with “minAvailable”. +optional

+ + +No + + + + +
+

Probe

+
+

Probe describes a health check to be performed against a container to determine whether it is +alive or ready to receive traffic.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescriptionRequired
execExecAction (oneof) +

Exec specifies the action to take. ++optional

+ +
+No +
httpGetHTTPGetAction (oneof) +

HTTPGet specifies the http request to perform. ++optional

+ +
+No +
tcpSocketTCPSocketAction (oneof) +

TCPSocket specifies an action involving a TCP port. ++optional

+ +
+No +
grpcGRPCAction (oneof) +

GRPC specifies an action involving a GRPC port. +This is a beta field and requires enabling GRPCContainerProbe feature gate. ++featureGate=GRPCContainerProbe ++optional

+ +
+No +
initialDelaySecondsint32 +

Number of seconds after the container has started before liveness probes are initiated. +More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes ++optional

+ +
+No +
timeoutSecondsint32 +

Number of seconds after which the probe times out. +Defaults to 1 second. Minimum value is 1. +More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes ++optional

+ +
+No +
periodSecondsint32 +

How often (in seconds) to perform the probe. +Default to 10 seconds. Minimum value is 1. ++optional

+ +
+No +
successThresholdint32 +

Minimum consecutive successes for the probe to be considered successful after having failed. +Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. ++optional

+ +
+No +
failureThresholdint32 +

Minimum consecutive failures for the probe to be considered failed after having succeeded. +Defaults to 3. Minimum value is 1. ++optional

+ +
+No +
terminationGracePeriodSecondsint64 +

Optional duration in seconds the pod needs to terminate gracefully upon probe failure. +The grace period is the duration in seconds after the processes running in the pod are sent +a termination signal and the time when the processes are forcibly halted with a kill signal. +Set this value longer than the expected cleanup time for your process. +If this value is nil, the pod’s terminationGracePeriodSeconds will be used. Otherwise, this +value overrides the value provided by the pod spec. +Value must be non-negative integer. The value zero indicates stop immediately via +the kill signal (no opportunity to shut down). +This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. +Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. ++optional

+ +
+No +
+
+

HTTPGetAction

+
+

HTTPGetAction describes an action based on HTTP Get requests.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescriptionRequired
pathstring +

Path to access on the HTTP server. ++optional

+ +
+No +
portIntOrString +

Name or number of the port to access on the container. +Number must be in the range 1 to 65535. +Name must be an IANA_SVC_NAME.

+ +
+No +
hoststring +

Host name to connect to, defaults to the pod IP. You probably want to set +“Host” in httpHeaders instead. ++optional

+ +
+No +
schemestring +

Scheme to use for connecting to the host. +Defaults to HTTP. ++optional

+ +
+No +
httpHeadersHTTPHeader[] +

Custom headers to set in the request. HTTP allows repeated headers. ++optional

+ +
+No +
+
+

TCPSocketAction

+
+

TCPSocketAction describes an action based on opening a socket

+ + + + + + + + + + + + + + + + + + + + + - - - -
FieldTypeDescriptionRequired
portIntOrString +

Number or name of the port to access on the container. +Number must be in the range 1 to 65535. +Name must be an IANA_SVC_NAME.

+ +
+No +
hoststring +

Optional: Host name to connect to, defaults to the pod IP. ++optional

+
No @@ -2250,122 +2527,6 @@

k8s.io.api.core.v1.PodSecurityCon Note that this field cannot be set when spec.os.name is windows. +optional

-

-No -
-
-

k8s.io.api.core.v1.Probe

-
-

Probe describes a health check to be performed against a container to determine whether it is -alive or ready to receive traffic.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + +
FieldTypeDescriptionRequired
handlerProbeHandler -

The action taken to determine the health of a container

- -
-No -
initialDelaySecondsint32 -

Number of seconds after the container has started before liveness probes are initiated. -More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes -+optional

- -
-No -
timeoutSecondsint32 -

Number of seconds after which the probe times out. -Defaults to 1 second. Minimum value is 1. -More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes -+optional

- -
-No -
periodSecondsint32 -

How often (in seconds) to perform the probe. -Default to 10 seconds. Minimum value is 1. -+optional

- -
-No -
successThresholdint32 -

Minimum consecutive successes for the probe to be considered successful after having failed. -Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. -+optional

- -
-No -
failureThresholdint32 -

Minimum consecutive failures for the probe to be considered failed after having succeeded. -Defaults to 3. Minimum value is 1. -+optional

- -
-No -
terminationGracePeriodSecondsint64 -

Optional duration in seconds the pod needs to terminate gracefully upon probe failure. -The grace period is the duration in seconds after the processes running in the pod are sent -a termination signal and the time when the processes are forcibly halted with a kill signal. -Set this value longer than the expected cleanup time for your process. -If this value is nil, the pod’s terminationGracePeriodSeconds will be used. Otherwise, this -value overrides the value provided by the pod spec. -Value must be non-negative integer. The value zero indicates stop immediately via -the kill signal (no opportunity to shut down). -This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. -Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. -+optional

-
No @@ -2470,6 +2631,120 @@

k8s.io.api.core.v1.Topology in their corresponding topology domain. +optional

+

+No +
+
+

k8s.io.api.core.v1.ExecAction

+
+

ExecAction describes a “run in container” action.

+ + + + + + + + + + + + + + + + + + +
FieldTypeDescriptionRequired
commandstring[] +

Command is the command line to execute inside the container, the working directory for the +command is root (‘/’) in the container’s filesystem. The command is simply exec’d, it is +not run inside a shell, so traditional shell instructions (‘|’, etc) won’t work. To use +a shell, you need to explicitly call out to that shell. +Exit status of 0 is treated as live/healthy and non-zero is unhealthy. ++optional

+ +
+No +
+
+

k8s.io.api.core.v1.GRPCAction

+
+ + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescriptionRequired
portint32 +

Port number of the gRPC service. Number must be in the range 1 to 65535.

+ +
+No +
servicestring +

Service is the name of the service to place in the gRPC HealthCheckRequest +(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).

+ +

If this is not specified, the default behavior is defined by gRPC. ++optional ++default=“”

+ +
+No +
+
+

k8s.io.api.core.v1.HTTPHeader

+
+

HTTPHeader describes a custom header to be used in HTTP probes

+ + + + + + + + + + + + + + + + + + + + + - + - + - + - +
FieldTypeDescriptionRequired
namestring +

The header field name

+ +
+No +
valuestring +

The header field value

+
No diff --git a/api/v1alpha1/common.proto b/api/v1alpha1/common.proto index 0b5664ea5..80065b146 100644 --- a/api/v1alpha1/common.proto +++ b/api/v1alpha1/common.proto @@ -160,14 +160,14 @@ message BaseKubernetesResourceConfig { // Cannot be updated. // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes // +optional - k8s.io.api.core.v1.Probe livenessProbe = 19; + Probe livenessProbe = 19; // Periodic probe of container service readiness. // Container will be removed from service endpoints if the probe fails. // Cannot be updated. // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes // +optional - k8s.io.api.core.v1.Probe readinessProbe = 20; + Probe readinessProbe = 20; // Used to control how Pods are spread across a cluster among failure-domains. // This can help to achieve high availability as well as efficient resource utilization. @@ -209,6 +209,108 @@ message PodDisruptionBudget { IntOrString maxUnavailable = 2 [(options.intorstring) = "true"]; } +// Probe describes a health check to be performed against a container to determine whether it is +// alive or ready to receive traffic. +message Probe { + // The action taken to determine the health of a container + oneof handler { + // Exec specifies the action to take. + // +optional + k8s.io.api.core.v1.ExecAction exec = 1; + + // HTTPGet specifies the http request to perform. + // +optional + HTTPGetAction httpGet = 2; + + // TCPSocket specifies an action involving a TCP port. + // +optional + TCPSocketAction tcpSocket = 3; + + // GRPC specifies an action involving a GRPC port. + // This is a beta field and requires enabling GRPCContainerProbe feature gate. + // +featureGate=GRPCContainerProbe + // +optional + k8s.io.api.core.v1.GRPCAction grpc = 4; + } + + // Number of seconds after the container has started before liveness probes are initiated. + // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + // +optional + int32 initialDelaySeconds = 5; + + // Number of seconds after which the probe times out. + // Defaults to 1 second. Minimum value is 1. + // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + // +optional + int32 timeoutSeconds = 6; + + // How often (in seconds) to perform the probe. + // Default to 10 seconds. Minimum value is 1. + // +optional + int32 periodSeconds = 7; + + // Minimum consecutive successes for the probe to be considered successful after having failed. + // Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. + // +optional + int32 successThreshold = 8; + + // Minimum consecutive failures for the probe to be considered failed after having succeeded. + // Defaults to 3. Minimum value is 1. + // +optional + int32 failureThreshold = 9; + + // Optional duration in seconds the pod needs to terminate gracefully upon probe failure. + // The grace period is the duration in seconds after the processes running in the pod are sent + // a termination signal and the time when the processes are forcibly halted with a kill signal. + // Set this value longer than the expected cleanup time for your process. + // If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this + // value overrides the value provided by the pod spec. + // Value must be non-negative integer. The value zero indicates stop immediately via + // the kill signal (no opportunity to shut down). + // This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. + // Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. + // +optional + int64 terminationGracePeriodSeconds = 10; +} + +// HTTPGetAction describes an action based on HTTP Get requests. +message HTTPGetAction { + // Path to access on the HTTP server. + // +optional + string path = 1; + + // Name or number of the port to access on the container. + // Number must be in the range 1 to 65535. + // Name must be an IANA_SVC_NAME. + IntOrString port = 2 [(options.intorstring) = "true"]; + + // Host name to connect to, defaults to the pod IP. You probably want to set + // "Host" in httpHeaders instead. + // +optional + string host = 3; + + // Scheme to use for connecting to the host. + // Defaults to HTTP. + // +optional + string scheme = 4; + + // Custom headers to set in the request. HTTP allows repeated headers. + // +optional + repeated k8s.io.api.core.v1.HTTPHeader httpHeaders = 5; +} + +// TCPSocketAction describes an action based on opening a socket +message TCPSocketAction { + // Number or name of the port to access on the container. + // Number must be in the range 1 to 65535. + // Name must be an IANA_SVC_NAME. + IntOrString port = 1 [(options.intorstring) = "true"]; + + // Optional: Host name to connect to, defaults to the pod IP. + // +optional + string host = 2; +} + // Service describes the attributes that a user creates on a service. message Service { K8sObjectMeta metadata = 16; diff --git a/api/v1alpha1/common_deepcopy.gen.go b/api/v1alpha1/common_deepcopy.gen.go index bab6fe29f..5dda82cf6 100644 --- a/api/v1alpha1/common_deepcopy.gen.go +++ b/api/v1alpha1/common_deepcopy.gen.go @@ -152,6 +152,69 @@ func (in *PodDisruptionBudget) DeepCopyInterface() interface{} { return in.DeepCopy() } +// DeepCopyInto supports using Probe within kubernetes types, where deepcopy-gen is used. +func (in *Probe) DeepCopyInto(out *Probe) { + p := proto.Clone(in).(*Probe) + *out = *p +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Probe. Required by controller-gen. +func (in *Probe) DeepCopy() *Probe { + if in == nil { + return nil + } + out := new(Probe) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Probe. Required by controller-gen. +func (in *Probe) DeepCopyInterface() interface{} { + return in.DeepCopy() +} + +// DeepCopyInto supports using HTTPGetAction within kubernetes types, where deepcopy-gen is used. +func (in *HTTPGetAction) DeepCopyInto(out *HTTPGetAction) { + p := proto.Clone(in).(*HTTPGetAction) + *out = *p +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPGetAction. Required by controller-gen. +func (in *HTTPGetAction) DeepCopy() *HTTPGetAction { + if in == nil { + return nil + } + out := new(HTTPGetAction) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new HTTPGetAction. Required by controller-gen. +func (in *HTTPGetAction) DeepCopyInterface() interface{} { + return in.DeepCopy() +} + +// DeepCopyInto supports using TCPSocketAction within kubernetes types, where deepcopy-gen is used. +func (in *TCPSocketAction) DeepCopyInto(out *TCPSocketAction) { + p := proto.Clone(in).(*TCPSocketAction) + *out = *p +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPSocketAction. Required by controller-gen. +func (in *TCPSocketAction) DeepCopy() *TCPSocketAction { + if in == nil { + return nil + } + out := new(TCPSocketAction) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new TCPSocketAction. Required by controller-gen. +func (in *TCPSocketAction) DeepCopyInterface() interface{} { + return in.DeepCopy() +} + // DeepCopyInto supports using Service within kubernetes types, where deepcopy-gen is used. func (in *Service) DeepCopyInto(out *Service) { p := proto.Clone(in).(*Service) diff --git a/api/v1alpha1/common_json.gen.go b/api/v1alpha1/common_json.gen.go index cf5c94a86..36cdf1ac3 100644 --- a/api/v1alpha1/common_json.gen.go +++ b/api/v1alpha1/common_json.gen.go @@ -83,6 +83,39 @@ func (this *PodDisruptionBudget) UnmarshalJSON(b []byte) error { return CommonUnmarshaler.Unmarshal(bytes.NewReader(b), this) } +// MarshalJSON is a custom marshaler for Probe +func (this *Probe) MarshalJSON() ([]byte, error) { + str, err := CommonMarshaler.MarshalToString(this) + return []byte(str), err +} + +// UnmarshalJSON is a custom unmarshaler for Probe +func (this *Probe) UnmarshalJSON(b []byte) error { + return CommonUnmarshaler.Unmarshal(bytes.NewReader(b), this) +} + +// MarshalJSON is a custom marshaler for HTTPGetAction +func (this *HTTPGetAction) MarshalJSON() ([]byte, error) { + str, err := CommonMarshaler.MarshalToString(this) + return []byte(str), err +} + +// UnmarshalJSON is a custom unmarshaler for HTTPGetAction +func (this *HTTPGetAction) UnmarshalJSON(b []byte) error { + return CommonUnmarshaler.Unmarshal(bytes.NewReader(b), this) +} + +// MarshalJSON is a custom marshaler for TCPSocketAction +func (this *TCPSocketAction) MarshalJSON() ([]byte, error) { + str, err := CommonMarshaler.MarshalToString(this) + return []byte(str), err +} + +// UnmarshalJSON is a custom unmarshaler for TCPSocketAction +func (this *TCPSocketAction) UnmarshalJSON(b []byte) error { + return CommonUnmarshaler.Unmarshal(bytes.NewReader(b), this) +} + // MarshalJSON is a custom marshaler for Service func (this *Service) MarshalJSON() ([]byte, error) { str, err := CommonMarshaler.MarshalToString(this) diff --git a/api/v1alpha1/istiocontrolplane.gen.json b/api/v1alpha1/istiocontrolplane.gen.json index fca39ddc7..d560482e2 100644 --- a/api/v1alpha1/istiocontrolplane.gen.json +++ b/api/v1alpha1/istiocontrolplane.gen.json @@ -1950,10 +1950,10 @@ } }, "livenessProbe": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.Probe" + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.Probe" }, "readinessProbe": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.Probe" + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.Probe" }, "imagePullPolicy": { "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", @@ -2208,6 +2208,34 @@ } } }, + "istio_operator.v2.api.v1alpha1.HTTPGetAction": { + "description": "HTTPGetAction describes an action based on HTTP Get requests.", + "type": "object", + "properties": { + "path": { + "description": "Path to access on the HTTP server.", + "type": "string" + }, + "port": { + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.IntOrString" + }, + "host": { + "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead.", + "type": "string" + }, + "scheme": { + "description": "Scheme to use for connecting to the host. Defaults to HTTP.", + "type": "string" + }, + "httpHeaders": { + "description": "Custom headers to set in the request. HTTP allows repeated headers.", + "type": "array", + "items": { + "$ref": "#/components/schemas/k8s.io.api.core.v1.HTTPHeader" + } + } + } + }, "istio_operator.v2.api.v1alpha1.HTTPProxyEnvsConfiguration": { "type": "object", "properties": { @@ -2647,6 +2675,130 @@ } } }, + "istio_operator.v2.api.v1alpha1.Probe": { + "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", + "type": "object", + "properties": { + "timeoutSeconds": { + "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + "type": "integer", + "format": "int32" + }, + "terminationGracePeriodSeconds": { + "description": "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", + "type": "integer", + "format": "int64" + }, + "initialDelaySeconds": { + "description": "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + "type": "integer", + "format": "int32" + }, + "periodSeconds": { + "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", + "type": "integer", + "format": "int32" + }, + "successThreshold": { + "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", + "type": "integer", + "format": "int32" + }, + "failureThreshold": { + "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", + "type": "integer", + "format": "int32" + } + }, + "oneOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "exec" + ], + "properties": { + "exec": { + "$ref": "#/components/schemas/k8s.io.api.core.v1.ExecAction" + } + } + }, + { + "required": [ + "httpGet" + ], + "properties": { + "httpGet": { + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.HTTPGetAction" + } + } + }, + { + "required": [ + "tcpSocket" + ], + "properties": { + "tcpSocket": { + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.TCPSocketAction" + } + } + }, + { + "required": [ + "grpc" + ], + "properties": { + "grpc": { + "$ref": "#/components/schemas/k8s.io.api.core.v1.GRPCAction" + } + } + } + ] + } + }, + { + "required": [ + "exec" + ], + "properties": { + "exec": { + "$ref": "#/components/schemas/k8s.io.api.core.v1.ExecAction" + } + } + }, + { + "required": [ + "httpGet" + ], + "properties": { + "httpGet": { + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.HTTPGetAction" + } + } + }, + { + "required": [ + "tcpSocket" + ], + "properties": { + "tcpSocket": { + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.TCPSocketAction" + } + } + }, + { + "required": [ + "grpc" + ], + "properties": { + "grpc": { + "$ref": "#/components/schemas/k8s.io.api.core.v1.GRPCAction" + } + } + } + ] + }, "istio_operator.v2.api.v1alpha1.ProxyConfiguration": { "description": "ProxyConfiguration defines config options for Proxy", "type": "object", @@ -2969,6 +3121,19 @@ } } }, + "istio_operator.v2.api.v1alpha1.TCPSocketAction": { + "description": "TCPSocketAction describes an action based on opening a socket", + "type": "object", + "properties": { + "port": { + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.IntOrString" + }, + "host": { + "description": "Optional: Host name to connect to, defaults to the pod IP.", + "type": "string" + } + } + }, "istio_operator.v2.api.v1alpha1.TelemetryV2Configuration": { "type": "object", "properties": { @@ -4078,63 +4243,6 @@ } } }, - "k8s.io.api.core.v1.Probe": { - "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", - "type": "object", - "properties": { - "timeoutSeconds": { - "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - "type": "integer", - "format": "int32" - }, - "terminationGracePeriodSeconds": { - "description": "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - "type": "integer", - "format": "int64" - }, - "handler": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.ProbeHandler" - }, - "initialDelaySeconds": { - "description": "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - "type": "integer", - "format": "int32" - }, - "periodSeconds": { - "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - "type": "integer", - "format": "int32" - }, - "successThreshold": { - "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - "type": "integer", - "format": "int32" - }, - "failureThreshold": { - "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - "type": "integer", - "format": "int32" - } - } - }, - "k8s.io.api.core.v1.ProbeHandler": { - "description": "ProbeHandler defines a specific action that should be taken in a probe. One and only one of the fields must be specified.", - "type": "object", - "properties": { - "exec": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.ExecAction" - }, - "httpGet": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.HTTPGetAction" - }, - "tcpSocket": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.TCPSocketAction" - }, - "grpc": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.GRPCAction" - } - } - }, "k8s.io.api.core.v1.ProjectedVolumeSource": { "description": "Represents a projected volume source", "type": "object", diff --git a/api/v1alpha1/istiocontrolplane.pb.html b/api/v1alpha1/istiocontrolplane.pb.html index 1b2d27d70..0225ee140 100644 --- a/api/v1alpha1/istiocontrolplane.pb.html +++ b/api/v1alpha1/istiocontrolplane.pb.html @@ -1988,7 +1988,7 @@

BaseKubernetesResourceConfig

livenessProbeProbeProbe

Periodic probe of container liveness. Container will be restarted if the probe fails. @@ -2003,7 +2003,7 @@

BaseKubernetesResourceConfig

readinessProbeProbeProbe

Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. diff --git a/api/v1alpha1/istiomeshgateway.gen.json b/api/v1alpha1/istiomeshgateway.gen.json index e1ab52eb3..72d8b7904 100644 --- a/api/v1alpha1/istiomeshgateway.gen.json +++ b/api/v1alpha1/istiomeshgateway.gen.json @@ -34,10 +34,10 @@ } }, "livenessProbe": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.Probe" + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.Probe" }, "readinessProbe": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.Probe" + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.Probe" }, "imagePullPolicy": { "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", @@ -147,6 +147,34 @@ "egress" ] }, + "istio_operator.v2.api.v1alpha1.HTTPGetAction": { + "description": "HTTPGetAction describes an action based on HTTP Get requests.", + "type": "object", + "properties": { + "path": { + "description": "Path to access on the HTTP server.", + "type": "string" + }, + "port": { + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.IntOrString" + }, + "host": { + "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead.", + "type": "string" + }, + "scheme": { + "description": "Scheme to use for connecting to the host. Defaults to HTTP.", + "type": "string" + }, + "httpHeaders": { + "description": "Custom headers to set in the request. HTTP allows repeated headers.", + "type": "array", + "items": { + "$ref": "#/components/schemas/k8s.io.api.core.v1.HTTPHeader" + } + } + } + }, "istio_operator.v2.api.v1alpha1.IntOrString": { "description": "IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number. GOTYPE: *IntOrString", "oneOf": [ @@ -308,6 +336,130 @@ } } }, + "istio_operator.v2.api.v1alpha1.Probe": { + "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", + "type": "object", + "properties": { + "timeoutSeconds": { + "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + "type": "integer", + "format": "int32" + }, + "terminationGracePeriodSeconds": { + "description": "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", + "type": "integer", + "format": "int64" + }, + "initialDelaySeconds": { + "description": "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + "type": "integer", + "format": "int32" + }, + "periodSeconds": { + "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", + "type": "integer", + "format": "int32" + }, + "successThreshold": { + "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", + "type": "integer", + "format": "int32" + }, + "failureThreshold": { + "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", + "type": "integer", + "format": "int32" + } + }, + "oneOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "exec" + ], + "properties": { + "exec": { + "$ref": "#/components/schemas/k8s.io.api.core.v1.ExecAction" + } + } + }, + { + "required": [ + "httpGet" + ], + "properties": { + "httpGet": { + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.HTTPGetAction" + } + } + }, + { + "required": [ + "tcpSocket" + ], + "properties": { + "tcpSocket": { + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.TCPSocketAction" + } + } + }, + { + "required": [ + "grpc" + ], + "properties": { + "grpc": { + "$ref": "#/components/schemas/k8s.io.api.core.v1.GRPCAction" + } + } + } + ] + } + }, + { + "required": [ + "exec" + ], + "properties": { + "exec": { + "$ref": "#/components/schemas/k8s.io.api.core.v1.ExecAction" + } + } + }, + { + "required": [ + "httpGet" + ], + "properties": { + "httpGet": { + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.HTTPGetAction" + } + } + }, + { + "required": [ + "tcpSocket" + ], + "properties": { + "tcpSocket": { + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.TCPSocketAction" + } + } + }, + { + "required": [ + "grpc" + ], + "properties": { + "grpc": { + "$ref": "#/components/schemas/k8s.io.api.core.v1.GRPCAction" + } + } + } + ] + }, "istio_operator.v2.api.v1alpha1.Properties": { "type": "object", "properties": { @@ -479,6 +631,19 @@ } } }, + "istio_operator.v2.api.v1alpha1.TCPSocketAction": { + "description": "TCPSocketAction describes an action based on opening a socket", + "type": "object", + "properties": { + "port": { + "$ref": "#/components/schemas/istio_operator.v2.api.v1alpha1.IntOrString" + }, + "host": { + "description": "Optional: Host name to connect to, defaults to the pod IP.", + "type": "string" + } + } + }, "k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource": { "description": "Represents a Persistent Disk resource in AWS. An AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.", "type": "object", @@ -1009,34 +1174,6 @@ } } }, - "k8s.io.api.core.v1.HTTPGetAction": { - "description": "HTTPGetAction describes an action based on HTTP Get requests.", - "type": "object", - "properties": { - "path": { - "description": "Path to access on the HTTP server.", - "type": "string" - }, - "port": { - "$ref": "#/components/schemas/k8s.io.apimachinery.pkg.util.intstr.IntOrString" - }, - "host": { - "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead.", - "type": "string" - }, - "scheme": { - "description": "Scheme to use for connecting to the host. Defaults to HTTP.", - "type": "string" - }, - "httpHeaders": { - "description": "Custom headers to set in the request. HTTP allows repeated headers.", - "type": "array", - "items": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.HTTPHeader" - } - } - } - }, "k8s.io.api.core.v1.HTTPHeader": { "description": "HTTPHeader describes a custom header to be used in HTTP probes", "type": "object", @@ -1474,63 +1611,6 @@ } } }, - "k8s.io.api.core.v1.Probe": { - "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", - "type": "object", - "properties": { - "timeoutSeconds": { - "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - "type": "integer", - "format": "int32" - }, - "terminationGracePeriodSeconds": { - "description": "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - "type": "integer", - "format": "int64" - }, - "handler": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.ProbeHandler" - }, - "initialDelaySeconds": { - "description": "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - "type": "integer", - "format": "int32" - }, - "periodSeconds": { - "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - "type": "integer", - "format": "int32" - }, - "successThreshold": { - "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - "type": "integer", - "format": "int32" - }, - "failureThreshold": { - "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - "type": "integer", - "format": "int32" - } - } - }, - "k8s.io.api.core.v1.ProbeHandler": { - "description": "ProbeHandler defines a specific action that should be taken in a probe. One and only one of the fields must be specified.", - "type": "object", - "properties": { - "exec": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.ExecAction" - }, - "httpGet": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.HTTPGetAction" - }, - "tcpSocket": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.TCPSocketAction" - }, - "grpc": { - "$ref": "#/components/schemas/k8s.io.api.core.v1.GRPCAction" - } - } - }, "k8s.io.api.core.v1.ProjectedVolumeSource": { "description": "Represents a projected volume source", "type": "object", @@ -1915,19 +1995,6 @@ } } }, - "k8s.io.api.core.v1.TCPSocketAction": { - "description": "TCPSocketAction describes an action based on opening a socket", - "type": "object", - "properties": { - "port": { - "$ref": "#/components/schemas/k8s.io.apimachinery.pkg.util.intstr.IntOrString" - }, - "host": { - "description": "Optional: Host name to connect to, defaults to the pod IP.", - "type": "string" - } - } - }, "k8s.io.api.core.v1.Toleration": { "description": "The pod this Toleration is attached to tolerates any taint that matches the triple \u003ckey,value,effect\u003e using the matching operator \u003coperator\u003e.", "type": "object", @@ -2430,23 +2497,6 @@ "format": "int32" } } - }, - "k8s.io.apimachinery.pkg.util.intstr.IntOrString": { - "description": "IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number. TODO: Rename to Int32OrString", - "type": "object", - "properties": { - "type": { - "type": "integer", - "format": "int64" - }, - "intVal": { - "type": "integer", - "format": "int32" - }, - "strVal": { - "type": "string" - } - } } } } diff --git a/api/v1alpha1/istiomeshgateway.pb.html b/api/v1alpha1/istiomeshgateway.pb.html index 17cb05c59..db699ed8a 100644 --- a/api/v1alpha1/istiomeshgateway.pb.html +++ b/api/v1alpha1/istiomeshgateway.pb.html @@ -394,7 +394,7 @@

BaseKubernetesResourceConfig

livenessProbeProbeProbe

Periodic probe of container liveness. Container will be restarted if the probe fails. @@ -409,7 +409,7 @@

BaseKubernetesResourceConfig

readinessProbeProbeProbe

Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go index 48a002bfd..0fddf0ca8 100644 --- a/api/v1alpha1/zz_generated.deepcopy.go +++ b/api/v1alpha1/zz_generated.deepcopy.go @@ -22,6 +22,7 @@ limitations under the License. package v1alpha1 import ( + "k8s.io/api/core/v1" runtime "k8s.io/apimachinery/pkg/runtime" ) @@ -310,6 +311,84 @@ func (in *PeerIstioControlPlaneList) DeepCopyObject() runtime.Object { return nil } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Probe_Exec) DeepCopyInto(out *Probe_Exec) { + *out = *in + if in.Exec != nil { + in, out := &in.Exec, &out.Exec + *out = new(v1.ExecAction) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Probe_Exec. +func (in *Probe_Exec) DeepCopy() *Probe_Exec { + if in == nil { + return nil + } + out := new(Probe_Exec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Probe_Grpc) DeepCopyInto(out *Probe_Grpc) { + *out = *in + if in.Grpc != nil { + in, out := &in.Grpc, &out.Grpc + *out = new(v1.GRPCAction) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Probe_Grpc. +func (in *Probe_Grpc) DeepCopy() *Probe_Grpc { + if in == nil { + return nil + } + out := new(Probe_Grpc) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Probe_HttpGet) DeepCopyInto(out *Probe_HttpGet) { + *out = *in + if in.HttpGet != nil { + in, out := &in.HttpGet, &out.HttpGet + *out = (*in).DeepCopy() + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Probe_HttpGet. +func (in *Probe_HttpGet) DeepCopy() *Probe_HttpGet { + if in == nil { + return nil + } + out := new(Probe_HttpGet) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Probe_TcpSocket) DeepCopyInto(out *Probe_TcpSocket) { + *out = *in + if in.TcpSocket != nil { + in, out := &in.TcpSocket, &out.TcpSocket + *out = (*in).DeepCopy() + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Probe_TcpSocket. +func (in *Probe_TcpSocket) DeepCopy() *Probe_TcpSocket { + if in == nil { + return nil + } + out := new(Probe_TcpSocket) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in SortableIstioControlPlaneItems) DeepCopyInto(out *SortableIstioControlPlaneItems) { { diff --git a/config/crd/bases/istio-operator-crds.gen.yaml b/config/crd/bases/istio-operator-crds.gen.yaml index 67b23c5a6..fed716285 100644 --- a/config/crd/bases/istio-operator-crds.gen.yaml +++ b/config/crd/bases/istio-operator-crds.gen.yaml @@ -485,61 +485,67 @@ spec: type: object type: array livenessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -550,6 +556,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -658,61 +674,67 @@ spec: priorityClassName: type: string readinessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -723,6 +745,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -3203,61 +3235,67 @@ spec: type: object type: array livenessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -3268,6 +3306,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -3376,61 +3424,67 @@ spec: priorityClassName: type: string readinessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -3441,6 +3495,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -5015,61 +5079,67 @@ spec: type: object type: array livenessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -5080,6 +5150,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -5188,79 +5268,95 @@ spec: priorityClassName: type: string readinessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + port: + format: int32 + type: integer + service: + default: "" + type: string type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - replicas: + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + replicas: properties: count: minimum: 0 @@ -6746,61 +6842,67 @@ spec: type: object type: array livenessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -6811,6 +6913,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -6919,61 +7031,67 @@ spec: priorityClassName: type: string readinessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -6984,6 +7102,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -9635,61 +9763,67 @@ spec: type: object type: array livenessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -9700,6 +9834,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -9808,61 +9952,67 @@ spec: priorityClassName: type: string readinessProbe: - properties: - failureThreshold: - format: int32 - type: integer - handler: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -9873,6 +10023,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -12353,61 +12513,67 @@ spec: type: object type: array livenessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -12418,6 +12584,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -12526,61 +12702,67 @@ spec: priorityClassName: type: string readinessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -12591,6 +12773,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -14165,61 +14357,67 @@ spec: type: object type: array livenessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -14230,6 +14428,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -14338,61 +14546,67 @@ spec: priorityClassName: type: string readinessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -14403,6 +14617,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -15896,61 +16120,67 @@ spec: type: object type: array livenessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -15961,6 +16191,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -16069,61 +16309,67 @@ spec: priorityClassName: type: string readinessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -16134,6 +16380,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -19926,61 +20182,67 @@ spec: type: object type: array livenessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -19991,6 +20253,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -20099,61 +20371,67 @@ spec: priorityClassName: type: string readinessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -20164,6 +20442,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer diff --git a/deploy/charts/istio-operator/crds/istio-operator-crds.gen.yaml b/deploy/charts/istio-operator/crds/istio-operator-crds.gen.yaml index 67b23c5a6..fed716285 100644 --- a/deploy/charts/istio-operator/crds/istio-operator-crds.gen.yaml +++ b/deploy/charts/istio-operator/crds/istio-operator-crds.gen.yaml @@ -485,61 +485,67 @@ spec: type: object type: array livenessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -550,6 +556,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -658,61 +674,67 @@ spec: priorityClassName: type: string readinessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -723,6 +745,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -3203,61 +3235,67 @@ spec: type: object type: array livenessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -3268,6 +3306,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -3376,61 +3424,67 @@ spec: priorityClassName: type: string readinessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -3441,6 +3495,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -5015,61 +5079,67 @@ spec: type: object type: array livenessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -5080,6 +5150,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -5188,79 +5268,95 @@ spec: priorityClassName: type: string readinessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + port: + format: int32 + type: integer + service: + default: "" + type: string type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - replicas: + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + replicas: properties: count: minimum: 0 @@ -6746,61 +6842,67 @@ spec: type: object type: array livenessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -6811,6 +6913,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -6919,61 +7031,67 @@ spec: priorityClassName: type: string readinessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -6984,6 +7102,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -9635,61 +9763,67 @@ spec: type: object type: array livenessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -9700,6 +9834,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -9808,61 +9952,67 @@ spec: priorityClassName: type: string readinessProbe: - properties: - failureThreshold: - format: int32 - type: integer - handler: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -9873,6 +10023,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -12353,61 +12513,67 @@ spec: type: object type: array livenessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -12418,6 +12584,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -12526,61 +12702,67 @@ spec: priorityClassName: type: string readinessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -12591,6 +12773,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -14165,61 +14357,67 @@ spec: type: object type: array livenessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -14230,6 +14428,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -14338,61 +14546,67 @@ spec: priorityClassName: type: string readinessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -14403,6 +14617,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -15896,61 +16120,67 @@ spec: type: object type: array livenessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -15961,6 +16191,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -16069,61 +16309,67 @@ spec: priorityClassName: type: string readinessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -16134,6 +16380,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -19926,61 +20182,67 @@ spec: type: object type: array livenessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -19991,6 +20253,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer @@ -20099,61 +20371,67 @@ spec: priorityClassName: type: string readinessProbe: + oneOf: + - not: + anyOf: + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc + - required: + - exec + - required: + - httpGet + - required: + - tcpSocket + - required: + - grpc properties: + exec: + properties: + command: + items: + type: string + type: array + type: object failureThreshold: format: int32 type: integer - handler: + grpc: properties: - exec: - properties: - command: - items: + port: + format: int32 + type: integer + service: + default: "" + type: string + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: type: string - type: array - type: object - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object + value: + type: string + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string type: object initialDelaySeconds: format: int32 @@ -20164,6 +20442,16 @@ spec: successThreshold: format: int32 type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object terminationGracePeriodSeconds: format: int64 type: integer diff --git a/internal/components/sidecarinjector/testdata/icp-test-cr.yaml b/internal/components/sidecarinjector/testdata/icp-test-cr.yaml index a31573b36..31ce04fb4 100644 --- a/internal/components/sidecarinjector/testdata/icp-test-cr.yaml +++ b/internal/components/sidecarinjector/testdata/icp-test-cr.yaml @@ -83,13 +83,12 @@ spec: replicas: targetCPUUtilizationPercentage: 80 readinessProbe: - handler: - exec: - command: - - /usr/local/bin/sidecar-injector - - probe - - --probe-path=/tmp/health - - --interval=4s + exec: + command: + - /usr/local/bin/sidecar-injector + - probe + - --probe-path=/tmp/health + - --interval=4s failureThreshold: 3 initialDelaySeconds: 4 periodSeconds: 4