2020-02-17 12:15:57 +00:00
|
|
|
/*
|
|
|
|
Copyright The Kubernetes 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.
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
// This file was autogenerated by go-to-protobuf. Do not edit it manually!
|
|
|
|
|
2020-12-17 12:28:29 +00:00
|
|
|
syntax = "proto2";
|
2020-02-17 12:15:57 +00:00
|
|
|
|
2021-06-25 04:59:51 +00:00
|
|
|
package k8s.io.api.discovery.v1;
|
2020-02-17 12:15:57 +00:00
|
|
|
|
|
|
|
import "k8s.io/api/core/v1/generated.proto";
|
|
|
|
import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto";
|
|
|
|
import "k8s.io/apimachinery/pkg/runtime/generated.proto";
|
|
|
|
import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto";
|
|
|
|
|
|
|
|
// Package-wide variables from generator "generated".
|
2022-05-05 02:47:06 +00:00
|
|
|
option go_package = "k8s.io/api/discovery/v1";
|
2020-02-17 12:15:57 +00:00
|
|
|
|
|
|
|
// Endpoint represents a single logical "backend" implementing a service.
|
|
|
|
message Endpoint {
|
|
|
|
// addresses of this endpoint. The contents of this field are interpreted
|
|
|
|
// according to the corresponding EndpointSlice addressType field. Consumers
|
|
|
|
// must handle different types of addresses in the context of their own
|
|
|
|
// capabilities. This must contain at least one address but no more than
|
2022-05-05 02:47:06 +00:00
|
|
|
// 100. These are all assumed to be fungible and clients may choose to only
|
|
|
|
// use the first element. Refer to: https://issue.k8s.io/106267
|
2020-02-17 12:15:57 +00:00
|
|
|
// +listType=set
|
|
|
|
repeated string addresses = 1;
|
|
|
|
|
|
|
|
// conditions contains information about the current status of the endpoint.
|
|
|
|
optional EndpointConditions conditions = 2;
|
|
|
|
|
|
|
|
// hostname of this endpoint. This field may be used by consumers of
|
|
|
|
// endpoints to distinguish endpoints from each other (e.g. in DNS names).
|
|
|
|
// Multiple endpoints which use the same hostname should be considered
|
2021-06-25 04:59:51 +00:00
|
|
|
// fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS
|
|
|
|
// Label (RFC 1123) validation.
|
2020-02-17 12:15:57 +00:00
|
|
|
// +optional
|
|
|
|
optional string hostname = 3;
|
|
|
|
|
|
|
|
// targetRef is a reference to a Kubernetes object that represents this
|
|
|
|
// endpoint.
|
|
|
|
// +optional
|
|
|
|
optional k8s.io.api.core.v1.ObjectReference targetRef = 4;
|
|
|
|
|
2021-06-25 04:59:51 +00:00
|
|
|
// deprecatedTopology contains topology information part of the v1beta1
|
|
|
|
// API. This field is deprecated, and will be removed when the v1beta1
|
|
|
|
// API is removed (no sooner than kubernetes v1.24). While this field can
|
|
|
|
// hold values, it is not writable through the v1 API, and any attempts to
|
|
|
|
// write to it will be silently ignored. Topology information can be found
|
|
|
|
// in the zone and nodeName fields instead.
|
2020-02-17 12:15:57 +00:00
|
|
|
// +optional
|
2021-06-25 04:59:51 +00:00
|
|
|
map<string, string> deprecatedTopology = 5;
|
2020-12-17 12:28:29 +00:00
|
|
|
|
|
|
|
// nodeName represents the name of the Node hosting this endpoint. This can
|
2022-08-24 02:24:25 +00:00
|
|
|
// be used to determine endpoints local to a Node.
|
2020-12-17 12:28:29 +00:00
|
|
|
// +optional
|
|
|
|
optional string nodeName = 6;
|
2021-06-25 04:59:51 +00:00
|
|
|
|
|
|
|
// zone is the name of the Zone this endpoint exists in.
|
|
|
|
// +optional
|
|
|
|
optional string zone = 7;
|
|
|
|
|
|
|
|
// hints contains information associated with how an endpoint should be
|
|
|
|
// consumed.
|
|
|
|
// +optional
|
|
|
|
optional EndpointHints hints = 8;
|
2020-02-17 12:15:57 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// EndpointConditions represents the current condition of an endpoint.
|
|
|
|
message EndpointConditions {
|
|
|
|
// ready indicates that this endpoint is prepared to receive traffic,
|
|
|
|
// according to whatever system is managing the endpoint. A nil value
|
|
|
|
// indicates an unknown state. In most cases consumers should interpret this
|
2020-12-17 12:28:29 +00:00
|
|
|
// unknown state as ready. For compatibility reasons, ready should never be
|
2023-06-01 16:58:10 +00:00
|
|
|
// "true" for terminating endpoints, except when the normal readiness
|
|
|
|
// behavior is being explicitly overridden, for example when the associated
|
|
|
|
// Service has set the publishNotReadyAddresses flag.
|
2020-02-17 12:15:57 +00:00
|
|
|
// +optional
|
|
|
|
optional bool ready = 1;
|
2020-12-17 12:28:29 +00:00
|
|
|
|
|
|
|
// serving is identical to ready except that it is set regardless of the
|
|
|
|
// terminating state of endpoints. This condition should be set to true for
|
|
|
|
// a ready endpoint that is terminating. If nil, consumers should defer to
|
2023-02-01 17:06:36 +00:00
|
|
|
// the ready condition.
|
2020-12-17 12:28:29 +00:00
|
|
|
// +optional
|
|
|
|
optional bool serving = 2;
|
|
|
|
|
|
|
|
// terminating indicates that this endpoint is terminating. A nil value
|
|
|
|
// indicates an unknown state. Consumers should interpret this unknown state
|
2023-02-01 17:06:36 +00:00
|
|
|
// to mean that the endpoint is not terminating.
|
2020-12-17 12:28:29 +00:00
|
|
|
// +optional
|
|
|
|
optional bool terminating = 3;
|
2020-02-17 12:15:57 +00:00
|
|
|
}
|
|
|
|
|
2021-06-25 04:59:51 +00:00
|
|
|
// EndpointHints provides hints describing how an endpoint should be consumed.
|
|
|
|
message EndpointHints {
|
|
|
|
// forZones indicates the zone(s) this endpoint should be consumed by to
|
|
|
|
// enable topology aware routing.
|
|
|
|
// +listType=atomic
|
|
|
|
repeated ForZone forZones = 1;
|
|
|
|
}
|
|
|
|
|
2020-02-17 12:15:57 +00:00
|
|
|
// EndpointPort represents a Port used by an EndpointSlice
|
2021-08-09 07:19:24 +00:00
|
|
|
// +structType=atomic
|
2020-02-17 12:15:57 +00:00
|
|
|
message EndpointPort {
|
2023-06-01 16:58:10 +00:00
|
|
|
// name represents the name of this port. All ports in an EndpointSlice must have a unique name.
|
|
|
|
// If the EndpointSlice is dervied from a Kubernetes service, this corresponds to the Service.ports[].name.
|
2020-02-17 12:15:57 +00:00
|
|
|
// Name must either be an empty string or pass DNS_LABEL validation:
|
|
|
|
// * must be no more than 63 characters long.
|
|
|
|
// * must consist of lower case alphanumeric characters or '-'.
|
|
|
|
// * must start and end with an alphanumeric character.
|
|
|
|
// Default is empty string.
|
|
|
|
optional string name = 1;
|
|
|
|
|
2023-06-01 16:58:10 +00:00
|
|
|
// protocol represents the IP protocol for this port.
|
2020-02-17 12:15:57 +00:00
|
|
|
// Must be UDP, TCP, or SCTP.
|
|
|
|
// Default is TCP.
|
|
|
|
optional string protocol = 2;
|
|
|
|
|
2023-06-01 16:58:10 +00:00
|
|
|
// port represents the port number of the endpoint.
|
2020-02-17 12:15:57 +00:00
|
|
|
// If this is not specified, ports are not restricted and must be
|
|
|
|
// interpreted in the context of the specific consumer.
|
|
|
|
optional int32 port = 3;
|
|
|
|
|
|
|
|
// The application protocol for this port.
|
2023-06-01 16:58:10 +00:00
|
|
|
// This is used as a hint for implementations to offer richer behavior for protocols that they understand.
|
2020-02-17 12:15:57 +00:00
|
|
|
// This field follows standard Kubernetes label syntax.
|
2023-06-01 16:58:10 +00:00
|
|
|
// Valid values are either:
|
|
|
|
//
|
|
|
|
// * Un-prefixed protocol names - reserved for IANA standard service names (as per
|
2022-05-05 02:47:06 +00:00
|
|
|
// RFC-6335 and https://www.iana.org/assignments/service-names).
|
2023-06-01 16:58:10 +00:00
|
|
|
//
|
|
|
|
// * Kubernetes-defined prefixed names:
|
|
|
|
// * 'kubernetes.io/h2c' - HTTP/2 over cleartext as described in https://www.rfc-editor.org/rfc/rfc7540
|
|
|
|
//
|
|
|
|
// * Other protocols should use implementation-defined prefixed names such as
|
2021-06-25 04:59:51 +00:00
|
|
|
// mycompany.com/my-custom-protocol.
|
|
|
|
// +optional
|
2020-02-17 12:15:57 +00:00
|
|
|
optional string appProtocol = 4;
|
|
|
|
}
|
|
|
|
|
|
|
|
// EndpointSlice represents a subset of the endpoints that implement a service.
|
|
|
|
// For a given service there may be multiple EndpointSlice objects, selected by
|
|
|
|
// labels, which must be joined to produce the full set of endpoints.
|
|
|
|
message EndpointSlice {
|
|
|
|
// Standard object's metadata.
|
|
|
|
// +optional
|
|
|
|
optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
|
|
|
|
|
|
|
|
// addressType specifies the type of address carried by this EndpointSlice.
|
|
|
|
// All addresses in this slice must be the same type. This field is
|
|
|
|
// immutable after creation. The following address types are currently
|
|
|
|
// supported:
|
|
|
|
// * IPv4: Represents an IPv4 Address.
|
|
|
|
// * IPv6: Represents an IPv6 Address.
|
|
|
|
// * FQDN: Represents a Fully Qualified Domain Name.
|
|
|
|
optional string addressType = 4;
|
|
|
|
|
|
|
|
// endpoints is a list of unique endpoints in this slice. Each slice may
|
|
|
|
// include a maximum of 1000 endpoints.
|
|
|
|
// +listType=atomic
|
|
|
|
repeated Endpoint endpoints = 2;
|
|
|
|
|
|
|
|
// ports specifies the list of network ports exposed by each endpoint in
|
|
|
|
// this slice. Each port must have a unique name. When ports is empty, it
|
|
|
|
// indicates that there are no defined ports. When a port is defined with a
|
|
|
|
// nil port value, it indicates "all ports". Each slice may include a
|
|
|
|
// maximum of 100 ports.
|
|
|
|
// +optional
|
|
|
|
// +listType=atomic
|
|
|
|
repeated EndpointPort ports = 3;
|
|
|
|
}
|
|
|
|
|
|
|
|
// EndpointSliceList represents a list of endpoint slices
|
|
|
|
message EndpointSliceList {
|
|
|
|
// Standard list metadata.
|
|
|
|
// +optional
|
|
|
|
optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
|
|
|
|
|
2023-06-01 16:58:10 +00:00
|
|
|
// items is the list of endpoint slices
|
2020-02-17 12:15:57 +00:00
|
|
|
repeated EndpointSlice items = 2;
|
|
|
|
}
|
|
|
|
|
2021-06-25 04:59:51 +00:00
|
|
|
// ForZone provides information about which zones should consume this endpoint.
|
|
|
|
message ForZone {
|
|
|
|
// name represents the name of the zone.
|
|
|
|
optional string name = 1;
|
|
|
|
}
|
|
|
|
|