vendor: update kubernetes v1.19.0-rc.4
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
968d44d1bc
commit
ecbdffc9c5
12
vendor.conf
12
vendor.conf
@ -77,12 +77,12 @@ golang.org/x/oauth2 858c2ad4c8b6c5d10852cb89079f
|
|||||||
golang.org/x/time 555d28b269f0569763d25dbe1a237ae74c6bcc82
|
golang.org/x/time 555d28b269f0569763d25dbe1a237ae74c6bcc82
|
||||||
gopkg.in/inf.v0 v0.9.1
|
gopkg.in/inf.v0 v0.9.1
|
||||||
gopkg.in/yaml.v2 v2.2.8
|
gopkg.in/yaml.v2 v2.2.8
|
||||||
k8s.io/api v0.19.0-beta.2
|
k8s.io/api v0.19.0-rc.4
|
||||||
k8s.io/apiserver v0.19.0-beta.2
|
k8s.io/apiserver v0.19.0-rc.4
|
||||||
k8s.io/apimachinery v0.19.0-beta.2
|
k8s.io/apimachinery v0.19.0-rc.4
|
||||||
k8s.io/client-go v0.19.0-beta.2
|
k8s.io/client-go v0.19.0-rc.4
|
||||||
k8s.io/component-base v0.19.0-beta.2
|
k8s.io/component-base v0.19.0-rc.4
|
||||||
k8s.io/cri-api v0.19.0-beta.2
|
k8s.io/cri-api v0.19.0-rc.4
|
||||||
k8s.io/klog/v2 v2.2.0
|
k8s.io/klog/v2 v2.2.0
|
||||||
k8s.io/utils 2df71ebbae66f39338aed4cd0bb82d2212ee33cc
|
k8s.io/utils 2df71ebbae66f39338aed4cd0bb82d2212ee33cc
|
||||||
sigs.k8s.io/structured-merge-diff/v3 v3.0.0
|
sigs.k8s.io/structured-merge-diff/v3 v3.0.0
|
||||||
|
11
vendor/k8s.io/api/core/v1/annotation_key_constants.go
generated
vendored
11
vendor/k8s.io/api/core/v1/annotation_key_constants.go
generated
vendored
@ -39,15 +39,24 @@ const (
|
|||||||
|
|
||||||
// SeccompPodAnnotationKey represents the key of a seccomp profile applied
|
// SeccompPodAnnotationKey represents the key of a seccomp profile applied
|
||||||
// to all containers of a pod.
|
// to all containers of a pod.
|
||||||
|
// Deprecated: set a pod security context `seccompProfile` field.
|
||||||
SeccompPodAnnotationKey string = "seccomp.security.alpha.kubernetes.io/pod"
|
SeccompPodAnnotationKey string = "seccomp.security.alpha.kubernetes.io/pod"
|
||||||
|
|
||||||
// SeccompContainerAnnotationKeyPrefix represents the key of a seccomp profile applied
|
// SeccompContainerAnnotationKeyPrefix represents the key of a seccomp profile applied
|
||||||
// to one container of a pod.
|
// to one container of a pod.
|
||||||
|
// Deprecated: set a container security context `seccompProfile` field.
|
||||||
SeccompContainerAnnotationKeyPrefix string = "container.seccomp.security.alpha.kubernetes.io/"
|
SeccompContainerAnnotationKeyPrefix string = "container.seccomp.security.alpha.kubernetes.io/"
|
||||||
|
|
||||||
// SeccompProfileRuntimeDefault represents the default seccomp profile used by container runtime.
|
// SeccompProfileRuntimeDefault represents the default seccomp profile used by container runtime.
|
||||||
|
// Deprecated: set a pod or container security context `seccompProfile` of type "RuntimeDefault" instead.
|
||||||
SeccompProfileRuntimeDefault string = "runtime/default"
|
SeccompProfileRuntimeDefault string = "runtime/default"
|
||||||
|
|
||||||
|
// SeccompProfileNameUnconfined is the unconfined seccomp profile.
|
||||||
|
SeccompProfileNameUnconfined string = "unconfined"
|
||||||
|
|
||||||
|
// SeccompLocalhostProfileNamePrefix is the prefix for specifying profiles loaded from the node's disk.
|
||||||
|
SeccompLocalhostProfileNamePrefix = "localhost/"
|
||||||
|
|
||||||
// AppArmorBetaContainerAnnotationKeyPrefix is the prefix to an annotation key specifying a container's apparmor profile.
|
// AppArmorBetaContainerAnnotationKeyPrefix is the prefix to an annotation key specifying a container's apparmor profile.
|
||||||
AppArmorBetaContainerAnnotationKeyPrefix = "container.apparmor.security.beta.kubernetes.io/"
|
AppArmorBetaContainerAnnotationKeyPrefix = "container.apparmor.security.beta.kubernetes.io/"
|
||||||
// AppArmorBetaDefaultProfileAnnotatoinKey is the annotation key specifying the default AppArmor profile.
|
// AppArmorBetaDefaultProfileAnnotatoinKey is the annotation key specifying the default AppArmor profile.
|
||||||
@ -65,7 +74,7 @@ const (
|
|||||||
AppArmorBetaProfileNameUnconfined = "unconfined"
|
AppArmorBetaProfileNameUnconfined = "unconfined"
|
||||||
|
|
||||||
// DeprecatedSeccompProfileDockerDefault represents the default seccomp profile used by docker.
|
// DeprecatedSeccompProfileDockerDefault represents the default seccomp profile used by docker.
|
||||||
// This is now deprecated and should be replaced by SeccompProfileRuntimeDefault.
|
// Deprecated: set a pod or container security context `seccompProfile` of type "RuntimeDefault" instead.
|
||||||
DeprecatedSeccompProfileDockerDefault string = "docker/default"
|
DeprecatedSeccompProfileDockerDefault string = "docker/default"
|
||||||
|
|
||||||
// PreferAvoidPodsAnnotationKey represents the key of preferAvoidPods data (json serialized)
|
// PreferAvoidPodsAnnotationKey represents the key of preferAvoidPods data (json serialized)
|
||||||
|
2863
vendor/k8s.io/api/core/v1/generated.pb.go
generated
vendored
2863
vendor/k8s.io/api/core/v1/generated.pb.go
generated
vendored
File diff suppressed because it is too large
Load Diff
157
vendor/k8s.io/api/core/v1/generated.proto
generated
vendored
157
vendor/k8s.io/api/core/v1/generated.proto
generated
vendored
@ -424,6 +424,7 @@ message ComponentCondition {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ComponentStatus (and ComponentStatusList) holds the cluster validation info.
|
// ComponentStatus (and ComponentStatusList) holds the cluster validation info.
|
||||||
|
// Deprecated: This API is deprecated in v1.19+
|
||||||
message ComponentStatus {
|
message ComponentStatus {
|
||||||
// Standard object's metadata.
|
// Standard object's metadata.
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
||||||
@ -438,6 +439,7 @@ message ComponentStatus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Status of all the conditions for the component as a list of ComponentStatus objects.
|
// Status of all the conditions for the component as a list of ComponentStatus objects.
|
||||||
|
// Deprecated: This API is deprecated in v1.19+
|
||||||
message ComponentStatusList {
|
message ComponentStatusList {
|
||||||
// Standard list metadata.
|
// Standard list metadata.
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
||||||
@ -1371,6 +1373,37 @@ message EphemeralContainers {
|
|||||||
repeated EphemeralContainer ephemeralContainers = 2;
|
repeated EphemeralContainer ephemeralContainers = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Represents an ephemeral volume that is handled by a normal storage driver.
|
||||||
|
message EphemeralVolumeSource {
|
||||||
|
// Will be used to create a stand-alone PVC to provision the volume.
|
||||||
|
// The pod in which this EphemeralVolumeSource is embedded will be the
|
||||||
|
// owner of the PVC, i.e. the PVC will be deleted together with the
|
||||||
|
// pod. The name of the PVC will be `<pod name>-<volume name>` where
|
||||||
|
// `<volume name>` is the name from the `PodSpec.Volumes` array
|
||||||
|
// entry. Pod validation will reject the pod if the concatenated name
|
||||||
|
// is not valid for a PVC (for example, too long).
|
||||||
|
//
|
||||||
|
// An existing PVC with that name that is not owned by the pod
|
||||||
|
// will *not* be used for the pod to avoid using an unrelated
|
||||||
|
// volume by mistake. Starting the pod is then blocked until
|
||||||
|
// the unrelated PVC is removed. If such a pre-created PVC is
|
||||||
|
// meant to be used by the pod, the PVC has to updated with an
|
||||||
|
// owner reference to the pod once the pod exists. Normally
|
||||||
|
// this should not be necessary, but it may be useful when
|
||||||
|
// manually reconstructing a broken cluster.
|
||||||
|
//
|
||||||
|
// This field is read-only and no changes will be made by Kubernetes
|
||||||
|
// to the PVC after it has been created.
|
||||||
|
//
|
||||||
|
// Required, must not be nil.
|
||||||
|
optional PersistentVolumeClaimTemplate volumeClaimTemplate = 1;
|
||||||
|
|
||||||
|
// Specifies a read-only configuration for the volume.
|
||||||
|
// Defaults to false (read/write).
|
||||||
|
// +optional
|
||||||
|
optional bool readOnly = 2;
|
||||||
|
}
|
||||||
|
|
||||||
// Event is a report of an event somewhere in the cluster.
|
// Event is a report of an event somewhere in the cluster.
|
||||||
message Event {
|
message Event {
|
||||||
// Standard object's metadata.
|
// Standard object's metadata.
|
||||||
@ -2682,6 +2715,23 @@ message PersistentVolumeClaimStatus {
|
|||||||
repeated PersistentVolumeClaimCondition conditions = 4;
|
repeated PersistentVolumeClaimCondition conditions = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PersistentVolumeClaimTemplate is used to produce
|
||||||
|
// PersistentVolumeClaim objects as part of an EphemeralVolumeSource.
|
||||||
|
message PersistentVolumeClaimTemplate {
|
||||||
|
// May contain labels and annotations that will be copied into the PVC
|
||||||
|
// when creating it. No other fields are allowed and will be rejected during
|
||||||
|
// validation.
|
||||||
|
//
|
||||||
|
// +optional
|
||||||
|
optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
|
||||||
|
|
||||||
|
// The specification for the PersistentVolumeClaim. The entire content is
|
||||||
|
// copied unchanged into the PVC that gets created from this
|
||||||
|
// template. The same fields as in a PersistentVolumeClaim
|
||||||
|
// are also valid here.
|
||||||
|
optional PersistentVolumeClaimSpec spec = 2;
|
||||||
|
}
|
||||||
|
|
||||||
// PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace.
|
// PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace.
|
||||||
// This volume finds the bound PV and mounts that volume for the pod. A
|
// This volume finds the bound PV and mounts that volume for the pod. A
|
||||||
// PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another
|
// PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another
|
||||||
@ -3293,6 +3343,10 @@ message PodSecurityContext {
|
|||||||
// Valid values are "OnRootMismatch" and "Always". If not specified defaults to "Always".
|
// Valid values are "OnRootMismatch" and "Always". If not specified defaults to "Always".
|
||||||
// +optional
|
// +optional
|
||||||
optional string fsGroupChangePolicy = 9;
|
optional string fsGroupChangePolicy = 9;
|
||||||
|
|
||||||
|
// The seccomp options to use by the containers in this pod.
|
||||||
|
// +optional
|
||||||
|
optional SeccompProfile seccompProfile = 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Describes the class of pods that should avoid this node.
|
// Describes the class of pods that should avoid this node.
|
||||||
@ -3526,7 +3580,7 @@ message PodSpec {
|
|||||||
// PreemptionPolicy is the Policy for preempting pods with lower priority.
|
// PreemptionPolicy is the Policy for preempting pods with lower priority.
|
||||||
// One of Never, PreemptLowerPriority.
|
// One of Never, PreemptLowerPriority.
|
||||||
// Defaults to PreemptLowerPriority if unset.
|
// Defaults to PreemptLowerPriority if unset.
|
||||||
// This field is alpha-level and is only honored by servers that enable the NonPreemptingPriority feature.
|
// This field is beta-level, gated by the NonPreemptingPriority feature-gate.
|
||||||
// +optional
|
// +optional
|
||||||
optional string preemptionPolicy = 31;
|
optional string preemptionPolicy = 31;
|
||||||
|
|
||||||
@ -3551,6 +3605,14 @@ message PodSpec {
|
|||||||
// +listMapKey=topologyKey
|
// +listMapKey=topologyKey
|
||||||
// +listMapKey=whenUnsatisfiable
|
// +listMapKey=whenUnsatisfiable
|
||||||
repeated TopologySpreadConstraint topologySpreadConstraints = 33;
|
repeated TopologySpreadConstraint topologySpreadConstraints = 33;
|
||||||
|
|
||||||
|
// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).
|
||||||
|
// In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).
|
||||||
|
// In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN.
|
||||||
|
// If a pod does not have FQDN, this has no effect.
|
||||||
|
// Default to false.
|
||||||
|
// +optional
|
||||||
|
optional bool setHostnameAsFQDN = 35;
|
||||||
}
|
}
|
||||||
|
|
||||||
// PodStatus represents information about the status of a pod. Status may trail the actual
|
// PodStatus represents information about the status of a pod. Status may trail the actual
|
||||||
@ -4293,6 +4355,27 @@ message ScopedResourceSelectorRequirement {
|
|||||||
repeated string values = 3;
|
repeated string values = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SeccompProfile defines a pod/container's seccomp profile settings.
|
||||||
|
// Only one profile source may be set.
|
||||||
|
// +union
|
||||||
|
message SeccompProfile {
|
||||||
|
// type indicates which kind of seccomp profile will be applied.
|
||||||
|
// Valid options are:
|
||||||
|
//
|
||||||
|
// Localhost - a profile defined in a file on the node should be used.
|
||||||
|
// RuntimeDefault - the container runtime default profile should be used.
|
||||||
|
// Unconfined - no profile should be applied.
|
||||||
|
// +unionDiscriminator
|
||||||
|
optional string type = 1;
|
||||||
|
|
||||||
|
// localhostProfile indicates a profile defined in a file on the node should be used.
|
||||||
|
// The profile must be preconfigured on the node to work.
|
||||||
|
// Must be a descending path, relative to the kubelet's configured seccomp profile location.
|
||||||
|
// Must only be set if type is "Localhost".
|
||||||
|
// +optional
|
||||||
|
optional string localhostProfile = 2;
|
||||||
|
}
|
||||||
|
|
||||||
// Secret holds secret data of a certain type. The total bytes of the values in
|
// Secret holds secret data of a certain type. The total bytes of the values in
|
||||||
// the Data field must be less than MaxSecretSize bytes.
|
// the Data field must be less than MaxSecretSize bytes.
|
||||||
message Secret {
|
message Secret {
|
||||||
@ -4511,6 +4594,12 @@ message SecurityContext {
|
|||||||
// This requires the ProcMountType feature flag to be enabled.
|
// This requires the ProcMountType feature flag to be enabled.
|
||||||
// +optional
|
// +optional
|
||||||
optional string procMount = 9;
|
optional string procMount = 9;
|
||||||
|
|
||||||
|
// The seccomp options to use by this container. If seccomp options are
|
||||||
|
// provided at both the pod & container level, the container options
|
||||||
|
// override the pod options.
|
||||||
|
// +optional
|
||||||
|
optional SeccompProfile seccompProfile = 11;
|
||||||
}
|
}
|
||||||
|
|
||||||
// SerializedReference is a reference to serialized object.
|
// SerializedReference is a reference to serialized object.
|
||||||
@ -4785,12 +4874,14 @@ message ServiceSpec {
|
|||||||
// +optional
|
// +optional
|
||||||
optional int32 healthCheckNodePort = 12;
|
optional int32 healthCheckNodePort = 12;
|
||||||
|
|
||||||
// publishNotReadyAddresses, when set to true, indicates that DNS implementations
|
// publishNotReadyAddresses indicates that any agent which deals with endpoints for this
|
||||||
// must publish the notReadyAddresses of subsets for the Endpoints associated with
|
// Service should disregard any indications of ready/not-ready.
|
||||||
// the Service. The default value is false.
|
// The primary use case for setting this field is for a StatefulSet's Headless Service to
|
||||||
// The primary use case for setting this field is to use a StatefulSet's Headless Service
|
// propagate SRV DNS records for its Pods for the purpose of peer discovery.
|
||||||
// to propagate SRV records for its Pods without respect to their readiness for purpose
|
// The Kubernetes controllers that generate Endpoints and EndpointSlice resources for
|
||||||
// of peer discovery.
|
// Services interpret this to mean that all endpoints are considered "ready" even if the
|
||||||
|
// Pods themselves are not. Agents which consume only Kubernetes generated endpoints
|
||||||
|
// through the Endpoints or EndpointSlice resources can safely assume this behavior.
|
||||||
// +optional
|
// +optional
|
||||||
optional bool publishNotReadyAddresses = 13;
|
optional bool publishNotReadyAddresses = 13;
|
||||||
|
|
||||||
@ -4798,13 +4889,21 @@ message ServiceSpec {
|
|||||||
// +optional
|
// +optional
|
||||||
optional SessionAffinityConfig sessionAffinityConfig = 14;
|
optional SessionAffinityConfig sessionAffinityConfig = 14;
|
||||||
|
|
||||||
// ipFamily specifies whether this Service has a preference for a particular IP family (e.g. IPv4 vs.
|
// ipFamily specifies whether this Service has a preference for a particular IP family (e.g.
|
||||||
// IPv6). If a specific IP family is requested, the clusterIP field will be allocated from that family, if it is
|
// IPv4 vs. IPv6) when the IPv6DualStack feature gate is enabled. In a dual-stack cluster,
|
||||||
// available in the cluster. If no IP family is requested, the cluster's primary IP family will be used.
|
// you can specify ipFamily when creating a ClusterIP Service to determine whether the
|
||||||
// Other IP fields (loadBalancerIP, loadBalancerSourceRanges, externalIPs) and controllers which
|
// controller will allocate an IPv4 or IPv6 IP for it, and you can specify ipFamily when
|
||||||
// allocate external load-balancers should use the same IP family. Endpoints for this Service will be of
|
// creating a headless Service to determine whether it will have IPv4 or IPv6 Endpoints. In
|
||||||
// this family. This field is immutable after creation. Assigning a ServiceIPFamily not available in the
|
// either case, if you do not specify an ipFamily explicitly, it will default to the
|
||||||
// cluster (e.g. IPv6 in IPv4 only cluster) is an error condition and will fail during clusterIP assignment.
|
// cluster's primary IP family.
|
||||||
|
// This field is part of an alpha feature, and you should not make any assumptions about its
|
||||||
|
// semantics other than those described above. In particular, you should not assume that it
|
||||||
|
// can (or cannot) be changed after creation time; that it can only have the values "IPv4"
|
||||||
|
// and "IPv6"; or that its current value on a given Service correctly reflects the current
|
||||||
|
// state of that Service. (For ClusterIP Services, look at clusterIP to see if the Service
|
||||||
|
// is IPv4 or IPv6. For headless Services, look at the endpoints, which may be dual-stack in
|
||||||
|
// the future. For ExternalName Services, ipFamily has no meaning, but it may be set to an
|
||||||
|
// irrelevant value anyway.)
|
||||||
// +optional
|
// +optional
|
||||||
optional string ipFamily = 15;
|
optional string ipFamily = 15;
|
||||||
|
|
||||||
@ -5289,9 +5388,37 @@ message VolumeSource {
|
|||||||
// +optional
|
// +optional
|
||||||
optional StorageOSVolumeSource storageos = 27;
|
optional StorageOSVolumeSource storageos = 27;
|
||||||
|
|
||||||
// CSI (Container Storage Interface) represents storage that is handled by an external CSI driver (Alpha feature).
|
// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).
|
||||||
// +optional
|
// +optional
|
||||||
optional CSIVolumeSource csi = 28;
|
optional CSIVolumeSource csi = 28;
|
||||||
|
|
||||||
|
// Ephemeral represents a volume that is handled by a cluster storage driver (Alpha feature).
|
||||||
|
// The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,
|
||||||
|
// and deleted when the pod is removed.
|
||||||
|
//
|
||||||
|
// Use this if:
|
||||||
|
// a) the volume is only needed while the pod runs,
|
||||||
|
// b) features of normal volumes like restoring from snapshot or capacity
|
||||||
|
// tracking are needed,
|
||||||
|
// c) the storage driver is specified through a storage class, and
|
||||||
|
// d) the storage driver supports dynamic volume provisioning through
|
||||||
|
// a PersistentVolumeClaim (see EphemeralVolumeSource for more
|
||||||
|
// information on the connection between this volume type
|
||||||
|
// and PersistentVolumeClaim).
|
||||||
|
//
|
||||||
|
// Use PersistentVolumeClaim or one of the vendor-specific
|
||||||
|
// APIs for volumes that persist for longer than the lifecycle
|
||||||
|
// of an individual pod.
|
||||||
|
//
|
||||||
|
// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to
|
||||||
|
// be used that way - see the documentation of the driver for
|
||||||
|
// more information.
|
||||||
|
//
|
||||||
|
// A pod can use both types of ephemeral volumes and
|
||||||
|
// persistent volumes at the same time.
|
||||||
|
//
|
||||||
|
// +optional
|
||||||
|
optional EphemeralVolumeSource ephemeral = 29;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Represents a vSphere volume resource.
|
// Represents a vSphere volume resource.
|
||||||
|
37
vendor/k8s.io/api/core/v1/lifecycle.go
generated
vendored
Normal file
37
vendor/k8s.io/api/core/v1/lifecycle.go
generated
vendored
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package v1
|
||||||
|
|
||||||
|
// APILifecycleIntroduced returns the release in which the API struct was introduced as int versions of major and minor for comparison.
|
||||||
|
func (in *ComponentStatus) APILifecycleIntroduced() (major, minor int) {
|
||||||
|
return 1, 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// APILifecycleDeprecated returns the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.
|
||||||
|
func (in *ComponentStatus) APILifecycleDeprecated() (major, minor int) {
|
||||||
|
return 1, 19
|
||||||
|
}
|
||||||
|
|
||||||
|
// APILifecycleIntroduced returns the release in which the API struct was introduced as int versions of major and minor for comparison.
|
||||||
|
func (in *ComponentStatusList) APILifecycleIntroduced() (major, minor int) {
|
||||||
|
return 1, 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// APILifecycleDeprecated returns the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.
|
||||||
|
func (in *ComponentStatusList) APILifecycleDeprecated() (major, minor int) {
|
||||||
|
return 1, 19
|
||||||
|
}
|
166
vendor/k8s.io/api/core/v1/types.go
generated
vendored
166
vendor/k8s.io/api/core/v1/types.go
generated
vendored
@ -153,9 +153,36 @@ type VolumeSource struct {
|
|||||||
// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
|
// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
|
||||||
// +optional
|
// +optional
|
||||||
StorageOS *StorageOSVolumeSource `json:"storageos,omitempty" protobuf:"bytes,27,opt,name=storageos"`
|
StorageOS *StorageOSVolumeSource `json:"storageos,omitempty" protobuf:"bytes,27,opt,name=storageos"`
|
||||||
// CSI (Container Storage Interface) represents storage that is handled by an external CSI driver (Alpha feature).
|
// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).
|
||||||
// +optional
|
// +optional
|
||||||
CSI *CSIVolumeSource `json:"csi,omitempty" protobuf:"bytes,28,opt,name=csi"`
|
CSI *CSIVolumeSource `json:"csi,omitempty" protobuf:"bytes,28,opt,name=csi"`
|
||||||
|
// Ephemeral represents a volume that is handled by a cluster storage driver (Alpha feature).
|
||||||
|
// The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,
|
||||||
|
// and deleted when the pod is removed.
|
||||||
|
//
|
||||||
|
// Use this if:
|
||||||
|
// a) the volume is only needed while the pod runs,
|
||||||
|
// b) features of normal volumes like restoring from snapshot or capacity
|
||||||
|
// tracking are needed,
|
||||||
|
// c) the storage driver is specified through a storage class, and
|
||||||
|
// d) the storage driver supports dynamic volume provisioning through
|
||||||
|
// a PersistentVolumeClaim (see EphemeralVolumeSource for more
|
||||||
|
// information on the connection between this volume type
|
||||||
|
// and PersistentVolumeClaim).
|
||||||
|
//
|
||||||
|
// Use PersistentVolumeClaim or one of the vendor-specific
|
||||||
|
// APIs for volumes that persist for longer than the lifecycle
|
||||||
|
// of an individual pod.
|
||||||
|
//
|
||||||
|
// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to
|
||||||
|
// be used that way - see the documentation of the driver for
|
||||||
|
// more information.
|
||||||
|
//
|
||||||
|
// A pod can use both types of ephemeral volumes and
|
||||||
|
// persistent volumes at the same time.
|
||||||
|
//
|
||||||
|
// +optional
|
||||||
|
Ephemeral *EphemeralVolumeSource `json:"ephemeral,omitempty" protobuf:"bytes,29,opt,name=ephemeral"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace.
|
// PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace.
|
||||||
@ -1746,6 +1773,54 @@ type CSIVolumeSource struct {
|
|||||||
NodePublishSecretRef *LocalObjectReference `json:"nodePublishSecretRef,omitempty" protobuf:"bytes,5,opt,name=nodePublishSecretRef"`
|
NodePublishSecretRef *LocalObjectReference `json:"nodePublishSecretRef,omitempty" protobuf:"bytes,5,opt,name=nodePublishSecretRef"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Represents an ephemeral volume that is handled by a normal storage driver.
|
||||||
|
type EphemeralVolumeSource struct {
|
||||||
|
// Will be used to create a stand-alone PVC to provision the volume.
|
||||||
|
// The pod in which this EphemeralVolumeSource is embedded will be the
|
||||||
|
// owner of the PVC, i.e. the PVC will be deleted together with the
|
||||||
|
// pod. The name of the PVC will be `<pod name>-<volume name>` where
|
||||||
|
// `<volume name>` is the name from the `PodSpec.Volumes` array
|
||||||
|
// entry. Pod validation will reject the pod if the concatenated name
|
||||||
|
// is not valid for a PVC (for example, too long).
|
||||||
|
//
|
||||||
|
// An existing PVC with that name that is not owned by the pod
|
||||||
|
// will *not* be used for the pod to avoid using an unrelated
|
||||||
|
// volume by mistake. Starting the pod is then blocked until
|
||||||
|
// the unrelated PVC is removed. If such a pre-created PVC is
|
||||||
|
// meant to be used by the pod, the PVC has to updated with an
|
||||||
|
// owner reference to the pod once the pod exists. Normally
|
||||||
|
// this should not be necessary, but it may be useful when
|
||||||
|
// manually reconstructing a broken cluster.
|
||||||
|
//
|
||||||
|
// This field is read-only and no changes will be made by Kubernetes
|
||||||
|
// to the PVC after it has been created.
|
||||||
|
//
|
||||||
|
// Required, must not be nil.
|
||||||
|
VolumeClaimTemplate *PersistentVolumeClaimTemplate `json:"volumeClaimTemplate,omitempty" protobuf:"bytes,1,opt,name=volumeClaimTemplate"`
|
||||||
|
|
||||||
|
// Specifies a read-only configuration for the volume.
|
||||||
|
// Defaults to false (read/write).
|
||||||
|
// +optional
|
||||||
|
ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,2,opt,name=readOnly"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// PersistentVolumeClaimTemplate is used to produce
|
||||||
|
// PersistentVolumeClaim objects as part of an EphemeralVolumeSource.
|
||||||
|
type PersistentVolumeClaimTemplate struct {
|
||||||
|
// May contain labels and annotations that will be copied into the PVC
|
||||||
|
// when creating it. No other fields are allowed and will be rejected during
|
||||||
|
// validation.
|
||||||
|
//
|
||||||
|
// +optional
|
||||||
|
metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
|
||||||
|
|
||||||
|
// The specification for the PersistentVolumeClaim. The entire content is
|
||||||
|
// copied unchanged into the PVC that gets created from this
|
||||||
|
// template. The same fields as in a PersistentVolumeClaim
|
||||||
|
// are also valid here.
|
||||||
|
Spec PersistentVolumeClaimSpec `json:"spec" protobuf:"bytes,2,name=spec"`
|
||||||
|
}
|
||||||
|
|
||||||
// ContainerPort represents a network port in a single container.
|
// ContainerPort represents a network port in a single container.
|
||||||
type ContainerPort struct {
|
type ContainerPort struct {
|
||||||
// If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
|
// If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
|
||||||
@ -3032,7 +3107,7 @@ type PodSpec struct {
|
|||||||
// PreemptionPolicy is the Policy for preempting pods with lower priority.
|
// PreemptionPolicy is the Policy for preempting pods with lower priority.
|
||||||
// One of Never, PreemptLowerPriority.
|
// One of Never, PreemptLowerPriority.
|
||||||
// Defaults to PreemptLowerPriority if unset.
|
// Defaults to PreemptLowerPriority if unset.
|
||||||
// This field is alpha-level and is only honored by servers that enable the NonPreemptingPriority feature.
|
// This field is beta-level, gated by the NonPreemptingPriority feature-gate.
|
||||||
// +optional
|
// +optional
|
||||||
PreemptionPolicy *PreemptionPolicy `json:"preemptionPolicy,omitempty" protobuf:"bytes,31,opt,name=preemptionPolicy"`
|
PreemptionPolicy *PreemptionPolicy `json:"preemptionPolicy,omitempty" protobuf:"bytes,31,opt,name=preemptionPolicy"`
|
||||||
// Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.
|
// Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.
|
||||||
@ -3055,6 +3130,13 @@ type PodSpec struct {
|
|||||||
// +listMapKey=topologyKey
|
// +listMapKey=topologyKey
|
||||||
// +listMapKey=whenUnsatisfiable
|
// +listMapKey=whenUnsatisfiable
|
||||||
TopologySpreadConstraints []TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty" patchStrategy:"merge" patchMergeKey:"topologyKey" protobuf:"bytes,33,opt,name=topologySpreadConstraints"`
|
TopologySpreadConstraints []TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty" patchStrategy:"merge" patchMergeKey:"topologyKey" protobuf:"bytes,33,opt,name=topologySpreadConstraints"`
|
||||||
|
// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).
|
||||||
|
// In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).
|
||||||
|
// In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN.
|
||||||
|
// If a pod does not have FQDN, this has no effect.
|
||||||
|
// Default to false.
|
||||||
|
// +optional
|
||||||
|
SetHostnameAsFQDN *bool `json:"setHostnameAsFQDN,omitempty" protobuf:"varint,35,opt,name=setHostnameAsFQDN"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type UnsatisfiableConstraintAction string
|
type UnsatisfiableConstraintAction string
|
||||||
@ -3219,8 +3301,45 @@ type PodSecurityContext struct {
|
|||||||
// Valid values are "OnRootMismatch" and "Always". If not specified defaults to "Always".
|
// Valid values are "OnRootMismatch" and "Always". If not specified defaults to "Always".
|
||||||
// +optional
|
// +optional
|
||||||
FSGroupChangePolicy *PodFSGroupChangePolicy `json:"fsGroupChangePolicy,omitempty" protobuf:"bytes,9,opt,name=fsGroupChangePolicy"`
|
FSGroupChangePolicy *PodFSGroupChangePolicy `json:"fsGroupChangePolicy,omitempty" protobuf:"bytes,9,opt,name=fsGroupChangePolicy"`
|
||||||
|
// The seccomp options to use by the containers in this pod.
|
||||||
|
// +optional
|
||||||
|
SeccompProfile *SeccompProfile `json:"seccompProfile,omitempty" protobuf:"bytes,10,opt,name=seccompProfile"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SeccompProfile defines a pod/container's seccomp profile settings.
|
||||||
|
// Only one profile source may be set.
|
||||||
|
// +union
|
||||||
|
type SeccompProfile struct {
|
||||||
|
// type indicates which kind of seccomp profile will be applied.
|
||||||
|
// Valid options are:
|
||||||
|
//
|
||||||
|
// Localhost - a profile defined in a file on the node should be used.
|
||||||
|
// RuntimeDefault - the container runtime default profile should be used.
|
||||||
|
// Unconfined - no profile should be applied.
|
||||||
|
// +unionDiscriminator
|
||||||
|
Type SeccompProfileType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=SeccompProfileType"`
|
||||||
|
// localhostProfile indicates a profile defined in a file on the node should be used.
|
||||||
|
// The profile must be preconfigured on the node to work.
|
||||||
|
// Must be a descending path, relative to the kubelet's configured seccomp profile location.
|
||||||
|
// Must only be set if type is "Localhost".
|
||||||
|
// +optional
|
||||||
|
LocalhostProfile *string `json:"localhostProfile,omitempty" protobuf:"bytes,2,opt,name=localhostProfile"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// SeccompProfileType defines the supported seccomp profile types.
|
||||||
|
type SeccompProfileType string
|
||||||
|
|
||||||
|
const (
|
||||||
|
// SeccompProfileTypeUnconfined indicates no seccomp profile is applied (A.K.A. unconfined).
|
||||||
|
SeccompProfileTypeUnconfined SeccompProfileType = "Unconfined"
|
||||||
|
// SeccompProfileTypeRuntimeDefault represents the default container runtime seccomp profile.
|
||||||
|
SeccompProfileTypeRuntimeDefault SeccompProfileType = "RuntimeDefault"
|
||||||
|
// SeccompProfileTypeLocalhost indicates a profile defined in a file on the node should be used.
|
||||||
|
// The file's location is based off the kubelet's deprecated flag --seccomp-profile-root.
|
||||||
|
// Once the flag support is removed the location will be <kubelet-root-dir>/seccomp.
|
||||||
|
SeccompProfileTypeLocalhost SeccompProfileType = "Localhost"
|
||||||
|
)
|
||||||
|
|
||||||
// PodQOSClass defines the supported qos classes of Pods.
|
// PodQOSClass defines the supported qos classes of Pods.
|
||||||
type PodQOSClass string
|
type PodQOSClass string
|
||||||
|
|
||||||
@ -3971,12 +4090,14 @@ type ServiceSpec struct {
|
|||||||
// +optional
|
// +optional
|
||||||
HealthCheckNodePort int32 `json:"healthCheckNodePort,omitempty" protobuf:"bytes,12,opt,name=healthCheckNodePort"`
|
HealthCheckNodePort int32 `json:"healthCheckNodePort,omitempty" protobuf:"bytes,12,opt,name=healthCheckNodePort"`
|
||||||
|
|
||||||
// publishNotReadyAddresses, when set to true, indicates that DNS implementations
|
// publishNotReadyAddresses indicates that any agent which deals with endpoints for this
|
||||||
// must publish the notReadyAddresses of subsets for the Endpoints associated with
|
// Service should disregard any indications of ready/not-ready.
|
||||||
// the Service. The default value is false.
|
// The primary use case for setting this field is for a StatefulSet's Headless Service to
|
||||||
// The primary use case for setting this field is to use a StatefulSet's Headless Service
|
// propagate SRV DNS records for its Pods for the purpose of peer discovery.
|
||||||
// to propagate SRV records for its Pods without respect to their readiness for purpose
|
// The Kubernetes controllers that generate Endpoints and EndpointSlice resources for
|
||||||
// of peer discovery.
|
// Services interpret this to mean that all endpoints are considered "ready" even if the
|
||||||
|
// Pods themselves are not. Agents which consume only Kubernetes generated endpoints
|
||||||
|
// through the Endpoints or EndpointSlice resources can safely assume this behavior.
|
||||||
// +optional
|
// +optional
|
||||||
PublishNotReadyAddresses bool `json:"publishNotReadyAddresses,omitempty" protobuf:"varint,13,opt,name=publishNotReadyAddresses"`
|
PublishNotReadyAddresses bool `json:"publishNotReadyAddresses,omitempty" protobuf:"varint,13,opt,name=publishNotReadyAddresses"`
|
||||||
|
|
||||||
@ -3984,13 +4105,21 @@ type ServiceSpec struct {
|
|||||||
// +optional
|
// +optional
|
||||||
SessionAffinityConfig *SessionAffinityConfig `json:"sessionAffinityConfig,omitempty" protobuf:"bytes,14,opt,name=sessionAffinityConfig"`
|
SessionAffinityConfig *SessionAffinityConfig `json:"sessionAffinityConfig,omitempty" protobuf:"bytes,14,opt,name=sessionAffinityConfig"`
|
||||||
|
|
||||||
// ipFamily specifies whether this Service has a preference for a particular IP family (e.g. IPv4 vs.
|
// ipFamily specifies whether this Service has a preference for a particular IP family (e.g.
|
||||||
// IPv6). If a specific IP family is requested, the clusterIP field will be allocated from that family, if it is
|
// IPv4 vs. IPv6) when the IPv6DualStack feature gate is enabled. In a dual-stack cluster,
|
||||||
// available in the cluster. If no IP family is requested, the cluster's primary IP family will be used.
|
// you can specify ipFamily when creating a ClusterIP Service to determine whether the
|
||||||
// Other IP fields (loadBalancerIP, loadBalancerSourceRanges, externalIPs) and controllers which
|
// controller will allocate an IPv4 or IPv6 IP for it, and you can specify ipFamily when
|
||||||
// allocate external load-balancers should use the same IP family. Endpoints for this Service will be of
|
// creating a headless Service to determine whether it will have IPv4 or IPv6 Endpoints. In
|
||||||
// this family. This field is immutable after creation. Assigning a ServiceIPFamily not available in the
|
// either case, if you do not specify an ipFamily explicitly, it will default to the
|
||||||
// cluster (e.g. IPv6 in IPv4 only cluster) is an error condition and will fail during clusterIP assignment.
|
// cluster's primary IP family.
|
||||||
|
// This field is part of an alpha feature, and you should not make any assumptions about its
|
||||||
|
// semantics other than those described above. In particular, you should not assume that it
|
||||||
|
// can (or cannot) be changed after creation time; that it can only have the values "IPv4"
|
||||||
|
// and "IPv6"; or that its current value on a given Service correctly reflects the current
|
||||||
|
// state of that Service. (For ClusterIP Services, look at clusterIP to see if the Service
|
||||||
|
// is IPv4 or IPv6. For headless Services, look at the endpoints, which may be dual-stack in
|
||||||
|
// the future. For ExternalName Services, ipFamily has no meaning, but it may be set to an
|
||||||
|
// irrelevant value anyway.)
|
||||||
// +optional
|
// +optional
|
||||||
IPFamily *IPFamily `json:"ipFamily,omitempty" protobuf:"bytes,15,opt,name=ipFamily,Configcasttype=IPFamily"`
|
IPFamily *IPFamily `json:"ipFamily,omitempty" protobuf:"bytes,15,opt,name=ipFamily,Configcasttype=IPFamily"`
|
||||||
|
|
||||||
@ -5699,6 +5828,7 @@ type ComponentCondition struct {
|
|||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||||
|
|
||||||
// ComponentStatus (and ComponentStatusList) holds the cluster validation info.
|
// ComponentStatus (and ComponentStatusList) holds the cluster validation info.
|
||||||
|
// Deprecated: This API is deprecated in v1.19+
|
||||||
type ComponentStatus struct {
|
type ComponentStatus struct {
|
||||||
metav1.TypeMeta `json:",inline"`
|
metav1.TypeMeta `json:",inline"`
|
||||||
// Standard object's metadata.
|
// Standard object's metadata.
|
||||||
@ -5716,6 +5846,7 @@ type ComponentStatus struct {
|
|||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||||
|
|
||||||
// Status of all the conditions for the component as a list of ComponentStatus objects.
|
// Status of all the conditions for the component as a list of ComponentStatus objects.
|
||||||
|
// Deprecated: This API is deprecated in v1.19+
|
||||||
type ComponentStatusList struct {
|
type ComponentStatusList struct {
|
||||||
metav1.TypeMeta `json:",inline"`
|
metav1.TypeMeta `json:",inline"`
|
||||||
// Standard list metadata.
|
// Standard list metadata.
|
||||||
@ -5841,6 +5972,11 @@ type SecurityContext struct {
|
|||||||
// This requires the ProcMountType feature flag to be enabled.
|
// This requires the ProcMountType feature flag to be enabled.
|
||||||
// +optional
|
// +optional
|
||||||
ProcMount *ProcMountType `json:"procMount,omitempty" protobuf:"bytes,9,opt,name=procMount"`
|
ProcMount *ProcMountType `json:"procMount,omitempty" protobuf:"bytes,9,opt,name=procMount"`
|
||||||
|
// The seccomp options to use by this container. If seccomp options are
|
||||||
|
// provided at both the pod & container level, the container options
|
||||||
|
// override the pod options.
|
||||||
|
// +optional
|
||||||
|
SeccompProfile *SeccompProfile `json:"seccompProfile,omitempty" protobuf:"bytes,11,opt,name=seccompProfile"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ProcMountType string
|
type ProcMountType string
|
||||||
|
46
vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go
generated
vendored
46
vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go
generated
vendored
@ -230,7 +230,7 @@ func (ComponentCondition) SwaggerDoc() map[string]string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var map_ComponentStatus = map[string]string{
|
var map_ComponentStatus = map[string]string{
|
||||||
"": "ComponentStatus (and ComponentStatusList) holds the cluster validation info.",
|
"": "ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+",
|
||||||
"metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
|
"metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
|
||||||
"conditions": "List of component conditions observed",
|
"conditions": "List of component conditions observed",
|
||||||
}
|
}
|
||||||
@ -240,7 +240,7 @@ func (ComponentStatus) SwaggerDoc() map[string]string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var map_ComponentStatusList = map[string]string{
|
var map_ComponentStatusList = map[string]string{
|
||||||
"": "Status of all the conditions for the component as a list of ComponentStatus objects.",
|
"": "Status of all the conditions for the component as a list of ComponentStatus objects. Deprecated: This API is deprecated in v1.19+",
|
||||||
"metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
"metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
||||||
"items": "List of ComponentStatus objects.",
|
"items": "List of ComponentStatus objects.",
|
||||||
}
|
}
|
||||||
@ -626,6 +626,16 @@ func (EphemeralContainers) SwaggerDoc() map[string]string {
|
|||||||
return map_EphemeralContainers
|
return map_EphemeralContainers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var map_EphemeralVolumeSource = map[string]string{
|
||||||
|
"": "Represents an ephemeral volume that is handled by a normal storage driver.",
|
||||||
|
"volumeClaimTemplate": "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `<pod name>-<volume name>` where `<volume name>` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\n\nAn existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\n\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\n\nRequired, must not be nil.",
|
||||||
|
"readOnly": "Specifies a read-only configuration for the volume. Defaults to false (read/write).",
|
||||||
|
}
|
||||||
|
|
||||||
|
func (EphemeralVolumeSource) SwaggerDoc() map[string]string {
|
||||||
|
return map_EphemeralVolumeSource
|
||||||
|
}
|
||||||
|
|
||||||
var map_Event = map[string]string{
|
var map_Event = map[string]string{
|
||||||
"": "Event is a report of an event somewhere in the cluster.",
|
"": "Event is a report of an event somewhere in the cluster.",
|
||||||
"metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
|
"metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
|
||||||
@ -1319,6 +1329,16 @@ func (PersistentVolumeClaimStatus) SwaggerDoc() map[string]string {
|
|||||||
return map_PersistentVolumeClaimStatus
|
return map_PersistentVolumeClaimStatus
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var map_PersistentVolumeClaimTemplate = map[string]string{
|
||||||
|
"": "PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.",
|
||||||
|
"metadata": "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.",
|
||||||
|
"spec": "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.",
|
||||||
|
}
|
||||||
|
|
||||||
|
func (PersistentVolumeClaimTemplate) SwaggerDoc() map[string]string {
|
||||||
|
return map_PersistentVolumeClaimTemplate
|
||||||
|
}
|
||||||
|
|
||||||
var map_PersistentVolumeClaimVolumeSource = map[string]string{
|
var map_PersistentVolumeClaimVolumeSource = map[string]string{
|
||||||
"": "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).",
|
"": "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).",
|
||||||
"claimName": "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
|
"claimName": "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
|
||||||
@ -1583,6 +1603,7 @@ var map_PodSecurityContext = map[string]string{
|
|||||||
"fsGroup": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw ",
|
"fsGroup": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw ",
|
||||||
"sysctls": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch.",
|
"sysctls": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch.",
|
||||||
"fsGroupChangePolicy": "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified defaults to \"Always\".",
|
"fsGroupChangePolicy": "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified defaults to \"Always\".",
|
||||||
|
"seccompProfile": "The seccomp options to use by the containers in this pod.",
|
||||||
}
|
}
|
||||||
|
|
||||||
func (PodSecurityContext) SwaggerDoc() map[string]string {
|
func (PodSecurityContext) SwaggerDoc() map[string]string {
|
||||||
@ -1631,9 +1652,10 @@ var map_PodSpec = map[string]string{
|
|||||||
"readinessGates": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md",
|
"readinessGates": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md",
|
||||||
"runtimeClassName": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md This is a beta feature as of Kubernetes v1.14.",
|
"runtimeClassName": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md This is a beta feature as of Kubernetes v1.14.",
|
||||||
"enableServiceLinks": "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.",
|
"enableServiceLinks": "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.",
|
||||||
"preemptionPolicy": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is alpha-level and is only honored by servers that enable the NonPreemptingPriority feature.",
|
"preemptionPolicy": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is beta-level, gated by the NonPreemptingPriority feature-gate.",
|
||||||
"overhead": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.16, and is only honored by servers that enable the PodOverhead feature.",
|
"overhead": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.16, and is only honored by servers that enable the PodOverhead feature.",
|
||||||
"topologySpreadConstraints": "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.",
|
"topologySpreadConstraints": "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.",
|
||||||
|
"setHostnameAsFQDN": "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.",
|
||||||
}
|
}
|
||||||
|
|
||||||
func (PodSpec) SwaggerDoc() map[string]string {
|
func (PodSpec) SwaggerDoc() map[string]string {
|
||||||
@ -2014,6 +2036,16 @@ func (ScopedResourceSelectorRequirement) SwaggerDoc() map[string]string {
|
|||||||
return map_ScopedResourceSelectorRequirement
|
return map_ScopedResourceSelectorRequirement
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var map_SeccompProfile = map[string]string{
|
||||||
|
"": "SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.",
|
||||||
|
"type": "type indicates which kind of seccomp profile will be applied. Valid options are:\n\nLocalhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.",
|
||||||
|
"localhostProfile": "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \"Localhost\".",
|
||||||
|
}
|
||||||
|
|
||||||
|
func (SeccompProfile) SwaggerDoc() map[string]string {
|
||||||
|
return map_SeccompProfile
|
||||||
|
}
|
||||||
|
|
||||||
var map_Secret = map[string]string{
|
var map_Secret = map[string]string{
|
||||||
"": "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.",
|
"": "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.",
|
||||||
"metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
|
"metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
|
||||||
@ -2100,6 +2132,7 @@ var map_SecurityContext = map[string]string{
|
|||||||
"readOnlyRootFilesystem": "Whether this container has a read-only root filesystem. Default is false.",
|
"readOnlyRootFilesystem": "Whether this container has a read-only root filesystem. Default is false.",
|
||||||
"allowPrivilegeEscalation": "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN",
|
"allowPrivilegeEscalation": "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN",
|
||||||
"procMount": "procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled.",
|
"procMount": "procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled.",
|
||||||
|
"seccompProfile": "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options.",
|
||||||
}
|
}
|
||||||
|
|
||||||
func (SecurityContext) SwaggerDoc() map[string]string {
|
func (SecurityContext) SwaggerDoc() map[string]string {
|
||||||
@ -2205,9 +2238,9 @@ var map_ServiceSpec = map[string]string{
|
|||||||
"externalName": "externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires Type to be ExternalName.",
|
"externalName": "externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires Type to be ExternalName.",
|
||||||
"externalTrafficPolicy": "externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \"Local\" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \"Cluster\" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.",
|
"externalTrafficPolicy": "externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \"Local\" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \"Cluster\" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.",
|
||||||
"healthCheckNodePort": "healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local.",
|
"healthCheckNodePort": "healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local.",
|
||||||
"publishNotReadyAddresses": "publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet's Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery.",
|
"publishNotReadyAddresses": "publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet's Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered \"ready\" even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior.",
|
||||||
"sessionAffinityConfig": "sessionAffinityConfig contains the configurations of session affinity.",
|
"sessionAffinityConfig": "sessionAffinityConfig contains the configurations of session affinity.",
|
||||||
"ipFamily": "ipFamily specifies whether this Service has a preference for a particular IP family (e.g. IPv4 vs. IPv6). If a specific IP family is requested, the clusterIP field will be allocated from that family, if it is available in the cluster. If no IP family is requested, the cluster's primary IP family will be used. Other IP fields (loadBalancerIP, loadBalancerSourceRanges, externalIPs) and controllers which allocate external load-balancers should use the same IP family. Endpoints for this Service will be of this family. This field is immutable after creation. Assigning a ServiceIPFamily not available in the cluster (e.g. IPv6 in IPv4 only cluster) is an error condition and will fail during clusterIP assignment.",
|
"ipFamily": "ipFamily specifies whether this Service has a preference for a particular IP family (e.g. IPv4 vs. IPv6) when the IPv6DualStack feature gate is enabled. In a dual-stack cluster, you can specify ipFamily when creating a ClusterIP Service to determine whether the controller will allocate an IPv4 or IPv6 IP for it, and you can specify ipFamily when creating a headless Service to determine whether it will have IPv4 or IPv6 Endpoints. In either case, if you do not specify an ipFamily explicitly, it will default to the cluster's primary IP family. This field is part of an alpha feature, and you should not make any assumptions about its semantics other than those described above. In particular, you should not assume that it can (or cannot) be changed after creation time; that it can only have the values \"IPv4\" and \"IPv6\"; or that its current value on a given Service correctly reflects the current state of that Service. (For ClusterIP Services, look at clusterIP to see if the Service is IPv4 or IPv6. For headless Services, look at the endpoints, which may be dual-stack in the future. For ExternalName Services, ipFamily has no meaning, but it may be set to an irrelevant value anyway.)",
|
||||||
"topologyKeys": "topologyKeys is a preference-order list of topology keys which implementations of services should use to preferentially sort endpoints when accessing this Service, it can not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and at most 16 keys may be specified. Endpoints are chosen based on the first topology key with available backends. If this field is specified and all entries have no backends that match the topology of the client, the service has no backends for that client and connections should fail. The special value \"*\" may be used to mean \"any topology\". This catch-all value, if used, only makes sense as the last value in the list. If this is not specified or empty, no topology constraints will be applied.",
|
"topologyKeys": "topologyKeys is a preference-order list of topology keys which implementations of services should use to preferentially sort endpoints when accessing this Service, it can not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and at most 16 keys may be specified. Endpoints are chosen based on the first topology key with available backends. If this field is specified and all entries have no backends that match the topology of the client, the service has no backends for that client and connections should fail. The special value \"*\" may be used to mean \"any topology\". This catch-all value, if used, only makes sense as the last value in the list. If this is not specified or empty, no topology constraints will be applied.",
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2429,7 +2462,8 @@ var map_VolumeSource = map[string]string{
|
|||||||
"portworxVolume": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine",
|
"portworxVolume": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine",
|
||||||
"scaleIO": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.",
|
"scaleIO": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.",
|
||||||
"storageos": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.",
|
"storageos": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.",
|
||||||
"csi": "CSI (Container Storage Interface) represents storage that is handled by an external CSI driver (Alpha feature).",
|
"csi": "CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).",
|
||||||
|
"ephemeral": "Ephemeral represents a volume that is handled by a cluster storage driver (Alpha feature). The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\n\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\n tracking are needed,\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\n information on the connection between this volume type\n and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\n\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.",
|
||||||
}
|
}
|
||||||
|
|
||||||
func (VolumeSource) SwaggerDoc() map[string]string {
|
func (VolumeSource) SwaggerDoc() map[string]string {
|
||||||
|
80
vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go
generated
vendored
80
vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go
generated
vendored
@ -1433,6 +1433,27 @@ func (in *EphemeralContainers) DeepCopyObject() runtime.Object {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *EphemeralVolumeSource) DeepCopyInto(out *EphemeralVolumeSource) {
|
||||||
|
*out = *in
|
||||||
|
if in.VolumeClaimTemplate != nil {
|
||||||
|
in, out := &in.VolumeClaimTemplate, &out.VolumeClaimTemplate
|
||||||
|
*out = new(PersistentVolumeClaimTemplate)
|
||||||
|
(*in).DeepCopyInto(*out)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EphemeralVolumeSource.
|
||||||
|
func (in *EphemeralVolumeSource) DeepCopy() *EphemeralVolumeSource {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(EphemeralVolumeSource)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
func (in *Event) DeepCopyInto(out *Event) {
|
func (in *Event) DeepCopyInto(out *Event) {
|
||||||
*out = *in
|
*out = *in
|
||||||
@ -2985,6 +3006,24 @@ func (in *PersistentVolumeClaimStatus) DeepCopy() *PersistentVolumeClaimStatus {
|
|||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *PersistentVolumeClaimTemplate) DeepCopyInto(out *PersistentVolumeClaimTemplate) {
|
||||||
|
*out = *in
|
||||||
|
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||||
|
in.Spec.DeepCopyInto(&out.Spec)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimTemplate.
|
||||||
|
func (in *PersistentVolumeClaimTemplate) DeepCopy() *PersistentVolumeClaimTemplate {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(PersistentVolumeClaimTemplate)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
func (in *PersistentVolumeClaimVolumeSource) DeepCopyInto(out *PersistentVolumeClaimVolumeSource) {
|
func (in *PersistentVolumeClaimVolumeSource) DeepCopyInto(out *PersistentVolumeClaimVolumeSource) {
|
||||||
*out = *in
|
*out = *in
|
||||||
@ -3694,6 +3733,11 @@ func (in *PodSecurityContext) DeepCopyInto(out *PodSecurityContext) {
|
|||||||
*out = new(PodFSGroupChangePolicy)
|
*out = new(PodFSGroupChangePolicy)
|
||||||
**out = **in
|
**out = **in
|
||||||
}
|
}
|
||||||
|
if in.SeccompProfile != nil {
|
||||||
|
in, out := &in.SeccompProfile, &out.SeccompProfile
|
||||||
|
*out = new(SeccompProfile)
|
||||||
|
(*in).DeepCopyInto(*out)
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3859,6 +3903,11 @@ func (in *PodSpec) DeepCopyInto(out *PodSpec) {
|
|||||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if in.SetHostnameAsFQDN != nil {
|
||||||
|
in, out := &in.SetHostnameAsFQDN, &out.SetHostnameAsFQDN
|
||||||
|
*out = new(bool)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4675,6 +4724,27 @@ func (in *ScopedResourceSelectorRequirement) DeepCopy() *ScopedResourceSelectorR
|
|||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *SeccompProfile) DeepCopyInto(out *SeccompProfile) {
|
||||||
|
*out = *in
|
||||||
|
if in.LocalhostProfile != nil {
|
||||||
|
in, out := &in.LocalhostProfile, &out.LocalhostProfile
|
||||||
|
*out = new(string)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SeccompProfile.
|
||||||
|
func (in *SeccompProfile) DeepCopy() *SeccompProfile {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(SeccompProfile)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
func (in *Secret) DeepCopyInto(out *Secret) {
|
func (in *Secret) DeepCopyInto(out *Secret) {
|
||||||
*out = *in
|
*out = *in
|
||||||
@ -4936,6 +5006,11 @@ func (in *SecurityContext) DeepCopyInto(out *SecurityContext) {
|
|||||||
*out = new(ProcMountType)
|
*out = new(ProcMountType)
|
||||||
**out = **in
|
**out = **in
|
||||||
}
|
}
|
||||||
|
if in.SeccompProfile != nil {
|
||||||
|
in, out := &in.SeccompProfile, &out.SeccompProfile
|
||||||
|
*out = new(SeccompProfile)
|
||||||
|
(*in).DeepCopyInto(*out)
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5727,6 +5802,11 @@ func (in *VolumeSource) DeepCopyInto(out *VolumeSource) {
|
|||||||
*out = new(CSIVolumeSource)
|
*out = new(CSIVolumeSource)
|
||||||
(*in).DeepCopyInto(*out)
|
(*in).DeepCopyInto(*out)
|
||||||
}
|
}
|
||||||
|
if in.Ephemeral != nil {
|
||||||
|
in, out := &in.Ephemeral, &out.Ephemeral
|
||||||
|
*out = new(EphemeralVolumeSource)
|
||||||
|
(*in).DeepCopyInto(*out)
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
10
vendor/k8s.io/api/go.mod
generated
vendored
10
vendor/k8s.io/api/go.mod
generated
vendored
@ -2,16 +2,12 @@
|
|||||||
|
|
||||||
module k8s.io/api
|
module k8s.io/api
|
||||||
|
|
||||||
go 1.13
|
go 1.15
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/gogo/protobuf v1.3.1
|
github.com/gogo/protobuf v1.3.1
|
||||||
github.com/stretchr/testify v1.4.0
|
github.com/stretchr/testify v1.4.0
|
||||||
k8s.io/apimachinery v0.19.0-beta.2
|
k8s.io/apimachinery v0.19.0-rc.4
|
||||||
)
|
)
|
||||||
|
|
||||||
replace (
|
replace k8s.io/apimachinery => k8s.io/apimachinery v0.19.0-rc.4
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a // pinned to release-branch.go1.13
|
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7 // pinned to release-branch.go1.13
|
|
||||||
k8s.io/apimachinery => k8s.io/apimachinery v0.19.0-beta.2
|
|
||||||
)
|
|
||||||
|
23
vendor/k8s.io/apimachinery/go.mod
generated
vendored
23
vendor/k8s.io/apimachinery/go.mod
generated
vendored
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
module k8s.io/apimachinery
|
module k8s.io/apimachinery
|
||||||
|
|
||||||
go 1.13
|
go 1.15
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/davecgh/go-spew v1.1.1
|
github.com/davecgh/go-spew v1.1.1
|
||||||
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96
|
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96
|
||||||
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153
|
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153
|
||||||
github.com/evanphx/json-patch v4.2.0+incompatible
|
github.com/evanphx/json-patch v0.0.0-20190815234213-e83c0a1c26c8
|
||||||
github.com/fsnotify/fsnotify v1.4.9 // indirect
|
github.com/fsnotify/fsnotify v1.4.9 // indirect
|
||||||
github.com/gogo/protobuf v1.3.1
|
github.com/gogo/protobuf v1.3.1
|
||||||
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7
|
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7
|
||||||
@ -18,25 +18,22 @@ require (
|
|||||||
github.com/google/uuid v1.1.1
|
github.com/google/uuid v1.1.1
|
||||||
github.com/googleapis/gnostic v0.4.1
|
github.com/googleapis/gnostic v0.4.1
|
||||||
github.com/hashicorp/golang-lru v0.5.1
|
github.com/hashicorp/golang-lru v0.5.1
|
||||||
github.com/json-iterator/go v1.1.9
|
github.com/json-iterator/go v1.1.10
|
||||||
github.com/modern-go/reflect2 v1.0.1
|
github.com/modern-go/reflect2 v1.0.1
|
||||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f
|
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f
|
||||||
github.com/onsi/ginkgo v1.11.0 // indirect
|
github.com/onsi/ginkgo v1.11.0 // indirect
|
||||||
github.com/onsi/gomega v1.7.0 // indirect
|
github.com/onsi/gomega v1.7.0 // indirect
|
||||||
|
github.com/pkg/errors v0.9.1 // indirect
|
||||||
github.com/spf13/pflag v1.0.5
|
github.com/spf13/pflag v1.0.5
|
||||||
github.com/stretchr/testify v1.4.0
|
github.com/stretchr/testify v1.4.0
|
||||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e
|
golang.org/x/net v0.0.0-20200707034311-ab3426394381
|
||||||
golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f // indirect
|
golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 // indirect
|
||||||
golang.org/x/text v0.3.2 // indirect
|
golang.org/x/text v0.3.3 // indirect
|
||||||
|
google.golang.org/protobuf v1.24.0 // indirect
|
||||||
gopkg.in/inf.v0 v0.9.1
|
gopkg.in/inf.v0 v0.9.1
|
||||||
gopkg.in/yaml.v2 v2.2.8
|
gopkg.in/yaml.v2 v2.2.8
|
||||||
k8s.io/klog/v2 v2.1.0
|
k8s.io/klog/v2 v2.2.0
|
||||||
k8s.io/kube-openapi v0.0.0-20200427153329-656914f816f9
|
k8s.io/kube-openapi v0.0.0-20200427153329-656914f816f9
|
||||||
sigs.k8s.io/structured-merge-diff/v3 v3.0.0
|
sigs.k8s.io/structured-merge-diff/v3 v3.0.1-0.20200706213357-43c19bbb7fba
|
||||||
sigs.k8s.io/yaml v1.2.0
|
sigs.k8s.io/yaml v1.2.0
|
||||||
)
|
)
|
||||||
|
|
||||||
replace (
|
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a // pinned to release-branch.go1.13
|
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7 // pinned to release-branch.go1.13
|
|
||||||
)
|
|
||||||
|
8
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/conversion.go
generated
vendored
8
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/conversion.go
generated
vendored
@ -345,3 +345,11 @@ func Convert_url_Values_To_v1_DeleteOptions(in *url.Values, out *DeleteOptions,
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Convert_Slice_string_To_v1_ResourceVersionMatch allows converting a URL query parameter to ResourceVersionMatch
|
||||||
|
func Convert_Slice_string_To_v1_ResourceVersionMatch(in *[]string, out *ResourceVersionMatch, s conversion.Scope) error {
|
||||||
|
if len(*in) > 0 {
|
||||||
|
*out = ResourceVersionMatch((*in)[0])
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
818
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.pb.go
generated
vendored
818
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.pb.go
generated
vendored
File diff suppressed because it is too large
Load Diff
98
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto
generated
vendored
98
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto
generated
vendored
@ -134,6 +134,73 @@ message APIVersions {
|
|||||||
repeated ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;
|
repeated ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Condition contains details for one aspect of the current state of this API Resource.
|
||||||
|
// ---
|
||||||
|
// This struct is intended for direct use as an array at the field path .status.conditions. For example,
|
||||||
|
// type FooStatus struct{
|
||||||
|
// // Represents the observations of a foo's current state.
|
||||||
|
// // Known .status.conditions.type are: "Available", "Progressing", and "Degraded"
|
||||||
|
// // +patchMergeKey=type
|
||||||
|
// // +patchStrategy=merge
|
||||||
|
// // +listType=map
|
||||||
|
// // +listMapKey=type
|
||||||
|
// Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
|
||||||
|
//
|
||||||
|
// // other fields
|
||||||
|
// }
|
||||||
|
message Condition {
|
||||||
|
// type of condition in CamelCase or in foo.example.com/CamelCase.
|
||||||
|
// ---
|
||||||
|
// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
|
||||||
|
// useful (see .node.status.conditions), the ability to deconflict is important.
|
||||||
|
// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
|
||||||
|
// +required
|
||||||
|
// +kubebuilder:validation:Required
|
||||||
|
// +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`
|
||||||
|
// +kubebuilder:validation:MaxLength=316
|
||||||
|
optional string type = 1;
|
||||||
|
|
||||||
|
// status of the condition, one of True, False, Unknown.
|
||||||
|
// +required
|
||||||
|
// +kubebuilder:validation:Required
|
||||||
|
// +kubebuilder:validation:Enum=True;False;Unknown
|
||||||
|
optional string status = 2;
|
||||||
|
|
||||||
|
// observedGeneration represents the .metadata.generation that the condition was set based upon.
|
||||||
|
// For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
||||||
|
// with respect to the current state of the instance.
|
||||||
|
// +optional
|
||||||
|
// +kubebuilder:validation:Minimum=0
|
||||||
|
optional int64 observedGeneration = 3;
|
||||||
|
|
||||||
|
// lastTransitionTime is the last time the condition transitioned from one status to another.
|
||||||
|
// This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
|
||||||
|
// +required
|
||||||
|
// +kubebuilder:validation:Required
|
||||||
|
// +kubebuilder:validation:Type=string
|
||||||
|
// +kubebuilder:validation:Format=date-time
|
||||||
|
optional Time lastTransitionTime = 4;
|
||||||
|
|
||||||
|
// reason contains a programmatic identifier indicating the reason for the condition's last transition.
|
||||||
|
// Producers of specific condition types may define expected values and meanings for this field,
|
||||||
|
// and whether the values are considered a guaranteed API.
|
||||||
|
// The value should be a CamelCase string.
|
||||||
|
// This field may not be empty.
|
||||||
|
// +required
|
||||||
|
// +kubebuilder:validation:Required
|
||||||
|
// +kubebuilder:validation:MaxLength=1024
|
||||||
|
// +kubebuilder:validation:MinLength=1
|
||||||
|
// +kubebuilder:validation:Pattern=`^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$`
|
||||||
|
optional string reason = 5;
|
||||||
|
|
||||||
|
// message is a human readable message indicating details about the transition.
|
||||||
|
// This may be an empty string.
|
||||||
|
// +required
|
||||||
|
// +kubebuilder:validation:Required
|
||||||
|
// +kubebuilder:validation:MaxLength=32768
|
||||||
|
optional string message = 6;
|
||||||
|
}
|
||||||
|
|
||||||
// CreateOptions may be provided when creating an API object.
|
// CreateOptions may be provided when creating an API object.
|
||||||
message CreateOptions {
|
message CreateOptions {
|
||||||
// When present, indicates that modifications should not be
|
// When present, indicates that modifications should not be
|
||||||
@ -232,10 +299,12 @@ message FieldsV1 {
|
|||||||
|
|
||||||
// GetOptions is the standard query options to the standard REST get call.
|
// GetOptions is the standard query options to the standard REST get call.
|
||||||
message GetOptions {
|
message GetOptions {
|
||||||
// When specified:
|
// resourceVersion sets a constraint on what resource versions a request may be served from.
|
||||||
// - if unset, then the result is returned from remote storage based on quorum-read flag;
|
// See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for
|
||||||
// - if it's 0, then we simply return what we currently have in cache, no guarantee;
|
// details.
|
||||||
// - if set to non zero, then the result is at least as fresh as given rv.
|
//
|
||||||
|
// Defaults to unset
|
||||||
|
// +optional
|
||||||
optional string resourceVersion = 1;
|
optional string resourceVersion = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -421,15 +490,24 @@ message ListOptions {
|
|||||||
// +optional
|
// +optional
|
||||||
optional bool allowWatchBookmarks = 9;
|
optional bool allowWatchBookmarks = 9;
|
||||||
|
|
||||||
// When specified with a watch call, shows changes that occur after that particular version of a resource.
|
// resourceVersion sets a constraint on what resource versions a request may be served from.
|
||||||
// Defaults to changes from the beginning of history.
|
// See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for
|
||||||
// When specified for list:
|
// details.
|
||||||
// - if unset, then the result is returned from remote storage based on quorum-read flag;
|
//
|
||||||
// - if it's 0, then we simply return what we currently have in cache, no guarantee;
|
// Defaults to unset
|
||||||
// - if set to non zero, then the result is at least as fresh as given rv.
|
|
||||||
// +optional
|
// +optional
|
||||||
optional string resourceVersion = 4;
|
optional string resourceVersion = 4;
|
||||||
|
|
||||||
|
// resourceVersionMatch determines how resourceVersion is applied to list calls.
|
||||||
|
// It is highly recommended that resourceVersionMatch be set for list calls where
|
||||||
|
// resourceVersion is set
|
||||||
|
// See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for
|
||||||
|
// details.
|
||||||
|
//
|
||||||
|
// Defaults to unset
|
||||||
|
// +optional
|
||||||
|
optional string resourceVersionMatch = 10;
|
||||||
|
|
||||||
// Timeout for the list/watch call.
|
// Timeout for the list/watch call.
|
||||||
// This limits the duration of the call, regardless of any activity or inactivity.
|
// This limits the duration of the call, regardless of any activity or inactivity.
|
||||||
// +optional
|
// +optional
|
||||||
|
4
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/meta.go
generated
vendored
4
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/meta.go
generated
vendored
@ -156,7 +156,9 @@ func (meta *ObjectMeta) GetDeletionTimestamp() *Time { return meta.DeletionTimes
|
|||||||
func (meta *ObjectMeta) SetDeletionTimestamp(deletionTimestamp *Time) {
|
func (meta *ObjectMeta) SetDeletionTimestamp(deletionTimestamp *Time) {
|
||||||
meta.DeletionTimestamp = deletionTimestamp
|
meta.DeletionTimestamp = deletionTimestamp
|
||||||
}
|
}
|
||||||
func (meta *ObjectMeta) GetDeletionGracePeriodSeconds() *int64 { return meta.DeletionGracePeriodSeconds }
|
func (meta *ObjectMeta) GetDeletionGracePeriodSeconds() *int64 {
|
||||||
|
return meta.DeletionGracePeriodSeconds
|
||||||
|
}
|
||||||
func (meta *ObjectMeta) SetDeletionGracePeriodSeconds(deletionGracePeriodSeconds *int64) {
|
func (meta *ObjectMeta) SetDeletionGracePeriodSeconds(deletionGracePeriodSeconds *int64) {
|
||||||
meta.DeletionGracePeriodSeconds = deletionGracePeriodSeconds
|
meta.DeletionGracePeriodSeconds = deletionGracePeriodSeconds
|
||||||
}
|
}
|
||||||
|
115
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go
generated
vendored
115
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go
generated
vendored
@ -355,14 +355,23 @@ type ListOptions struct {
|
|||||||
// +optional
|
// +optional
|
||||||
AllowWatchBookmarks bool `json:"allowWatchBookmarks,omitempty" protobuf:"varint,9,opt,name=allowWatchBookmarks"`
|
AllowWatchBookmarks bool `json:"allowWatchBookmarks,omitempty" protobuf:"varint,9,opt,name=allowWatchBookmarks"`
|
||||||
|
|
||||||
// When specified with a watch call, shows changes that occur after that particular version of a resource.
|
// resourceVersion sets a constraint on what resource versions a request may be served from.
|
||||||
// Defaults to changes from the beginning of history.
|
// See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for
|
||||||
// When specified for list:
|
// details.
|
||||||
// - if unset, then the result is returned from remote storage based on quorum-read flag;
|
//
|
||||||
// - if it's 0, then we simply return what we currently have in cache, no guarantee;
|
// Defaults to unset
|
||||||
// - if set to non zero, then the result is at least as fresh as given rv.
|
|
||||||
// +optional
|
// +optional
|
||||||
ResourceVersion string `json:"resourceVersion,omitempty" protobuf:"bytes,4,opt,name=resourceVersion"`
|
ResourceVersion string `json:"resourceVersion,omitempty" protobuf:"bytes,4,opt,name=resourceVersion"`
|
||||||
|
|
||||||
|
// resourceVersionMatch determines how resourceVersion is applied to list calls.
|
||||||
|
// It is highly recommended that resourceVersionMatch be set for list calls where
|
||||||
|
// resourceVersion is set
|
||||||
|
// See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for
|
||||||
|
// details.
|
||||||
|
//
|
||||||
|
// Defaults to unset
|
||||||
|
// +optional
|
||||||
|
ResourceVersionMatch ResourceVersionMatch `json:"resourceVersionMatch,omitempty" protobuf:"bytes,10,opt,name=resourceVersionMatch,casttype=ResourceVersionMatch"`
|
||||||
// Timeout for the list/watch call.
|
// Timeout for the list/watch call.
|
||||||
// This limits the duration of the call, regardless of any activity or inactivity.
|
// This limits the duration of the call, regardless of any activity or inactivity.
|
||||||
// +optional
|
// +optional
|
||||||
@ -402,6 +411,25 @@ type ListOptions struct {
|
|||||||
Continue string `json:"continue,omitempty" protobuf:"bytes,8,opt,name=continue"`
|
Continue string `json:"continue,omitempty" protobuf:"bytes,8,opt,name=continue"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// resourceVersionMatch specifies how the resourceVersion parameter is applied. resourceVersionMatch
|
||||||
|
// may only be set if resourceVersion is also set.
|
||||||
|
//
|
||||||
|
// "NotOlderThan" matches data at least as new as the provided resourceVersion.
|
||||||
|
// "Exact" matches data at the exact resourceVersion provided.
|
||||||
|
//
|
||||||
|
// See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for
|
||||||
|
// details.
|
||||||
|
type ResourceVersionMatch string
|
||||||
|
|
||||||
|
const (
|
||||||
|
// ResourceVersionMatchNotOlderThan matches data at least as new as the provided
|
||||||
|
// resourceVersion.
|
||||||
|
ResourceVersionMatchNotOlderThan ResourceVersionMatch = "NotOlderThan"
|
||||||
|
// ResourceVersionMatchExact matches data at the exact resourceVersion
|
||||||
|
// provided.
|
||||||
|
ResourceVersionMatchExact ResourceVersionMatch = "Exact"
|
||||||
|
)
|
||||||
|
|
||||||
// +k8s:conversion-gen:explicit-from=net/url.Values
|
// +k8s:conversion-gen:explicit-from=net/url.Values
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||||
|
|
||||||
@ -423,10 +451,12 @@ type ExportOptions struct {
|
|||||||
// GetOptions is the standard query options to the standard REST get call.
|
// GetOptions is the standard query options to the standard REST get call.
|
||||||
type GetOptions struct {
|
type GetOptions struct {
|
||||||
TypeMeta `json:",inline"`
|
TypeMeta `json:",inline"`
|
||||||
// When specified:
|
// resourceVersion sets a constraint on what resource versions a request may be served from.
|
||||||
// - if unset, then the result is returned from remote storage based on quorum-read flag;
|
// See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for
|
||||||
// - if it's 0, then we simply return what we currently have in cache, no guarantee;
|
// details.
|
||||||
// - if set to non zero, then the result is at least as fresh as given rv.
|
//
|
||||||
|
// Defaults to unset
|
||||||
|
// +optional
|
||||||
ResourceVersion string `json:"resourceVersion,omitempty" protobuf:"bytes,1,opt,name=resourceVersion"`
|
ResourceVersion string `json:"resourceVersion,omitempty" protobuf:"bytes,1,opt,name=resourceVersion"`
|
||||||
// +k8s:deprecated=includeUninitialized,protobuf=2
|
// +k8s:deprecated=includeUninitialized,protobuf=2
|
||||||
}
|
}
|
||||||
@ -873,6 +903,9 @@ const (
|
|||||||
// FieldManagerConflict is used to report when another client claims to manage this field,
|
// FieldManagerConflict is used to report when another client claims to manage this field,
|
||||||
// It should only be returned for a request using server-side apply.
|
// It should only be returned for a request using server-side apply.
|
||||||
CauseTypeFieldManagerConflict CauseType = "FieldManagerConflict"
|
CauseTypeFieldManagerConflict CauseType = "FieldManagerConflict"
|
||||||
|
// CauseTypeResourceVersionTooLarge is used to report that the requested resource version
|
||||||
|
// is newer than the data observed by the API server, so the request cannot be served.
|
||||||
|
CauseTypeResourceVersionTooLarge CauseType = "ResourceVersionTooLarge"
|
||||||
)
|
)
|
||||||
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||||
@ -1316,3 +1349,65 @@ type PartialObjectMetadataList struct {
|
|||||||
// items contains each of the included items.
|
// items contains each of the included items.
|
||||||
Items []PartialObjectMetadata `json:"items" protobuf:"bytes,2,rep,name=items"`
|
Items []PartialObjectMetadata `json:"items" protobuf:"bytes,2,rep,name=items"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Condition contains details for one aspect of the current state of this API Resource.
|
||||||
|
// ---
|
||||||
|
// This struct is intended for direct use as an array at the field path .status.conditions. For example,
|
||||||
|
// type FooStatus struct{
|
||||||
|
// // Represents the observations of a foo's current state.
|
||||||
|
// // Known .status.conditions.type are: "Available", "Progressing", and "Degraded"
|
||||||
|
// // +patchMergeKey=type
|
||||||
|
// // +patchStrategy=merge
|
||||||
|
// // +listType=map
|
||||||
|
// // +listMapKey=type
|
||||||
|
// Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
|
||||||
|
//
|
||||||
|
// // other fields
|
||||||
|
// }
|
||||||
|
type Condition struct {
|
||||||
|
// type of condition in CamelCase or in foo.example.com/CamelCase.
|
||||||
|
// ---
|
||||||
|
// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
|
||||||
|
// useful (see .node.status.conditions), the ability to deconflict is important.
|
||||||
|
// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
|
||||||
|
// +required
|
||||||
|
// +kubebuilder:validation:Required
|
||||||
|
// +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`
|
||||||
|
// +kubebuilder:validation:MaxLength=316
|
||||||
|
Type string `json:"type" protobuf:"bytes,1,opt,name=type"`
|
||||||
|
// status of the condition, one of True, False, Unknown.
|
||||||
|
// +required
|
||||||
|
// +kubebuilder:validation:Required
|
||||||
|
// +kubebuilder:validation:Enum=True;False;Unknown
|
||||||
|
Status ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status"`
|
||||||
|
// observedGeneration represents the .metadata.generation that the condition was set based upon.
|
||||||
|
// For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
||||||
|
// with respect to the current state of the instance.
|
||||||
|
// +optional
|
||||||
|
// +kubebuilder:validation:Minimum=0
|
||||||
|
ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,3,opt,name=observedGeneration"`
|
||||||
|
// lastTransitionTime is the last time the condition transitioned from one status to another.
|
||||||
|
// This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
|
||||||
|
// +required
|
||||||
|
// +kubebuilder:validation:Required
|
||||||
|
// +kubebuilder:validation:Type=string
|
||||||
|
// +kubebuilder:validation:Format=date-time
|
||||||
|
LastTransitionTime Time `json:"lastTransitionTime" protobuf:"bytes,4,opt,name=lastTransitionTime"`
|
||||||
|
// reason contains a programmatic identifier indicating the reason for the condition's last transition.
|
||||||
|
// Producers of specific condition types may define expected values and meanings for this field,
|
||||||
|
// and whether the values are considered a guaranteed API.
|
||||||
|
// The value should be a CamelCase string.
|
||||||
|
// This field may not be empty.
|
||||||
|
// +required
|
||||||
|
// +kubebuilder:validation:Required
|
||||||
|
// +kubebuilder:validation:MaxLength=1024
|
||||||
|
// +kubebuilder:validation:MinLength=1
|
||||||
|
// +kubebuilder:validation:Pattern=`^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$`
|
||||||
|
Reason string `json:"reason" protobuf:"bytes,5,opt,name=reason"`
|
||||||
|
// message is a human readable message indicating details about the transition.
|
||||||
|
// This may be an empty string.
|
||||||
|
// +required
|
||||||
|
// +kubebuilder:validation:Required
|
||||||
|
// +kubebuilder:validation:MaxLength=32768
|
||||||
|
Message string `json:"message" protobuf:"bytes,6,opt,name=message"`
|
||||||
|
}
|
||||||
|
35
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go
generated
vendored
35
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go
generated
vendored
@ -86,6 +86,20 @@ func (APIVersions) SwaggerDoc() map[string]string {
|
|||||||
return map_APIVersions
|
return map_APIVersions
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var map_Condition = map[string]string{
|
||||||
|
"": "Condition contains details for one aspect of the current state of this API Resource.",
|
||||||
|
"type": "type of condition in CamelCase or in foo.example.com/CamelCase.",
|
||||||
|
"status": "status of the condition, one of True, False, Unknown.",
|
||||||
|
"observedGeneration": "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.",
|
||||||
|
"lastTransitionTime": "lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.",
|
||||||
|
"reason": "reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.",
|
||||||
|
"message": "message is a human readable message indicating details about the transition. This may be an empty string.",
|
||||||
|
}
|
||||||
|
|
||||||
|
func (Condition) SwaggerDoc() map[string]string {
|
||||||
|
return map_Condition
|
||||||
|
}
|
||||||
|
|
||||||
var map_CreateOptions = map[string]string{
|
var map_CreateOptions = map[string]string{
|
||||||
"": "CreateOptions may be provided when creating an API object.",
|
"": "CreateOptions may be provided when creating an API object.",
|
||||||
"dryRun": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed",
|
"dryRun": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed",
|
||||||
@ -129,7 +143,7 @@ func (FieldsV1) SwaggerDoc() map[string]string {
|
|||||||
|
|
||||||
var map_GetOptions = map[string]string{
|
var map_GetOptions = map[string]string{
|
||||||
"": "GetOptions is the standard query options to the standard REST get call.",
|
"": "GetOptions is the standard query options to the standard REST get call.",
|
||||||
"resourceVersion": "When specified: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.",
|
"resourceVersion": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset",
|
||||||
}
|
}
|
||||||
|
|
||||||
func (GetOptions) SwaggerDoc() map[string]string {
|
func (GetOptions) SwaggerDoc() map[string]string {
|
||||||
@ -190,15 +204,16 @@ func (ListMeta) SwaggerDoc() map[string]string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var map_ListOptions = map[string]string{
|
var map_ListOptions = map[string]string{
|
||||||
"": "ListOptions is the query options to a standard REST list call.",
|
"": "ListOptions is the query options to a standard REST list call.",
|
||||||
"labelSelector": "A selector to restrict the list of returned objects by their labels. Defaults to everything.",
|
"labelSelector": "A selector to restrict the list of returned objects by their labels. Defaults to everything.",
|
||||||
"fieldSelector": "A selector to restrict the list of returned objects by their fields. Defaults to everything.",
|
"fieldSelector": "A selector to restrict the list of returned objects by their fields. Defaults to everything.",
|
||||||
"watch": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.",
|
"watch": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.",
|
||||||
"allowWatchBookmarks": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.",
|
"allowWatchBookmarks": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.",
|
||||||
"resourceVersion": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.",
|
"resourceVersion": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset",
|
||||||
"timeoutSeconds": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.",
|
"resourceVersionMatch": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset",
|
||||||
"limit": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.",
|
"timeoutSeconds": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.",
|
||||||
"continue": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.",
|
"limit": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.",
|
||||||
|
"continue": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.",
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ListOptions) SwaggerDoc() map[string]string {
|
func (ListOptions) SwaggerDoc() map[string]string {
|
||||||
|
12
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.conversion.go
generated
vendored
12
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.conversion.go
generated
vendored
@ -145,6 +145,11 @@ func RegisterConversions(s *runtime.Scheme) error {
|
|||||||
}); err != nil {
|
}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err := s.AddConversionFunc((*[]string)(nil), (*ResourceVersionMatch)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||||
|
return Convert_Slice_string_To_v1_ResourceVersionMatch(a.(*[]string), b.(*ResourceVersionMatch), scope)
|
||||||
|
}); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err := s.AddConversionFunc((*[]string)(nil), (*Time)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
if err := s.AddConversionFunc((*[]string)(nil), (*Time)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||||
return Convert_Slice_string_To_v1_Time(a.(*[]string), b.(*Time), scope)
|
return Convert_Slice_string_To_v1_Time(a.(*[]string), b.(*Time), scope)
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
@ -415,6 +420,13 @@ func autoConvert_url_Values_To_v1_ListOptions(in *url.Values, out *ListOptions,
|
|||||||
} else {
|
} else {
|
||||||
out.ResourceVersion = ""
|
out.ResourceVersion = ""
|
||||||
}
|
}
|
||||||
|
if values, ok := map[string][]string(*in)["resourceVersionMatch"]; ok && len(values) > 0 {
|
||||||
|
if err := Convert_Slice_string_To_v1_ResourceVersionMatch(&values, &out.ResourceVersionMatch, s); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
out.ResourceVersionMatch = ""
|
||||||
|
}
|
||||||
if values, ok := map[string][]string(*in)["timeoutSeconds"]; ok && len(values) > 0 {
|
if values, ok := map[string][]string(*in)["timeoutSeconds"]; ok && len(values) > 0 {
|
||||||
if err := runtime.Convert_Slice_string_To_Pointer_int64(&values, &out.TimeoutSeconds, s); err != nil {
|
if err := runtime.Convert_Slice_string_To_Pointer_int64(&values, &out.TimeoutSeconds, s); err != nil {
|
||||||
return err
|
return err
|
||||||
|
17
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.deepcopy.go
generated
vendored
17
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.deepcopy.go
generated
vendored
@ -191,6 +191,23 @@ func (in *APIVersions) DeepCopyObject() runtime.Object {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *Condition) DeepCopyInto(out *Condition) {
|
||||||
|
*out = *in
|
||||||
|
in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition.
|
||||||
|
func (in *Condition) DeepCopy() *Condition {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(Condition)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
func (in *CreateOptions) DeepCopyInto(out *CreateOptions) {
|
func (in *CreateOptions) DeepCopyInto(out *CreateOptions) {
|
||||||
*out = *in
|
*out = *in
|
||||||
|
16
vendor/k8s.io/apimachinery/pkg/fields/selector.go
generated
vendored
16
vendor/k8s.io/apimachinery/pkg/fields/selector.go
generated
vendored
@ -57,13 +57,15 @@ type Selector interface {
|
|||||||
|
|
||||||
type nothingSelector struct{}
|
type nothingSelector struct{}
|
||||||
|
|
||||||
func (n nothingSelector) Matches(_ Fields) bool { return false }
|
func (n nothingSelector) Matches(_ Fields) bool { return false }
|
||||||
func (n nothingSelector) Empty() bool { return false }
|
func (n nothingSelector) Empty() bool { return false }
|
||||||
func (n nothingSelector) String() string { return "" }
|
func (n nothingSelector) String() string { return "" }
|
||||||
func (n nothingSelector) Requirements() Requirements { return nil }
|
func (n nothingSelector) Requirements() Requirements { return nil }
|
||||||
func (n nothingSelector) DeepCopySelector() Selector { return n }
|
func (n nothingSelector) DeepCopySelector() Selector { return n }
|
||||||
func (n nothingSelector) RequiresExactMatch(field string) (value string, found bool) { return "", false }
|
func (n nothingSelector) RequiresExactMatch(field string) (value string, found bool) {
|
||||||
func (n nothingSelector) Transform(fn TransformFunc) (Selector, error) { return n, nil }
|
return "", false
|
||||||
|
}
|
||||||
|
func (n nothingSelector) Transform(fn TransformFunc) (Selector, error) { return n, nil }
|
||||||
|
|
||||||
// Nothing returns a selector that matches no fields
|
// Nothing returns a selector that matches no fields
|
||||||
func Nothing() Selector {
|
func Nothing() Selector {
|
||||||
|
16
vendor/k8s.io/apimachinery/pkg/labels/selector.go
generated
vendored
16
vendor/k8s.io/apimachinery/pkg/labels/selector.go
generated
vendored
@ -68,13 +68,15 @@ func Everything() Selector {
|
|||||||
|
|
||||||
type nothingSelector struct{}
|
type nothingSelector struct{}
|
||||||
|
|
||||||
func (n nothingSelector) Matches(_ Labels) bool { return false }
|
func (n nothingSelector) Matches(_ Labels) bool { return false }
|
||||||
func (n nothingSelector) Empty() bool { return false }
|
func (n nothingSelector) Empty() bool { return false }
|
||||||
func (n nothingSelector) String() string { return "" }
|
func (n nothingSelector) String() string { return "" }
|
||||||
func (n nothingSelector) Add(_ ...Requirement) Selector { return n }
|
func (n nothingSelector) Add(_ ...Requirement) Selector { return n }
|
||||||
func (n nothingSelector) Requirements() (Requirements, bool) { return nil, false }
|
func (n nothingSelector) Requirements() (Requirements, bool) { return nil, false }
|
||||||
func (n nothingSelector) DeepCopySelector() Selector { return n }
|
func (n nothingSelector) DeepCopySelector() Selector { return n }
|
||||||
func (n nothingSelector) RequiresExactMatch(label string) (value string, found bool) { return "", false }
|
func (n nothingSelector) RequiresExactMatch(label string) (value string, found bool) {
|
||||||
|
return "", false
|
||||||
|
}
|
||||||
|
|
||||||
// Nothing returns a selector that matches no labels
|
// Nothing returns a selector that matches no labels
|
||||||
func Nothing() Selector {
|
func Nothing() Selector {
|
||||||
|
8
vendor/k8s.io/apimachinery/pkg/runtime/schema/group_version.go
generated
vendored
8
vendor/k8s.io/apimachinery/pkg/runtime/schema/group_version.go
generated
vendored
@ -243,10 +243,10 @@ func (gv GroupVersion) WithResource(resource string) GroupVersionResource {
|
|||||||
type GroupVersions []GroupVersion
|
type GroupVersions []GroupVersion
|
||||||
|
|
||||||
// Identifier implements runtime.GroupVersioner interface.
|
// Identifier implements runtime.GroupVersioner interface.
|
||||||
func (gv GroupVersions) Identifier() string {
|
func (gvs GroupVersions) Identifier() string {
|
||||||
groupVersions := make([]string, 0, len(gv))
|
groupVersions := make([]string, 0, len(gvs))
|
||||||
for i := range gv {
|
for i := range gvs {
|
||||||
groupVersions = append(groupVersions, gv[i].String())
|
groupVersions = append(groupVersions, gvs[i].String())
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("[%s]", strings.Join(groupVersions, ","))
|
return fmt.Sprintf("[%s]", strings.Join(groupVersions, ","))
|
||||||
}
|
}
|
||||||
|
238
vendor/k8s.io/apimachinery/pkg/util/net/http.go
generated
vendored
238
vendor/k8s.io/apimachinery/pkg/util/net/http.go
generated
vendored
@ -21,15 +21,20 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"mime"
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
|
"regexp"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
"unicode"
|
||||||
|
"unicode/utf8"
|
||||||
|
|
||||||
"golang.org/x/net/http2"
|
"golang.org/x/net/http2"
|
||||||
"k8s.io/klog/v2"
|
"k8s.io/klog/v2"
|
||||||
@ -78,6 +83,8 @@ func IsProbableEOF(err error) bool {
|
|||||||
switch {
|
switch {
|
||||||
case err == io.EOF:
|
case err == io.EOF:
|
||||||
return true
|
return true
|
||||||
|
case err == io.ErrUnexpectedEOF:
|
||||||
|
return true
|
||||||
case msg == "http: can't write HTTP request on broken connection":
|
case msg == "http: can't write HTTP request on broken connection":
|
||||||
return true
|
return true
|
||||||
case strings.Contains(msg, "http2: server sent GOAWAY and closed the connection"):
|
case strings.Contains(msg, "http2: server sent GOAWAY and closed the connection"):
|
||||||
@ -446,7 +453,7 @@ redirectLoop:
|
|||||||
|
|
||||||
// Only follow redirects to the same host. Otherwise, propagate the redirect response back.
|
// Only follow redirects to the same host. Otherwise, propagate the redirect response back.
|
||||||
if requireSameHostRedirects && location.Hostname() != originalLocation.Hostname() {
|
if requireSameHostRedirects && location.Hostname() != originalLocation.Hostname() {
|
||||||
break redirectLoop
|
return nil, nil, fmt.Errorf("hostname mismatch: expected %s, found %s", originalLocation.Hostname(), location.Hostname())
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reset the connection.
|
// Reset the connection.
|
||||||
@ -482,3 +489,232 @@ func CloneHeader(in http.Header) http.Header {
|
|||||||
}
|
}
|
||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WarningHeader contains a single RFC2616 14.46 warnings header
|
||||||
|
type WarningHeader struct {
|
||||||
|
// Codeindicates the type of warning. 299 is a miscellaneous persistent warning
|
||||||
|
Code int
|
||||||
|
// Agent contains the name or pseudonym of the server adding the Warning header.
|
||||||
|
// A single "-" is recommended when agent is unknown.
|
||||||
|
Agent string
|
||||||
|
// Warning text
|
||||||
|
Text string
|
||||||
|
}
|
||||||
|
|
||||||
|
// ParseWarningHeaders extract RFC2616 14.46 warnings headers from the specified set of header values.
|
||||||
|
// Multiple comma-separated warnings per header are supported.
|
||||||
|
// If errors are encountered on a header, the remainder of that header are skipped and subsequent headers are parsed.
|
||||||
|
// Returns successfully parsed warnings and any errors encountered.
|
||||||
|
func ParseWarningHeaders(headers []string) ([]WarningHeader, []error) {
|
||||||
|
var (
|
||||||
|
results []WarningHeader
|
||||||
|
errs []error
|
||||||
|
)
|
||||||
|
for _, header := range headers {
|
||||||
|
for len(header) > 0 {
|
||||||
|
result, remainder, err := ParseWarningHeader(header)
|
||||||
|
if err != nil {
|
||||||
|
errs = append(errs, err)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
results = append(results, result)
|
||||||
|
header = remainder
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return results, errs
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
codeMatcher = regexp.MustCompile(`^[0-9]{3}$`)
|
||||||
|
wordDecoder = &mime.WordDecoder{}
|
||||||
|
)
|
||||||
|
|
||||||
|
// ParseWarningHeader extracts one RFC2616 14.46 warning from the specified header,
|
||||||
|
// returning an error if the header does not contain a correctly formatted warning.
|
||||||
|
// Any remaining content in the header is returned.
|
||||||
|
func ParseWarningHeader(header string) (result WarningHeader, remainder string, err error) {
|
||||||
|
// https://tools.ietf.org/html/rfc2616#section-14.46
|
||||||
|
// updated by
|
||||||
|
// https://tools.ietf.org/html/rfc7234#section-5.5
|
||||||
|
// https://tools.ietf.org/html/rfc7234#appendix-A
|
||||||
|
// Some requirements regarding production and processing of the Warning
|
||||||
|
// header fields have been relaxed, as it is not widely implemented.
|
||||||
|
// Furthermore, the Warning header field no longer uses RFC 2047
|
||||||
|
// encoding, nor does it allow multiple languages, as these aspects were
|
||||||
|
// not implemented.
|
||||||
|
//
|
||||||
|
// Format is one of:
|
||||||
|
// warn-code warn-agent "warn-text"
|
||||||
|
// warn-code warn-agent "warn-text" "warn-date"
|
||||||
|
//
|
||||||
|
// warn-code is a three digit number
|
||||||
|
// warn-agent is unquoted and contains no spaces
|
||||||
|
// warn-text is quoted with backslash escaping (RFC2047-encoded according to RFC2616, not encoded according to RFC7234)
|
||||||
|
// warn-date is optional, quoted, and in HTTP-date format (no embedded or escaped quotes)
|
||||||
|
//
|
||||||
|
// additional warnings can optionally be included in the same header by comma-separating them:
|
||||||
|
// warn-code warn-agent "warn-text" "warn-date"[, warn-code warn-agent "warn-text" "warn-date", ...]
|
||||||
|
|
||||||
|
// tolerate leading whitespace
|
||||||
|
header = strings.TrimSpace(header)
|
||||||
|
|
||||||
|
parts := strings.SplitN(header, " ", 3)
|
||||||
|
if len(parts) != 3 {
|
||||||
|
return WarningHeader{}, "", errors.New("invalid warning header: fewer than 3 segments")
|
||||||
|
}
|
||||||
|
code, agent, textDateRemainder := parts[0], parts[1], parts[2]
|
||||||
|
|
||||||
|
// verify code format
|
||||||
|
if !codeMatcher.Match([]byte(code)) {
|
||||||
|
return WarningHeader{}, "", errors.New("invalid warning header: code segment is not 3 digits between 100-299")
|
||||||
|
}
|
||||||
|
codeInt, _ := strconv.ParseInt(code, 10, 64)
|
||||||
|
|
||||||
|
// verify agent presence
|
||||||
|
if len(agent) == 0 {
|
||||||
|
return WarningHeader{}, "", errors.New("invalid warning header: empty agent segment")
|
||||||
|
}
|
||||||
|
if !utf8.ValidString(agent) || hasAnyRunes(agent, unicode.IsControl) {
|
||||||
|
return WarningHeader{}, "", errors.New("invalid warning header: invalid agent")
|
||||||
|
}
|
||||||
|
|
||||||
|
// verify textDateRemainder presence
|
||||||
|
if len(textDateRemainder) == 0 {
|
||||||
|
return WarningHeader{}, "", errors.New("invalid warning header: empty text segment")
|
||||||
|
}
|
||||||
|
|
||||||
|
// extract text
|
||||||
|
text, dateAndRemainder, err := parseQuotedString(textDateRemainder)
|
||||||
|
if err != nil {
|
||||||
|
return WarningHeader{}, "", fmt.Errorf("invalid warning header: %v", err)
|
||||||
|
}
|
||||||
|
// tolerate RFC2047-encoded text from warnings produced according to RFC2616
|
||||||
|
if decodedText, err := wordDecoder.DecodeHeader(text); err == nil {
|
||||||
|
text = decodedText
|
||||||
|
}
|
||||||
|
if !utf8.ValidString(text) || hasAnyRunes(text, unicode.IsControl) {
|
||||||
|
return WarningHeader{}, "", errors.New("invalid warning header: invalid text")
|
||||||
|
}
|
||||||
|
result = WarningHeader{Code: int(codeInt), Agent: agent, Text: text}
|
||||||
|
|
||||||
|
if len(dateAndRemainder) > 0 {
|
||||||
|
if dateAndRemainder[0] == '"' {
|
||||||
|
// consume date
|
||||||
|
foundEndQuote := false
|
||||||
|
for i := 1; i < len(dateAndRemainder); i++ {
|
||||||
|
if dateAndRemainder[i] == '"' {
|
||||||
|
foundEndQuote = true
|
||||||
|
remainder = strings.TrimSpace(dateAndRemainder[i+1:])
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !foundEndQuote {
|
||||||
|
return WarningHeader{}, "", errors.New("invalid warning header: unterminated date segment")
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
remainder = dateAndRemainder
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if len(remainder) > 0 {
|
||||||
|
if remainder[0] == ',' {
|
||||||
|
// consume comma if present
|
||||||
|
remainder = strings.TrimSpace(remainder[1:])
|
||||||
|
} else {
|
||||||
|
return WarningHeader{}, "", errors.New("invalid warning header: unexpected token after warn-date")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result, remainder, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func parseQuotedString(quotedString string) (string, string, error) {
|
||||||
|
if len(quotedString) == 0 {
|
||||||
|
return "", "", errors.New("invalid quoted string: 0-length")
|
||||||
|
}
|
||||||
|
|
||||||
|
if quotedString[0] != '"' {
|
||||||
|
return "", "", errors.New("invalid quoted string: missing initial quote")
|
||||||
|
}
|
||||||
|
|
||||||
|
quotedString = quotedString[1:]
|
||||||
|
var remainder string
|
||||||
|
escaping := false
|
||||||
|
closedQuote := false
|
||||||
|
result := &bytes.Buffer{}
|
||||||
|
loop:
|
||||||
|
for i := 0; i < len(quotedString); i++ {
|
||||||
|
b := quotedString[i]
|
||||||
|
switch b {
|
||||||
|
case '"':
|
||||||
|
if escaping {
|
||||||
|
result.WriteByte(b)
|
||||||
|
escaping = false
|
||||||
|
} else {
|
||||||
|
closedQuote = true
|
||||||
|
remainder = strings.TrimSpace(quotedString[i+1:])
|
||||||
|
break loop
|
||||||
|
}
|
||||||
|
case '\\':
|
||||||
|
if escaping {
|
||||||
|
result.WriteByte(b)
|
||||||
|
escaping = false
|
||||||
|
} else {
|
||||||
|
escaping = true
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
result.WriteByte(b)
|
||||||
|
escaping = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if !closedQuote {
|
||||||
|
return "", "", errors.New("invalid quoted string: missing closing quote")
|
||||||
|
}
|
||||||
|
return result.String(), remainder, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewWarningHeader(code int, agent, text string) (string, error) {
|
||||||
|
if code < 0 || code > 999 {
|
||||||
|
return "", errors.New("code must be between 0 and 999")
|
||||||
|
}
|
||||||
|
if len(agent) == 0 {
|
||||||
|
agent = "-"
|
||||||
|
} else if !utf8.ValidString(agent) || strings.ContainsAny(agent, `\"`) || hasAnyRunes(agent, unicode.IsSpace, unicode.IsControl) {
|
||||||
|
return "", errors.New("agent must be valid UTF-8 and must not contain spaces, quotes, backslashes, or control characters")
|
||||||
|
}
|
||||||
|
if !utf8.ValidString(text) || hasAnyRunes(text, unicode.IsControl) {
|
||||||
|
return "", errors.New("text must be valid UTF-8 and must not contain control characters")
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("%03d %s %s", code, agent, makeQuotedString(text)), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func hasAnyRunes(s string, runeCheckers ...func(rune) bool) bool {
|
||||||
|
for _, r := range s {
|
||||||
|
for _, checker := range runeCheckers {
|
||||||
|
if checker(r) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func makeQuotedString(s string) string {
|
||||||
|
result := &bytes.Buffer{}
|
||||||
|
// opening quote
|
||||||
|
result.WriteRune('"')
|
||||||
|
for _, c := range s {
|
||||||
|
switch c {
|
||||||
|
case '"', '\\':
|
||||||
|
// escape " and \
|
||||||
|
result.WriteRune('\\')
|
||||||
|
result.WriteRune(c)
|
||||||
|
default:
|
||||||
|
// write everything else as-is
|
||||||
|
result.WriteRune(c)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// closing quote
|
||||||
|
result.WriteRune('"')
|
||||||
|
return result.String()
|
||||||
|
}
|
||||||
|
5
vendor/k8s.io/apimachinery/pkg/util/validation/validation.go
generated
vendored
5
vendor/k8s.io/apimachinery/pkg/util/validation/validation.go
generated
vendored
@ -106,6 +106,11 @@ func IsFullyQualifiedDomainName(fldPath *field.Path, name string) field.ErrorLis
|
|||||||
if len(strings.Split(name, ".")) < 2 {
|
if len(strings.Split(name, ".")) < 2 {
|
||||||
return append(allErrors, field.Invalid(fldPath, name, "should be a domain with at least two segments separated by dots"))
|
return append(allErrors, field.Invalid(fldPath, name, "should be a domain with at least two segments separated by dots"))
|
||||||
}
|
}
|
||||||
|
for _, label := range strings.Split(name, ".") {
|
||||||
|
if errs := IsDNS1123Label(label); len(errs) > 0 {
|
||||||
|
return append(allErrors, field.Invalid(fldPath, label, strings.Join(errs, ",")))
|
||||||
|
}
|
||||||
|
}
|
||||||
return allErrors
|
return allErrors
|
||||||
}
|
}
|
||||||
|
|
||||||
|
43
vendor/k8s.io/apiserver/go.mod
generated
vendored
43
vendor/k8s.io/apiserver/go.mod
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module k8s.io/apiserver
|
module k8s.io/apiserver
|
||||||
|
|
||||||
go 1.13
|
go 1.15
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/coreos/go-oidc v2.1.0+incompatible
|
github.com/coreos/go-oidc v2.1.0+incompatible
|
||||||
@ -12,7 +12,7 @@ require (
|
|||||||
github.com/davecgh/go-spew v1.1.1
|
github.com/davecgh/go-spew v1.1.1
|
||||||
github.com/dustin/go-humanize v1.0.0 // indirect
|
github.com/dustin/go-humanize v1.0.0 // indirect
|
||||||
github.com/emicklei/go-restful v2.9.5+incompatible
|
github.com/emicklei/go-restful v2.9.5+incompatible
|
||||||
github.com/evanphx/json-patch v4.2.0+incompatible
|
github.com/evanphx/json-patch v0.0.0-20190815234213-e83c0a1c26c8
|
||||||
github.com/go-openapi/jsonreference v0.19.3 // indirect
|
github.com/go-openapi/jsonreference v0.19.3 // indirect
|
||||||
github.com/go-openapi/spec v0.19.3
|
github.com/go-openapi/spec v0.19.3
|
||||||
github.com/gogo/protobuf v1.3.1
|
github.com/gogo/protobuf v1.3.1
|
||||||
@ -30,35 +30,32 @@ require (
|
|||||||
github.com/spf13/pflag v1.0.5
|
github.com/spf13/pflag v1.0.5
|
||||||
github.com/stretchr/testify v1.4.0
|
github.com/stretchr/testify v1.4.0
|
||||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 // indirect
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 // indirect
|
||||||
go.etcd.io/etcd v0.5.0-alpha.5.0.20200401174654-e694b7bb0875
|
go.etcd.io/bbolt v1.3.5 // indirect
|
||||||
go.uber.org/atomic v1.4.0 // indirect
|
go.etcd.io/etcd v0.5.0-alpha.5.0.20200716221620-18dfb9cca345
|
||||||
go.uber.org/zap v1.10.0
|
go.uber.org/zap v1.10.0
|
||||||
golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
|
||||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e
|
golang.org/x/net v0.0.0-20200707034311-ab3426394381
|
||||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e
|
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e
|
||||||
golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f
|
golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4
|
||||||
google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba // indirect
|
google.golang.org/grpc v1.27.0
|
||||||
google.golang.org/grpc v1.26.0
|
|
||||||
gopkg.in/natefinch/lumberjack.v2 v2.0.0
|
gopkg.in/natefinch/lumberjack.v2 v2.0.0
|
||||||
gopkg.in/square/go-jose.v2 v2.2.2
|
gopkg.in/square/go-jose.v2 v2.2.2
|
||||||
gopkg.in/yaml.v2 v2.2.8
|
gopkg.in/yaml.v2 v2.2.8
|
||||||
k8s.io/api v0.19.0-beta.2
|
k8s.io/api v0.19.0-rc.4
|
||||||
k8s.io/apimachinery v0.19.0-beta.2
|
k8s.io/apimachinery v0.19.0-rc.4
|
||||||
k8s.io/client-go v0.19.0-beta.2
|
k8s.io/client-go v0.19.0-rc.4
|
||||||
k8s.io/component-base v0.19.0-beta.2
|
k8s.io/component-base v0.19.0-rc.4
|
||||||
k8s.io/klog/v2 v2.1.0
|
k8s.io/klog/v2 v2.2.0
|
||||||
k8s.io/kube-openapi v0.0.0-20200427153329-656914f816f9
|
k8s.io/kube-openapi v0.0.0-20200427153329-656914f816f9
|
||||||
k8s.io/utils v0.0.0-20200414100711-2df71ebbae66
|
k8s.io/utils v0.0.0-20200729134348-d5654de09c73
|
||||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9-0.20200513220823-33b997865007
|
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9
|
||||||
sigs.k8s.io/structured-merge-diff/v3 v3.0.0
|
sigs.k8s.io/structured-merge-diff/v3 v3.0.1-0.20200706213357-43c19bbb7fba
|
||||||
sigs.k8s.io/yaml v1.2.0
|
sigs.k8s.io/yaml v1.2.0
|
||||||
)
|
)
|
||||||
|
|
||||||
replace (
|
replace (
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a // pinned to release-branch.go1.13
|
k8s.io/api => k8s.io/api v0.19.0-rc.4
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7 // pinned to release-branch.go1.13
|
k8s.io/apimachinery => k8s.io/apimachinery v0.19.0-rc.4
|
||||||
k8s.io/api => k8s.io/api v0.19.0-beta.2
|
k8s.io/client-go => k8s.io/client-go v0.19.0-rc.4
|
||||||
k8s.io/apimachinery => k8s.io/apimachinery v0.19.0-beta.2
|
k8s.io/component-base => k8s.io/component-base v0.19.0-rc.4
|
||||||
k8s.io/client-go => k8s.io/client-go v0.19.0-beta.2
|
|
||||||
k8s.io/component-base => k8s.io/component-base v0.19.0-beta.2
|
|
||||||
)
|
)
|
||||||
|
44
vendor/k8s.io/apiserver/pkg/server/httplog/httplog.go
generated
vendored
44
vendor/k8s.io/apiserver/pkg/server/httplog/httplog.go
generated
vendored
@ -85,7 +85,9 @@ func WithLogging(handler http.Handler, pred StacktracePred) http.Handler {
|
|||||||
rl := newLogged(req, w).StacktraceWhen(pred)
|
rl := newLogged(req, w).StacktraceWhen(pred)
|
||||||
req = req.WithContext(context.WithValue(ctx, respLoggerContextKey, rl))
|
req = req.WithContext(context.WithValue(ctx, respLoggerContextKey, rl))
|
||||||
|
|
||||||
defer rl.Log()
|
if klog.V(3).Enabled() {
|
||||||
|
defer func() { klog.InfoS("HTTP", rl.LogArgs()...) }()
|
||||||
|
}
|
||||||
handler.ServeHTTP(rl, req)
|
handler.ServeHTTP(rl, req)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -153,24 +155,34 @@ func (rl *respLogger) Addf(format string, data ...interface{}) {
|
|||||||
rl.addedInfo += "\n" + fmt.Sprintf(format, data...)
|
rl.addedInfo += "\n" + fmt.Sprintf(format, data...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Log is intended to be called once at the end of your request handler, via defer
|
func (rl *respLogger) LogArgs() []interface{} {
|
||||||
func (rl *respLogger) Log() {
|
|
||||||
latency := time.Since(rl.startTime)
|
latency := time.Since(rl.startTime)
|
||||||
if klog.V(3).Enabled() {
|
if rl.hijacked {
|
||||||
if !rl.hijacked {
|
return []interface{}{
|
||||||
klog.InfoDepth(1, fmt.Sprintf("verb=%q URI=%q latency=%v resp=%v UserAgent=%q srcIP=%q: %v%v",
|
"verb", rl.req.Method,
|
||||||
rl.req.Method, rl.req.RequestURI,
|
"URI", rl.req.RequestURI,
|
||||||
latency, rl.status,
|
"latency", latency,
|
||||||
rl.req.UserAgent(), rl.req.RemoteAddr,
|
"userAgent", rl.req.UserAgent(),
|
||||||
rl.statusStack, rl.addedInfo,
|
"srcIP", rl.req.RemoteAddr,
|
||||||
))
|
"hijacked", true,
|
||||||
} else {
|
|
||||||
klog.InfoDepth(1, fmt.Sprintf("verb=%q URI=%q latency=%v UserAgent=%q srcIP=%q: hijacked",
|
|
||||||
rl.req.Method, rl.req.RequestURI,
|
|
||||||
latency, rl.req.UserAgent(), rl.req.RemoteAddr,
|
|
||||||
))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
args := []interface{}{
|
||||||
|
"verb", rl.req.Method,
|
||||||
|
"URI", rl.req.RequestURI,
|
||||||
|
"latency", latency,
|
||||||
|
"userAgent", rl.req.UserAgent(),
|
||||||
|
"srcIP", rl.req.RemoteAddr,
|
||||||
|
"resp", rl.status,
|
||||||
|
}
|
||||||
|
if len(rl.statusStack) > 0 {
|
||||||
|
args = append(args, "statusStack", rl.statusStack)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(rl.addedInfo) > 0 {
|
||||||
|
args = append(args, "addedInfo", rl.addedInfo)
|
||||||
|
}
|
||||||
|
return args
|
||||||
}
|
}
|
||||||
|
|
||||||
// Header implements http.ResponseWriter.
|
// Header implements http.ResponseWriter.
|
||||||
|
16
vendor/k8s.io/client-go/README.md
generated
vendored
16
vendor/k8s.io/client-go/README.md
generated
vendored
@ -82,12 +82,13 @@ We will backport bugfixes--but not new features--into older versions of
|
|||||||
|
|
||||||
#### Compatibility matrix
|
#### Compatibility matrix
|
||||||
|
|
||||||
| | Kubernetes 1.15 | Kubernetes 1.16 | Kubernetes 1.17 |
|
| | Kubernetes 1.15 | Kubernetes 1.16 | Kubernetes 1.17 | Kubernetes 1.18 |
|
||||||
|-------------------------------|-----------------|-----------------|-----------------|
|
|-------------------------------|-----------------|-----------------|-----------------|-----------------|
|
||||||
| `kubernetes-1.15.0` | ✓ | +- | +- |
|
| `kubernetes-1.15.0` | ✓ | +- | +- | +- |
|
||||||
| `kubernetes-1.16.0` | +- | ✓ | +- |
|
| `kubernetes-1.16.0` | +- | ✓ | +- | +- |
|
||||||
| `kubernetes-1.17.0`/`v0.17.0` | +- | +- | ✓ |
|
| `kubernetes-1.17.0`/`v0.17.0` | +- | +- | ✓ | +- |
|
||||||
| `HEAD` | +- | +- | +- |
|
| `kubernetes-1.18.0`/`v0.18.0` | +- | +- | +- | ✓ |
|
||||||
|
| `HEAD` | +- | +- | +- | +- |
|
||||||
|
|
||||||
Key:
|
Key:
|
||||||
|
|
||||||
@ -119,10 +120,11 @@ between client-go versions.
|
|||||||
| `release-8.0` | Kubernetes main repo, 1.11 branch | =- |
|
| `release-8.0` | Kubernetes main repo, 1.11 branch | =- |
|
||||||
| `release-9.0` | Kubernetes main repo, 1.12 branch | =- |
|
| `release-9.0` | Kubernetes main repo, 1.12 branch | =- |
|
||||||
| `release-10.0` | Kubernetes main repo, 1.13 branch | =- |
|
| `release-10.0` | Kubernetes main repo, 1.13 branch | =- |
|
||||||
| `release-11.0` | Kubernetes main repo, 1.14 branch | ✓ |
|
| `release-11.0` | Kubernetes main repo, 1.14 branch | =- |
|
||||||
| `release-12.0` | Kubernetes main repo, 1.15 branch | ✓ |
|
| `release-12.0` | Kubernetes main repo, 1.15 branch | ✓ |
|
||||||
| `release-13.0` | Kubernetes main repo, 1.16 branch | ✓ |
|
| `release-13.0` | Kubernetes main repo, 1.16 branch | ✓ |
|
||||||
| `release-14.0` | Kubernetes main repo, 1.17 branch | ✓ |
|
| `release-14.0` | Kubernetes main repo, 1.17 branch | ✓ |
|
||||||
|
| `release-1.18` | Kubernetes main repo, 1.18 branch | ✓ |
|
||||||
| client-go HEAD | Kubernetes main repo, master branch | ✓ |
|
| client-go HEAD | Kubernetes main repo, master branch | ✓ |
|
||||||
|
|
||||||
Key:
|
Key:
|
||||||
|
22
vendor/k8s.io/client-go/go.mod
generated
vendored
22
vendor/k8s.io/client-go/go.mod
generated
vendored
@ -2,14 +2,14 @@
|
|||||||
|
|
||||||
module k8s.io/client-go
|
module k8s.io/client-go
|
||||||
|
|
||||||
go 1.13
|
go 1.15
|
||||||
|
|
||||||
require (
|
require (
|
||||||
cloud.google.com/go v0.51.0 // indirect
|
cloud.google.com/go v0.51.0 // indirect
|
||||||
github.com/Azure/go-autorest/autorest v0.9.6
|
github.com/Azure/go-autorest/autorest v0.9.6
|
||||||
github.com/Azure/go-autorest/autorest/adal v0.8.2
|
github.com/Azure/go-autorest/autorest/adal v0.8.2
|
||||||
github.com/davecgh/go-spew v1.1.1
|
github.com/davecgh/go-spew v1.1.1
|
||||||
github.com/evanphx/json-patch v4.2.0+incompatible
|
github.com/evanphx/json-patch v0.0.0-20190815234213-e83c0a1c26c8
|
||||||
github.com/gogo/protobuf v1.3.1
|
github.com/gogo/protobuf v1.3.1
|
||||||
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7
|
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7
|
||||||
github.com/golang/protobuf v1.4.2
|
github.com/golang/protobuf v1.4.2
|
||||||
@ -22,20 +22,18 @@ require (
|
|||||||
github.com/peterbourgon/diskv v2.0.1+incompatible
|
github.com/peterbourgon/diskv v2.0.1+incompatible
|
||||||
github.com/spf13/pflag v1.0.5
|
github.com/spf13/pflag v1.0.5
|
||||||
github.com/stretchr/testify v1.4.0
|
github.com/stretchr/testify v1.4.0
|
||||||
golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
|
||||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e
|
golang.org/x/net v0.0.0-20200707034311-ab3426394381
|
||||||
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6
|
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6
|
||||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0
|
golang.org/x/time v0.0.0-20191024005414-555d28b269f0
|
||||||
k8s.io/api v0.19.0-beta.2
|
k8s.io/api v0.19.0-rc.4
|
||||||
k8s.io/apimachinery v0.19.0-beta.2
|
k8s.io/apimachinery v0.19.0-rc.4
|
||||||
k8s.io/klog/v2 v2.1.0
|
k8s.io/klog/v2 v2.2.0
|
||||||
k8s.io/utils v0.0.0-20200414100711-2df71ebbae66
|
k8s.io/utils v0.0.0-20200729134348-d5654de09c73
|
||||||
sigs.k8s.io/yaml v1.2.0
|
sigs.k8s.io/yaml v1.2.0
|
||||||
)
|
)
|
||||||
|
|
||||||
replace (
|
replace (
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a // pinned to release-branch.go1.13
|
k8s.io/api => k8s.io/api v0.19.0-rc.4
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7 // pinned to release-branch.go1.13
|
k8s.io/apimachinery => k8s.io/apimachinery v0.19.0-rc.4
|
||||||
k8s.io/api => k8s.io/api v0.19.0-beta.2
|
|
||||||
k8s.io/apimachinery => k8s.io/apimachinery v0.19.0-beta.2
|
|
||||||
)
|
)
|
||||||
|
102
vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/exec.go
generated
vendored
102
vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/exec.go
generated
vendored
@ -29,6 +29,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -38,6 +39,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/apimachinery/pkg/runtime/serializer"
|
"k8s.io/apimachinery/pkg/runtime/serializer"
|
||||||
|
"k8s.io/apimachinery/pkg/util/clock"
|
||||||
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
||||||
"k8s.io/client-go/pkg/apis/clientauthentication"
|
"k8s.io/client-go/pkg/apis/clientauthentication"
|
||||||
"k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1"
|
"k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1"
|
||||||
@ -51,6 +53,12 @@ import (
|
|||||||
|
|
||||||
const execInfoEnv = "KUBERNETES_EXEC_INFO"
|
const execInfoEnv = "KUBERNETES_EXEC_INFO"
|
||||||
const onRotateListWarningLength = 1000
|
const onRotateListWarningLength = 1000
|
||||||
|
const installHintVerboseHelp = `
|
||||||
|
|
||||||
|
It looks like you are trying to use a client-go credential plugin that is not installed.
|
||||||
|
|
||||||
|
To learn more about this feature, consult the documentation available at:
|
||||||
|
https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins`
|
||||||
|
|
||||||
var scheme = runtime.NewScheme()
|
var scheme = runtime.NewScheme()
|
||||||
var codecs = serializer.NewCodecFactory(scheme)
|
var codecs = serializer.NewCodecFactory(scheme)
|
||||||
@ -108,6 +116,44 @@ func (c *cache) put(s string, a *Authenticator) *Authenticator {
|
|||||||
return a
|
return a
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// sometimes rate limits how often a function f() is called. Specifically, Do()
|
||||||
|
// will run the provided function f() up to threshold times every interval
|
||||||
|
// duration.
|
||||||
|
type sometimes struct {
|
||||||
|
threshold int
|
||||||
|
interval time.Duration
|
||||||
|
|
||||||
|
clock clock.Clock
|
||||||
|
mu sync.Mutex
|
||||||
|
|
||||||
|
count int // times we have called f() in this window
|
||||||
|
window time.Time // beginning of current window of length interval
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *sometimes) Do(f func()) {
|
||||||
|
s.mu.Lock()
|
||||||
|
defer s.mu.Unlock()
|
||||||
|
|
||||||
|
now := s.clock.Now()
|
||||||
|
if s.window.IsZero() {
|
||||||
|
s.window = now
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we are no longer in our saved time window, then we get to reset our run
|
||||||
|
// count back to 0 and start increasing towards the threshold again.
|
||||||
|
if inWindow := now.Sub(s.window) < s.interval; !inWindow {
|
||||||
|
s.window = now
|
||||||
|
s.count = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we have not run the function more than threshold times in this current
|
||||||
|
// time window, we get to run it now!
|
||||||
|
if underThreshold := s.count < s.threshold; underThreshold {
|
||||||
|
s.count++
|
||||||
|
f()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// GetAuthenticator returns an exec-based plugin for providing client credentials.
|
// GetAuthenticator returns an exec-based plugin for providing client credentials.
|
||||||
func GetAuthenticator(config *api.ExecConfig) (*Authenticator, error) {
|
func GetAuthenticator(config *api.ExecConfig) (*Authenticator, error) {
|
||||||
return newAuthenticator(globalCache, config)
|
return newAuthenticator(globalCache, config)
|
||||||
@ -129,6 +175,13 @@ func newAuthenticator(c *cache, config *api.ExecConfig) (*Authenticator, error)
|
|||||||
args: config.Args,
|
args: config.Args,
|
||||||
group: gv,
|
group: gv,
|
||||||
|
|
||||||
|
installHint: config.InstallHint,
|
||||||
|
sometimes: &sometimes{
|
||||||
|
threshold: 10,
|
||||||
|
interval: time.Hour,
|
||||||
|
clock: clock.RealClock{},
|
||||||
|
},
|
||||||
|
|
||||||
stdin: os.Stdin,
|
stdin: os.Stdin,
|
||||||
stderr: os.Stderr,
|
stderr: os.Stderr,
|
||||||
interactive: terminal.IsTerminal(int(os.Stdout.Fd())),
|
interactive: terminal.IsTerminal(int(os.Stdout.Fd())),
|
||||||
@ -152,6 +205,12 @@ type Authenticator struct {
|
|||||||
group schema.GroupVersion
|
group schema.GroupVersion
|
||||||
env []string
|
env []string
|
||||||
|
|
||||||
|
// Used to avoid log spew by rate limiting install hint printing. We didn't do
|
||||||
|
// this by interval based rate limiting alone since that way may have prevented
|
||||||
|
// the install hint from showing up for kubectl users.
|
||||||
|
sometimes *sometimes
|
||||||
|
installHint string
|
||||||
|
|
||||||
// Stubbable for testing
|
// Stubbable for testing
|
||||||
stdin io.Reader
|
stdin io.Reader
|
||||||
stderr io.Writer
|
stderr io.Writer
|
||||||
@ -178,6 +237,15 @@ type credentials struct {
|
|||||||
// UpdateTransportConfig updates the transport.Config to use credentials
|
// UpdateTransportConfig updates the transport.Config to use credentials
|
||||||
// returned by the plugin.
|
// returned by the plugin.
|
||||||
func (a *Authenticator) UpdateTransportConfig(c *transport.Config) error {
|
func (a *Authenticator) UpdateTransportConfig(c *transport.Config) error {
|
||||||
|
// If a bearer token is present in the request - avoid the GetCert callback when
|
||||||
|
// setting up the transport, as that triggers the exec action if the server is
|
||||||
|
// also configured to allow client certificates for authentication. For requests
|
||||||
|
// like "kubectl get --token (token) pods" we should assume the intention is to
|
||||||
|
// use the provided token for authentication.
|
||||||
|
if c.HasTokenAuth() {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
c.Wrap(func(rt http.RoundTripper) http.RoundTripper {
|
c.Wrap(func(rt http.RoundTripper) http.RoundTripper {
|
||||||
return &roundTripper{a, rt}
|
return &roundTripper{a, rt}
|
||||||
})
|
})
|
||||||
@ -323,7 +391,7 @@ func (a *Authenticator) refreshCredsLocked(r *clientauthentication.Response) err
|
|||||||
}
|
}
|
||||||
|
|
||||||
if err := cmd.Run(); err != nil {
|
if err := cmd.Run(); err != nil {
|
||||||
return fmt.Errorf("exec: %v", err)
|
return a.wrapCmdRunErrorLocked(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
_, gvk, err := codecs.UniversalDecoder(a.group).Decode(stdout.Bytes(), nil, cred)
|
_, gvk, err := codecs.UniversalDecoder(a.group).Decode(stdout.Bytes(), nil, cred)
|
||||||
@ -394,3 +462,35 @@ func (a *Authenticator) refreshCredsLocked(r *clientauthentication.Response) err
|
|||||||
expirationMetrics.set(a, expiry)
|
expirationMetrics.set(a, expiry)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// wrapCmdRunErrorLocked pulls out the code to construct a helpful error message
|
||||||
|
// for when the exec plugin's binary fails to Run().
|
||||||
|
//
|
||||||
|
// It must be called while holding the Authenticator's mutex.
|
||||||
|
func (a *Authenticator) wrapCmdRunErrorLocked(err error) error {
|
||||||
|
switch err.(type) {
|
||||||
|
case *exec.Error: // Binary does not exist (see exec.Error).
|
||||||
|
builder := strings.Builder{}
|
||||||
|
fmt.Fprintf(&builder, "exec: executable %s not found", a.cmd)
|
||||||
|
|
||||||
|
a.sometimes.Do(func() {
|
||||||
|
fmt.Fprint(&builder, installHintVerboseHelp)
|
||||||
|
if a.installHint != "" {
|
||||||
|
fmt.Fprintf(&builder, "\n\n%s", a.installHint)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
return errors.New(builder.String())
|
||||||
|
|
||||||
|
case *exec.ExitError: // Binary execution failed (see exec.Cmd.Run()).
|
||||||
|
e := err.(*exec.ExitError)
|
||||||
|
return fmt.Errorf(
|
||||||
|
"exec: executable %s failed with exit code %d",
|
||||||
|
a.cmd,
|
||||||
|
e.ProcessState.ExitCode(),
|
||||||
|
)
|
||||||
|
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("exec: %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
4
vendor/k8s.io/client-go/rest/client.go
generated
vendored
4
vendor/k8s.io/client-go/rest/client.go
generated
vendored
@ -94,6 +94,10 @@ type RESTClient struct {
|
|||||||
// overridden.
|
// overridden.
|
||||||
rateLimiter flowcontrol.RateLimiter
|
rateLimiter flowcontrol.RateLimiter
|
||||||
|
|
||||||
|
// warningHandler is shared among all requests created by this client.
|
||||||
|
// If not set, defaultWarningHandler is used.
|
||||||
|
warningHandler WarningHandler
|
||||||
|
|
||||||
// Set specific behavior of the client. If not set http.DefaultClient will be used.
|
// Set specific behavior of the client. If not set http.DefaultClient will be used.
|
||||||
Client *http.Client
|
Client *http.Client
|
||||||
}
|
}
|
||||||
|
18
vendor/k8s.io/client-go/rest/config.go
generated
vendored
18
vendor/k8s.io/client-go/rest/config.go
generated
vendored
@ -123,6 +123,10 @@ type Config struct {
|
|||||||
// Rate limiter for limiting connections to the master from this client. If present overwrites QPS/Burst
|
// Rate limiter for limiting connections to the master from this client. If present overwrites QPS/Burst
|
||||||
RateLimiter flowcontrol.RateLimiter
|
RateLimiter flowcontrol.RateLimiter
|
||||||
|
|
||||||
|
// WarningHandler handles warnings in server responses.
|
||||||
|
// If not set, the default warning handler is used.
|
||||||
|
WarningHandler WarningHandler
|
||||||
|
|
||||||
// The maximum length of time to wait before giving up on a server request. A value of zero means no timeout.
|
// The maximum length of time to wait before giving up on a server request. A value of zero means no timeout.
|
||||||
Timeout time.Duration
|
Timeout time.Duration
|
||||||
|
|
||||||
@ -339,7 +343,11 @@ func RESTClientFor(config *Config) (*RESTClient, error) {
|
|||||||
Negotiator: runtime.NewClientNegotiator(config.NegotiatedSerializer, gv),
|
Negotiator: runtime.NewClientNegotiator(config.NegotiatedSerializer, gv),
|
||||||
}
|
}
|
||||||
|
|
||||||
return NewRESTClient(baseURL, versionedAPIPath, clientContent, rateLimiter, httpClient)
|
restClient, err := NewRESTClient(baseURL, versionedAPIPath, clientContent, rateLimiter, httpClient)
|
||||||
|
if err == nil && config.WarningHandler != nil {
|
||||||
|
restClient.warningHandler = config.WarningHandler
|
||||||
|
}
|
||||||
|
return restClient, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// UnversionedRESTClientFor is the same as RESTClientFor, except that it allows
|
// UnversionedRESTClientFor is the same as RESTClientFor, except that it allows
|
||||||
@ -393,7 +401,11 @@ func UnversionedRESTClientFor(config *Config) (*RESTClient, error) {
|
|||||||
Negotiator: runtime.NewClientNegotiator(config.NegotiatedSerializer, gv),
|
Negotiator: runtime.NewClientNegotiator(config.NegotiatedSerializer, gv),
|
||||||
}
|
}
|
||||||
|
|
||||||
return NewRESTClient(baseURL, versionedAPIPath, clientContent, rateLimiter, httpClient)
|
restClient, err := NewRESTClient(baseURL, versionedAPIPath, clientContent, rateLimiter, httpClient)
|
||||||
|
if err == nil && config.WarningHandler != nil {
|
||||||
|
restClient.warningHandler = config.WarningHandler
|
||||||
|
}
|
||||||
|
return restClient, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetKubernetesDefaults sets default values on the provided client config for accessing the
|
// SetKubernetesDefaults sets default values on the provided client config for accessing the
|
||||||
@ -562,6 +574,7 @@ func AnonymousClientConfig(config *Config) *Config {
|
|||||||
NextProtos: config.TLSClientConfig.NextProtos,
|
NextProtos: config.TLSClientConfig.NextProtos,
|
||||||
},
|
},
|
||||||
RateLimiter: config.RateLimiter,
|
RateLimiter: config.RateLimiter,
|
||||||
|
WarningHandler: config.WarningHandler,
|
||||||
UserAgent: config.UserAgent,
|
UserAgent: config.UserAgent,
|
||||||
DisableCompression: config.DisableCompression,
|
DisableCompression: config.DisableCompression,
|
||||||
QPS: config.QPS,
|
QPS: config.QPS,
|
||||||
@ -608,6 +621,7 @@ func CopyConfig(config *Config) *Config {
|
|||||||
QPS: config.QPS,
|
QPS: config.QPS,
|
||||||
Burst: config.Burst,
|
Burst: config.Burst,
|
||||||
RateLimiter: config.RateLimiter,
|
RateLimiter: config.RateLimiter,
|
||||||
|
WarningHandler: config.WarningHandler,
|
||||||
Timeout: config.Timeout,
|
Timeout: config.Timeout,
|
||||||
Dial: config.Dial,
|
Dial: config.Dial,
|
||||||
Proxy: config.Proxy,
|
Proxy: config.Proxy,
|
||||||
|
34
vendor/k8s.io/client-go/rest/request.go
generated
vendored
34
vendor/k8s.io/client-go/rest/request.go
generated
vendored
@ -88,6 +88,8 @@ var noBackoff = &NoBackoff{}
|
|||||||
type Request struct {
|
type Request struct {
|
||||||
c *RESTClient
|
c *RESTClient
|
||||||
|
|
||||||
|
warningHandler WarningHandler
|
||||||
|
|
||||||
rateLimiter flowcontrol.RateLimiter
|
rateLimiter flowcontrol.RateLimiter
|
||||||
backoff BackoffManager
|
backoff BackoffManager
|
||||||
timeout time.Duration
|
timeout time.Duration
|
||||||
@ -135,12 +137,13 @@ func NewRequest(c *RESTClient) *Request {
|
|||||||
}
|
}
|
||||||
|
|
||||||
r := &Request{
|
r := &Request{
|
||||||
c: c,
|
c: c,
|
||||||
rateLimiter: c.rateLimiter,
|
rateLimiter: c.rateLimiter,
|
||||||
backoff: backoff,
|
backoff: backoff,
|
||||||
timeout: timeout,
|
timeout: timeout,
|
||||||
pathPrefix: pathPrefix,
|
pathPrefix: pathPrefix,
|
||||||
maxRetries: 10,
|
maxRetries: 10,
|
||||||
|
warningHandler: c.warningHandler,
|
||||||
}
|
}
|
||||||
|
|
||||||
switch {
|
switch {
|
||||||
@ -218,6 +221,13 @@ func (r *Request) BackOff(manager BackoffManager) *Request {
|
|||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WarningHandler sets the handler this client uses when warning headers are encountered.
|
||||||
|
// If set to nil, this client will use the default warning handler (see SetDefaultWarningHandler).
|
||||||
|
func (r *Request) WarningHandler(handler WarningHandler) *Request {
|
||||||
|
r.warningHandler = handler
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
// Throttle receives a rate-limiter and sets or replaces an existing request limiter
|
// Throttle receives a rate-limiter and sets or replaces an existing request limiter
|
||||||
func (r *Request) Throttle(limiter flowcontrol.RateLimiter) *Request {
|
func (r *Request) Throttle(limiter flowcontrol.RateLimiter) *Request {
|
||||||
r.rateLimiter = limiter
|
r.rateLimiter = limiter
|
||||||
@ -692,6 +702,8 @@ func (r *Request) Watch(ctx context.Context) (watch.Interface, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
handleWarnings(resp.Header, r.warningHandler)
|
||||||
|
|
||||||
frameReader := framer.NewFrameReader(resp.Body)
|
frameReader := framer.NewFrameReader(resp.Body)
|
||||||
watchEventDecoder := streaming.NewDecoder(frameReader, streamingSerializer)
|
watchEventDecoder := streaming.NewDecoder(frameReader, streamingSerializer)
|
||||||
|
|
||||||
@ -764,6 +776,7 @@ func (r *Request) Stream(ctx context.Context) (io.ReadCloser, error) {
|
|||||||
|
|
||||||
switch {
|
switch {
|
||||||
case (resp.StatusCode >= 200) && (resp.StatusCode < 300):
|
case (resp.StatusCode >= 200) && (resp.StatusCode < 300):
|
||||||
|
handleWarnings(resp.Header, r.warningHandler)
|
||||||
return resp.Body, nil
|
return resp.Body, nil
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -1020,6 +1033,7 @@ func (r *Request) transformResponse(resp *http.Response, req *http.Request) Resu
|
|||||||
body: body,
|
body: body,
|
||||||
contentType: contentType,
|
contentType: contentType,
|
||||||
statusCode: resp.StatusCode,
|
statusCode: resp.StatusCode,
|
||||||
|
warnings: handleWarnings(resp.Header, r.warningHandler),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1038,6 +1052,7 @@ func (r *Request) transformResponse(resp *http.Response, req *http.Request) Resu
|
|||||||
statusCode: resp.StatusCode,
|
statusCode: resp.StatusCode,
|
||||||
decoder: decoder,
|
decoder: decoder,
|
||||||
err: err,
|
err: err,
|
||||||
|
warnings: handleWarnings(resp.Header, r.warningHandler),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1046,6 +1061,7 @@ func (r *Request) transformResponse(resp *http.Response, req *http.Request) Resu
|
|||||||
contentType: contentType,
|
contentType: contentType,
|
||||||
statusCode: resp.StatusCode,
|
statusCode: resp.StatusCode,
|
||||||
decoder: decoder,
|
decoder: decoder,
|
||||||
|
warnings: handleWarnings(resp.Header, r.warningHandler),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1181,6 +1197,7 @@ func retryAfterSeconds(resp *http.Response) (int, bool) {
|
|||||||
// Result contains the result of calling Request.Do().
|
// Result contains the result of calling Request.Do().
|
||||||
type Result struct {
|
type Result struct {
|
||||||
body []byte
|
body []byte
|
||||||
|
warnings []net.WarningHeader
|
||||||
contentType string
|
contentType string
|
||||||
err error
|
err error
|
||||||
statusCode int
|
statusCode int
|
||||||
@ -1294,6 +1311,11 @@ func (r Result) Error() error {
|
|||||||
return r.err
|
return r.err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Warnings returns any warning headers received in the response
|
||||||
|
func (r Result) Warnings() []net.WarningHeader {
|
||||||
|
return r.warnings
|
||||||
|
}
|
||||||
|
|
||||||
// NameMayNotBe specifies strings that cannot be used as names specified as path segments (like the REST API or etcd store)
|
// NameMayNotBe specifies strings that cannot be used as names specified as path segments (like the REST API or etcd store)
|
||||||
var NameMayNotBe = []string{".", ".."}
|
var NameMayNotBe = []string{".", ".."}
|
||||||
|
|
||||||
|
144
vendor/k8s.io/client-go/rest/warnings.go
generated
vendored
Normal file
144
vendor/k8s.io/client-go/rest/warnings.go
generated
vendored
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package rest
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"net/http"
|
||||||
|
"sync"
|
||||||
|
|
||||||
|
"k8s.io/klog/v2"
|
||||||
|
|
||||||
|
"k8s.io/apimachinery/pkg/util/net"
|
||||||
|
)
|
||||||
|
|
||||||
|
// WarningHandler is an interface for handling warning headers
|
||||||
|
type WarningHandler interface {
|
||||||
|
// HandleWarningHeader is called with the warn code, agent, and text when a warning header is countered.
|
||||||
|
HandleWarningHeader(code int, agent string, text string)
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
defaultWarningHandler WarningHandler = WarningLogger{}
|
||||||
|
defaultWarningHandlerLock sync.RWMutex
|
||||||
|
)
|
||||||
|
|
||||||
|
// SetDefaultWarningHandler sets the default handler client uses when warning headers are encountered.
|
||||||
|
// By default, warnings are printed to stderr.
|
||||||
|
func SetDefaultWarningHandler(l WarningHandler) {
|
||||||
|
defaultWarningHandlerLock.Lock()
|
||||||
|
defer defaultWarningHandlerLock.Unlock()
|
||||||
|
defaultWarningHandler = l
|
||||||
|
}
|
||||||
|
func getDefaultWarningHandler() WarningHandler {
|
||||||
|
defaultWarningHandlerLock.RLock()
|
||||||
|
defer defaultWarningHandlerLock.RUnlock()
|
||||||
|
l := defaultWarningHandler
|
||||||
|
return l
|
||||||
|
}
|
||||||
|
|
||||||
|
// NoWarnings is an implementation of WarningHandler that suppresses warnings.
|
||||||
|
type NoWarnings struct{}
|
||||||
|
|
||||||
|
func (NoWarnings) HandleWarningHeader(code int, agent string, message string) {}
|
||||||
|
|
||||||
|
// WarningLogger is an implementation of WarningHandler that logs code 299 warnings
|
||||||
|
type WarningLogger struct{}
|
||||||
|
|
||||||
|
func (WarningLogger) HandleWarningHeader(code int, agent string, message string) {
|
||||||
|
if code != 299 || len(message) == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
klog.Warning(message)
|
||||||
|
}
|
||||||
|
|
||||||
|
type warningWriter struct {
|
||||||
|
// out is the writer to output warnings to
|
||||||
|
out io.Writer
|
||||||
|
// opts contains options controlling warning output
|
||||||
|
opts WarningWriterOptions
|
||||||
|
// writtenLock guards written and writtenCount
|
||||||
|
writtenLock sync.Mutex
|
||||||
|
writtenCount int
|
||||||
|
written map[string]struct{}
|
||||||
|
}
|
||||||
|
|
||||||
|
// WarningWriterOptions controls the behavior of a WarningHandler constructed using NewWarningWriter()
|
||||||
|
type WarningWriterOptions struct {
|
||||||
|
// Deduplicate indicates a given warning message should only be written once.
|
||||||
|
// Setting this to true in a long-running process handling many warnings can result in increased memory use.
|
||||||
|
Deduplicate bool
|
||||||
|
// Color indicates that warning output can include ANSI color codes
|
||||||
|
Color bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewWarningWriter returns an implementation of WarningHandler that outputs code 299 warnings to the specified writer.
|
||||||
|
func NewWarningWriter(out io.Writer, opts WarningWriterOptions) *warningWriter {
|
||||||
|
h := &warningWriter{out: out, opts: opts}
|
||||||
|
if opts.Deduplicate {
|
||||||
|
h.written = map[string]struct{}{}
|
||||||
|
}
|
||||||
|
return h
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
yellowColor = "\u001b[33;1m"
|
||||||
|
resetColor = "\u001b[0m"
|
||||||
|
)
|
||||||
|
|
||||||
|
// HandleWarningHeader prints warnings with code=299 to the configured writer.
|
||||||
|
func (w *warningWriter) HandleWarningHeader(code int, agent string, message string) {
|
||||||
|
if code != 299 || len(message) == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
w.writtenLock.Lock()
|
||||||
|
defer w.writtenLock.Unlock()
|
||||||
|
|
||||||
|
if w.opts.Deduplicate {
|
||||||
|
if _, alreadyWritten := w.written[message]; alreadyWritten {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
w.written[message] = struct{}{}
|
||||||
|
}
|
||||||
|
w.writtenCount++
|
||||||
|
|
||||||
|
if w.opts.Color {
|
||||||
|
fmt.Fprintf(w.out, "%sWarning:%s %s\n", yellowColor, resetColor, message)
|
||||||
|
} else {
|
||||||
|
fmt.Fprintf(w.out, "Warning: %s\n", message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w *warningWriter) WarningCount() int {
|
||||||
|
w.writtenLock.Lock()
|
||||||
|
defer w.writtenLock.Unlock()
|
||||||
|
return w.writtenCount
|
||||||
|
}
|
||||||
|
|
||||||
|
func handleWarnings(headers http.Header, handler WarningHandler) []net.WarningHeader {
|
||||||
|
if handler == nil {
|
||||||
|
handler = getDefaultWarningHandler()
|
||||||
|
}
|
||||||
|
|
||||||
|
warnings, _ := net.ParseWarningHeaders(headers["Warning"])
|
||||||
|
for _, warning := range warnings {
|
||||||
|
handler.HandleWarningHeader(warning.Code, warning.Agent, warning.Text)
|
||||||
|
}
|
||||||
|
return warnings
|
||||||
|
}
|
7
vendor/k8s.io/client-go/tools/clientcmd/api/types.go
generated
vendored
7
vendor/k8s.io/client-go/tools/clientcmd/api/types.go
generated
vendored
@ -193,7 +193,7 @@ func (c AuthProviderConfig) String() string {
|
|||||||
// ExecConfig specifies a command to provide client credentials. The command is exec'd
|
// ExecConfig specifies a command to provide client credentials. The command is exec'd
|
||||||
// and outputs structured stdout holding credentials.
|
// and outputs structured stdout holding credentials.
|
||||||
//
|
//
|
||||||
// See the client.authentiction.k8s.io API group for specifications of the exact input
|
// See the client.authentication.k8s.io API group for specifications of the exact input
|
||||||
// and output format
|
// and output format
|
||||||
type ExecConfig struct {
|
type ExecConfig struct {
|
||||||
// Command to execute.
|
// Command to execute.
|
||||||
@ -210,6 +210,11 @@ type ExecConfig struct {
|
|||||||
// Preferred input version of the ExecInfo. The returned ExecCredentials MUST use
|
// Preferred input version of the ExecInfo. The returned ExecCredentials MUST use
|
||||||
// the same encoding version as the input.
|
// the same encoding version as the input.
|
||||||
APIVersion string `json:"apiVersion,omitempty"`
|
APIVersion string `json:"apiVersion,omitempty"`
|
||||||
|
|
||||||
|
// This text is shown to the user when the executable doesn't seem to be
|
||||||
|
// present. For example, `brew install foo-cli` might be a good InstallHint for
|
||||||
|
// foo-cli on Mac OS systems.
|
||||||
|
InstallHint string `json:"installHint,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ fmt.Stringer = new(ExecConfig)
|
var _ fmt.Stringer = new(ExecConfig)
|
||||||
|
31
vendor/k8s.io/component-base/go.mod
generated
vendored
31
vendor/k8s.io/component-base/go.mod
generated
vendored
@ -2,31 +2,32 @@
|
|||||||
|
|
||||||
module k8s.io/component-base
|
module k8s.io/component-base
|
||||||
|
|
||||||
go 1.13
|
go 1.15
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/blang/semver v3.5.0+incompatible
|
github.com/blang/semver v3.5.0+incompatible
|
||||||
github.com/go-logr/logr v0.1.0
|
github.com/go-logr/logr v0.2.0
|
||||||
github.com/google/go-cmp v0.4.0
|
github.com/google/go-cmp v0.4.0
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect
|
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
|
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
|
||||||
github.com/moby/term v0.0.0-20200312100748-672ec06f55cd
|
github.com/moby/term v0.0.0-20200312100748-672ec06f55cd
|
||||||
github.com/prometheus/client_golang v1.6.0
|
github.com/prometheus/client_golang v1.7.1
|
||||||
github.com/prometheus/client_model v0.2.0
|
github.com/prometheus/client_model v0.2.0
|
||||||
github.com/prometheus/common v0.9.1
|
github.com/prometheus/common v0.10.0
|
||||||
github.com/prometheus/procfs v0.0.11
|
github.com/prometheus/procfs v0.1.3
|
||||||
|
github.com/sirupsen/logrus v1.6.0 // indirect
|
||||||
github.com/spf13/pflag v1.0.5
|
github.com/spf13/pflag v1.0.5
|
||||||
github.com/stretchr/testify v1.4.0
|
github.com/stretchr/testify v1.4.0
|
||||||
k8s.io/apimachinery v0.19.0-beta.2
|
go.uber.org/atomic v1.4.0 // indirect
|
||||||
k8s.io/client-go v0.19.0-beta.2
|
go.uber.org/multierr v1.1.0 // indirect
|
||||||
k8s.io/klog/v2 v2.1.0
|
go.uber.org/zap v1.10.0
|
||||||
k8s.io/utils v0.0.0-20200414100711-2df71ebbae66
|
k8s.io/apimachinery v0.19.0-rc.4
|
||||||
|
k8s.io/client-go v0.19.0-rc.4
|
||||||
|
k8s.io/klog/v2 v2.2.0
|
||||||
|
k8s.io/utils v0.0.0-20200729134348-d5654de09c73
|
||||||
)
|
)
|
||||||
|
|
||||||
replace (
|
replace (
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a // pinned to release-branch.go1.13
|
k8s.io/api => k8s.io/api v0.19.0-rc.4
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7 // pinned to release-branch.go1.13
|
k8s.io/apimachinery => k8s.io/apimachinery v0.19.0-rc.4
|
||||||
k8s.io/api => k8s.io/api v0.19.0-beta.2
|
k8s.io/client-go => k8s.io/client-go v0.19.0-rc.4
|
||||||
k8s.io/apimachinery => k8s.io/apimachinery v0.19.0-beta.2
|
|
||||||
k8s.io/client-go => k8s.io/client-go v0.19.0-beta.2
|
|
||||||
)
|
)
|
||||||
|
17
vendor/k8s.io/cri-api/go.mod
generated
vendored
17
vendor/k8s.io/cri-api/go.mod
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module k8s.io/cri-api
|
module k8s.io/cri-api
|
||||||
|
|
||||||
go 1.13
|
go 1.15
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||||
@ -10,16 +10,11 @@ require (
|
|||||||
github.com/golang/protobuf v1.4.2 // indirect
|
github.com/golang/protobuf v1.4.2 // indirect
|
||||||
github.com/kr/pretty v0.2.0 // indirect
|
github.com/kr/pretty v0.2.0 // indirect
|
||||||
github.com/stretchr/testify v1.4.0
|
github.com/stretchr/testify v1.4.0
|
||||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e // indirect
|
golang.org/x/net v0.0.0-20200707034311-ab3426394381 // indirect
|
||||||
golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f // indirect
|
golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 // indirect
|
||||||
golang.org/x/text v0.3.2 // indirect
|
golang.org/x/text v0.3.3 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba // indirect
|
google.golang.org/grpc v1.27.0
|
||||||
google.golang.org/grpc v1.26.0
|
google.golang.org/protobuf v1.24.0 // indirect
|
||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
|
||||||
gopkg.in/yaml.v2 v2.2.8 // indirect
|
gopkg.in/yaml.v2 v2.2.8 // indirect
|
||||||
)
|
)
|
||||||
|
|
||||||
replace (
|
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a // pinned to release-branch.go1.13
|
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7 // pinned to release-branch.go1.13
|
|
||||||
)
|
|
||||||
|
4
vendor/k8s.io/cri-api/pkg/apis/runtime/v1alpha2/api.proto
generated
vendored
4
vendor/k8s.io/cri-api/pkg/apis/runtime/v1alpha2/api.proto
generated
vendored
@ -785,8 +785,8 @@ message ContainerConfig {
|
|||||||
|
|
||||||
// Configuration specific to Linux containers.
|
// Configuration specific to Linux containers.
|
||||||
LinuxContainerConfig linux = 15;
|
LinuxContainerConfig linux = 15;
|
||||||
// Configuration specific to Windows containers.
|
// Configuration specific to Windows containers.
|
||||||
WindowsContainerConfig windows = 16;
|
WindowsContainerConfig windows = 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
message CreateContainerRequest {
|
message CreateContainerRequest {
|
||||||
|
Loading…
Reference in New Issue
Block a user