| // Copyright Istio Authors |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| // Package apimirror contains copies of Kubernetes APIs. This allows json serialization, without worrying about |
| // importing the massive 15mb+ Kubernetes API libraries. |
| // This is intended for import only by istio-agent. Any other binaries (Istiod) should likely import the |
| // upstream Kubernetes API instead. |
| package apimirror |
| |
| import ( |
| "k8s.io/apimachinery/pkg/util/intstr" |
| ) |
| |
| // HTTPGetAction describes an action based on HTTP Get requests. |
| type HTTPGetAction struct { |
| // Path to access on the HTTP server. |
| // +optional |
| Path string `json:"path,omitempty" protobuf:"bytes,1,opt,name=path"` |
| // 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 intstr.IntOrString `json:"port" protobuf:"bytes,2,opt,name=port"` |
| // Host name to connect to, defaults to the pod IP. You probably want to set |
| // "Host" in httpHeaders instead. |
| // +optional |
| Host string `json:"host,omitempty" protobuf:"bytes,3,opt,name=host"` |
| // Scheme to use for connecting to the host. |
| // Defaults to HTTP. |
| // +optional |
| Scheme URIScheme `json:"scheme,omitempty" protobuf:"bytes,4,opt,name=scheme,casttype=URIScheme"` |
| // Custom headers to set in the request. HTTP allows repeated headers. |
| // +optional |
| HTTPHeaders []HTTPHeader `json:"httpHeaders,omitempty" protobuf:"bytes,5,rep,name=httpHeaders"` |
| } |
| |
| // URIScheme identifies the scheme used for connection to a host for Get actions |
| type URIScheme string |
| |
| const ( |
| // URISchemeHTTP means that the scheme used will be http:// |
| URISchemeHTTP URIScheme = "HTTP" |
| // URISchemeHTTPS means that the scheme used will be https:// |
| URISchemeHTTPS URIScheme = "HTTPS" |
| ) |
| |
| // HTTPHeader describes a custom header to be used in HTTP probes |
| type HTTPHeader struct { |
| // The header field name |
| Name string `json:"name" protobuf:"bytes,1,opt,name=name"` |
| // The header field value |
| Value string `json:"value" protobuf:"bytes,2,opt,name=value"` |
| } |
| |
| // TCPSocketAction describes an action based on opening a socket |
| type TCPSocketAction struct { |
| // 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 intstr.IntOrString `json:"port" protobuf:"bytes,1,opt,name=port"` |
| // Optional: Host name to connect to, defaults to the pod IP. |
| // +optional |
| Host string `json:"host,omitempty" protobuf:"bytes,2,opt,name=host"` |
| } |
| |
| // GRPCAction describes an action based on GRPC health check |
| type GRPCAction struct { |
| // Port number of the gRPC service. Number must be in the range 1 to 65535. |
| Port int32 `json:"port" protobuf:"bytes,1,opt,name=port"` |
| |
| // 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="" |
| Service *string `json:"service" protobuf:"bytes,2,opt,name=service"` |
| } |