summaryrefslogtreecommitdiff
path: root/vendor/k8s.io/kubernetes/pkg/apis
diff options
context:
space:
mode:
authorbaude <bbaude@redhat.com>2018-03-23 09:00:42 -0500
committerAtomic Bot <atomic-devel@projectatomic.io>2018-03-27 21:55:33 +0000
commit9aba605ddecc84e070a55019bb34109c5d5fd9b6 (patch)
tree5e7f39a3c293602e13871ce5ebfd4e2c4f146ca1 /vendor/k8s.io/kubernetes/pkg/apis
parentaf64e10400f8533a0c48ecdf5ab9b7fbf329e14e (diff)
downloadpodman-9aba605ddecc84e070a55019bb34109c5d5fd9b6.tar.gz
podman-9aba605ddecc84e070a55019bb34109c5d5fd9b6.tar.bz2
podman-9aba605ddecc84e070a55019bb34109c5d5fd9b6.zip
Remove dependency on kubernetes
podman parse and attach were using a very small portion of the kubernetes code but using it caused a signficant increase in binary size. Signed-off-by: baude <bbaude@redhat.com> Closes: #559 Approved by: rhatdan
Diffstat (limited to 'vendor/k8s.io/kubernetes/pkg/apis')
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/autoscaling/annotations.go34
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/autoscaling/doc.go19
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/autoscaling/register.go53
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/autoscaling/types.go422
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/autoscaling/zz_generated.deepcopy.go572
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/annotation_key_constants.go92
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/doc.go24
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/field_constants.go38
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/helper/helpers.go597
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/install/install.go67
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/json.go28
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/objectreference.go34
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/pods/helpers.go63
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/register.go99
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/resource.go62
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/taint.go36
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/toleration.go30
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/types.go4656
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/v1/conversion.go619
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/v1/defaults.go413
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/v1/doc.go23
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/helpers.go450
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/v1/register.go46
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/v1/zz_generated.conversion.go5686
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/v1/zz_generated.defaults.go638
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/validation/doc.go19
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/validation/events.go129
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/validation/validation.go5066
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/core/zz_generated.deepcopy.go5952
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/extensions/doc.go19
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/extensions/helpers.go37
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/extensions/register.go68
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/extensions/types.go1049
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/extensions/zz_generated.deepcopy.go1231
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/networking/doc.go19
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/networking/register.go51
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/networking/types.go191
-rw-r--r--vendor/k8s.io/kubernetes/pkg/apis/networking/zz_generated.deepcopy.go282
38 files changed, 0 insertions, 28914 deletions
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/annotations.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/annotations.go
deleted file mode 100644
index ccf034535..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/annotations.go
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Copyright 2016 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 autoscaling
-
-// MetricSpecsAnnotation is the annotation which holds non-CPU-utilization HPA metric
-// specs when converting the `Metrics` field from autoscaling/v2beta1
-const MetricSpecsAnnotation = "autoscaling.alpha.kubernetes.io/metrics"
-
-// MetricStatusesAnnotation is the annotation which holds non-CPU-utilization HPA metric
-// statuses when converting the `CurrentMetrics` field from autoscaling/v2beta1
-const MetricStatusesAnnotation = "autoscaling.alpha.kubernetes.io/current-metrics"
-
-// HorizontalPodAutoscalerConditionsAnnotation is the annotation which holds the conditions
-// of an HPA when converting the `Conditions` field from autoscaling/v2beta1
-const HorizontalPodAutoscalerConditionsAnnotation = "autoscaling.alpha.kubernetes.io/conditions"
-
-// DefaultCPUUtilization is the default value for CPU utilization, provided no other
-// metrics are present. This is here because it's used by both the v2beta1 defaulting
-// logic, and the pseudo-defaulting done in v1 conversion.
-const DefaultCPUUtilization = 80
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/doc.go
deleted file mode 100644
index 7c91aac8b..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/doc.go
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-Copyright 2016 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.
-*/
-
-// +k8s:deepcopy-gen=package
-
-package autoscaling // import "k8s.io/kubernetes/pkg/apis/autoscaling"
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/register.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/register.go
deleted file mode 100644
index 6c321a3ab..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/register.go
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-Copyright 2016 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 autoscaling
-
-import (
- "k8s.io/apimachinery/pkg/runtime"
- "k8s.io/apimachinery/pkg/runtime/schema"
-)
-
-// GroupName is the group name use in this package
-const GroupName = "autoscaling"
-
-// SchemeGroupVersion is group version used to register these objects
-var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
-
-// Kind takes an unqualified kind and returns a Group qualified GroupKind
-func Kind(kind string) schema.GroupKind {
- return SchemeGroupVersion.WithKind(kind).GroupKind()
-}
-
-// Resource takes an unqualified resource and returns a Group qualified GroupResource
-func Resource(resource string) schema.GroupResource {
- return SchemeGroupVersion.WithResource(resource).GroupResource()
-}
-
-var (
- SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
- AddToScheme = SchemeBuilder.AddToScheme
-)
-
-// Adds the list of known types to the given scheme.
-func addKnownTypes(scheme *runtime.Scheme) error {
- scheme.AddKnownTypes(SchemeGroupVersion,
- &Scale{},
- &HorizontalPodAutoscaler{},
- &HorizontalPodAutoscalerList{},
- )
- return nil
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/types.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/types.go
deleted file mode 100644
index 5489742db..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/types.go
+++ /dev/null
@@ -1,422 +0,0 @@
-/*
-Copyright 2016 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 autoscaling
-
-import (
- "k8s.io/apimachinery/pkg/api/resource"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- api "k8s.io/kubernetes/pkg/apis/core"
-)
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// Scale represents a scaling request for a resource.
-type Scale struct {
- metav1.TypeMeta
- // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.
- // +optional
- metav1.ObjectMeta
-
- // defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.
- // +optional
- Spec ScaleSpec
-
- // current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.
- // +optional
- Status ScaleStatus
-}
-
-// ScaleSpec describes the attributes of a scale subresource.
-type ScaleSpec struct {
- // desired number of instances for the scaled object.
- // +optional
- Replicas int32
-}
-
-// ScaleStatus represents the current status of a scale subresource.
-type ScaleStatus struct {
- // actual number of observed instances of the scaled object.
- Replicas int32
-
- // label query over pods that should match the replicas count. This is same
- // as the label selector but in the string format to avoid introspection
- // by clients. The string will be in the same format as the query-param syntax.
- // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
- // +optional
- Selector string
-}
-
-// CrossVersionObjectReference contains enough information to let you identify the referred resource.
-type CrossVersionObjectReference struct {
- // Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
- Kind string
- // Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names
- Name string
- // API version of the referent
- // +optional
- APIVersion string
-}
-
-// HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.
-type HorizontalPodAutoscalerSpec struct {
- // ScaleTargetRef points to the target resource to scale, and is used to the pods for which metrics
- // should be collected, as well as to actually change the replica count.
- ScaleTargetRef CrossVersionObjectReference
- // MinReplicas is the lower limit for the number of replicas to which the autoscaler can scale down.
- // It defaults to 1 pod.
- // +optional
- MinReplicas *int32
- // MaxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up.
- // It cannot be less that minReplicas.
- MaxReplicas int32
- // Metrics contains the specifications for which to use to calculate the
- // desired replica count (the maximum replica count across all metrics will
- // be used). The desired replica count is calculated multiplying the
- // ratio between the target value and the current value by the current
- // number of pods. Ergo, metrics used must decrease as the pod count is
- // increased, and vice-versa. See the individual metric source types for
- // more information about how each type of metric must respond.
- // +optional
- Metrics []MetricSpec
-}
-
-// MetricSourceType indicates the type of metric.
-type MetricSourceType string
-
-var (
- // ObjectMetricSourceType is a metric describing a kubernetes object
- // (for example, hits-per-second on an Ingress object).
- ObjectMetricSourceType MetricSourceType = "Object"
- // PodsMetricSourceType is a metric describing each pod in the current scale
- // target (for example, transactions-processed-per-second). The values
- // will be averaged together before being compared to the target value.
- PodsMetricSourceType MetricSourceType = "Pods"
- // ResourceMetricSourceType is a resource metric known to Kubernetes, as
- // specified in requests and limits, describing each pod in the current
- // scale target (e.g. CPU or memory). Such metrics are built in to
- // Kubernetes, and have special scaling options on top of those available
- // to normal per-pod metrics (the "pods" source).
- ResourceMetricSourceType MetricSourceType = "Resource"
- // ExternalMetricSourceType is a global metric that is not associated
- // with any Kubernetes object. It allows autoscaling based on information
- // coming from components running outside of cluster
- // (for example length of queue in cloud messaging service, or
- // QPS from loadbalancer running outside of cluster).
- ExternalMetricSourceType MetricSourceType = "External"
-)
-
-// MetricSpec specifies how to scale based on a single metric
-// (only `type` and one other matching field should be set at once).
-type MetricSpec struct {
- // Type is the type of metric source. It should be one of "Object",
- // "Pods" or "Resource", each mapping to a matching field in the object.
- Type MetricSourceType
-
- // Object refers to a metric describing a single kubernetes object
- // (for example, hits-per-second on an Ingress object).
- // +optional
- Object *ObjectMetricSource
- // Pods refers to a metric describing each pod in the current scale target
- // (for example, transactions-processed-per-second). The values will be
- // averaged together before being compared to the target value.
- // +optional
- Pods *PodsMetricSource
- // Resource refers to a resource metric (such as those specified in
- // requests and limits) known to Kubernetes describing each pod in the
- // current scale target (e.g. CPU or memory). Such metrics are built in to
- // Kubernetes, and have special scaling options on top of those available
- // to normal per-pod metrics using the "pods" source.
- // +optional
- Resource *ResourceMetricSource
- // External refers to a global metric that is not associated
- // with any Kubernetes object. It allows autoscaling based on information
- // coming from components running outside of cluster
- // (for example length of queue in cloud messaging service, or
- // QPS from loadbalancer running outside of cluster).
- // +optional
- External *ExternalMetricSource
-}
-
-// ObjectMetricSource indicates how to scale on a metric describing a
-// kubernetes object (for example, hits-per-second on an Ingress object).
-type ObjectMetricSource struct {
- // Target is the described Kubernetes object.
- Target CrossVersionObjectReference
-
- // MetricName is the name of the metric in question.
- MetricName string
- // TargetValue is the target value of the metric (as a quantity).
- TargetValue resource.Quantity
-}
-
-// PodsMetricSource indicates how to scale on a metric describing each pod in
-// the current scale target (for example, transactions-processed-per-second).
-// The values will be averaged together before being compared to the target
-// value.
-type PodsMetricSource struct {
- // MetricName is the name of the metric in question
- MetricName string
- // TargetAverageValue is the target value of the average of the
- // metric across all relevant pods (as a quantity)
- TargetAverageValue resource.Quantity
-}
-
-// ResourceMetricSource indicates how to scale on a resource metric known to
-// Kubernetes, as specified in requests and limits, describing each pod in the
-// current scale target (e.g. CPU or memory). The values will be averaged
-// together before being compared to the target. Such metrics are built in to
-// Kubernetes, and have special scaling options on top of those available to
-// normal per-pod metrics using the "pods" source. Only one "target" type
-// should be set.
-type ResourceMetricSource struct {
- // Name is the name of the resource in question.
- Name api.ResourceName
- // TargetAverageUtilization is the target value of the average of the
- // resource metric across all relevant pods, represented as a percentage of
- // the requested value of the resource for the pods.
- // +optional
- TargetAverageUtilization *int32
- // TargetAverageValue is the target value of the average of the
- // resource metric across all relevant pods, as a raw value (instead of as
- // a percentage of the request), similar to the "pods" metric source type.
- // +optional
- TargetAverageValue *resource.Quantity
-}
-
-// ExternalMetricSource indicates how to scale on a metric not associated with
-// any Kubernetes object (for example length of queue in cloud
-// messaging service, or QPS from loadbalancer running outside of cluster).
-type ExternalMetricSource struct {
- // metricName is the name of the metric in question.
- MetricName string
- // MetricSelector is used to identify a specific time series
- // within a given metric.
- // +optional
- MetricSelector *metav1.LabelSelector
- // TargetValue is the target value of the metric (as a quantity).
- // Mutually exclusive with TargetAverageValue.
- // +optional
- TargetValue *resource.Quantity
- // TargetAverageValue is the target per-pod value of global metric (as a quantity).
- // Mutually exclusive with TargetValue.
- // +optional
- TargetAverageValue *resource.Quantity
-}
-
-// HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.
-type HorizontalPodAutoscalerStatus struct {
- // ObservedGeneration is the most recent generation observed by this autoscaler.
- // +optional
- ObservedGeneration *int64
-
- // LastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods,
- // used by the autoscaler to control how often the number of pods is changed.
- // +optional
- LastScaleTime *metav1.Time
-
- // CurrentReplicas is current number of replicas of pods managed by this autoscaler,
- // as last seen by the autoscaler.
- CurrentReplicas int32
-
- // DesiredReplicas is the desired number of replicas of pods managed by this autoscaler,
- // as last calculated by the autoscaler.
- DesiredReplicas int32
-
- // CurrentMetrics is the last read state of the metrics used by this autoscaler.
- CurrentMetrics []MetricStatus
-
- // Conditions is the set of conditions required for this autoscaler to scale its target,
- // and indicates whether or not those conditions are met.
- Conditions []HorizontalPodAutoscalerCondition
-}
-
-// ConditionStatus indicates the status of a condition (true, false, or unknown).
-type ConditionStatus string
-
-// These are valid condition statuses. "ConditionTrue" means a resource is in the condition;
-// "ConditionFalse" means a resource is not in the condition; "ConditionUnknown" means kubernetes
-// can't decide if a resource is in the condition or not. In the future, we could add other
-// intermediate conditions, e.g. ConditionDegraded.
-const (
- ConditionTrue ConditionStatus = "True"
- ConditionFalse ConditionStatus = "False"
- ConditionUnknown ConditionStatus = "Unknown"
-)
-
-// HorizontalPodAutoscalerConditionType are the valid conditions of
-// a HorizontalPodAutoscaler.
-type HorizontalPodAutoscalerConditionType string
-
-var (
- // ScalingActive indicates that the HPA controller is able to scale if necessary:
- // it's correctly configured, can fetch the desired metrics, and isn't disabled.
- ScalingActive HorizontalPodAutoscalerConditionType = "ScalingActive"
- // AbleToScale indicates a lack of transient issues which prevent scaling from occurring,
- // such as being in a backoff window, or being unable to access/update the target scale.
- AbleToScale HorizontalPodAutoscalerConditionType = "AbleToScale"
- // ScalingLimited indicates that the calculated scale based on metrics would be above or
- // below the range for the HPA, and has thus been capped.
- ScalingLimited HorizontalPodAutoscalerConditionType = "ScalingLimited"
-)
-
-// HorizontalPodAutoscalerCondition describes the state of
-// a HorizontalPodAutoscaler at a certain point.
-type HorizontalPodAutoscalerCondition struct {
- // Type describes the current condition
- Type HorizontalPodAutoscalerConditionType
- // Status is the status of the condition (True, False, Unknown)
- Status ConditionStatus
- // LastTransitionTime is the last time the condition transitioned from
- // one status to another
- // +optional
- LastTransitionTime metav1.Time
- // Reason is the reason for the condition's last transition.
- // +optional
- Reason string
- // Message is a human-readable explanation containing details about
- // the transition
- // +optional
- Message string
-}
-
-// MetricStatus describes the last-read state of a single metric.
-type MetricStatus struct {
- // Type is the type of metric source. It will be one of "Object",
- // "Pods" or "Resource", each corresponds to a matching field in the object.
- Type MetricSourceType
-
- // Object refers to a metric describing a single kubernetes object
- // (for example, hits-per-second on an Ingress object).
- // +optional
- Object *ObjectMetricStatus
- // Pods refers to a metric describing each pod in the current scale target
- // (for example, transactions-processed-per-second). The values will be
- // averaged together before being compared to the target value.
- // +optional
- Pods *PodsMetricStatus
- // Resource refers to a resource metric (such as those specified in
- // requests and limits) known to Kubernetes describing each pod in the
- // current scale target (e.g. CPU or memory). Such metrics are built in to
- // Kubernetes, and have special scaling options on top of those available
- // to normal per-pod metrics using the "pods" source.
- // +optional
- Resource *ResourceMetricStatus
- // External refers to a global metric that is not associated
- // with any Kubernetes object. It allows autoscaling based on information
- // coming from components running outside of cluster
- // (for example length of queue in cloud messaging service, or
- // QPS from loadbalancer running outside of cluster).
- // +optional
- External *ExternalMetricStatus
-}
-
-// ObjectMetricStatus indicates the current value of a metric describing a
-// kubernetes object (for example, hits-per-second on an Ingress object).
-type ObjectMetricStatus struct {
- // Target is the described Kubernetes object.
- Target CrossVersionObjectReference
-
- // MetricName is the name of the metric in question.
- MetricName string
- // CurrentValue is the current value of the metric (as a quantity).
- CurrentValue resource.Quantity
-}
-
-// PodsMetricStatus indicates the current value of a metric describing each pod in
-// the current scale target (for example, transactions-processed-per-second).
-type PodsMetricStatus struct {
- // MetricName is the name of the metric in question
- MetricName string
- // CurrentAverageValue is the current value of the average of the
- // metric across all relevant pods (as a quantity)
- CurrentAverageValue resource.Quantity
-}
-
-// ResourceMetricStatus indicates the current value of a resource metric known to
-// Kubernetes, as specified in requests and limits, describing each pod in the
-// current scale target (e.g. CPU or memory). Such metrics are built in to
-// Kubernetes, and have special scaling options on top of those available to
-// normal per-pod metrics using the "pods" source.
-type ResourceMetricStatus struct {
- // Name is the name of the resource in question.
- Name api.ResourceName
- // CurrentAverageUtilization is the current value of the average of the
- // resource metric across all relevant pods, represented as a percentage of
- // the requested value of the resource for the pods. It will only be
- // present if `targetAverageValue` was set in the corresponding metric
- // specification.
- // +optional
- CurrentAverageUtilization *int32
- // CurrentAverageValue is the current value of the average of the
- // resource metric across all relevant pods, as a raw value (instead of as
- // a percentage of the request), similar to the "pods" metric source type.
- // It will always be set, regardless of the corresponding metric specification.
- CurrentAverageValue resource.Quantity
-}
-
-// ExternalMetricStatus indicates the current value of a global metric
-// not associated with any Kubernetes object.
-type ExternalMetricStatus struct {
- // MetricName is the name of a metric used for autoscaling in
- // metric system.
- MetricName string
- // MetricSelector is used to identify a specific time series
- // within a given metric.
- // +optional
- MetricSelector *metav1.LabelSelector
- // CurrentValue is the current value of the metric (as a quantity)
- CurrentValue resource.Quantity
- // CurrentAverageValue is the current value of metric averaged over autoscaled pods.
- // +optional
- CurrentAverageValue *resource.Quantity
-}
-
-// +genclient
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// HorizontalPodAutoscaler is the configuration for a horizontal pod
-// autoscaler, which automatically manages the replica count of any resource
-// implementing the scale subresource based on the metrics specified.
-type HorizontalPodAutoscaler struct {
- metav1.TypeMeta
- // Metadata is the standard object metadata.
- // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
- // +optional
- metav1.ObjectMeta
-
- // Spec is the specification for the behaviour of the autoscaler.
- // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.
- // +optional
- Spec HorizontalPodAutoscalerSpec
-
- // Status is the current information about the autoscaler.
- // +optional
- Status HorizontalPodAutoscalerStatus
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.
-type HorizontalPodAutoscalerList struct {
- metav1.TypeMeta
- // Metadata is the standard list metadata.
- // +optional
- metav1.ListMeta
-
- // Items is the list of horizontal pod autoscaler objects.
- Items []HorizontalPodAutoscaler
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/zz_generated.deepcopy.go
deleted file mode 100644
index c01971384..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/zz_generated.deepcopy.go
+++ /dev/null
@@ -1,572 +0,0 @@
-// +build !ignore_autogenerated
-
-/*
-Copyright 2018 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.
-*/
-
-// Code generated by deepcopy-gen. DO NOT EDIT.
-
-package autoscaling
-
-import (
- v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- runtime "k8s.io/apimachinery/pkg/runtime"
-)
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CrossVersionObjectReference) DeepCopyInto(out *CrossVersionObjectReference) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CrossVersionObjectReference.
-func (in *CrossVersionObjectReference) DeepCopy() *CrossVersionObjectReference {
- if in == nil {
- return nil
- }
- out := new(CrossVersionObjectReference)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ExternalMetricSource) DeepCopyInto(out *ExternalMetricSource) {
- *out = *in
- if in.MetricSelector != nil {
- in, out := &in.MetricSelector, &out.MetricSelector
- if *in == nil {
- *out = nil
- } else {
- *out = new(v1.LabelSelector)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.TargetValue != nil {
- in, out := &in.TargetValue, &out.TargetValue
- if *in == nil {
- *out = nil
- } else {
- x := (*in).DeepCopy()
- *out = &x
- }
- }
- if in.TargetAverageValue != nil {
- in, out := &in.TargetAverageValue, &out.TargetAverageValue
- if *in == nil {
- *out = nil
- } else {
- x := (*in).DeepCopy()
- *out = &x
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricSource.
-func (in *ExternalMetricSource) DeepCopy() *ExternalMetricSource {
- if in == nil {
- return nil
- }
- out := new(ExternalMetricSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ExternalMetricStatus) DeepCopyInto(out *ExternalMetricStatus) {
- *out = *in
- if in.MetricSelector != nil {
- in, out := &in.MetricSelector, &out.MetricSelector
- if *in == nil {
- *out = nil
- } else {
- *out = new(v1.LabelSelector)
- (*in).DeepCopyInto(*out)
- }
- }
- out.CurrentValue = in.CurrentValue.DeepCopy()
- if in.CurrentAverageValue != nil {
- in, out := &in.CurrentAverageValue, &out.CurrentAverageValue
- if *in == nil {
- *out = nil
- } else {
- x := (*in).DeepCopy()
- *out = &x
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricStatus.
-func (in *ExternalMetricStatus) DeepCopy() *ExternalMetricStatus {
- if in == nil {
- return nil
- }
- out := new(ExternalMetricStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *HorizontalPodAutoscaler) DeepCopyInto(out *HorizontalPodAutoscaler) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- in.Spec.DeepCopyInto(&out.Spec)
- in.Status.DeepCopyInto(&out.Status)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscaler.
-func (in *HorizontalPodAutoscaler) DeepCopy() *HorizontalPodAutoscaler {
- if in == nil {
- return nil
- }
- out := new(HorizontalPodAutoscaler)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *HorizontalPodAutoscaler) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *HorizontalPodAutoscalerCondition) DeepCopyInto(out *HorizontalPodAutoscalerCondition) {
- *out = *in
- in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerCondition.
-func (in *HorizontalPodAutoscalerCondition) DeepCopy() *HorizontalPodAutoscalerCondition {
- if in == nil {
- return nil
- }
- out := new(HorizontalPodAutoscalerCondition)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *HorizontalPodAutoscalerList) DeepCopyInto(out *HorizontalPodAutoscalerList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]HorizontalPodAutoscaler, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerList.
-func (in *HorizontalPodAutoscalerList) DeepCopy() *HorizontalPodAutoscalerList {
- if in == nil {
- return nil
- }
- out := new(HorizontalPodAutoscalerList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *HorizontalPodAutoscalerList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *HorizontalPodAutoscalerSpec) DeepCopyInto(out *HorizontalPodAutoscalerSpec) {
- *out = *in
- out.ScaleTargetRef = in.ScaleTargetRef
- if in.MinReplicas != nil {
- in, out := &in.MinReplicas, &out.MinReplicas
- if *in == nil {
- *out = nil
- } else {
- *out = new(int32)
- **out = **in
- }
- }
- if in.Metrics != nil {
- in, out := &in.Metrics, &out.Metrics
- *out = make([]MetricSpec, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerSpec.
-func (in *HorizontalPodAutoscalerSpec) DeepCopy() *HorizontalPodAutoscalerSpec {
- if in == nil {
- return nil
- }
- out := new(HorizontalPodAutoscalerSpec)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *HorizontalPodAutoscalerStatus) DeepCopyInto(out *HorizontalPodAutoscalerStatus) {
- *out = *in
- if in.ObservedGeneration != nil {
- in, out := &in.ObservedGeneration, &out.ObservedGeneration
- if *in == nil {
- *out = nil
- } else {
- *out = new(int64)
- **out = **in
- }
- }
- if in.LastScaleTime != nil {
- in, out := &in.LastScaleTime, &out.LastScaleTime
- if *in == nil {
- *out = nil
- } else {
- *out = (*in).DeepCopy()
- }
- }
- if in.CurrentMetrics != nil {
- in, out := &in.CurrentMetrics, &out.CurrentMetrics
- *out = make([]MetricStatus, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.Conditions != nil {
- in, out := &in.Conditions, &out.Conditions
- *out = make([]HorizontalPodAutoscalerCondition, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerStatus.
-func (in *HorizontalPodAutoscalerStatus) DeepCopy() *HorizontalPodAutoscalerStatus {
- if in == nil {
- return nil
- }
- out := new(HorizontalPodAutoscalerStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *MetricSpec) DeepCopyInto(out *MetricSpec) {
- *out = *in
- if in.Object != nil {
- in, out := &in.Object, &out.Object
- if *in == nil {
- *out = nil
- } else {
- *out = new(ObjectMetricSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Pods != nil {
- in, out := &in.Pods, &out.Pods
- if *in == nil {
- *out = nil
- } else {
- *out = new(PodsMetricSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Resource != nil {
- in, out := &in.Resource, &out.Resource
- if *in == nil {
- *out = nil
- } else {
- *out = new(ResourceMetricSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.External != nil {
- in, out := &in.External, &out.External
- if *in == nil {
- *out = nil
- } else {
- *out = new(ExternalMetricSource)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricSpec.
-func (in *MetricSpec) DeepCopy() *MetricSpec {
- if in == nil {
- return nil
- }
- out := new(MetricSpec)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *MetricStatus) DeepCopyInto(out *MetricStatus) {
- *out = *in
- if in.Object != nil {
- in, out := &in.Object, &out.Object
- if *in == nil {
- *out = nil
- } else {
- *out = new(ObjectMetricStatus)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Pods != nil {
- in, out := &in.Pods, &out.Pods
- if *in == nil {
- *out = nil
- } else {
- *out = new(PodsMetricStatus)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Resource != nil {
- in, out := &in.Resource, &out.Resource
- if *in == nil {
- *out = nil
- } else {
- *out = new(ResourceMetricStatus)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.External != nil {
- in, out := &in.External, &out.External
- if *in == nil {
- *out = nil
- } else {
- *out = new(ExternalMetricStatus)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricStatus.
-func (in *MetricStatus) DeepCopy() *MetricStatus {
- if in == nil {
- return nil
- }
- out := new(MetricStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ObjectMetricSource) DeepCopyInto(out *ObjectMetricSource) {
- *out = *in
- out.Target = in.Target
- out.TargetValue = in.TargetValue.DeepCopy()
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricSource.
-func (in *ObjectMetricSource) DeepCopy() *ObjectMetricSource {
- if in == nil {
- return nil
- }
- out := new(ObjectMetricSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ObjectMetricStatus) DeepCopyInto(out *ObjectMetricStatus) {
- *out = *in
- out.Target = in.Target
- out.CurrentValue = in.CurrentValue.DeepCopy()
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricStatus.
-func (in *ObjectMetricStatus) DeepCopy() *ObjectMetricStatus {
- if in == nil {
- return nil
- }
- out := new(ObjectMetricStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodsMetricSource) DeepCopyInto(out *PodsMetricSource) {
- *out = *in
- out.TargetAverageValue = in.TargetAverageValue.DeepCopy()
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricSource.
-func (in *PodsMetricSource) DeepCopy() *PodsMetricSource {
- if in == nil {
- return nil
- }
- out := new(PodsMetricSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodsMetricStatus) DeepCopyInto(out *PodsMetricStatus) {
- *out = *in
- out.CurrentAverageValue = in.CurrentAverageValue.DeepCopy()
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricStatus.
-func (in *PodsMetricStatus) DeepCopy() *PodsMetricStatus {
- if in == nil {
- return nil
- }
- out := new(PodsMetricStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ResourceMetricSource) DeepCopyInto(out *ResourceMetricSource) {
- *out = *in
- if in.TargetAverageUtilization != nil {
- in, out := &in.TargetAverageUtilization, &out.TargetAverageUtilization
- if *in == nil {
- *out = nil
- } else {
- *out = new(int32)
- **out = **in
- }
- }
- if in.TargetAverageValue != nil {
- in, out := &in.TargetAverageValue, &out.TargetAverageValue
- if *in == nil {
- *out = nil
- } else {
- x := (*in).DeepCopy()
- *out = &x
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricSource.
-func (in *ResourceMetricSource) DeepCopy() *ResourceMetricSource {
- if in == nil {
- return nil
- }
- out := new(ResourceMetricSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ResourceMetricStatus) DeepCopyInto(out *ResourceMetricStatus) {
- *out = *in
- if in.CurrentAverageUtilization != nil {
- in, out := &in.CurrentAverageUtilization, &out.CurrentAverageUtilization
- if *in == nil {
- *out = nil
- } else {
- *out = new(int32)
- **out = **in
- }
- }
- out.CurrentAverageValue = in.CurrentAverageValue.DeepCopy()
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricStatus.
-func (in *ResourceMetricStatus) DeepCopy() *ResourceMetricStatus {
- if in == nil {
- return nil
- }
- out := new(ResourceMetricStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Scale) DeepCopyInto(out *Scale) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- out.Spec = in.Spec
- out.Status = in.Status
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scale.
-func (in *Scale) DeepCopy() *Scale {
- if in == nil {
- return nil
- }
- out := new(Scale)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *Scale) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ScaleSpec) DeepCopyInto(out *ScaleSpec) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleSpec.
-func (in *ScaleSpec) DeepCopy() *ScaleSpec {
- if in == nil {
- return nil
- }
- out := new(ScaleSpec)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ScaleStatus) DeepCopyInto(out *ScaleStatus) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleStatus.
-func (in *ScaleStatus) DeepCopy() *ScaleStatus {
- if in == nil {
- return nil
- }
- out := new(ScaleStatus)
- in.DeepCopyInto(out)
- return out
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/annotation_key_constants.go b/vendor/k8s.io/kubernetes/pkg/apis/core/annotation_key_constants.go
deleted file mode 100644
index 131fdd990..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/annotation_key_constants.go
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
-Copyright 2017 The Kubernetes Authors.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-// This file should be consistent with pkg/api/v1/annotation_key_constants.go.
-
-package core
-
-const (
- // ImagePolicyFailedOpenKey is added to pods created by failing open when the image policy
- // webhook backend fails.
- ImagePolicyFailedOpenKey string = "alpha.image-policy.k8s.io/failed-open"
-
- // PodPresetOptOutAnnotationKey represents the annotation key for a pod to exempt itself from pod preset manipulation
- PodPresetOptOutAnnotationKey string = "podpreset.admission.kubernetes.io/exclude"
-
- // MirrorAnnotationKey represents the annotation key set by kubelets when creating mirror pods
- MirrorPodAnnotationKey string = "kubernetes.io/config.mirror"
-
- // TolerationsAnnotationKey represents the key of tolerations data (json serialized)
- // in the Annotations of a Pod.
- TolerationsAnnotationKey string = "scheduler.alpha.kubernetes.io/tolerations"
-
- // TaintsAnnotationKey represents the key of taints data (json serialized)
- // in the Annotations of a Node.
- TaintsAnnotationKey string = "scheduler.alpha.kubernetes.io/taints"
-
- // SeccompPodAnnotationKey represents the key of a seccomp profile applied
- // to all containers of a pod.
- SeccompPodAnnotationKey string = "seccomp.security.alpha.kubernetes.io/pod"
-
- // SeccompContainerAnnotationKeyPrefix represents the key of a seccomp profile applied
- // to one container of a pod.
- SeccompContainerAnnotationKeyPrefix string = "container.seccomp.security.alpha.kubernetes.io/"
-
- // PreferAvoidPodsAnnotationKey represents the key of preferAvoidPods data (json serialized)
- // in the Annotations of a Node.
- PreferAvoidPodsAnnotationKey string = "scheduler.alpha.kubernetes.io/preferAvoidPods"
-
- // SysctlsPodAnnotationKey represents the key of sysctls which are set for the infrastructure
- // container of a pod. The annotation value is a comma separated list of sysctl_name=value
- // key-value pairs. Only a limited set of whitelisted and isolated sysctls is supported by
- // the kubelet. Pods with other sysctls will fail to launch.
- SysctlsPodAnnotationKey string = "security.alpha.kubernetes.io/sysctls"
-
- // UnsafeSysctlsPodAnnotationKey represents the key of sysctls which are set for the infrastructure
- // container of a pod. The annotation value is a comma separated list of sysctl_name=value
- // key-value pairs. Unsafe sysctls must be explicitly enabled for a kubelet. They are properly
- // namespaced to a pod or a container, but their isolation is usually unclear or weak. Their use
- // is at-your-own-risk. Pods that attempt to set an unsafe sysctl that is not enabled for a kubelet
- // will fail to launch.
- UnsafeSysctlsPodAnnotationKey string = "security.alpha.kubernetes.io/unsafe-sysctls"
-
- // ObjectTTLAnnotations represents a suggestion for kubelet for how long it can cache
- // an object (e.g. secret, config map) before fetching it again from apiserver.
- // This annotation can be attached to node.
- ObjectTTLAnnotationKey string = "node.alpha.kubernetes.io/ttl"
-
- // BootstrapCheckpointAnnotationKey represents a Resource (Pod) that should be checkpointed by
- // the kubelet prior to running
- BootstrapCheckpointAnnotationKey string = "node.kubernetes.io/bootstrap-checkpoint"
-
- // annotation key prefix used to identify non-convertible json paths.
- NonConvertibleAnnotationPrefix = "non-convertible.kubernetes.io"
-
- kubectlPrefix = "kubectl.kubernetes.io/"
-
- // LastAppliedConfigAnnotation is the annotation used to store the previous
- // configuration of a resource for use in a three way diff by UpdateApplyAnnotation.
- LastAppliedConfigAnnotation = kubectlPrefix + "last-applied-configuration"
-
- // AnnotationLoadBalancerSourceRangesKey is the key of the annotation on a service to set allowed ingress ranges on their LoadBalancers
- //
- // It should be a comma-separated list of CIDRs, e.g. `0.0.0.0/0` to
- // allow full access (the default) or `18.0.0.0/8,56.0.0.0/8` to allow
- // access only from the CIDRs currently allocated to MIT & the USPS.
- //
- // Not all cloud providers support this annotation, though AWS & GCE do.
- AnnotationLoadBalancerSourceRangesKey = "service.beta.kubernetes.io/load-balancer-source-ranges"
-)
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/core/doc.go
deleted file mode 100644
index 6017bfdab..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/doc.go
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
-Copyright 2014 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.
-*/
-
-// +k8s:deepcopy-gen=package
-
-// Package api contains the latest (or "internal") version of the
-// Kubernetes API objects. This is the API objects as represented in memory.
-// The contract presented to clients is located in the versioned packages,
-// which are sub-directories. The first one is "v1". Those packages
-// describe how a particular version is serialized to storage/network.
-package core // import "k8s.io/kubernetes/pkg/apis/core"
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/field_constants.go b/vendor/k8s.io/kubernetes/pkg/apis/core/field_constants.go
deleted file mode 100644
index a26f80568..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/field_constants.go
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
-Copyright 2016 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 core
-
-// Field path constants that are specific to the internal API
-// representation.
-const (
- NodeUnschedulableField = "spec.unschedulable"
- ObjectNameField = "metadata.name"
- PodHostField = "spec.nodeName"
- PodStatusField = "status.phase"
- SecretTypeField = "type"
-
- EventReasonField = "action"
- EventSourceField = "reportingComponent"
- EventTypeField = "type"
- EventInvolvedKindField = "involvedObject.kind"
- EventInvolvedNamespaceField = "involvedObject.namespace"
- EventInvolvedNameField = "involvedObject.name"
- EventInvolvedUIDField = "involvedObject.uid"
- EventInvolvedAPIVersionField = "involvedObject.apiVersion"
- EventInvolvedResourceVersionField = "involvedObject.resourceVersion"
- EventInvolvedFieldPathField = "involvedObject.fieldPath"
-)
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/helper/helpers.go b/vendor/k8s.io/kubernetes/pkg/apis/core/helper/helpers.go
deleted file mode 100644
index 96899f184..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/helper/helpers.go
+++ /dev/null
@@ -1,597 +0,0 @@
-/*
-Copyright 2014 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 helper
-
-import (
- "encoding/json"
- "fmt"
- "strings"
-
- "k8s.io/apimachinery/pkg/api/resource"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/apimachinery/pkg/conversion"
- "k8s.io/apimachinery/pkg/fields"
- "k8s.io/apimachinery/pkg/labels"
- "k8s.io/apimachinery/pkg/selection"
- "k8s.io/apimachinery/pkg/util/sets"
- "k8s.io/apimachinery/pkg/util/validation"
- "k8s.io/kubernetes/pkg/apis/core"
-)
-
-// IsHugePageResourceName returns true if the resource name has the huge page
-// resource prefix.
-func IsHugePageResourceName(name core.ResourceName) bool {
- return strings.HasPrefix(string(name), core.ResourceHugePagesPrefix)
-}
-
-// IsQuotaHugePageResourceName returns true if the resource name has the quota
-// related huge page resource prefix.
-func IsQuotaHugePageResourceName(name core.ResourceName) bool {
- return strings.HasPrefix(string(name), core.ResourceHugePagesPrefix) || strings.HasPrefix(string(name), core.ResourceRequestsHugePagesPrefix)
-}
-
-// HugePageResourceName returns a ResourceName with the canonical hugepage
-// prefix prepended for the specified page size. The page size is converted
-// to its canonical representation.
-func HugePageResourceName(pageSize resource.Quantity) core.ResourceName {
- return core.ResourceName(fmt.Sprintf("%s%s", core.ResourceHugePagesPrefix, pageSize.String()))
-}
-
-// HugePageSizeFromResourceName returns the page size for the specified huge page
-// resource name. If the specified input is not a valid huge page resource name
-// an error is returned.
-func HugePageSizeFromResourceName(name core.ResourceName) (resource.Quantity, error) {
- if !IsHugePageResourceName(name) {
- return resource.Quantity{}, fmt.Errorf("resource name: %s is not valid hugepage name", name)
- }
- pageSize := strings.TrimPrefix(string(name), core.ResourceHugePagesPrefix)
- return resource.ParseQuantity(pageSize)
-}
-
-// NonConvertibleFields iterates over the provided map and filters out all but
-// any keys with the "non-convertible.kubernetes.io" prefix.
-func NonConvertibleFields(annotations map[string]string) map[string]string {
- nonConvertibleKeys := map[string]string{}
- for key, value := range annotations {
- if strings.HasPrefix(key, core.NonConvertibleAnnotationPrefix) {
- nonConvertibleKeys[key] = value
- }
- }
- return nonConvertibleKeys
-}
-
-// Semantic can do semantic deep equality checks for core objects.
-// Example: apiequality.Semantic.DeepEqual(aPod, aPodWithNonNilButEmptyMaps) == true
-var Semantic = conversion.EqualitiesOrDie(
- func(a, b resource.Quantity) bool {
- // Ignore formatting, only care that numeric value stayed the same.
- // TODO: if we decide it's important, it should be safe to start comparing the format.
- //
- // Uninitialized quantities are equivalent to 0 quantities.
- return a.Cmp(b) == 0
- },
- func(a, b metav1.MicroTime) bool {
- return a.UTC() == b.UTC()
- },
- func(a, b metav1.Time) bool {
- return a.UTC() == b.UTC()
- },
- func(a, b labels.Selector) bool {
- return a.String() == b.String()
- },
- func(a, b fields.Selector) bool {
- return a.String() == b.String()
- },
-)
-
-var standardResourceQuotaScopes = sets.NewString(
- string(core.ResourceQuotaScopeTerminating),
- string(core.ResourceQuotaScopeNotTerminating),
- string(core.ResourceQuotaScopeBestEffort),
- string(core.ResourceQuotaScopeNotBestEffort),
-)
-
-// IsStandardResourceQuotaScope returns true if the scope is a standard value
-func IsStandardResourceQuotaScope(str string) bool {
- return standardResourceQuotaScopes.Has(str)
-}
-
-var podObjectCountQuotaResources = sets.NewString(
- string(core.ResourcePods),
-)
-
-var podComputeQuotaResources = sets.NewString(
- string(core.ResourceCPU),
- string(core.ResourceMemory),
- string(core.ResourceLimitsCPU),
- string(core.ResourceLimitsMemory),
- string(core.ResourceRequestsCPU),
- string(core.ResourceRequestsMemory),
-)
-
-// IsResourceQuotaScopeValidForResource returns true if the resource applies to the specified scope
-func IsResourceQuotaScopeValidForResource(scope core.ResourceQuotaScope, resource string) bool {
- switch scope {
- case core.ResourceQuotaScopeTerminating, core.ResourceQuotaScopeNotTerminating, core.ResourceQuotaScopeNotBestEffort:
- return podObjectCountQuotaResources.Has(resource) || podComputeQuotaResources.Has(resource)
- case core.ResourceQuotaScopeBestEffort:
- return podObjectCountQuotaResources.Has(resource)
- default:
- return true
- }
-}
-
-var standardContainerResources = sets.NewString(
- string(core.ResourceCPU),
- string(core.ResourceMemory),
- string(core.ResourceEphemeralStorage),
-)
-
-// IsStandardContainerResourceName returns true if the container can make a resource request
-// for the specified resource
-func IsStandardContainerResourceName(str string) bool {
- return standardContainerResources.Has(str) || IsHugePageResourceName(core.ResourceName(str))
-}
-
-// IsExtendedResourceName returns true if:
-// 1. the resource name is not in the default namespace;
-// 2. resource name does not have "requests." prefix,
-// to avoid confusion with the convention in quota
-// 3. it satisfies the rules in IsQualifiedName() after converted into quota resource name
-func IsExtendedResourceName(name core.ResourceName) bool {
- if IsDefaultNamespaceResource(name) || strings.HasPrefix(string(name), core.DefaultResourceRequestsPrefix) {
- return false
- }
- // Ensure it satisfies the rules in IsQualifiedName() after converted into quota resource name
- nameForQuota := fmt.Sprintf("%s%s", core.DefaultResourceRequestsPrefix, string(name))
- if errs := validation.IsQualifiedName(string(nameForQuota)); len(errs) != 0 {
- return false
- }
- return true
-}
-
-// IsDefaultNamespaceResource returns true if the resource name is in the
-// *kubernetes.io/ namespace. Partially-qualified (unprefixed) names are
-// implicitly in the kubernetes.io/ namespace.
-func IsDefaultNamespaceResource(name core.ResourceName) bool {
- return !strings.Contains(string(name), "/") ||
- strings.Contains(string(name), core.ResourceDefaultNamespacePrefix)
-}
-
-var overcommitBlacklist = sets.NewString(string(core.ResourceNvidiaGPU))
-
-// IsOvercommitAllowed returns true if the resource is in the default
-// namespace and not blacklisted.
-func IsOvercommitAllowed(name core.ResourceName) bool {
- return IsDefaultNamespaceResource(name) &&
- !IsHugePageResourceName(name) &&
- !overcommitBlacklist.Has(string(name))
-}
-
-var standardLimitRangeTypes = sets.NewString(
- string(core.LimitTypePod),
- string(core.LimitTypeContainer),
- string(core.LimitTypePersistentVolumeClaim),
-)
-
-// IsStandardLimitRangeType returns true if the type is Pod or Container
-func IsStandardLimitRangeType(str string) bool {
- return standardLimitRangeTypes.Has(str)
-}
-
-var standardQuotaResources = sets.NewString(
- string(core.ResourceCPU),
- string(core.ResourceMemory),
- string(core.ResourceEphemeralStorage),
- string(core.ResourceRequestsCPU),
- string(core.ResourceRequestsMemory),
- string(core.ResourceRequestsStorage),
- string(core.ResourceRequestsEphemeralStorage),
- string(core.ResourceLimitsCPU),
- string(core.ResourceLimitsMemory),
- string(core.ResourceLimitsEphemeralStorage),
- string(core.ResourcePods),
- string(core.ResourceQuotas),
- string(core.ResourceServices),
- string(core.ResourceReplicationControllers),
- string(core.ResourceSecrets),
- string(core.ResourcePersistentVolumeClaims),
- string(core.ResourceConfigMaps),
- string(core.ResourceServicesNodePorts),
- string(core.ResourceServicesLoadBalancers),
-)
-
-// IsStandardQuotaResourceName returns true if the resource is known to
-// the quota tracking system
-func IsStandardQuotaResourceName(str string) bool {
- return standardQuotaResources.Has(str) || IsQuotaHugePageResourceName(core.ResourceName(str))
-}
-
-var standardResources = sets.NewString(
- string(core.ResourceCPU),
- string(core.ResourceMemory),
- string(core.ResourceEphemeralStorage),
- string(core.ResourceRequestsCPU),
- string(core.ResourceRequestsMemory),
- string(core.ResourceRequestsEphemeralStorage),
- string(core.ResourceLimitsCPU),
- string(core.ResourceLimitsMemory),
- string(core.ResourceLimitsEphemeralStorage),
- string(core.ResourcePods),
- string(core.ResourceQuotas),
- string(core.ResourceServices),
- string(core.ResourceReplicationControllers),
- string(core.ResourceSecrets),
- string(core.ResourceConfigMaps),
- string(core.ResourcePersistentVolumeClaims),
- string(core.ResourceStorage),
- string(core.ResourceRequestsStorage),
- string(core.ResourceServicesNodePorts),
- string(core.ResourceServicesLoadBalancers),
-)
-
-// IsStandardResourceName returns true if the resource is known to the system
-func IsStandardResourceName(str string) bool {
- return standardResources.Has(str) || IsQuotaHugePageResourceName(core.ResourceName(str))
-}
-
-var integerResources = sets.NewString(
- string(core.ResourcePods),
- string(core.ResourceQuotas),
- string(core.ResourceServices),
- string(core.ResourceReplicationControllers),
- string(core.ResourceSecrets),
- string(core.ResourceConfigMaps),
- string(core.ResourcePersistentVolumeClaims),
- string(core.ResourceServicesNodePorts),
- string(core.ResourceServicesLoadBalancers),
-)
-
-// IsIntegerResourceName returns true if the resource is measured in integer values
-func IsIntegerResourceName(str string) bool {
- return integerResources.Has(str) || IsExtendedResourceName(core.ResourceName(str))
-}
-
-// this function aims to check if the service's ClusterIP is set or not
-// the objective is not to perform validation here
-func IsServiceIPSet(service *core.Service) bool {
- return service.Spec.ClusterIP != core.ClusterIPNone && service.Spec.ClusterIP != ""
-}
-
-var standardFinalizers = sets.NewString(
- string(core.FinalizerKubernetes),
- metav1.FinalizerOrphanDependents,
- metav1.FinalizerDeleteDependents,
-)
-
-func IsStandardFinalizerName(str string) bool {
- return standardFinalizers.Has(str)
-}
-
-// AddToNodeAddresses appends the NodeAddresses to the passed-by-pointer slice,
-// only if they do not already exist
-func AddToNodeAddresses(addresses *[]core.NodeAddress, addAddresses ...core.NodeAddress) {
- for _, add := range addAddresses {
- exists := false
- for _, existing := range *addresses {
- if existing.Address == add.Address && existing.Type == add.Type {
- exists = true
- break
- }
- }
- if !exists {
- *addresses = append(*addresses, add)
- }
- }
-}
-
-// TODO: make method on LoadBalancerStatus?
-func LoadBalancerStatusEqual(l, r *core.LoadBalancerStatus) bool {
- return ingressSliceEqual(l.Ingress, r.Ingress)
-}
-
-func ingressSliceEqual(lhs, rhs []core.LoadBalancerIngress) bool {
- if len(lhs) != len(rhs) {
- return false
- }
- for i := range lhs {
- if !ingressEqual(&lhs[i], &rhs[i]) {
- return false
- }
- }
- return true
-}
-
-func ingressEqual(lhs, rhs *core.LoadBalancerIngress) bool {
- if lhs.IP != rhs.IP {
- return false
- }
- if lhs.Hostname != rhs.Hostname {
- return false
- }
- return true
-}
-
-// TODO: make method on LoadBalancerStatus?
-func LoadBalancerStatusDeepCopy(lb *core.LoadBalancerStatus) *core.LoadBalancerStatus {
- c := &core.LoadBalancerStatus{}
- c.Ingress = make([]core.LoadBalancerIngress, len(lb.Ingress))
- for i := range lb.Ingress {
- c.Ingress[i] = lb.Ingress[i]
- }
- return c
-}
-
-// GetAccessModesAsString returns a string representation of an array of access modes.
-// modes, when present, are always in the same order: RWO,ROX,RWX.
-func GetAccessModesAsString(modes []core.PersistentVolumeAccessMode) string {
- modes = removeDuplicateAccessModes(modes)
- modesStr := []string{}
- if containsAccessMode(modes, core.ReadWriteOnce) {
- modesStr = append(modesStr, "RWO")
- }
- if containsAccessMode(modes, core.ReadOnlyMany) {
- modesStr = append(modesStr, "ROX")
- }
- if containsAccessMode(modes, core.ReadWriteMany) {
- modesStr = append(modesStr, "RWX")
- }
- return strings.Join(modesStr, ",")
-}
-
-// GetAccessModesAsString returns an array of AccessModes from a string created by GetAccessModesAsString
-func GetAccessModesFromString(modes string) []core.PersistentVolumeAccessMode {
- strmodes := strings.Split(modes, ",")
- accessModes := []core.PersistentVolumeAccessMode{}
- for _, s := range strmodes {
- s = strings.Trim(s, " ")
- switch {
- case s == "RWO":
- accessModes = append(accessModes, core.ReadWriteOnce)
- case s == "ROX":
- accessModes = append(accessModes, core.ReadOnlyMany)
- case s == "RWX":
- accessModes = append(accessModes, core.ReadWriteMany)
- }
- }
- return accessModes
-}
-
-// removeDuplicateAccessModes returns an array of access modes without any duplicates
-func removeDuplicateAccessModes(modes []core.PersistentVolumeAccessMode) []core.PersistentVolumeAccessMode {
- accessModes := []core.PersistentVolumeAccessMode{}
- for _, m := range modes {
- if !containsAccessMode(accessModes, m) {
- accessModes = append(accessModes, m)
- }
- }
- return accessModes
-}
-
-func containsAccessMode(modes []core.PersistentVolumeAccessMode, mode core.PersistentVolumeAccessMode) bool {
- for _, m := range modes {
- if m == mode {
- return true
- }
- }
- return false
-}
-
-// NodeSelectorRequirementsAsSelector converts the []NodeSelectorRequirement core type into a struct that implements
-// labels.Selector.
-func NodeSelectorRequirementsAsSelector(nsm []core.NodeSelectorRequirement) (labels.Selector, error) {
- if len(nsm) == 0 {
- return labels.Nothing(), nil
- }
- selector := labels.NewSelector()
- for _, expr := range nsm {
- var op selection.Operator
- switch expr.Operator {
- case core.NodeSelectorOpIn:
- op = selection.In
- case core.NodeSelectorOpNotIn:
- op = selection.NotIn
- case core.NodeSelectorOpExists:
- op = selection.Exists
- case core.NodeSelectorOpDoesNotExist:
- op = selection.DoesNotExist
- case core.NodeSelectorOpGt:
- op = selection.GreaterThan
- case core.NodeSelectorOpLt:
- op = selection.LessThan
- default:
- return nil, fmt.Errorf("%q is not a valid node selector operator", expr.Operator)
- }
- r, err := labels.NewRequirement(expr.Key, op, expr.Values)
- if err != nil {
- return nil, err
- }
- selector = selector.Add(*r)
- }
- return selector, nil
-}
-
-// GetTolerationsFromPodAnnotations gets the json serialized tolerations data from Pod.Annotations
-// and converts it to the []Toleration type in core.
-func GetTolerationsFromPodAnnotations(annotations map[string]string) ([]core.Toleration, error) {
- var tolerations []core.Toleration
- if len(annotations) > 0 && annotations[core.TolerationsAnnotationKey] != "" {
- err := json.Unmarshal([]byte(annotations[core.TolerationsAnnotationKey]), &tolerations)
- if err != nil {
- return tolerations, err
- }
- }
- return tolerations, nil
-}
-
-// AddOrUpdateTolerationInPod tries to add a toleration to the pod's toleration list.
-// Returns true if something was updated, false otherwise.
-func AddOrUpdateTolerationInPod(pod *core.Pod, toleration *core.Toleration) bool {
- podTolerations := pod.Spec.Tolerations
-
- var newTolerations []core.Toleration
- updated := false
- for i := range podTolerations {
- if toleration.MatchToleration(&podTolerations[i]) {
- if Semantic.DeepEqual(toleration, podTolerations[i]) {
- return false
- }
- newTolerations = append(newTolerations, *toleration)
- updated = true
- continue
- }
-
- newTolerations = append(newTolerations, podTolerations[i])
- }
-
- if !updated {
- newTolerations = append(newTolerations, *toleration)
- }
-
- pod.Spec.Tolerations = newTolerations
- return true
-}
-
-// GetTaintsFromNodeAnnotations gets the json serialized taints data from Pod.Annotations
-// and converts it to the []Taint type in core.
-func GetTaintsFromNodeAnnotations(annotations map[string]string) ([]core.Taint, error) {
- var taints []core.Taint
- if len(annotations) > 0 && annotations[core.TaintsAnnotationKey] != "" {
- err := json.Unmarshal([]byte(annotations[core.TaintsAnnotationKey]), &taints)
- if err != nil {
- return []core.Taint{}, err
- }
- }
- return taints, nil
-}
-
-// SysctlsFromPodAnnotations parses the sysctl annotations into a slice of safe Sysctls
-// and a slice of unsafe Sysctls. This is only a convenience wrapper around
-// SysctlsFromPodAnnotation.
-func SysctlsFromPodAnnotations(a map[string]string) ([]core.Sysctl, []core.Sysctl, error) {
- safe, err := SysctlsFromPodAnnotation(a[core.SysctlsPodAnnotationKey])
- if err != nil {
- return nil, nil, err
- }
- unsafe, err := SysctlsFromPodAnnotation(a[core.UnsafeSysctlsPodAnnotationKey])
- if err != nil {
- return nil, nil, err
- }
-
- return safe, unsafe, nil
-}
-
-// SysctlsFromPodAnnotation parses an annotation value into a slice of Sysctls.
-func SysctlsFromPodAnnotation(annotation string) ([]core.Sysctl, error) {
- if len(annotation) == 0 {
- return nil, nil
- }
-
- kvs := strings.Split(annotation, ",")
- sysctls := make([]core.Sysctl, len(kvs))
- for i, kv := range kvs {
- cs := strings.Split(kv, "=")
- if len(cs) != 2 || len(cs[0]) == 0 {
- return nil, fmt.Errorf("sysctl %q not of the format sysctl_name=value", kv)
- }
- sysctls[i].Name = cs[0]
- sysctls[i].Value = cs[1]
- }
- return sysctls, nil
-}
-
-// PodAnnotationsFromSysctls creates an annotation value for a slice of Sysctls.
-func PodAnnotationsFromSysctls(sysctls []core.Sysctl) string {
- if len(sysctls) == 0 {
- return ""
- }
-
- kvs := make([]string, len(sysctls))
- for i := range sysctls {
- kvs[i] = fmt.Sprintf("%s=%s", sysctls[i].Name, sysctls[i].Value)
- }
- return strings.Join(kvs, ",")
-}
-
-// GetPersistentVolumeClass returns StorageClassName.
-func GetPersistentVolumeClass(volume *core.PersistentVolume) string {
- // Use beta annotation first
- if class, found := volume.Annotations[core.BetaStorageClassAnnotation]; found {
- return class
- }
-
- return volume.Spec.StorageClassName
-}
-
-// GetPersistentVolumeClaimClass returns StorageClassName. If no storage class was
-// requested, it returns "".
-func GetPersistentVolumeClaimClass(claim *core.PersistentVolumeClaim) string {
- // Use beta annotation first
- if class, found := claim.Annotations[core.BetaStorageClassAnnotation]; found {
- return class
- }
-
- if claim.Spec.StorageClassName != nil {
- return *claim.Spec.StorageClassName
- }
-
- return ""
-}
-
-// PersistentVolumeClaimHasClass returns true if given claim has set StorageClassName field.
-func PersistentVolumeClaimHasClass(claim *core.PersistentVolumeClaim) bool {
- // Use beta annotation first
- if _, found := claim.Annotations[core.BetaStorageClassAnnotation]; found {
- return true
- }
-
- if claim.Spec.StorageClassName != nil {
- return true
- }
-
- return false
-}
-
-// GetStorageNodeAffinityFromAnnotation gets the json serialized data from PersistentVolume.Annotations
-// and converts it to the NodeAffinity type in core.
-// TODO: update when storage node affinity graduates to beta
-func GetStorageNodeAffinityFromAnnotation(annotations map[string]string) (*core.NodeAffinity, error) {
- if len(annotations) > 0 && annotations[core.AlphaStorageNodeAffinityAnnotation] != "" {
- var affinity core.NodeAffinity
- err := json.Unmarshal([]byte(annotations[core.AlphaStorageNodeAffinityAnnotation]), &affinity)
- if err != nil {
- return nil, err
- }
- return &affinity, nil
- }
- return nil, nil
-}
-
-// Converts NodeAffinity type to Alpha annotation for use in PersistentVolumes
-// TODO: update when storage node affinity graduates to beta
-func StorageNodeAffinityToAlphaAnnotation(annotations map[string]string, affinity *core.NodeAffinity) error {
- if affinity == nil {
- return nil
- }
-
- json, err := json.Marshal(*affinity)
- if err != nil {
- return err
- }
- annotations[core.AlphaStorageNodeAffinityAnnotation] = string(json)
- return nil
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/core/install/install.go
deleted file mode 100644
index cae514ec7..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/install/install.go
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-Copyright 2014 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 install installs the v1 monolithic api, making it available as an
-// option to all of the API encoding/decoding machinery.
-package install
-
-import (
- "k8s.io/apimachinery/pkg/apimachinery/announced"
- "k8s.io/apimachinery/pkg/apimachinery/registered"
- "k8s.io/apimachinery/pkg/runtime"
- "k8s.io/apimachinery/pkg/util/sets"
- "k8s.io/kubernetes/pkg/api/legacyscheme"
- "k8s.io/kubernetes/pkg/apis/core"
- "k8s.io/kubernetes/pkg/apis/core/v1"
-)
-
-func init() {
- Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme)
-}
-
-// Install registers the API group and adds types to a scheme
-func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) {
- if err := announced.NewGroupMetaFactory(
- &announced.GroupMetaFactoryArgs{
- GroupName: core.GroupName,
- VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version},
- AddInternalObjectsToScheme: core.AddToScheme,
- RootScopedKinds: sets.NewString(
- "Node",
- "Namespace",
- "PersistentVolume",
- "ComponentStatus",
- ),
- IgnoredKinds: sets.NewString(
- "ListOptions",
- "DeleteOptions",
- "Status",
- "PodLogOptions",
- "PodExecOptions",
- "PodAttachOptions",
- "PodPortForwardOptions",
- "PodProxyOptions",
- "NodeProxyOptions",
- "ServiceProxyOptions",
- ),
- },
- announced.VersionToSchemeFunc{
- v1.SchemeGroupVersion.Version: v1.AddToScheme,
- },
- ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil {
- panic(err)
- }
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/json.go b/vendor/k8s.io/kubernetes/pkg/apis/core/json.go
deleted file mode 100644
index 937cd056c..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/json.go
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
-Copyright 2017 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 core
-
-import "encoding/json"
-
-// This file implements json marshaling/unmarshaling interfaces on objects that are currently marshaled into annotations
-// to prevent anyone from marshaling these internal structs.
-
-var _ = json.Marshaler(&AvoidPods{})
-var _ = json.Unmarshaler(&AvoidPods{})
-
-func (AvoidPods) MarshalJSON() ([]byte, error) { panic("do not marshal internal struct") }
-func (*AvoidPods) UnmarshalJSON([]byte) error { panic("do not unmarshal to internal struct") }
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/objectreference.go b/vendor/k8s.io/kubernetes/pkg/apis/core/objectreference.go
deleted file mode 100644
index 55b27f30b..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/objectreference.go
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Copyright 2017 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.
-*/
-
-//TODO: consider making these methods functions, because we don't want helper
-//functions in the k8s.io/api repo.
-
-package core
-
-import (
- "k8s.io/apimachinery/pkg/runtime/schema"
-)
-
-func (obj *ObjectReference) SetGroupVersionKind(gvk schema.GroupVersionKind) {
- obj.APIVersion, obj.Kind = gvk.ToAPIVersionAndKind()
-}
-
-func (obj *ObjectReference) GroupVersionKind() schema.GroupVersionKind {
- return schema.FromAPIVersionAndKind(obj.APIVersion, obj.Kind)
-}
-
-func (obj *ObjectReference) GetObjectKind() schema.ObjectKind { return obj }
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/pods/helpers.go b/vendor/k8s.io/kubernetes/pkg/apis/core/pods/helpers.go
deleted file mode 100644
index cf199cee7..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/pods/helpers.go
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-Copyright 2017 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 pods
-
-import (
- "fmt"
-
- "k8s.io/kubernetes/pkg/fieldpath"
-)
-
-// ConvertDownwardAPIFieldLabel converts the specified downward API field label
-// and its value in the pod of the specified version to the internal version,
-// and returns the converted label and value. This function returns an error if
-// the conversion fails.
-func ConvertDownwardAPIFieldLabel(version, label, value string) (string, string, error) {
- if version != "v1" {
- return "", "", fmt.Errorf("unsupported pod version: %s", version)
- }
-
- if path, _, ok := fieldpath.SplitMaybeSubscriptedPath(label); ok {
- switch path {
- case "metadata.annotations", "metadata.labels":
- return label, value, nil
- default:
- return "", "", fmt.Errorf("field label does not support subscript: %s", label)
- }
- }
-
- switch label {
- case "metadata.annotations",
- "metadata.labels",
- "metadata.name",
- "metadata.namespace",
- "metadata.uid",
- "spec.nodeName",
- "spec.restartPolicy",
- "spec.serviceAccountName",
- "spec.schedulerName",
- "status.phase",
- "status.hostIP",
- "status.podIP":
- return label, value, nil
- // This is for backwards compatibility with old v1 clients which send spec.host
- case "spec.host":
- return "spec.nodeName", value, nil
- default:
- return "", "", fmt.Errorf("field label not supported: %s", label)
- }
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/register.go b/vendor/k8s.io/kubernetes/pkg/apis/core/register.go
deleted file mode 100644
index 2784cbe15..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/register.go
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
-Copyright 2014 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 core
-
-import (
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/apimachinery/pkg/runtime"
- "k8s.io/apimachinery/pkg/runtime/schema"
-)
-
-// GroupName is the group name use in this package
-const GroupName = ""
-
-// SchemeGroupVersion is group version used to register these objects
-var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
-
-// Kind takes an unqualified kind and returns a Group qualified GroupKind
-func Kind(kind string) schema.GroupKind {
- return SchemeGroupVersion.WithKind(kind).GroupKind()
-}
-
-// Resource takes an unqualified resource and returns a Group qualified GroupResource
-func Resource(resource string) schema.GroupResource {
- return SchemeGroupVersion.WithResource(resource).GroupResource()
-}
-
-var (
- SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
- AddToScheme = SchemeBuilder.AddToScheme
-)
-
-func addKnownTypes(scheme *runtime.Scheme) error {
- if err := scheme.AddIgnoredConversionType(&metav1.TypeMeta{}, &metav1.TypeMeta{}); err != nil {
- return err
- }
- scheme.AddKnownTypes(SchemeGroupVersion,
- &Pod{},
- &PodList{},
- &PodStatusResult{},
- &PodTemplate{},
- &PodTemplateList{},
- &ReplicationControllerList{},
- &ReplicationController{},
- &ServiceList{},
- &Service{},
- &ServiceProxyOptions{},
- &NodeList{},
- &Node{},
- &NodeConfigSource{},
- &NodeProxyOptions{},
- &Endpoints{},
- &EndpointsList{},
- &Binding{},
- &Event{},
- &EventList{},
- &List{},
- &LimitRange{},
- &LimitRangeList{},
- &ResourceQuota{},
- &ResourceQuotaList{},
- &Namespace{},
- &NamespaceList{},
- &ServiceAccount{},
- &ServiceAccountList{},
- &Secret{},
- &SecretList{},
- &PersistentVolume{},
- &PersistentVolumeList{},
- &PersistentVolumeClaim{},
- &PersistentVolumeClaimList{},
- &PodAttachOptions{},
- &PodLogOptions{},
- &PodExecOptions{},
- &PodPortForwardOptions{},
- &PodProxyOptions{},
- &ComponentStatus{},
- &ComponentStatusList{},
- &SerializedReference{},
- &RangeAllocation{},
- &ConfigMap{},
- &ConfigMapList{},
- )
-
- return nil
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/resource.go b/vendor/k8s.io/kubernetes/pkg/apis/core/resource.go
deleted file mode 100644
index 1910cd921..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/resource.go
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-Copyright 2017 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 core
-
-import (
- "k8s.io/apimachinery/pkg/api/resource"
-)
-
-func (self ResourceName) String() string {
- return string(self)
-}
-
-// Returns the CPU limit if specified.
-func (self *ResourceList) Cpu() *resource.Quantity {
- if val, ok := (*self)[ResourceCPU]; ok {
- return &val
- }
- return &resource.Quantity{Format: resource.DecimalSI}
-}
-
-// Returns the Memory limit if specified.
-func (self *ResourceList) Memory() *resource.Quantity {
- if val, ok := (*self)[ResourceMemory]; ok {
- return &val
- }
- return &resource.Quantity{Format: resource.BinarySI}
-}
-
-func (self *ResourceList) Pods() *resource.Quantity {
- if val, ok := (*self)[ResourcePods]; ok {
- return &val
- }
- return &resource.Quantity{}
-}
-
-func (self *ResourceList) NvidiaGPU() *resource.Quantity {
- if val, ok := (*self)[ResourceNvidiaGPU]; ok {
- return &val
- }
- return &resource.Quantity{}
-}
-
-func (self *ResourceList) StorageEphemeral() *resource.Quantity {
- if val, ok := (*self)[ResourceEphemeralStorage]; ok {
- return &val
- }
- return &resource.Quantity{}
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/taint.go b/vendor/k8s.io/kubernetes/pkg/apis/core/taint.go
deleted file mode 100644
index ae1feb74d..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/taint.go
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-Copyright 2017 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.
-*/
-
-//TODO: consider making these methods functions, because we don't want helper
-//functions in the k8s.io/api repo.
-
-package core
-
-import "fmt"
-
-// MatchTaint checks if the taint matches taintToMatch. Taints are unique by key:effect,
-// if the two taints have same key:effect, regard as they match.
-func (t *Taint) MatchTaint(taintToMatch Taint) bool {
- return t.Key == taintToMatch.Key && t.Effect == taintToMatch.Effect
-}
-
-// taint.ToString() converts taint struct to string in format key=value:effect or key:effect.
-func (t *Taint) ToString() string {
- if len(t.Value) == 0 {
- return fmt.Sprintf("%v:%v", t.Key, t.Effect)
- }
- return fmt.Sprintf("%v=%v:%v", t.Key, t.Value, t.Effect)
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/toleration.go b/vendor/k8s.io/kubernetes/pkg/apis/core/toleration.go
deleted file mode 100644
index 1dfbc9f1b..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/toleration.go
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
-Copyright 2017 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.
-*/
-
-//TODO: consider making these methods functions, because we don't want helper
-//functions in the k8s.io/api repo.
-
-package core
-
-// MatchToleration checks if the toleration matches tolerationToMatch. Tolerations are unique by <key,effect,operator,value>,
-// if the two tolerations have same <key,effect,operator,value> combination, regard as they match.
-// TODO: uniqueness check for tolerations in api validations.
-func (t *Toleration) MatchToleration(tolerationToMatch *Toleration) bool {
- return t.Key == tolerationToMatch.Key &&
- t.Effect == tolerationToMatch.Effect &&
- t.Operator == tolerationToMatch.Operator &&
- t.Value == tolerationToMatch.Value
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/types.go b/vendor/k8s.io/kubernetes/pkg/apis/core/types.go
deleted file mode 100644
index a112791b1..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/types.go
+++ /dev/null
@@ -1,4656 +0,0 @@
-/*
-Copyright 2014 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 core
-
-import (
- "k8s.io/apimachinery/pkg/api/resource"
- metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/apimachinery/pkg/fields"
- "k8s.io/apimachinery/pkg/labels"
- "k8s.io/apimachinery/pkg/types"
- "k8s.io/apimachinery/pkg/util/intstr"
-)
-
-// Common string formats
-// ---------------------
-// Many fields in this API have formatting requirements. The commonly used
-// formats are defined here.
-//
-// C_IDENTIFIER: This is a string that conforms to the definition of an "identifier"
-// in the C language. This is captured by the following regex:
-// [A-Za-z_][A-Za-z0-9_]*
-// This defines the format, but not the length restriction, which should be
-// specified at the definition of any field of this type.
-//
-// DNS_LABEL: This is a string, no more than 63 characters long, that conforms
-// to the definition of a "label" in RFCs 1035 and 1123. This is captured
-// by the following regex:
-// [a-z0-9]([-a-z0-9]*[a-z0-9])?
-//
-// DNS_SUBDOMAIN: This is a string, no more than 253 characters long, that conforms
-// to the definition of a "subdomain" in RFCs 1035 and 1123. This is captured
-// by the following regex:
-// [a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*
-// or more simply:
-// DNS_LABEL(\.DNS_LABEL)*
-//
-// IANA_SVC_NAME: This is a string, no more than 15 characters long, that
-// conforms to the definition of IANA service name in RFC 6335.
-// It must contains at least one letter [a-z] and it must contains only [a-z0-9-].
-// Hypens ('-') cannot be leading or trailing character of the string
-// and cannot be adjacent to other hyphens.
-
-// ObjectMeta is metadata that all persisted resources must have, which includes all objects
-// users must create.
-// DEPRECATED: Use k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta instead - this type will be removed soon.
-type ObjectMeta struct {
- // Name is unique within a namespace. Name is required when creating resources, although
- // some resources may allow a client to request the generation of an appropriate name
- // automatically. Name is primarily intended for creation idempotence and configuration
- // definition.
- // +optional
- Name string
-
- // GenerateName indicates that the name should be made unique by the server prior to persisting
- // it. A non-empty value for the field indicates the name will be made unique (and the name
- // returned to the client will be different than the name passed). The value of this field will
- // be combined with a unique suffix on the server if the Name field has not been provided.
- // The provided value must be valid within the rules for Name, and may be truncated by the length
- // of the suffix required to make the value unique on the server.
- //
- // If this field is specified, and Name is not present, the server will NOT return a 409 if the
- // generated name exists - instead, it will either return 201 Created or 500 with Reason
- // ServerTimeout indicating a unique name could not be found in the time allotted, and the client
- // should retry (optionally after the time indicated in the Retry-After header).
- // +optional
- GenerateName string
-
- // Namespace defines the space within which name must be unique. An empty namespace is
- // equivalent to the "default" namespace, but "default" is the canonical representation.
- // Not all objects are required to be scoped to a namespace - the value of this field for
- // those objects will be empty.
- // +optional
- Namespace string
-
- // SelfLink is a URL representing this object.
- // +optional
- SelfLink string
-
- // UID is the unique in time and space value for this object. It is typically generated by
- // the server on successful creation of a resource and is not allowed to change on PUT
- // operations.
- // +optional
- UID types.UID
-
- // An opaque value that represents the version of this resource. May be used for optimistic
- // concurrency, change detection, and the watch operation on a resource or set of resources.
- // Clients must treat these values as opaque and values may only be valid for a particular
- // resource or set of resources. Only servers will generate resource versions.
- // +optional
- ResourceVersion string
-
- // A sequence number representing a specific generation of the desired state.
- // Populated by the system. Read-only.
- // +optional
- Generation int64
-
- // CreationTimestamp is a timestamp representing the server time when this object was
- // created. It is not guaranteed to be set in happens-before order across separate operations.
- // Clients may not set this value. It is represented in RFC3339 form and is in UTC.
- // +optional
- CreationTimestamp metav1.Time
-
- // DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This
- // field is set by the server when a graceful deletion is requested by the user, and is not
- // directly settable by a client. The resource is expected to be deleted (no longer visible
- // from resource lists, and not reachable by name) after the time in this field. Once set,
- // this value may not be unset or be set further into the future, although it may be shortened
- // or the resource may be deleted prior to this time. For example, a user may request that
- // a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination
- // signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard
- // termination signal (SIGKILL) to the container and after cleanup, remove the pod from the
- // API. In the presence of network partitions, this object may still exist after this
- // timestamp, until an administrator or automated process can determine the resource is
- // fully terminated.
- // If not set, graceful deletion of the object has not been requested.
- //
- // Populated by the system when a graceful deletion is requested.
- // Read-only.
- // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
- // +optional
- DeletionTimestamp *metav1.Time
-
- // DeletionGracePeriodSeconds records the graceful deletion value set when graceful deletion
- // was requested. Represents the most recent grace period, and may only be shortened once set.
- // +optional
- DeletionGracePeriodSeconds *int64
-
- // Labels are key value pairs that may be used to scope and select individual resources.
- // Label keys are of the form:
- // label-key ::= prefixed-name | name
- // prefixed-name ::= prefix '/' name
- // prefix ::= DNS_SUBDOMAIN
- // name ::= DNS_LABEL
- // The prefix is optional. If the prefix is not specified, the key is assumed to be private
- // to the user. Other system components that wish to use labels must specify a prefix. The
- // "kubernetes.io/" prefix is reserved for use by kubernetes components.
- // +optional
- Labels map[string]string
-
- // Annotations are unstructured key value data stored with a resource that may be set by
- // external tooling. They are not queryable and should be preserved when modifying
- // objects. Annotation keys have the same formatting restrictions as Label keys. See the
- // comments on Labels for details.
- // +optional
- Annotations map[string]string
-
- // List of objects depended by this object. If ALL objects in the list have
- // been deleted, this object will be garbage collected. If this object is managed by a controller,
- // then an entry in this list will point to this controller, with the controller field set to true.
- // There cannot be more than one managing controller.
- // +optional
- OwnerReferences []metav1.OwnerReference
-
- // An initializer is a controller which enforces some system invariant at object creation time.
- // This field is a list of initializers that have not yet acted on this object. If nil or empty,
- // this object has been completely initialized. Otherwise, the object is considered uninitialized
- // and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to
- // observe uninitialized objects.
- //
- // When an object is created, the system will populate this list with the current set of initializers.
- // Only privileged users may set or modify this list. Once it is empty, it may not be modified further
- // by any user.
- Initializers *metav1.Initializers
-
- // Must be empty before the object is deleted from the registry. Each entry
- // is an identifier for the responsible component that will remove the entry
- // from the list. If the deletionTimestamp of the object is non-nil, entries
- // in this list can only be removed.
- // +optional
- Finalizers []string
-
- // The name of the cluster which the object belongs to.
- // This is used to distinguish resources with same name and namespace in different clusters.
- // This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
- // +optional
- ClusterName string
-}
-
-const (
- // NamespaceDefault means the object is in the default namespace which is applied when not specified by clients
- NamespaceDefault string = "default"
- // NamespaceAll is the default argument to specify on a context when you want to list or filter resources across all namespaces
- NamespaceAll string = ""
- // NamespaceNone is the argument for a context when there is no namespace.
- NamespaceNone string = ""
- // NamespaceSystem is the system namespace where we place system components.
- NamespaceSystem string = "kube-system"
- // NamespacePublic is the namespace where we place public info (ConfigMaps)
- NamespacePublic string = "kube-public"
- // TerminationMessagePathDefault means the default path to capture the application termination message running in a container
- TerminationMessagePathDefault string = "/dev/termination-log"
-)
-
-// Volume represents a named volume in a pod that may be accessed by any containers in the pod.
-type Volume struct {
- // Required: This must be a DNS_LABEL. Each volume in a pod must have
- // a unique name.
- Name string
- // The VolumeSource represents the location and type of a volume to mount.
- // This is optional for now. If not specified, the Volume is implied to be an EmptyDir.
- // This implied behavior is deprecated and will be removed in a future version.
- // +optional
- VolumeSource
-}
-
-// VolumeSource represents the source location of a volume to mount.
-// Only one of its members may be specified.
-type VolumeSource struct {
- // HostPath represents file or directory on the host machine that is
- // directly exposed to the container. This is generally used for system
- // agents or other privileged things that are allowed to see the host
- // machine. Most containers will NOT need this.
- // ---
- // TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not
- // mount host directories as read/write.
- // +optional
- HostPath *HostPathVolumeSource
- // EmptyDir represents a temporary directory that shares a pod's lifetime.
- // +optional
- EmptyDir *EmptyDirVolumeSource
- // GCEPersistentDisk represents a GCE Disk resource that is attached to a
- // kubelet's host machine and then exposed to the pod.
- // +optional
- GCEPersistentDisk *GCEPersistentDiskVolumeSource
- // AWSElasticBlockStore represents an AWS EBS disk that is attached to a
- // kubelet's host machine and then exposed to the pod.
- // +optional
- AWSElasticBlockStore *AWSElasticBlockStoreVolumeSource
- // GitRepo represents a git repository at a particular revision.
- // +optional
- GitRepo *GitRepoVolumeSource
- // Secret represents a secret that should populate this volume.
- // +optional
- Secret *SecretVolumeSource
- // NFS represents an NFS mount on the host that shares a pod's lifetime
- // +optional
- NFS *NFSVolumeSource
- // ISCSIVolumeSource represents an ISCSI Disk resource that is attached to a
- // kubelet's host machine and then exposed to the pod.
- // +optional
- ISCSI *ISCSIVolumeSource
- // Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime
- // +optional
- Glusterfs *GlusterfsVolumeSource
- // PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace
- // +optional
- PersistentVolumeClaim *PersistentVolumeClaimVolumeSource
- // RBD represents a Rados Block Device mount on the host that shares a pod's lifetime
- // +optional
- RBD *RBDVolumeSource
-
- // Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
- // +optional
- Quobyte *QuobyteVolumeSource
-
- // FlexVolume represents a generic volume resource that is
- // provisioned/attached using an exec based plugin.
- // +optional
- FlexVolume *FlexVolumeSource
-
- // Cinder represents a cinder volume attached and mounted on kubelets host machine
- // +optional
- Cinder *CinderVolumeSource
-
- // CephFS represents a Cephfs mount on the host that shares a pod's lifetime
- // +optional
- CephFS *CephFSVolumeSource
-
- // Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
- // +optional
- Flocker *FlockerVolumeSource
-
- // DownwardAPI represents metadata about the pod that should populate this volume
- // +optional
- DownwardAPI *DownwardAPIVolumeSource
- // FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
- // +optional
- FC *FCVolumeSource
- // AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
- // +optional
- AzureFile *AzureFileVolumeSource
- // ConfigMap represents a configMap that should populate this volume
- // +optional
- ConfigMap *ConfigMapVolumeSource
- // VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
- // +optional
- VsphereVolume *VsphereVirtualDiskVolumeSource
- // AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
- // +optional
- AzureDisk *AzureDiskVolumeSource
- // PhotonPersistentDisk represents a Photon Controller persistent disk attached and mounted on kubelets host machine
- PhotonPersistentDisk *PhotonPersistentDiskVolumeSource
- // Items for all in one resources secrets, configmaps, and downward API
- Projected *ProjectedVolumeSource
- // PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
- // +optional
- PortworxVolume *PortworxVolumeSource
- // ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
- // +optional
- ScaleIO *ScaleIOVolumeSource
- // StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod
- // +optional
- StorageOS *StorageOSVolumeSource
-}
-
-// Similar to VolumeSource but meant for the administrator who creates PVs.
-// Exactly one of its members must be set.
-type PersistentVolumeSource struct {
- // GCEPersistentDisk represents a GCE Disk resource that is attached to a
- // kubelet's host machine and then exposed to the pod.
- // +optional
- GCEPersistentDisk *GCEPersistentDiskVolumeSource
- // AWSElasticBlockStore represents an AWS EBS disk that is attached to a
- // kubelet's host machine and then exposed to the pod.
- // +optional
- AWSElasticBlockStore *AWSElasticBlockStoreVolumeSource
- // HostPath represents a directory on the host.
- // Provisioned by a developer or tester.
- // This is useful for single-node development and testing only!
- // On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.
- // +optional
- HostPath *HostPathVolumeSource
- // Glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod
- // +optional
- Glusterfs *GlusterfsVolumeSource
- // NFS represents an NFS mount on the host that shares a pod's lifetime
- // +optional
- NFS *NFSVolumeSource
- // RBD represents a Rados Block Device mount on the host that shares a pod's lifetime
- // +optional
- RBD *RBDPersistentVolumeSource
- // Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
- // +optional
- Quobyte *QuobyteVolumeSource
- // ISCSIPersistentVolumeSource represents an ISCSI resource that is attached to a
- // kubelet's host machine and then exposed to the pod.
- // +optional
- ISCSI *ISCSIPersistentVolumeSource
- // FlexVolume represents a generic volume resource that is
- // provisioned/attached using an exec based plugin.
- // +optional
- FlexVolume *FlexPersistentVolumeSource
- // Cinder represents a cinder volume attached and mounted on kubelets host machine
- // +optional
- Cinder *CinderVolumeSource
- // CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
- // +optional
- CephFS *CephFSPersistentVolumeSource
- // FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
- // +optional
- FC *FCVolumeSource
- // Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
- // +optional
- Flocker *FlockerVolumeSource
- // AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
- // +optional
- AzureFile *AzureFilePersistentVolumeSource
- // VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
- // +optional
- VsphereVolume *VsphereVirtualDiskVolumeSource
- // AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
- // +optional
- AzureDisk *AzureDiskVolumeSource
- // PhotonPersistentDisk represents a Photon Controller persistent disk attached and mounted on kubelets host machine
- PhotonPersistentDisk *PhotonPersistentDiskVolumeSource
- // PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
- // +optional
- PortworxVolume *PortworxVolumeSource
- // ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
- // +optional
- ScaleIO *ScaleIOPersistentVolumeSource
- // Local represents directly-attached storage with node affinity
- // +optional
- Local *LocalVolumeSource
- // StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod
- // More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md
- // +optional
- StorageOS *StorageOSPersistentVolumeSource
- // CSI (Container Storage Interface) represents storage that handled by an external CSI driver (Beta feature).
- // +optional
- CSI *CSIPersistentVolumeSource
-}
-
-type PersistentVolumeClaimVolumeSource struct {
- // ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume
- ClaimName string
- // Optional: Defaults to false (read/write). ReadOnly here
- // will force the ReadOnly setting in VolumeMounts
- // +optional
- ReadOnly bool
-}
-
-const (
- // BetaStorageClassAnnotation represents the beta/previous StorageClass annotation.
- // It's deprecated and will be removed in a future release. (#51440)
- BetaStorageClassAnnotation = "volume.beta.kubernetes.io/storage-class"
-
- // MountOptionAnnotation defines mount option annotation used in PVs
- MountOptionAnnotation = "volume.beta.kubernetes.io/mount-options"
-
- // AlphaStorageNodeAffinityAnnotation defines node affinity policies for a PersistentVolume.
- // Value is a string of the json representation of type NodeAffinity
- AlphaStorageNodeAffinityAnnotation = "volume.alpha.kubernetes.io/node-affinity"
-)
-
-// +genclient
-// +genclient:nonNamespaced
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-type PersistentVolume struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- //Spec defines a persistent volume owned by the cluster
- // +optional
- Spec PersistentVolumeSpec
-
- // Status represents the current information about persistent volume.
- // +optional
- Status PersistentVolumeStatus
-}
-
-type PersistentVolumeSpec struct {
- // Resources represents the actual resources of the volume
- Capacity ResourceList
- // Source represents the location and type of a volume to mount.
- PersistentVolumeSource
- // AccessModes contains all ways the volume can be mounted
- // +optional
- AccessModes []PersistentVolumeAccessMode
- // ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.
- // ClaimRef is expected to be non-nil when bound.
- // claim.VolumeName is the authoritative bind between PV and PVC.
- // When set to non-nil value, PVC.Spec.Selector of the referenced PVC is
- // ignored, i.e. labels of this PV do not need to match PVC selector.
- // +optional
- ClaimRef *ObjectReference
- // Optional: what happens to a persistent volume when released from its claim.
- // +optional
- PersistentVolumeReclaimPolicy PersistentVolumeReclaimPolicy
- // Name of StorageClass to which this persistent volume belongs. Empty value
- // means that this volume does not belong to any StorageClass.
- // +optional
- StorageClassName string
- // A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will
- // simply fail if one is invalid.
- // +optional
- MountOptions []string
- // volumeMode defines if a volume is intended to be used with a formatted filesystem
- // or to remain in raw block state. Value of Filesystem is implied when not included in spec.
- // This is an alpha feature and may change in the future.
- // +optional
- VolumeMode *PersistentVolumeMode
- // NodeAffinity defines constraints that limit what nodes this volume can be accessed from.
- // This field influences the scheduling of pods that use this volume.
- // +optional
- NodeAffinity *VolumeNodeAffinity
-}
-
-// VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.
-type VolumeNodeAffinity struct {
- // Required specifies hard node constraints that must be met.
- Required *NodeSelector
-}
-
-// PersistentVolumeReclaimPolicy describes a policy for end-of-life maintenance of persistent volumes
-type PersistentVolumeReclaimPolicy string
-
-const (
- // PersistentVolumeReclaimRecycle means the volume will be recycled back into the pool of unbound persistent volumes on release from its claim.
- // The volume plugin must support Recycling.
- // DEPRECATED: The PersistentVolumeReclaimRecycle called Recycle is being deprecated. See announcement here: https://groups.google.com/forum/#!topic/kubernetes-dev/uexugCza84I
- PersistentVolumeReclaimRecycle PersistentVolumeReclaimPolicy = "Recycle"
- // PersistentVolumeReclaimDelete means the volume will be deleted from Kubernetes on release from its claim.
- // The volume plugin must support Deletion.
- PersistentVolumeReclaimDelete PersistentVolumeReclaimPolicy = "Delete"
- // PersistentVolumeReclaimRetain means the volume will be left in its current phase (Released) for manual reclamation by the administrator.
- // The default policy is Retain.
- PersistentVolumeReclaimRetain PersistentVolumeReclaimPolicy = "Retain"
-)
-
-// PersistentVolumeMode describes how a volume is intended to be consumed, either Block or Filesystem.
-type PersistentVolumeMode string
-
-const (
- // PersistentVolumeBlock means the volume will not be formatted with a filesystem and will remain a raw block device.
- PersistentVolumeBlock PersistentVolumeMode = "Block"
- // PersistentVolumeFilesystem means the volume will be or is formatted with a filesystem.
- PersistentVolumeFilesystem PersistentVolumeMode = "Filesystem"
-)
-
-type PersistentVolumeStatus struct {
- // Phase indicates if a volume is available, bound to a claim, or released by a claim
- // +optional
- Phase PersistentVolumePhase
- // A human-readable message indicating details about why the volume is in this state.
- // +optional
- Message string
- // Reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI
- // +optional
- Reason string
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-type PersistentVolumeList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
- Items []PersistentVolume
-}
-
-// +genclient
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// PersistentVolumeClaim is a user's request for and claim to a persistent volume
-type PersistentVolumeClaim struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- // Spec defines the volume requested by a pod author
- // +optional
- Spec PersistentVolumeClaimSpec
-
- // Status represents the current information about a claim
- // +optional
- Status PersistentVolumeClaimStatus
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-type PersistentVolumeClaimList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
- Items []PersistentVolumeClaim
-}
-
-// PersistentVolumeClaimSpec describes the common attributes of storage devices
-// and allows a Source for provider-specific attributes
-type PersistentVolumeClaimSpec struct {
- // Contains the types of access modes required
- // +optional
- AccessModes []PersistentVolumeAccessMode
- // A label query over volumes to consider for binding. This selector is
- // ignored when VolumeName is set
- // +optional
- Selector *metav1.LabelSelector
- // Resources represents the minimum resources required
- // +optional
- Resources ResourceRequirements
- // VolumeName is the binding reference to the PersistentVolume backing this
- // claim. When set to non-empty value Selector is not evaluated
- // +optional
- VolumeName string
- // Name of the StorageClass required by the claim.
- // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#class-1
- // +optional
- StorageClassName *string
- // volumeMode defines what type of volume is required by the claim.
- // Value of Filesystem is implied when not included in claim spec.
- // This is an alpha feature and may change in the future.
- // +optional
- VolumeMode *PersistentVolumeMode
-}
-
-type PersistentVolumeClaimConditionType string
-
-// These are valid conditions of Pvc
-const (
- // An user trigger resize of pvc has been started
- PersistentVolumeClaimResizing PersistentVolumeClaimConditionType = "Resizing"
- // PersistentVolumeClaimFileSystemResizePending - controller resize is finished and a file system resize is pending on node
- PersistentVolumeClaimFileSystemResizePending PersistentVolumeClaimConditionType = "FileSystemResizePending"
-)
-
-type PersistentVolumeClaimCondition struct {
- Type PersistentVolumeClaimConditionType
- Status ConditionStatus
- // +optional
- LastProbeTime metav1.Time
- // +optional
- LastTransitionTime metav1.Time
- // +optional
- Reason string
- // +optional
- Message string
-}
-
-type PersistentVolumeClaimStatus struct {
- // Phase represents the current phase of PersistentVolumeClaim
- // +optional
- Phase PersistentVolumeClaimPhase
- // AccessModes contains all ways the volume backing the PVC can be mounted
- // +optional
- AccessModes []PersistentVolumeAccessMode
- // Represents the actual resources of the underlying volume
- // +optional
- Capacity ResourceList
- // +optional
- Conditions []PersistentVolumeClaimCondition
-}
-
-type PersistentVolumeAccessMode string
-
-const (
- // can be mounted read/write mode to exactly 1 host
- ReadWriteOnce PersistentVolumeAccessMode = "ReadWriteOnce"
- // can be mounted in read-only mode to many hosts
- ReadOnlyMany PersistentVolumeAccessMode = "ReadOnlyMany"
- // can be mounted in read/write mode to many hosts
- ReadWriteMany PersistentVolumeAccessMode = "ReadWriteMany"
-)
-
-type PersistentVolumePhase string
-
-const (
- // used for PersistentVolumes that are not available
- VolumePending PersistentVolumePhase = "Pending"
- // used for PersistentVolumes that are not yet bound
- // Available volumes are held by the binder and matched to PersistentVolumeClaims
- VolumeAvailable PersistentVolumePhase = "Available"
- // used for PersistentVolumes that are bound
- VolumeBound PersistentVolumePhase = "Bound"
- // used for PersistentVolumes where the bound PersistentVolumeClaim was deleted
- // released volumes must be recycled before becoming available again
- // this phase is used by the persistent volume claim binder to signal to another process to reclaim the resource
- VolumeReleased PersistentVolumePhase = "Released"
- // used for PersistentVolumes that failed to be correctly recycled or deleted after being released from a claim
- VolumeFailed PersistentVolumePhase = "Failed"
-)
-
-type PersistentVolumeClaimPhase string
-
-const (
- // used for PersistentVolumeClaims that are not yet bound
- ClaimPending PersistentVolumeClaimPhase = "Pending"
- // used for PersistentVolumeClaims that are bound
- ClaimBound PersistentVolumeClaimPhase = "Bound"
- // used for PersistentVolumeClaims that lost their underlying
- // PersistentVolume. The claim was bound to a PersistentVolume and this
- // volume does not exist any longer and all data on it was lost.
- ClaimLost PersistentVolumeClaimPhase = "Lost"
-)
-
-type HostPathType string
-
-const (
- // For backwards compatible, leave it empty if unset
- HostPathUnset HostPathType = ""
- // If nothing exists at the given path, an empty directory will be created there
- // as needed with file mode 0755, having the same group and ownership with Kubelet.
- HostPathDirectoryOrCreate HostPathType = "DirectoryOrCreate"
- // A directory must exist at the given path
- HostPathDirectory HostPathType = "Directory"
- // If nothing exists at the given path, an empty file will be created there
- // as needed with file mode 0644, having the same group and ownership with Kubelet.
- HostPathFileOrCreate HostPathType = "FileOrCreate"
- // A file must exist at the given path
- HostPathFile HostPathType = "File"
- // A UNIX socket must exist at the given path
- HostPathSocket HostPathType = "Socket"
- // A character device must exist at the given path
- HostPathCharDev HostPathType = "CharDevice"
- // A block device must exist at the given path
- HostPathBlockDev HostPathType = "BlockDevice"
-)
-
-// Represents a host path mapped into a pod.
-// Host path volumes do not support ownership management or SELinux relabeling.
-type HostPathVolumeSource struct {
- // If the path is a symlink, it will follow the link to the real path.
- Path string
- // Defaults to ""
- Type *HostPathType
-}
-
-// Represents an empty directory for a pod.
-// Empty directory volumes support ownership management and SELinux relabeling.
-type EmptyDirVolumeSource struct {
- // TODO: Longer term we want to represent the selection of underlying
- // media more like a scheduling problem - user says what traits they
- // need, we give them a backing store that satisfies that. For now
- // this will cover the most common needs.
- // Optional: what type of storage medium should back this directory.
- // The default is "" which means to use the node's default medium.
- // +optional
- Medium StorageMedium
- // Total amount of local storage required for this EmptyDir volume.
- // The size limit is also applicable for memory medium.
- // The maximum usage on memory medium EmptyDir would be the minimum value between
- // the SizeLimit specified here and the sum of memory limits of all containers in a pod.
- // The default is nil which means that the limit is undefined.
- // More info: http://kubernetes.io/docs/user-guide/volumes#emptydir
- // +optional
- SizeLimit *resource.Quantity
-}
-
-// StorageMedium defines ways that storage can be allocated to a volume.
-type StorageMedium string
-
-const (
- StorageMediumDefault StorageMedium = "" // use whatever the default is for the node
- StorageMediumMemory StorageMedium = "Memory" // use memory (tmpfs)
- StorageMediumHugePages StorageMedium = "HugePages" // use hugepages
-)
-
-// Protocol defines network protocols supported for things like container ports.
-type Protocol string
-
-const (
- // ProtocolTCP is the TCP protocol.
- ProtocolTCP Protocol = "TCP"
- // ProtocolUDP is the UDP protocol.
- ProtocolUDP Protocol = "UDP"
-)
-
-// Represents a Persistent Disk resource in Google Compute Engine.
-//
-// A GCE PD must exist before mounting to a container. The disk must
-// also be in the same GCE project and zone as the kubelet. A GCE PD
-// can only be mounted as read/write once or read-only many times. GCE
-// PDs support ownership management and SELinux relabeling.
-type GCEPersistentDiskVolumeSource struct {
- // Unique name of the PD resource. Used to identify the disk in GCE
- PDName string
- // Filesystem type to mount.
- // Must be a filesystem type supported by the host operating system.
- // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
- // TODO: how do we prevent errors in the filesystem from compromising the machine
- // +optional
- FSType string
- // Optional: Partition on the disk to mount.
- // If omitted, kubelet will attempt to mount the device name.
- // Ex. For /dev/sda1, this field is "1", for /dev/sda, this field is 0 or empty.
- // +optional
- Partition int32
- // Optional: Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly bool
-}
-
-// Represents an ISCSI disk.
-// ISCSI volumes can only be mounted as read/write once.
-// ISCSI volumes support ownership management and SELinux relabeling.
-type ISCSIVolumeSource struct {
- // Required: iSCSI target portal
- // the portal is either an IP or ip_addr:port if port is other than default (typically TCP ports 860 and 3260)
- // +optional
- TargetPortal string
- // Required: target iSCSI Qualified Name
- // +optional
- IQN string
- // Required: iSCSI target lun number
- // +optional
- Lun int32
- // Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport.
- // +optional
- ISCSIInterface string
- // Filesystem type to mount.
- // Must be a filesystem type supported by the host operating system.
- // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
- // TODO: how do we prevent errors in the filesystem from compromising the machine
- // +optional
- FSType string
- // Optional: Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly bool
- // Optional: list of iSCSI target portal ips for high availability.
- // the portal is either an IP or ip_addr:port if port is other than default (typically TCP ports 860 and 3260)
- // +optional
- Portals []string
- // Optional: whether support iSCSI Discovery CHAP authentication
- // +optional
- DiscoveryCHAPAuth bool
- // Optional: whether support iSCSI Session CHAP authentication
- // +optional
- SessionCHAPAuth bool
- // Optional: CHAP secret for iSCSI target and initiator authentication.
- // The secret is used if either DiscoveryCHAPAuth or SessionCHAPAuth is true
- // +optional
- SecretRef *LocalObjectReference
- // Optional: Custom initiator name per volume.
- // If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
- // <target portal>:<volume name> will be created for the connection.
- // +optional
- InitiatorName *string
-}
-
-// ISCSIPersistentVolumeSource represents an ISCSI disk.
-// ISCSI volumes can only be mounted as read/write once.
-// ISCSI volumes support ownership management and SELinux relabeling.
-type ISCSIPersistentVolumeSource struct {
- // Required: iSCSI target portal
- // the portal is either an IP or ip_addr:port if port is other than default (typically TCP ports 860 and 3260)
- // +optional
- TargetPortal string
- // Required: target iSCSI Qualified Name
- // +optional
- IQN string
- // Required: iSCSI target lun number
- // +optional
- Lun int32
- // Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport.
- // +optional
- ISCSIInterface string
- // Filesystem type to mount.
- // Must be a filesystem type supported by the host operating system.
- // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
- // TODO: how do we prevent errors in the filesystem from compromising the machine
- // +optional
- FSType string
- // Optional: Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly bool
- // Optional: list of iSCSI target portal ips for high availability.
- // the portal is either an IP or ip_addr:port if port is other than default (typically TCP ports 860 and 3260)
- // +optional
- Portals []string
- // Optional: whether support iSCSI Discovery CHAP authentication
- // +optional
- DiscoveryCHAPAuth bool
- // Optional: whether support iSCSI Session CHAP authentication
- // +optional
- SessionCHAPAuth bool
- // Optional: CHAP secret for iSCSI target and initiator authentication.
- // The secret is used if either DiscoveryCHAPAuth or SessionCHAPAuth is true
- // +optional
- SecretRef *SecretReference
- // Optional: Custom initiator name per volume.
- // If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
- // <target portal>:<volume name> will be created for the connection.
- // +optional
- InitiatorName *string
-}
-
-// Represents a Fibre Channel volume.
-// Fibre Channel volumes can only be mounted as read/write once.
-// Fibre Channel volumes support ownership management and SELinux relabeling.
-type FCVolumeSource struct {
- // Optional: FC target worldwide names (WWNs)
- // +optional
- TargetWWNs []string
- // Optional: FC target lun number
- // +optional
- Lun *int32
- // Filesystem type to mount.
- // Must be a filesystem type supported by the host operating system.
- // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
- // TODO: how do we prevent errors in the filesystem from compromising the machine
- // +optional
- FSType string
- // Optional: Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly bool
- // Optional: FC volume World Wide Identifiers (WWIDs)
- // Either WWIDs or TargetWWNs and Lun must be set, but not both simultaneously.
- // +optional
- WWIDs []string
-}
-
-// FlexPersistentVolumeSource represents a generic persistent volume resource that is
-// provisioned/attached using an exec based plugin.
-type FlexPersistentVolumeSource struct {
- // Driver is the name of the driver to use for this volume.
- Driver string
- // Filesystem type to mount.
- // Must be a filesystem type supported by the host operating system.
- // Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
- // +optional
- FSType string
- // Optional: SecretRef is reference to the secret object containing
- // sensitive information to pass to the plugin scripts. This may be
- // empty if no secret object is specified. If the secret object
- // contains more than one secret, all secrets are passed to the plugin
- // scripts.
- // +optional
- SecretRef *SecretReference
- // Optional: Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly bool
- // Optional: Extra driver options if any.
- // +optional
- Options map[string]string
-}
-
-// FlexVolume represents a generic volume resource that is
-// provisioned/attached using an exec based plugin.
-type FlexVolumeSource struct {
- // Driver is the name of the driver to use for this volume.
- Driver string
- // Filesystem type to mount.
- // Must be a filesystem type supported by the host operating system.
- // Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
- // +optional
- FSType string
- // Optional: SecretRef is reference to the secret object containing
- // sensitive information to pass to the plugin scripts. This may be
- // empty if no secret object is specified. If the secret object
- // contains more than one secret, all secrets are passed to the plugin
- // scripts.
- // +optional
- SecretRef *LocalObjectReference
- // Optional: Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly bool
- // Optional: Extra driver options if any.
- // +optional
- Options map[string]string
-}
-
-// Represents a Persistent Disk resource in AWS.
-//
-// An AWS EBS disk must exist before mounting to a container. The disk
-// must also be in the same AWS zone as the kubelet. An AWS EBS disk
-// can only be mounted as read/write once. AWS EBS volumes support
-// ownership management and SELinux relabeling.
-type AWSElasticBlockStoreVolumeSource struct {
- // Unique id of the persistent disk resource. Used to identify the disk in AWS
- VolumeID string
- // Filesystem type to mount.
- // Must be a filesystem type supported by the host operating system.
- // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
- // TODO: how do we prevent errors in the filesystem from compromising the machine
- // +optional
- FSType string
- // Optional: Partition on the disk to mount.
- // If omitted, kubelet will attempt to mount the device name.
- // Ex. For /dev/sda1, this field is "1", for /dev/sda, this field is 0 or empty.
- // +optional
- Partition int32
- // Optional: Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly bool
-}
-
-// Represents a volume that is populated with the contents of a git repository.
-// Git repo volumes do not support ownership management.
-// Git repo volumes support SELinux relabeling.
-type GitRepoVolumeSource struct {
- // Repository URL
- Repository string
- // Commit hash, this is optional
- // +optional
- Revision string
- // Clone target, this is optional
- // Must not contain or start with '..'. If '.' is supplied, the volume directory will be the
- // git repository. Otherwise, if specified, the volume will contain the git repository in
- // the subdirectory with the given name.
- // +optional
- Directory string
- // TODO: Consider credentials here.
-}
-
-// Adapts a Secret into a volume.
-//
-// The contents of the target Secret's Data field will be presented in a volume
-// as files using the keys in the Data field as the file names.
-// Secret volumes support ownership management and SELinux relabeling.
-type SecretVolumeSource struct {
- // Name of the secret in the pod's namespace to use.
- // +optional
- SecretName string
- // If unspecified, each key-value pair in the Data field of the referenced
- // Secret will be projected into the volume as a file whose name is the
- // key and content is the value. If specified, the listed keys will be
- // projected into the specified paths, and unlisted keys will not be
- // present. If a key is specified which is not present in the Secret,
- // the volume setup will error unless it is marked optional. Paths must be
- // relative and may not contain the '..' path or start with '..'.
- // +optional
- Items []KeyToPath
- // Mode bits to use on created files by default. Must be a value between
- // 0 and 0777.
- // Directories within the path are not affected by this setting.
- // This might be in conflict with other options that affect the file
- // mode, like fsGroup, and the result can be other mode bits set.
- // +optional
- DefaultMode *int32
- // Specify whether the Secret or its key must be defined
- // +optional
- Optional *bool
-}
-
-// Adapts a secret into a projected volume.
-//
-// The contents of the target Secret's Data field will be presented in a
-// projected volume as files using the keys in the Data field as the file names.
-// Note that this is identical to a secret volume source without the default
-// mode.
-type SecretProjection struct {
- LocalObjectReference
- // If unspecified, each key-value pair in the Data field of the referenced
- // Secret will be projected into the volume as a file whose name is the
- // key and content is the value. If specified, the listed keys will be
- // projected into the specified paths, and unlisted keys will not be
- // present. If a key is specified which is not present in the Secret,
- // the volume setup will error unless it is marked optional. Paths must be
- // relative and may not contain the '..' path or start with '..'.
- // +optional
- Items []KeyToPath
- // Specify whether the Secret or its key must be defined
- // +optional
- Optional *bool
-}
-
-// Represents an NFS mount that lasts the lifetime of a pod.
-// NFS volumes do not support ownership management or SELinux relabeling.
-type NFSVolumeSource struct {
- // Server is the hostname or IP address of the NFS server
- Server string
-
- // Path is the exported NFS share
- Path string
-
- // Optional: Defaults to false (read/write). ReadOnly here will force
- // the NFS export to be mounted with read-only permissions
- // +optional
- ReadOnly bool
-}
-
-// Represents a Quobyte mount that lasts the lifetime of a pod.
-// Quobyte volumes do not support ownership management or SELinux relabeling.
-type QuobyteVolumeSource struct {
- // Registry represents a single or multiple Quobyte Registry services
- // specified as a string as host:port pair (multiple entries are separated with commas)
- // which acts as the central registry for volumes
- Registry string
-
- // Volume is a string that references an already created Quobyte volume by name.
- Volume string
-
- // Defaults to false (read/write). ReadOnly here will force
- // the Quobyte to be mounted with read-only permissions
- // +optional
- ReadOnly bool
-
- // User to map volume access to
- // Defaults to the root user
- // +optional
- User string
-
- // Group to map volume access to
- // Default is no group
- // +optional
- Group string
-}
-
-// Represents a Glusterfs mount that lasts the lifetime of a pod.
-// Glusterfs volumes do not support ownership management or SELinux relabeling.
-type GlusterfsVolumeSource struct {
- // Required: EndpointsName is the endpoint name that details Glusterfs topology
- EndpointsName string
-
- // Required: Path is the Glusterfs volume path
- Path string
-
- // Optional: Defaults to false (read/write). ReadOnly here will force
- // the Glusterfs to be mounted with read-only permissions
- // +optional
- ReadOnly bool
-}
-
-// Represents a Rados Block Device mount that lasts the lifetime of a pod.
-// RBD volumes support ownership management and SELinux relabeling.
-type RBDVolumeSource struct {
- // Required: CephMonitors is a collection of Ceph monitors
- CephMonitors []string
- // Required: RBDImage is the rados image name
- RBDImage string
- // Filesystem type to mount.
- // Must be a filesystem type supported by the host operating system.
- // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
- // TODO: how do we prevent errors in the filesystem from compromising the machine
- // +optional
- FSType string
- // Optional: RadosPool is the rados pool name,default is rbd
- // +optional
- RBDPool string
- // Optional: RBDUser is the rados user name, default is admin
- // +optional
- RadosUser string
- // Optional: Keyring is the path to key ring for RBDUser, default is /etc/ceph/keyring
- // +optional
- Keyring string
- // Optional: SecretRef is name of the authentication secret for RBDUser, default is nil.
- // +optional
- SecretRef *LocalObjectReference
- // Optional: Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly bool
-}
-
-// Represents a Rados Block Device mount that lasts the lifetime of a pod.
-// RBD volumes support ownership management and SELinux relabeling.
-type RBDPersistentVolumeSource struct {
- // Required: CephMonitors is a collection of Ceph monitors
- CephMonitors []string
- // Required: RBDImage is the rados image name
- RBDImage string
- // Filesystem type to mount.
- // Must be a filesystem type supported by the host operating system.
- // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
- // TODO: how do we prevent errors in the filesystem from compromising the machine
- // +optional
- FSType string
- // Optional: RadosPool is the rados pool name,default is rbd
- // +optional
- RBDPool string
- // Optional: RBDUser is the rados user name, default is admin
- // +optional
- RadosUser string
- // Optional: Keyring is the path to key ring for RBDUser, default is /etc/ceph/keyring
- // +optional
- Keyring string
- // Optional: SecretRef is reference to the authentication secret for User, default is empty.
- // +optional
- SecretRef *SecretReference
- // Optional: Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly bool
-}
-
-// Represents a cinder volume resource in Openstack. A Cinder volume
-// must exist before mounting to a container. The volume must also be
-// in the same region as the kubelet. Cinder volumes support ownership
-// management and SELinux relabeling.
-type CinderVolumeSource struct {
- // Unique id of the volume used to identify the cinder volume
- VolumeID string
- // Filesystem type to mount.
- // Must be a filesystem type supported by the host operating system.
- // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
- // +optional
- FSType string
- // Optional: Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly bool
-}
-
-// Represents a Ceph Filesystem mount that lasts the lifetime of a pod
-// Cephfs volumes do not support ownership management or SELinux relabeling.
-type CephFSVolumeSource struct {
- // Required: Monitors is a collection of Ceph monitors
- Monitors []string
- // Optional: Used as the mounted root, rather than the full Ceph tree, default is /
- // +optional
- Path string
- // Optional: User is the rados user name, default is admin
- // +optional
- User string
- // Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
- // +optional
- SecretFile string
- // Optional: SecretRef is reference to the authentication secret for User, default is empty.
- // +optional
- SecretRef *LocalObjectReference
- // Optional: Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly bool
-}
-
-// SecretReference represents a Secret Reference. It has enough information to retrieve secret
-// in any namespace
-type SecretReference struct {
- // Name is unique within a namespace to reference a secret resource.
- // +optional
- Name string
- // Namespace defines the space within which the secret name must be unique.
- // +optional
- Namespace string
-}
-
-// Represents a Ceph Filesystem mount that lasts the lifetime of a pod
-// Cephfs volumes do not support ownership management or SELinux relabeling.
-type CephFSPersistentVolumeSource struct {
- // Required: Monitors is a collection of Ceph monitors
- Monitors []string
- // Optional: Used as the mounted root, rather than the full Ceph tree, default is /
- // +optional
- Path string
- // Optional: User is the rados user name, default is admin
- // +optional
- User string
- // Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
- // +optional
- SecretFile string
- // Optional: SecretRef is reference to the authentication secret for User, default is empty.
- // +optional
- SecretRef *SecretReference
- // Optional: Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly bool
-}
-
-// Represents a Flocker volume mounted by the Flocker agent.
-// One and only one of datasetName and datasetUUID should be set.
-// Flocker volumes do not support ownership management or SELinux relabeling.
-type FlockerVolumeSource struct {
- // Name of the dataset stored as metadata -> name on the dataset for Flocker
- // should be considered as deprecated
- // +optional
- DatasetName string
- // UUID of the dataset. This is unique identifier of a Flocker dataset
- // +optional
- DatasetUUID string
-}
-
-// Represents a volume containing downward API info.
-// Downward API volumes support ownership management and SELinux relabeling.
-type DownwardAPIVolumeSource struct {
- // Items is a list of DownwardAPIVolume file
- // +optional
- Items []DownwardAPIVolumeFile
- // Mode bits to use on created files by default. Must be a value between
- // 0 and 0777.
- // Directories within the path are not affected by this setting.
- // This might be in conflict with other options that affect the file
- // mode, like fsGroup, and the result can be other mode bits set.
- // +optional
- DefaultMode *int32
-}
-
-// Represents a single file containing information from the downward API
-type DownwardAPIVolumeFile struct {
- // Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'
- Path string
- // Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.
- // +optional
- FieldRef *ObjectFieldSelector
- // Selects a resource of the container: only resources limits and requests
- // (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
- // +optional
- ResourceFieldRef *ResourceFieldSelector
- // Optional: mode bits to use on this file, must be a value between 0
- // and 0777. If not specified, the volume defaultMode will be used.
- // This might be in conflict with other options that affect the file
- // mode, like fsGroup, and the result can be other mode bits set.
- // +optional
- Mode *int32
-}
-
-// Represents downward API info for projecting into a projected volume.
-// Note that this is identical to a downwardAPI volume source without the default
-// mode.
-type DownwardAPIProjection struct {
- // Items is a list of DownwardAPIVolume file
- // +optional
- Items []DownwardAPIVolumeFile
-}
-
-// AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
-type AzureFileVolumeSource struct {
- // the name of secret that contains Azure Storage Account Name and Key
- SecretName string
- // Share Name
- ShareName string
- // Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly bool
-}
-
-// AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
-type AzureFilePersistentVolumeSource struct {
- // the name of secret that contains Azure Storage Account Name and Key
- SecretName string
- // Share Name
- ShareName string
- // Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly bool
- // the namespace of the secret that contains Azure Storage Account Name and Key
- // default is the same as the Pod
- // +optional
- SecretNamespace *string
-}
-
-// Represents a vSphere volume resource.
-type VsphereVirtualDiskVolumeSource struct {
- // Path that identifies vSphere volume vmdk
- VolumePath string
- // Filesystem type to mount.
- // Must be a filesystem type supported by the host operating system.
- // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
- // +optional
- FSType string
- // Storage Policy Based Management (SPBM) profile name.
- // +optional
- StoragePolicyName string
- // Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
- // +optional
- StoragePolicyID string
-}
-
-// Represents a Photon Controller persistent disk resource.
-type PhotonPersistentDiskVolumeSource struct {
- // ID that identifies Photon Controller persistent disk
- PdID string
- // Filesystem type to mount.
- // Must be a filesystem type supported by the host operating system.
- // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
- FSType string
-}
-
-// PortworxVolumeSource represents a Portworx volume resource.
-type PortworxVolumeSource struct {
- // VolumeID uniquely identifies a Portworx volume
- VolumeID string
- // FSType represents the filesystem type to mount
- // Must be a filesystem type supported by the host operating system.
- // Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
- // +optional
- FSType string
- // Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly bool
-}
-
-type AzureDataDiskCachingMode string
-type AzureDataDiskKind string
-
-const (
- AzureDataDiskCachingNone AzureDataDiskCachingMode = "None"
- AzureDataDiskCachingReadOnly AzureDataDiskCachingMode = "ReadOnly"
- AzureDataDiskCachingReadWrite AzureDataDiskCachingMode = "ReadWrite"
-
- AzureSharedBlobDisk AzureDataDiskKind = "Shared"
- AzureDedicatedBlobDisk AzureDataDiskKind = "Dedicated"
- AzureManagedDisk AzureDataDiskKind = "Managed"
-)
-
-// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
-type AzureDiskVolumeSource struct {
- // The Name of the data disk in the blob storage
- DiskName string
- // The URI of the data disk in the blob storage
- DataDiskURI string
- // Host Caching mode: None, Read Only, Read Write.
- // +optional
- CachingMode *AzureDataDiskCachingMode
- // Filesystem type to mount.
- // Must be a filesystem type supported by the host operating system.
- // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
- // +optional
- FSType *string
- // Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly *bool
- // Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared
- Kind *AzureDataDiskKind
-}
-
-// ScaleIOVolumeSource represents a persistent ScaleIO volume
-type ScaleIOVolumeSource struct {
- // The host address of the ScaleIO API Gateway.
- Gateway string
- // The name of the storage system as configured in ScaleIO.
- System string
- // SecretRef references to the secret for ScaleIO user and other
- // sensitive information. If this is not provided, Login operation will fail.
- SecretRef *LocalObjectReference
- // Flag to enable/disable SSL communication with Gateway, default false
- // +optional
- SSLEnabled bool
- // The name of the ScaleIO Protection Domain for the configured storage.
- // +optional
- ProtectionDomain string
- // The ScaleIO Storage Pool associated with the protection domain.
- // +optional
- StoragePool string
- // Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
- // +optional
- StorageMode string
- // The name of a volume already created in the ScaleIO system
- // that is associated with this volume source.
- VolumeName string
- // Filesystem type to mount.
- // Must be a filesystem type supported by the host operating system.
- // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
- // +optional
- FSType string
- // Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly bool
-}
-
-// ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume that can be defined
-// by a an admin via a storage class, for instance.
-type ScaleIOPersistentVolumeSource struct {
- // The host address of the ScaleIO API Gateway.
- Gateway string
- // The name of the storage system as configured in ScaleIO.
- System string
- // SecretRef references to the secret for ScaleIO user and other
- // sensitive information. If this is not provided, Login operation will fail.
- SecretRef *SecretReference
- // Flag to enable/disable SSL communication with Gateway, default false
- // +optional
- SSLEnabled bool
- // The name of the ScaleIO Protection Domain for the configured storage.
- // +optional
- ProtectionDomain string
- // The ScaleIO Storage Pool associated with the protection domain.
- // +optional
- StoragePool string
- // Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
- // +optional
- StorageMode string
- // The name of a volume created in the ScaleIO system
- // that is associated with this volume source.
- VolumeName string
- // Filesystem type to mount.
- // Must be a filesystem type supported by the host operating system.
- // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
- // +optional
- FSType string
- // Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly bool
-}
-
-// Represents a StorageOS persistent volume resource.
-type StorageOSVolumeSource struct {
- // VolumeName is the human-readable name of the StorageOS volume. Volume
- // names are only unique within a namespace.
- VolumeName string
- // VolumeNamespace specifies the scope of the volume within StorageOS. If no
- // namespace is specified then the Pod's namespace will be used. This allows the
- // Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
- // Set VolumeName to any name to override the default behaviour.
- // Set to "default" if you are not using namespaces within StorageOS.
- // Namespaces that do not pre-exist within StorageOS will be created.
- // +optional
- VolumeNamespace string
- // Filesystem type to mount.
- // Must be a filesystem type supported by the host operating system.
- // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
- // +optional
- FSType string
- // Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly bool
- // SecretRef specifies the secret to use for obtaining the StorageOS API
- // credentials. If not specified, default values will be attempted.
- // +optional
- SecretRef *LocalObjectReference
-}
-
-// Represents a StorageOS persistent volume resource.
-type StorageOSPersistentVolumeSource struct {
- // VolumeName is the human-readable name of the StorageOS volume. Volume
- // names are only unique within a namespace.
- VolumeName string
- // VolumeNamespace specifies the scope of the volume within StorageOS. If no
- // namespace is specified then the Pod's namespace will be used. This allows the
- // Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
- // Set VolumeName to any name to override the default behaviour.
- // Set to "default" if you are not using namespaces within StorageOS.
- // Namespaces that do not pre-exist within StorageOS will be created.
- // +optional
- VolumeNamespace string
- // Filesystem type to mount.
- // Must be a filesystem type supported by the host operating system.
- // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
- // +optional
- FSType string
- // Defaults to false (read/write). ReadOnly here will force
- // the ReadOnly setting in VolumeMounts.
- // +optional
- ReadOnly bool
- // SecretRef specifies the secret to use for obtaining the StorageOS API
- // credentials. If not specified, default values will be attempted.
- // +optional
- SecretRef *ObjectReference
-}
-
-// Adapts a ConfigMap into a volume.
-//
-// The contents of the target ConfigMap's Data field will be presented in a
-// volume as files using the keys in the Data field as the file names, unless
-// the items element is populated with specific mappings of keys to paths.
-// ConfigMap volumes support ownership management and SELinux relabeling.
-type ConfigMapVolumeSource struct {
- LocalObjectReference
- // If unspecified, each key-value pair in the Data field of the referenced
- // ConfigMap will be projected into the volume as a file whose name is the
- // key and content is the value. If specified, the listed keys will be
- // projected into the specified paths, and unlisted keys will not be
- // present. If a key is specified which is not present in the ConfigMap,
- // the volume setup will error unless it is marked optional. Paths must be
- // relative and may not contain the '..' path or start with '..'.
- // +optional
- Items []KeyToPath
- // Mode bits to use on created files by default. Must be a value between
- // 0 and 0777.
- // Directories within the path are not affected by this setting.
- // This might be in conflict with other options that affect the file
- // mode, like fsGroup, and the result can be other mode bits set.
- // +optional
- DefaultMode *int32
- // Specify whether the ConfigMap or it's keys must be defined
- // +optional
- Optional *bool
-}
-
-// Adapts a ConfigMap into a projected volume.
-//
-// The contents of the target ConfigMap's Data field will be presented in a
-// projected volume as files using the keys in the Data field as the file names,
-// unless the items element is populated with specific mappings of keys to paths.
-// Note that this is identical to a configmap volume source without the default
-// mode.
-type ConfigMapProjection struct {
- LocalObjectReference
- // If unspecified, each key-value pair in the Data field of the referenced
- // ConfigMap will be projected into the volume as a file whose name is the
- // key and content is the value. If specified, the listed keys will be
- // projected into the specified paths, and unlisted keys will not be
- // present. If a key is specified which is not present in the ConfigMap,
- // the volume setup will error unless it is marked optional. Paths must be
- // relative and may not contain the '..' path or start with '..'.
- // +optional
- Items []KeyToPath
- // Specify whether the ConfigMap or it's keys must be defined
- // +optional
- Optional *bool
-}
-
-// Represents a projected volume source
-type ProjectedVolumeSource struct {
- // list of volume projections
- Sources []VolumeProjection
- // Mode bits to use on created files by default. Must be a value between
- // 0 and 0777.
- // Directories within the path are not affected by this setting.
- // This might be in conflict with other options that affect the file
- // mode, like fsGroup, and the result can be other mode bits set.
- // +optional
- DefaultMode *int32
-}
-
-// Projection that may be projected along with other supported volume types
-type VolumeProjection struct {
- // all types below are the supported types for projection into the same volume
-
- // information about the secret data to project
- Secret *SecretProjection
- // information about the downwardAPI data to project
- DownwardAPI *DownwardAPIProjection
- // information about the configMap data to project
- ConfigMap *ConfigMapProjection
-}
-
-// Maps a string key to a path within a volume.
-type KeyToPath struct {
- // The key to project.
- Key string
-
- // The relative path of the file to map the key to.
- // May not be an absolute path.
- // May not contain the path element '..'.
- // May not start with the string '..'.
- Path string
- // Optional: mode bits to use on this file, should be a value between 0
- // and 0777. If not specified, the volume defaultMode will be used.
- // This might be in conflict with other options that affect the file
- // mode, like fsGroup, and the result can be other mode bits set.
- // +optional
- Mode *int32
-}
-
-// Local represents directly-attached storage with node affinity
-type LocalVolumeSource struct {
- // The full path to the volume on the node
- // For alpha, this path must be a directory
- // Once block as a source is supported, then this path can point to a block device
- Path string
-}
-
-// Represents storage that is managed by an external CSI volume driver (Beta feature)
-type CSIPersistentVolumeSource struct {
- // Driver is the name of the driver to use for this volume.
- // Required.
- Driver string
-
- // VolumeHandle is the unique volume name returned by the CSI volume
- // plugin’s CreateVolume to refer to the volume on all subsequent calls.
- // Required.
- VolumeHandle string
-
- // Optional: The value to pass to ControllerPublishVolumeRequest.
- // Defaults to false (read/write).
- // +optional
- ReadOnly bool
-
- // Filesystem type to mount.
- // Must be a filesystem type supported by the host operating system.
- // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
- // +optional
- FSType string
-
- // Attributes of the volume to publish.
- // +optional
- VolumeAttributes map[string]string
-
- // ControllerPublishSecretRef is a reference to the secret object containing
- // sensitive information to pass to the CSI driver to complete the CSI
- // ControllerPublishVolume and ControllerUnpublishVolume calls.
- // This field is optional, and may be empty if no secret is required. If the
- // secret object contains more than one secret, all secrets are passed.
- // +optional
- ControllerPublishSecretRef *SecretReference
-
- // NodeStageSecretRef is a reference to the secret object containing sensitive
- // information to pass to the CSI driver to complete the CSI NodeStageVolume
- // and NodeStageVolume and NodeUnstageVolume calls.
- // This field is optional, and may be empty if no secret is required. If the
- // secret object contains more than one secret, all secrets are passed.
- // +optional
- NodeStageSecretRef *SecretReference
-
- // NodePublishSecretRef is a reference to the secret object containing
- // sensitive information to pass to the CSI driver to complete the CSI
- // NodePublishVolume and NodeUnpublishVolume calls.
- // This field is optional, and may be empty if no secret is required. If the
- // secret object contains more than one secret, all secrets are passed.
- // +optional
- NodePublishSecretRef *SecretReference
-}
-
-// ContainerPort represents a network port in a single container
-type ContainerPort struct {
- // Optional: If specified, this must be an IANA_SVC_NAME Each named port
- // in a pod must have a unique name.
- // +optional
- Name string
- // Optional: If specified, this must be a valid port number, 0 < x < 65536.
- // If HostNetwork is specified, this must match ContainerPort.
- // +optional
- HostPort int32
- // Required: This must be a valid port number, 0 < x < 65536.
- ContainerPort int32
- // Required: Supports "TCP" and "UDP".
- // +optional
- Protocol Protocol
- // Optional: What host IP to bind the external port to.
- // +optional
- HostIP string
-}
-
-// VolumeMount describes a mounting of a Volume within a container.
-type VolumeMount struct {
- // Required: This must match the Name of a Volume [above].
- Name string
- // Optional: Defaults to false (read-write).
- // +optional
- ReadOnly bool
- // Required. If the path is not an absolute path (e.g. some/path) it
- // will be prepended with the appropriate root prefix for the operating
- // system. On Linux this is '/', on Windows this is 'C:\'.
- MountPath string
- // Path within the volume from which the container's volume should be mounted.
- // Defaults to "" (volume's root).
- // +optional
- SubPath string
- // mountPropagation determines how mounts are propagated from the host
- // to container and the other way around.
- // When not set, MountPropagationHostToContainer is used.
- // This field is alpha in 1.8 and can be reworked or removed in a future
- // release.
- // +optional
- MountPropagation *MountPropagationMode
-}
-
-// MountPropagationMode describes mount propagation.
-type MountPropagationMode string
-
-const (
- // MountPropagationHostToContainer means that the volume in a container will
- // receive new mounts from the host or other containers, but filesystems
- // mounted inside the container won't be propagated to the host or other
- // containers.
- // Note that this mode is recursively applied to all mounts in the volume
- // ("rslave" in Linux terminology).
- MountPropagationHostToContainer MountPropagationMode = "HostToContainer"
- // MountPropagationBidirectional means that the volume in a container will
- // receive new mounts from the host or other containers, and its own mounts
- // will be propagated from the container to the host or other containers.
- // Note that this mode is recursively applied to all mounts in the volume
- // ("rshared" in Linux terminology).
- MountPropagationBidirectional MountPropagationMode = "Bidirectional"
-)
-
-// VolumeDevice describes a mapping of a raw block device within a container.
-type VolumeDevice struct {
- // name must match the name of a persistentVolumeClaim in the pod
- Name string
- // devicePath is the path inside of the container that the device will be mapped to.
- DevicePath string
-}
-
-// EnvVar represents an environment variable present in a Container.
-type EnvVar struct {
- // Required: This must be a C_IDENTIFIER.
- Name string
- // Optional: no more than one of the following may be specified.
- // Optional: Defaults to ""; variable references $(VAR_NAME) are expanded
- // using the previous defined environment variables in the container and
- // any service environment variables. If a variable cannot be resolved,
- // the reference in the input string will be unchanged. The $(VAR_NAME)
- // syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
- // references will never be expanded, regardless of whether the variable
- // exists or not.
- // +optional
- Value string
- // Optional: Specifies a source the value of this var should come from.
- // +optional
- ValueFrom *EnvVarSource
-}
-
-// EnvVarSource represents a source for the value of an EnvVar.
-// Only one of its fields may be set.
-type EnvVarSource struct {
- // Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations,
- // metadata.uid, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.
- // +optional
- FieldRef *ObjectFieldSelector
- // Selects a resource of the container: only resources limits and requests
- // (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
- // +optional
- ResourceFieldRef *ResourceFieldSelector
- // Selects a key of a ConfigMap.
- // +optional
- ConfigMapKeyRef *ConfigMapKeySelector
- // Selects a key of a secret in the pod's namespace.
- // +optional
- SecretKeyRef *SecretKeySelector
-}
-
-// ObjectFieldSelector selects an APIVersioned field of an object.
-type ObjectFieldSelector struct {
- // Required: Version of the schema the FieldPath is written in terms of.
- // If no value is specified, it will be defaulted to the APIVersion of the
- // enclosing object.
- APIVersion string
- // Required: Path of the field to select in the specified API version
- FieldPath string
-}
-
-// ResourceFieldSelector represents container resources (cpu, memory) and their output format
-type ResourceFieldSelector struct {
- // Container name: required for volumes, optional for env vars
- // +optional
- ContainerName string
- // Required: resource to select
- Resource string
- // Specifies the output format of the exposed resources, defaults to "1"
- // +optional
- Divisor resource.Quantity
-}
-
-// Selects a key from a ConfigMap.
-type ConfigMapKeySelector struct {
- // The ConfigMap to select from.
- LocalObjectReference
- // The key to select.
- Key string
- // Specify whether the ConfigMap or it's key must be defined
- // +optional
- Optional *bool
-}
-
-// SecretKeySelector selects a key of a Secret.
-type SecretKeySelector struct {
- // The name of the secret in the pod's namespace to select from.
- LocalObjectReference
- // The key of the secret to select from. Must be a valid secret key.
- Key string
- // Specify whether the Secret or it's key must be defined
- // +optional
- Optional *bool
-}
-
-// EnvFromSource represents the source of a set of ConfigMaps
-type EnvFromSource struct {
- // An optional identifier to prepend to each key in the ConfigMap.
- // +optional
- Prefix string
- // The ConfigMap to select from.
- //+optional
- ConfigMapRef *ConfigMapEnvSource
- // The Secret to select from.
- //+optional
- SecretRef *SecretEnvSource
-}
-
-// ConfigMapEnvSource selects a ConfigMap to populate the environment
-// variables with.
-//
-// The contents of the target ConfigMap's Data field will represent the
-// key-value pairs as environment variables.
-type ConfigMapEnvSource struct {
- // The ConfigMap to select from.
- LocalObjectReference
- // Specify whether the ConfigMap must be defined
- // +optional
- Optional *bool
-}
-
-// SecretEnvSource selects a Secret to populate the environment
-// variables with.
-//
-// The contents of the target Secret's Data field will represent the
-// key-value pairs as environment variables.
-type SecretEnvSource struct {
- // The Secret to select from.
- LocalObjectReference
- // Specify whether the Secret must be defined
- // +optional
- Optional *bool
-}
-
-// HTTPHeader describes a custom header to be used in HTTP probes
-type HTTPHeader struct {
- // The header field name
- Name string
- // The header field value
- Value string
-}
-
-// HTTPGetAction describes an action based on HTTP Get requests.
-type HTTPGetAction struct {
- // Optional: Path to access on the HTTP server.
- // +optional
- Path string
- // Required: Name or number of the port to access on the container.
- // +optional
- Port intstr.IntOrString
- // Optional: Host name to connect to, defaults to the pod IP. You
- // probably want to set "Host" in httpHeaders instead.
- // +optional
- Host string
- // Optional: Scheme to use for connecting to the host, defaults to HTTP.
- // +optional
- Scheme URIScheme
- // Optional: Custom headers to set in the request. HTTP allows repeated headers.
- // +optional
- HTTPHeaders []HTTPHeader
-}
-
-// URIScheme identifies the scheme used for connection to a host for Get actions
-type URIScheme string
-
-const (
- // URISchemeHTTP means that the scheme used will be http://
- URISchemeHTTP URIScheme = "HTTP"
- // URISchemeHTTPS means that the scheme used will be https://
- URISchemeHTTPS URIScheme = "HTTPS"
-)
-
-// TCPSocketAction describes an action based on opening a socket
-type TCPSocketAction struct {
- // Required: Port to connect to.
- // +optional
- Port intstr.IntOrString
- // Optional: Host name to connect to, defaults to the pod IP.
- // +optional
- Host string
-}
-
-// ExecAction describes a "run in container" action.
-type ExecAction struct {
- // Command is the command line to execute inside the container, the working directory for the
- // command is root ('/') in the container's filesystem. The command is simply exec'd, it is
- // not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
- // a shell, you need to explicitly call out to that shell.
- // +optional
- Command []string
-}
-
-// Probe describes a health check to be performed against a container to determine whether it is
-// alive or ready to receive traffic.
-type Probe struct {
- // The action taken to determine the health of a container
- Handler
- // Length of time before health checking is activated. In seconds.
- // +optional
- InitialDelaySeconds int32
- // Length of time before health checking times out. In seconds.
- // +optional
- TimeoutSeconds int32
- // How often (in seconds) to perform the probe.
- // +optional
- PeriodSeconds int32
- // Minimum consecutive successes for the probe to be considered successful after having failed.
- // Must be 1 for liveness.
- // +optional
- SuccessThreshold int32
- // Minimum consecutive failures for the probe to be considered failed after having succeeded.
- // +optional
- FailureThreshold int32
-}
-
-// PullPolicy describes a policy for if/when to pull a container image
-type PullPolicy string
-
-const (
- // PullAlways means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.
- PullAlways PullPolicy = "Always"
- // PullNever means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present
- PullNever PullPolicy = "Never"
- // PullIfNotPresent means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.
- PullIfNotPresent PullPolicy = "IfNotPresent"
-)
-
-// TerminationMessagePolicy describes how termination messages are retrieved from a container.
-type TerminationMessagePolicy string
-
-const (
- // TerminationMessageReadFile is the default behavior and will set the container status message to
- // the contents of the container's terminationMessagePath when the container exits.
- TerminationMessageReadFile TerminationMessagePolicy = "File"
- // TerminationMessageFallbackToLogsOnError will read the most recent contents of the container logs
- // for the container status message when the container exits with an error and the
- // terminationMessagePath has no contents.
- TerminationMessageFallbackToLogsOnError TerminationMessagePolicy = "FallbackToLogsOnError"
-)
-
-// Capability represent POSIX capabilities type
-type Capability string
-
-// Capabilities represent POSIX capabilities that can be added or removed to a running container.
-type Capabilities struct {
- // Added capabilities
- // +optional
- Add []Capability
- // Removed capabilities
- // +optional
- Drop []Capability
-}
-
-// ResourceRequirements describes the compute resource requirements.
-type ResourceRequirements struct {
- // Limits describes the maximum amount of compute resources allowed.
- // +optional
- Limits ResourceList
- // Requests describes the minimum amount of compute resources required.
- // If Request is omitted for a container, it defaults to Limits if that is explicitly specified,
- // otherwise to an implementation-defined value
- // +optional
- Requests ResourceList
-}
-
-// Container represents a single container that is expected to be run on the host.
-type Container struct {
- // Required: This must be a DNS_LABEL. Each container in a pod must
- // have a unique name.
- Name string
- // Required.
- Image string
- // Optional: The docker image's entrypoint is used if this is not provided; cannot be updated.
- // Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
- // cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
- // can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
- // regardless of whether the variable exists or not.
- // +optional
- Command []string
- // Optional: The docker image's cmd is used if this is not provided; cannot be updated.
- // Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
- // cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
- // can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
- // regardless of whether the variable exists or not.
- // +optional
- Args []string
- // Optional: Defaults to Docker's default.
- // +optional
- WorkingDir string
- // +optional
- Ports []ContainerPort
- // List of sources to populate environment variables in the container.
- // The keys defined within a source must be a C_IDENTIFIER. All invalid keys
- // will be reported as an event when the container is starting. When a key exists in multiple
- // sources, the value associated with the last source will take precedence.
- // Values defined by an Env with a duplicate key will take precedence.
- // Cannot be updated.
- // +optional
- EnvFrom []EnvFromSource
- // +optional
- Env []EnvVar
- // Compute resource requirements.
- // +optional
- Resources ResourceRequirements
- // +optional
- VolumeMounts []VolumeMount
- // volumeDevices is the list of block devices to be used by the container.
- // This is an alpha feature and may change in the future.
- // +optional
- VolumeDevices []VolumeDevice
- // +optional
- LivenessProbe *Probe
- // +optional
- ReadinessProbe *Probe
- // +optional
- Lifecycle *Lifecycle
- // Required.
- // +optional
- TerminationMessagePath string
- // +optional
- TerminationMessagePolicy TerminationMessagePolicy
- // Required: Policy for pulling images for this container
- ImagePullPolicy PullPolicy
- // Optional: SecurityContext defines the security options the container should be run with.
- // If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
- // +optional
- SecurityContext *SecurityContext
-
- // Variables for interactive containers, these have very specialized use-cases (e.g. debugging)
- // and shouldn't be used for general purpose containers.
- // +optional
- Stdin bool
- // +optional
- StdinOnce bool
- // +optional
- TTY bool
-}
-
-// Handler defines a specific action that should be taken
-// TODO: pass structured data to these actions, and document that data here.
-type Handler struct {
- // One and only one of the following should be specified.
- // Exec specifies the action to take.
- // +optional
- Exec *ExecAction
- // HTTPGet specifies the http request to perform.
- // +optional
- HTTPGet *HTTPGetAction
- // TCPSocket specifies an action involving a TCP port.
- // TODO: implement a realistic TCP lifecycle hook
- // +optional
- TCPSocket *TCPSocketAction
-}
-
-// Lifecycle describes actions that the management system should take in response to container lifecycle
-// events. For the PostStart and PreStop lifecycle handlers, management of the container blocks
-// until the action is complete, unless the container process fails, in which case the handler is aborted.
-type Lifecycle struct {
- // PostStart is called immediately after a container is created. If the handler fails, the container
- // is terminated and restarted.
- // +optional
- PostStart *Handler
- // PreStop is called immediately before a container is terminated. The reason for termination is
- // passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated.
- // +optional
- PreStop *Handler
-}
-
-// The below types are used by kube_client and api_server.
-
-type ConditionStatus string
-
-// These are valid condition statuses. "ConditionTrue" means a resource is in the condition;
-// "ConditionFalse" means a resource is not in the condition; "ConditionUnknown" means kubernetes
-// can't decide if a resource is in the condition or not. In the future, we could add other
-// intermediate conditions, e.g. ConditionDegraded.
-const (
- ConditionTrue ConditionStatus = "True"
- ConditionFalse ConditionStatus = "False"
- ConditionUnknown ConditionStatus = "Unknown"
-)
-
-type ContainerStateWaiting struct {
- // A brief CamelCase string indicating details about why the container is in waiting state.
- // +optional
- Reason string
- // A human-readable message indicating details about why the container is in waiting state.
- // +optional
- Message string
-}
-
-type ContainerStateRunning struct {
- // +optional
- StartedAt metav1.Time
-}
-
-type ContainerStateTerminated struct {
- ExitCode int32
- // +optional
- Signal int32
- // +optional
- Reason string
- // +optional
- Message string
- // +optional
- StartedAt metav1.Time
- // +optional
- FinishedAt metav1.Time
- // +optional
- ContainerID string
-}
-
-// ContainerState holds a possible state of container.
-// Only one of its members may be specified.
-// If none of them is specified, the default one is ContainerStateWaiting.
-type ContainerState struct {
- // +optional
- Waiting *ContainerStateWaiting
- // +optional
- Running *ContainerStateRunning
- // +optional
- Terminated *ContainerStateTerminated
-}
-
-type ContainerStatus struct {
- // Each container in a pod must have a unique name.
- Name string
- // +optional
- State ContainerState
- // +optional
- LastTerminationState ContainerState
- // Ready specifies whether the container has passed its readiness check.
- Ready bool
- // Note that this is calculated from dead containers. But those containers are subject to
- // garbage collection. This value will get capped at 5 by GC.
- RestartCount int32
- Image string
- ImageID string
- // +optional
- ContainerID string
-}
-
-// PodPhase is a label for the condition of a pod at the current time.
-type PodPhase string
-
-// These are the valid statuses of pods.
-const (
- // PodPending means the pod has been accepted by the system, but one or more of the containers
- // has not been started. This includes time before being bound to a node, as well as time spent
- // pulling images onto the host.
- PodPending PodPhase = "Pending"
- // PodRunning means the pod has been bound to a node and all of the containers have been started.
- // At least one container is still running or is in the process of being restarted.
- PodRunning PodPhase = "Running"
- // PodSucceeded means that all containers in the pod have voluntarily terminated
- // with a container exit code of 0, and the system is not going to restart any of these containers.
- PodSucceeded PodPhase = "Succeeded"
- // PodFailed means that all containers in the pod have terminated, and at least one container has
- // terminated in a failure (exited with a non-zero exit code or was stopped by the system).
- PodFailed PodPhase = "Failed"
- // PodUnknown means that for some reason the state of the pod could not be obtained, typically due
- // to an error in communicating with the host of the pod.
- PodUnknown PodPhase = "Unknown"
-)
-
-type PodConditionType string
-
-// These are valid conditions of pod.
-const (
- // PodScheduled represents status of the scheduling process for this pod.
- PodScheduled PodConditionType = "PodScheduled"
- // PodReady means the pod is able to service requests and should be added to the
- // load balancing pools of all matching services.
- PodReady PodConditionType = "Ready"
- // PodInitialized means that all init containers in the pod have started successfully.
- PodInitialized PodConditionType = "Initialized"
- // PodReasonUnschedulable reason in PodScheduled PodCondition means that the scheduler
- // can't schedule the pod right now, for example due to insufficient resources in the cluster.
- PodReasonUnschedulable = "Unschedulable"
-)
-
-type PodCondition struct {
- Type PodConditionType
- Status ConditionStatus
- // +optional
- LastProbeTime metav1.Time
- // +optional
- LastTransitionTime metav1.Time
- // +optional
- Reason string
- // +optional
- Message string
-}
-
-// RestartPolicy describes how the container should be restarted.
-// Only one of the following restart policies may be specified.
-// If none of the following policies is specified, the default one
-// is RestartPolicyAlways.
-type RestartPolicy string
-
-const (
- RestartPolicyAlways RestartPolicy = "Always"
- RestartPolicyOnFailure RestartPolicy = "OnFailure"
- RestartPolicyNever RestartPolicy = "Never"
-)
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// PodList is a list of Pods.
-type PodList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
-
- Items []Pod
-}
-
-// DNSPolicy defines how a pod's DNS will be configured.
-type DNSPolicy string
-
-const (
- // DNSClusterFirstWithHostNet indicates that the pod should use cluster DNS
- // first, if it is available, then fall back on the default
- // (as determined by kubelet) DNS settings.
- DNSClusterFirstWithHostNet DNSPolicy = "ClusterFirstWithHostNet"
-
- // DNSClusterFirst indicates that the pod should use cluster DNS
- // first unless hostNetwork is true, if it is available, then
- // fall back on the default (as determined by kubelet) DNS settings.
- DNSClusterFirst DNSPolicy = "ClusterFirst"
-
- // DNSDefault indicates that the pod should use the default (as
- // determined by kubelet) DNS settings.
- DNSDefault DNSPolicy = "Default"
-
- // DNSNone indicates that the pod should use empty DNS settings. DNS
- // parameters such as nameservers and search paths should be defined via
- // DNSConfig.
- DNSNone DNSPolicy = "None"
-)
-
-// A node selector represents the union of the results of one or more label queries
-// over a set of nodes; that is, it represents the OR of the selectors represented
-// by the node selector terms.
-type NodeSelector struct {
- //Required. A list of node selector terms. The terms are ORed.
- NodeSelectorTerms []NodeSelectorTerm
-}
-
-// A null or empty node selector term matches no objects.
-type NodeSelectorTerm struct {
- //Required. A list of node selector requirements. The requirements are ANDed.
- MatchExpressions []NodeSelectorRequirement
-}
-
-// A node selector requirement is a selector that contains values, a key, and an operator
-// that relates the key and values.
-type NodeSelectorRequirement struct {
- // The label key that the selector applies to.
- Key string
- // Represents a key's relationship to a set of values.
- // Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
- Operator NodeSelectorOperator
- // An array of string values. If the operator is In or NotIn,
- // the values array must be non-empty. If the operator is Exists or DoesNotExist,
- // the values array must be empty. If the operator is Gt or Lt, the values
- // array must have a single element, which will be interpreted as an integer.
- // This array is replaced during a strategic merge patch.
- // +optional
- Values []string
-}
-
-// A node selector operator is the set of operators that can be used in
-// a node selector requirement.
-type NodeSelectorOperator string
-
-const (
- NodeSelectorOpIn NodeSelectorOperator = "In"
- NodeSelectorOpNotIn NodeSelectorOperator = "NotIn"
- NodeSelectorOpExists NodeSelectorOperator = "Exists"
- NodeSelectorOpDoesNotExist NodeSelectorOperator = "DoesNotExist"
- NodeSelectorOpGt NodeSelectorOperator = "Gt"
- NodeSelectorOpLt NodeSelectorOperator = "Lt"
-)
-
-// Affinity is a group of affinity scheduling rules.
-type Affinity struct {
- // Describes node affinity scheduling rules for the pod.
- // +optional
- NodeAffinity *NodeAffinity
- // Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
- // +optional
- PodAffinity *PodAffinity
- // Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
- // +optional
- PodAntiAffinity *PodAntiAffinity
-}
-
-// Pod affinity is a group of inter pod affinity scheduling rules.
-type PodAffinity struct {
- // NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
- // If the affinity requirements specified by this field are not met at
- // scheduling time, the pod will not be scheduled onto the node.
- // If the affinity requirements specified by this field cease to be met
- // at some point during pod execution (e.g. due to a pod label update), the
- // system will try to eventually evict the pod from its node.
- // When there are multiple elements, the lists of nodes corresponding to each
- // podAffinityTerm are intersected, i.e. all terms must be satisfied.
- // +optional
- // RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm
-
- // If the affinity requirements specified by this field are not met at
- // scheduling time, the pod will not be scheduled onto the node.
- // If the affinity requirements specified by this field cease to be met
- // at some point during pod execution (e.g. due to a pod label update), the
- // system may or may not try to eventually evict the pod from its node.
- // When there are multiple elements, the lists of nodes corresponding to each
- // podAffinityTerm are intersected, i.e. all terms must be satisfied.
- // +optional
- RequiredDuringSchedulingIgnoredDuringExecution []PodAffinityTerm
- // The scheduler will prefer to schedule pods to nodes that satisfy
- // the affinity expressions specified by this field, but it may choose
- // a node that violates one or more of the expressions. The node that is
- // most preferred is the one with the greatest sum of weights, i.e.
- // for each node that meets all of the scheduling requirements (resource
- // request, requiredDuringScheduling affinity expressions, etc.),
- // compute a sum by iterating through the elements of this field and adding
- // "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
- // node(s) with the highest sum are the most preferred.
- // +optional
- PreferredDuringSchedulingIgnoredDuringExecution []WeightedPodAffinityTerm
-}
-
-// Pod anti affinity is a group of inter pod anti affinity scheduling rules.
-type PodAntiAffinity struct {
- // NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
- // If the anti-affinity requirements specified by this field are not met at
- // scheduling time, the pod will not be scheduled onto the node.
- // If the anti-affinity requirements specified by this field cease to be met
- // at some point during pod execution (e.g. due to a pod label update), the
- // system will try to eventually evict the pod from its node.
- // When there are multiple elements, the lists of nodes corresponding to each
- // podAffinityTerm are intersected, i.e. all terms must be satisfied.
- // +optional
- // RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm
-
- // If the anti-affinity requirements specified by this field are not met at
- // scheduling time, the pod will not be scheduled onto the node.
- // If the anti-affinity requirements specified by this field cease to be met
- // at some point during pod execution (e.g. due to a pod label update), the
- // system may or may not try to eventually evict the pod from its node.
- // When there are multiple elements, the lists of nodes corresponding to each
- // podAffinityTerm are intersected, i.e. all terms must be satisfied.
- // +optional
- RequiredDuringSchedulingIgnoredDuringExecution []PodAffinityTerm
- // The scheduler will prefer to schedule pods to nodes that satisfy
- // the anti-affinity expressions specified by this field, but it may choose
- // a node that violates one or more of the expressions. The node that is
- // most preferred is the one with the greatest sum of weights, i.e.
- // for each node that meets all of the scheduling requirements (resource
- // request, requiredDuringScheduling anti-affinity expressions, etc.),
- // compute a sum by iterating through the elements of this field and adding
- // "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
- // node(s) with the highest sum are the most preferred.
- // +optional
- PreferredDuringSchedulingIgnoredDuringExecution []WeightedPodAffinityTerm
-}
-
-// The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
-type WeightedPodAffinityTerm struct {
- // weight associated with matching the corresponding podAffinityTerm,
- // in the range 1-100.
- Weight int32
- // Required. A pod affinity term, associated with the corresponding weight.
- PodAffinityTerm PodAffinityTerm
-}
-
-// Defines a set of pods (namely those matching the labelSelector
-// relative to the given namespace(s)) that this pod should be
-// co-located (affinity) or not co-located (anti-affinity) with,
-// where co-located is defined as running on a node whose value of
-// the label with key <topologyKey> matches that of any node on which
-// a pod of the set of pods is running.
-type PodAffinityTerm struct {
- // A label query over a set of resources, in this case pods.
- // +optional
- LabelSelector *metav1.LabelSelector
- // namespaces specifies which namespaces the labelSelector applies to (matches against);
- // null or empty list means "this pod's namespace"
- // +optional
- Namespaces []string
- // This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
- // the labelSelector in the specified namespaces, where co-located is defined as running on a node
- // whose value of the label with key topologyKey matches that of any node on which any of the
- // selected pods is running.
- // Empty topologyKey is not allowed.
- TopologyKey string
-}
-
-// Node affinity is a group of node affinity scheduling rules.
-type NodeAffinity struct {
- // NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
- // If the affinity requirements specified by this field are not met at
- // scheduling time, the pod will not be scheduled onto the node.
- // If the affinity requirements specified by this field cease to be met
- // at some point during pod execution (e.g. due to an update), the system
- // will try to eventually evict the pod from its node.
- // +optional
- // RequiredDuringSchedulingRequiredDuringExecution *NodeSelector
-
- // If the affinity requirements specified by this field are not met at
- // scheduling time, the pod will not be scheduled onto the node.
- // If the affinity requirements specified by this field cease to be met
- // at some point during pod execution (e.g. due to an update), the system
- // may or may not try to eventually evict the pod from its node.
- // +optional
- RequiredDuringSchedulingIgnoredDuringExecution *NodeSelector
- // The scheduler will prefer to schedule pods to nodes that satisfy
- // the affinity expressions specified by this field, but it may choose
- // a node that violates one or more of the expressions. The node that is
- // most preferred is the one with the greatest sum of weights, i.e.
- // for each node that meets all of the scheduling requirements (resource
- // request, requiredDuringScheduling affinity expressions, etc.),
- // compute a sum by iterating through the elements of this field and adding
- // "weight" to the sum if the node matches the corresponding matchExpressions; the
- // node(s) with the highest sum are the most preferred.
- // +optional
- PreferredDuringSchedulingIgnoredDuringExecution []PreferredSchedulingTerm
-}
-
-// An empty preferred scheduling term matches all objects with implicit weight 0
-// (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
-type PreferredSchedulingTerm struct {
- // Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
- Weight int32
- // A node selector term, associated with the corresponding weight.
- Preference NodeSelectorTerm
-}
-
-// The node this Taint is attached to has the "effect" on
-// any pod that does not tolerate the Taint.
-type Taint struct {
- // Required. The taint key to be applied to a node.
- Key string
- // Required. The taint value corresponding to the taint key.
- // +optional
- Value string
- // Required. The effect of the taint on pods
- // that do not tolerate the taint.
- // Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
- Effect TaintEffect
- // TimeAdded represents the time at which the taint was added.
- // It is only written for NoExecute taints.
- // +optional
- TimeAdded *metav1.Time
-}
-
-type TaintEffect string
-
-const (
- // Do not allow new pods to schedule onto the node unless they tolerate the taint,
- // but allow all pods submitted to Kubelet without going through the scheduler
- // to start, and allow all already-running pods to continue running.
- // Enforced by the scheduler.
- TaintEffectNoSchedule TaintEffect = "NoSchedule"
- // Like TaintEffectNoSchedule, but the scheduler tries not to schedule
- // new pods onto the node, rather than prohibiting new pods from scheduling
- // onto the node entirely. Enforced by the scheduler.
- TaintEffectPreferNoSchedule TaintEffect = "PreferNoSchedule"
- // NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
- // Like TaintEffectNoSchedule, but additionally do not allow pods submitted to
- // Kubelet without going through the scheduler to start.
- // Enforced by Kubelet and the scheduler.
- // TaintEffectNoScheduleNoAdmit TaintEffect = "NoScheduleNoAdmit"
-
- // Evict any already-running pods that do not tolerate the taint.
- // Currently enforced by NodeController.
- TaintEffectNoExecute TaintEffect = "NoExecute"
-)
-
-// The pod this Toleration is attached to tolerates any taint that matches
-// the triple <key,value,effect> using the matching operator <operator>.
-type Toleration struct {
- // Key is the taint key that the toleration applies to. Empty means match all taint keys.
- // If the key is empty, operator must be Exists; this combination means to match all values and all keys.
- // +optional
- Key string
- // Operator represents a key's relationship to the value.
- // Valid operators are Exists and Equal. Defaults to Equal.
- // Exists is equivalent to wildcard for value, so that a pod can
- // tolerate all taints of a particular category.
- // +optional
- Operator TolerationOperator
- // Value is the taint value the toleration matches to.
- // If the operator is Exists, the value should be empty, otherwise just a regular string.
- // +optional
- Value string
- // Effect indicates the taint effect to match. Empty means match all taint effects.
- // When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
- // +optional
- Effect TaintEffect
- // TolerationSeconds represents the period of time the toleration (which must be
- // of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
- // it is not set, which means tolerate the taint forever (do not evict). Zero and
- // negative values will be treated as 0 (evict immediately) by the system.
- // +optional
- TolerationSeconds *int64
-}
-
-// A toleration operator is the set of operators that can be used in a toleration.
-type TolerationOperator string
-
-const (
- TolerationOpExists TolerationOperator = "Exists"
- TolerationOpEqual TolerationOperator = "Equal"
-)
-
-// PodSpec is a description of a pod
-type PodSpec struct {
- Volumes []Volume
- // List of initialization containers belonging to the pod.
- InitContainers []Container
- // List of containers belonging to the pod.
- Containers []Container
- // +optional
- RestartPolicy RestartPolicy
- // Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.
- // Value must be non-negative integer. The value zero indicates delete immediately.
- // If this value is nil, the default grace period will be used instead.
- // The grace period is the duration in seconds after the processes running in the pod are sent
- // a termination signal and the time when the processes are forcibly halted with a kill signal.
- // Set this value longer than the expected cleanup time for your process.
- // +optional
- TerminationGracePeriodSeconds *int64
- // Optional duration in seconds relative to the StartTime that the pod may be active on a node
- // before the system actively tries to terminate the pod; value must be positive integer
- // +optional
- ActiveDeadlineSeconds *int64
- // Set DNS policy for the pod.
- // Defaults to "ClusterFirst".
- // Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
- // DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
- // To have DNS options set along with hostNetwork, you have to specify DNS policy
- // explicitly to 'ClusterFirstWithHostNet'.
- // +optional
- DNSPolicy DNSPolicy
- // NodeSelector is a selector which must be true for the pod to fit on a node
- // +optional
- NodeSelector map[string]string
-
- // ServiceAccountName is the name of the ServiceAccount to use to run this pod
- // The pod will be allowed to use secrets referenced by the ServiceAccount
- ServiceAccountName string
- // AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.
- // +optional
- AutomountServiceAccountToken *bool
-
- // NodeName is a request to schedule this pod onto a specific node. If it is non-empty,
- // the scheduler simply schedules this pod onto that node, assuming that it fits resource
- // requirements.
- // +optional
- NodeName string
- // SecurityContext holds pod-level security attributes and common container settings.
- // Optional: Defaults to empty. See type description for default values of each field.
- // +optional
- SecurityContext *PodSecurityContext
- // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
- // If specified, these secrets will be passed to individual puller implementations for them to use. For example,
- // in the case of docker, only DockerConfig type secrets are honored.
- // +optional
- ImagePullSecrets []LocalObjectReference
- // Specifies the hostname of the Pod.
- // If not specified, the pod's hostname will be set to a system-defined value.
- // +optional
- Hostname string
- // If specified, the fully qualified Pod hostname will be "<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>".
- // If not specified, the pod will not have a domainname at all.
- // +optional
- Subdomain string
- // If specified, the pod's scheduling constraints
- // +optional
- Affinity *Affinity
- // If specified, the pod will be dispatched by specified scheduler.
- // If not specified, the pod will be dispatched by default scheduler.
- // +optional
- SchedulerName string
- // If specified, the pod's tolerations.
- // +optional
- Tolerations []Toleration
- // HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
- // file if specified. This is only valid for non-hostNetwork pods.
- // +optional
- HostAliases []HostAlias
- // If specified, indicates the pod's priority. "system-node-critical" and
- // "system-cluster-critical" are two special keywords which indicate the
- // highest priorities with the former being the highest priority. Any other
- // name must be defined by creating a PriorityClass object with that name.
- // If not specified, the pod priority will be default or zero if there is no
- // default.
- // +optional
- PriorityClassName string
- // The priority value. Various system components use this field to find the
- // priority of the pod. When Priority Admission Controller is enabled, it
- // prevents users from setting this field. The admission controller populates
- // this field from PriorityClassName.
- // The higher the value, the higher the priority.
- // +optional
- Priority *int32
- // Specifies the DNS parameters of a pod.
- // Parameters specified here will be merged to the generated DNS
- // configuration based on DNSPolicy.
- // +optional
- DNSConfig *PodDNSConfig
-}
-
-// HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the
-// pod's hosts file.
-type HostAlias struct {
- IP string
- Hostnames []string
-}
-
-// Sysctl defines a kernel parameter to be set
-type Sysctl struct {
- // Name of a property to set
- Name string
- // Value of a property to set
- Value string
-}
-
-// PodSecurityContext holds pod-level security attributes and common container settings.
-// Some fields are also present in container.securityContext. Field values of
-// container.securityContext take precedence over field values of PodSecurityContext.
-type PodSecurityContext struct {
- // Use the host's network namespace. If this option is set, the ports that will be
- // used must be specified.
- // Optional: Default to false
- // +k8s:conversion-gen=false
- // +optional
- HostNetwork bool
- // Use the host's pid namespace.
- // Optional: Default to false.
- // +k8s:conversion-gen=false
- // +optional
- HostPID bool
- // Use the host's ipc namespace.
- // Optional: Default to false.
- // +k8s:conversion-gen=false
- // +optional
- HostIPC bool
- // Share a single process namespace between all of the containers in a pod.
- // When this is set containers will be able to view and signal processes from other containers
- // in the same pod, and the first process in each container will not be assigned PID 1.
- // HostPID and ShareProcessNamespace cannot both be set.
- // Optional: Default to false.
- // This field is alpha-level and is honored only by servers that enable the PodShareProcessNamespace feature.
- // +k8s:conversion-gen=false
- // +optional
- ShareProcessNamespace *bool
- // The SELinux context to be applied to all containers.
- // If unspecified, the container runtime will allocate a random SELinux context for each
- // container. May also be set in SecurityContext. If set in
- // both SecurityContext and PodSecurityContext, the value specified in SecurityContext
- // takes precedence for that container.
- // +optional
- SELinuxOptions *SELinuxOptions
- // The UID to run the entrypoint of the container process.
- // Defaults to user specified in image metadata if unspecified.
- // May also be set in SecurityContext. If set in both SecurityContext and
- // PodSecurityContext, the value specified in SecurityContext takes precedence
- // for that container.
- // +optional
- RunAsUser *int64
- // Indicates that the container must run as a non-root user.
- // If true, the Kubelet will validate the image at runtime to ensure that it
- // does not run as UID 0 (root) and fail to start the container if it does.
- // If unset or false, no such validation will be performed.
- // May also be set in SecurityContext. If set in both SecurityContext and
- // PodSecurityContext, the value specified in SecurityContext takes precedence.
- // +optional
- RunAsNonRoot *bool
- // A list of groups applied to the first process run in each container, in addition
- // to the container's primary GID. If unspecified, no groups will be added to
- // any container.
- // +optional
- SupplementalGroups []int64
- // 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:
- //
- // 1. 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----
- //
- // If unset, the Kubelet will not modify the ownership and permissions of any volume.
- // +optional
- FSGroup *int64
-}
-
-// PodQOSClass defines the supported qos classes of Pods.
-type PodQOSClass string
-
-const (
- // PodQOSGuaranteed is the Guaranteed qos class.
- PodQOSGuaranteed PodQOSClass = "Guaranteed"
- // PodQOSBurstable is the Burstable qos class.
- PodQOSBurstable PodQOSClass = "Burstable"
- // PodQOSBestEffort is the BestEffort qos class.
- PodQOSBestEffort PodQOSClass = "BestEffort"
-)
-
-// PodDNSConfig defines the DNS parameters of a pod in addition to
-// those generated from DNSPolicy.
-type PodDNSConfig struct {
- // A list of DNS name server IP addresses.
- // This will be appended to the base nameservers generated from DNSPolicy.
- // Duplicated nameservers will be removed.
- // +optional
- Nameservers []string
- // A list of DNS search domains for host-name lookup.
- // This will be appended to the base search paths generated from DNSPolicy.
- // Duplicated search paths will be removed.
- // +optional
- Searches []string
- // A list of DNS resolver options.
- // This will be merged with the base options generated from DNSPolicy.
- // Duplicated entries will be removed. Resolution options given in Options
- // will override those that appear in the base DNSPolicy.
- // +optional
- Options []PodDNSConfigOption
-}
-
-// PodDNSConfigOption defines DNS resolver options of a pod.
-type PodDNSConfigOption struct {
- // Required.
- Name string
- // +optional
- Value *string
-}
-
-// PodStatus represents information about the status of a pod. Status may trail the actual
-// state of a system.
-type PodStatus struct {
- // +optional
- Phase PodPhase
- // +optional
- Conditions []PodCondition
- // A human readable message indicating details about why the pod is in this state.
- // +optional
- Message string
- // A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'
- // +optional
- Reason string
- // nominatedNodeName is set when this pod preempts other pods on the node, but it cannot be
- // scheduled right away as preemption victims receive their graceful termination periods.
- // This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide
- // to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to
- // give the resources on this node to a higher priority pod that is created after preemption.
- // +optional
- NominatedNodeName string
-
- // +optional
- HostIP string
- // +optional
- PodIP string
-
- // Date and time at which the object was acknowledged by the Kubelet.
- // This is before the Kubelet pulled the container image(s) for the pod.
- // +optional
- StartTime *metav1.Time
- // +optional
- QOSClass PodQOSClass
-
- // The list has one entry per init container in the manifest. The most recent successful
- // init container will have ready = true, the most recently started container will have
- // startTime set.
- // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status
- InitContainerStatuses []ContainerStatus
- // The list has one entry per container in the manifest. Each entry is
- // currently the output of `docker inspect`. This output format is *not*
- // final and should not be relied upon.
- // TODO: Make real decisions about what our info should look like. Re-enable fuzz test
- // when we have done this.
- // +optional
- ContainerStatuses []ContainerStatus
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// PodStatusResult is a wrapper for PodStatus returned by kubelet that can be encode/decoded
-type PodStatusResult struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
- // Status represents the current information about a pod. This data may not be up
- // to date.
- // +optional
- Status PodStatus
-}
-
-// +genclient
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// Pod is a collection of containers, used as either input (create, update) or as output (list, get).
-type Pod struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- // Spec defines the behavior of a pod.
- // +optional
- Spec PodSpec
-
- // Status represents the current information about a pod. This data may not be up
- // to date.
- // +optional
- Status PodStatus
-}
-
-// PodTemplateSpec describes the data a pod should have when created from a template
-type PodTemplateSpec struct {
- // Metadata of the pods created from this template.
- // +optional
- metav1.ObjectMeta
-
- // Spec defines the behavior of a pod.
- // +optional
- Spec PodSpec
-}
-
-// +genclient
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// PodTemplate describes a template for creating copies of a predefined pod.
-type PodTemplate struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- // Template defines the pods that will be created from this pod template
- // +optional
- Template PodTemplateSpec
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// PodTemplateList is a list of PodTemplates.
-type PodTemplateList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
-
- Items []PodTemplate
-}
-
-// ReplicationControllerSpec is the specification of a replication controller.
-// As the internal representation of a replication controller, it may have either
-// a TemplateRef or a Template set.
-type ReplicationControllerSpec struct {
- // Replicas is the number of desired replicas.
- Replicas int32
-
- // Minimum number of seconds for which a newly created pod should be ready
- // without any of its container crashing, for it to be considered available.
- // Defaults to 0 (pod will be considered available as soon as it is ready)
- // +optional
- MinReadySeconds int32
-
- // Selector is a label query over pods that should match the Replicas count.
- Selector map[string]string
-
- // TemplateRef is a reference to an object that describes the pod that will be created if
- // insufficient replicas are detected. This reference is ignored if a Template is set.
- // Must be set before converting to a versioned API object
- // +optional
- //TemplateRef *ObjectReference
-
- // Template is the object that describes the pod that will be created if
- // insufficient replicas are detected. Internally, this takes precedence over a
- // TemplateRef.
- // +optional
- Template *PodTemplateSpec
-}
-
-// ReplicationControllerStatus represents the current status of a replication
-// controller.
-type ReplicationControllerStatus struct {
- // Replicas is the number of actual replicas.
- Replicas int32
-
- // The number of pods that have labels matching the labels of the pod template of the replication controller.
- // +optional
- FullyLabeledReplicas int32
-
- // The number of ready replicas for this replication controller.
- // +optional
- ReadyReplicas int32
-
- // The number of available replicas (ready for at least minReadySeconds) for this replication controller.
- // +optional
- AvailableReplicas int32
-
- // ObservedGeneration is the most recent generation observed by the controller.
- // +optional
- ObservedGeneration int64
-
- // Represents the latest available observations of a replication controller's current state.
- // +optional
- Conditions []ReplicationControllerCondition
-}
-
-type ReplicationControllerConditionType string
-
-// These are valid conditions of a replication controller.
-const (
- // ReplicationControllerReplicaFailure is added in a replication controller when one of its pods
- // fails to be created due to insufficient quota, limit ranges, pod security policy, node selectors,
- // etc. or deleted due to kubelet being down or finalizers are failing.
- ReplicationControllerReplicaFailure ReplicationControllerConditionType = "ReplicaFailure"
-)
-
-// ReplicationControllerCondition describes the state of a replication controller at a certain point.
-type ReplicationControllerCondition struct {
- // Type of replication controller condition.
- Type ReplicationControllerConditionType
- // Status of the condition, one of True, False, Unknown.
- Status ConditionStatus
- // The last time the condition transitioned from one status to another.
- // +optional
- LastTransitionTime metav1.Time
- // The reason for the condition's last transition.
- // +optional
- Reason string
- // A human readable message indicating details about the transition.
- // +optional
- Message string
-}
-
-// +genclient
-// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/kubernetes/pkg/apis/autoscaling.Scale
-// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/kubernetes/pkg/apis/autoscaling.Scale,result=k8s.io/kubernetes/pkg/apis/autoscaling.Scale
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// ReplicationController represents the configuration of a replication controller.
-type ReplicationController struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- // Spec defines the desired behavior of this replication controller.
- // +optional
- Spec ReplicationControllerSpec
-
- // Status is the current status of this replication controller. This data may be
- // out of date by some window of time.
- // +optional
- Status ReplicationControllerStatus
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// ReplicationControllerList is a collection of replication controllers.
-type ReplicationControllerList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
-
- Items []ReplicationController
-}
-
-const (
- // ClusterIPNone - do not assign a cluster IP
- // no proxying required and no environment variables should be created for pods
- ClusterIPNone = "None"
-)
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// ServiceList holds a list of services.
-type ServiceList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
-
- Items []Service
-}
-
-// Session Affinity Type string
-type ServiceAffinity string
-
-const (
- // ServiceAffinityClientIP is the Client IP based.
- ServiceAffinityClientIP ServiceAffinity = "ClientIP"
-
- // ServiceAffinityNone - no session affinity.
- ServiceAffinityNone ServiceAffinity = "None"
-)
-
-const (
- // DefaultClientIPServiceAffinitySeconds is the default timeout seconds
- // of Client IP based session affinity - 3 hours.
- DefaultClientIPServiceAffinitySeconds int32 = 10800
- // MaxClientIPServiceAffinitySeconds is the max timeout seconds
- // of Client IP based session affinity - 1 day.
- MaxClientIPServiceAffinitySeconds int32 = 86400
-)
-
-// SessionAffinityConfig represents the configurations of session affinity.
-type SessionAffinityConfig struct {
- // clientIP contains the configurations of Client IP based session affinity.
- // +optional
- ClientIP *ClientIPConfig
-}
-
-// ClientIPConfig represents the configurations of Client IP based session affinity.
-type ClientIPConfig struct {
- // timeoutSeconds specifies the seconds of ClientIP type session sticky time.
- // The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP".
- // Default value is 10800(for 3 hours).
- // +optional
- TimeoutSeconds *int32
-}
-
-// Service Type string describes ingress methods for a service
-type ServiceType string
-
-const (
- // ServiceTypeClusterIP means a service will only be accessible inside the
- // cluster, via the ClusterIP.
- ServiceTypeClusterIP ServiceType = "ClusterIP"
-
- // ServiceTypeNodePort means a service will be exposed on one port of
- // every node, in addition to 'ClusterIP' type.
- ServiceTypeNodePort ServiceType = "NodePort"
-
- // ServiceTypeLoadBalancer means a service will be exposed via an
- // external load balancer (if the cloud provider supports it), in addition
- // to 'NodePort' type.
- ServiceTypeLoadBalancer ServiceType = "LoadBalancer"
-
- // ServiceTypeExternalName means a service consists of only a reference to
- // an external name that kubedns or equivalent will return as a CNAME
- // record, with no exposing or proxying of any pods involved.
- ServiceTypeExternalName ServiceType = "ExternalName"
-)
-
-// Service External Traffic Policy Type string
-type ServiceExternalTrafficPolicyType string
-
-const (
- // ServiceExternalTrafficPolicyTypeLocal specifies node-local endpoints behavior.
- ServiceExternalTrafficPolicyTypeLocal ServiceExternalTrafficPolicyType = "Local"
- // ServiceExternalTrafficPolicyTypeCluster specifies cluster-wide (legacy) behavior.
- ServiceExternalTrafficPolicyTypeCluster ServiceExternalTrafficPolicyType = "Cluster"
-)
-
-// ServiceStatus represents the current status of a service
-type ServiceStatus struct {
- // LoadBalancer contains the current status of the load-balancer,
- // if one is present.
- // +optional
- LoadBalancer LoadBalancerStatus
-}
-
-// LoadBalancerStatus represents the status of a load-balancer
-type LoadBalancerStatus struct {
- // Ingress is a list containing ingress points for the load-balancer;
- // traffic intended for the service should be sent to these ingress points.
- // +optional
- Ingress []LoadBalancerIngress
-}
-
-// LoadBalancerIngress represents the status of a load-balancer ingress point:
-// traffic intended for the service should be sent to an ingress point.
-type LoadBalancerIngress struct {
- // IP is set for load-balancer ingress points that are IP based
- // (typically GCE or OpenStack load-balancers)
- // +optional
- IP string
-
- // Hostname is set for load-balancer ingress points that are DNS based
- // (typically AWS load-balancers)
- // +optional
- Hostname string
-}
-
-// ServiceSpec describes the attributes that a user creates on a service
-type ServiceSpec struct {
- // Type determines how the Service is exposed. Defaults to ClusterIP. Valid
- // options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
- // "ExternalName" maps to the specified externalName.
- // "ClusterIP" allocates a cluster-internal IP address for load-balancing to
- // endpoints. Endpoints are determined by the selector or if that is not
- // specified, by manual construction of an Endpoints object. If clusterIP is
- // "None", no virtual IP is allocated and the endpoints are published as a
- // set of endpoints rather than a stable IP.
- // "NodePort" builds on ClusterIP and allocates a port on every node which
- // routes to the clusterIP.
- // "LoadBalancer" builds on NodePort and creates an
- // external load-balancer (if supported in the current cloud) which routes
- // to the clusterIP.
- // More info: https://kubernetes.io/docs/concepts/services-networking/service/
- // +optional
- Type ServiceType
-
- // Required: The list of ports that are exposed by this service.
- Ports []ServicePort
-
- // Route service traffic to pods with label keys and values matching this
- // selector. If empty or not present, the service is assumed to have an
- // external process managing its endpoints, which Kubernetes will not
- // modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
- // Ignored if type is ExternalName.
- // More info: https://kubernetes.io/docs/concepts/services-networking/service/
- Selector map[string]string
-
- // ClusterIP is the IP address of the service and is usually assigned
- // randomly by the master. If an address is specified manually and is not in
- // use by others, it will be allocated to the service; otherwise, creation
- // of the service will fail. This field can not be changed through updates.
- // Valid values are "None", empty string (""), or a valid IP address. "None"
- // can be specified for headless services when proxying is not required.
- // Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if
- // type is ExternalName.
- // More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
- // +optional
- ClusterIP string
-
- // 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 string
-
- // ExternalIPs are used by external load balancers, or can be set by
- // users to handle external traffic that arrives at a node.
- // +optional
- ExternalIPs []string
-
- // Only applies to Service Type: LoadBalancer
- // LoadBalancer will get created with the IP specified in this field.
- // This feature depends on whether the underlying cloud-provider supports specifying
- // the loadBalancerIP when a load balancer is created.
- // This field will be ignored if the cloud-provider does not support the feature.
- // +optional
- LoadBalancerIP string
-
- // Optional: Supports "ClientIP" and "None". Used to maintain session affinity.
- // +optional
- SessionAffinity ServiceAffinity
-
- // sessionAffinityConfig contains the configurations of session affinity.
- // +optional
- SessionAffinityConfig *SessionAffinityConfig
-
- // Optional: If specified and supported by the platform, this will restrict traffic through the cloud-provider
- // load-balancer will be restricted to the specified client IPs. This field will be ignored if the
- // cloud-provider does not support the feature."
- // +optional
- LoadBalancerSourceRanges []string
-
- // 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.
- // +optional
- ExternalTrafficPolicy ServiceExternalTrafficPolicyType
-
- // 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.
- // +optional
- HealthCheckNodePort int32
-
- // 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.
- // This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints
- // when that annotation is deprecated and all clients have been converted to use this
- // field.
- // +optional
- PublishNotReadyAddresses bool
-}
-
-type ServicePort struct {
- // Optional if only one ServicePort is defined on this service: The
- // name of this port within the service. This must be a DNS_LABEL.
- // All ports within a ServiceSpec must have unique names. This maps to
- // the 'Name' field in EndpointPort objects.
- Name string
-
- // The IP protocol for this port. Supports "TCP" and "UDP".
- Protocol Protocol
-
- // The port that will be exposed on the service.
- Port int32
-
- // Optional: The target port on pods selected by this service. If this
- // is a string, it will be looked up as a named port in the target
- // Pod's container ports. If this is not specified, the value
- // of the 'port' field is used (an identity map).
- // This field is ignored for services with clusterIP=None, and should be
- // omitted or set equal to the 'port' field.
- TargetPort intstr.IntOrString
-
- // The port on each node on which this service is exposed.
- // Default is to auto-allocate a port if the ServiceType of this Service requires one.
- NodePort int32
-}
-
-// +genclient
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// Service is a named abstraction of software service (for example, mysql) consisting of local port
-// (for example 3306) that the proxy listens on, and the selector that determines which pods
-// will answer requests sent through the proxy.
-type Service struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- // Spec defines the behavior of a service.
- // +optional
- Spec ServiceSpec
-
- // Status represents the current status of a service.
- // +optional
- Status ServiceStatus
-}
-
-// +genclient
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// ServiceAccount binds together:
-// * a name, understood by users, and perhaps by peripheral systems, for an identity
-// * a principal that can be authenticated and authorized
-// * a set of secrets
-type ServiceAccount struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- // Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount
- Secrets []ObjectReference
-
- // ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
- // in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
- // can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
- // +optional
- ImagePullSecrets []LocalObjectReference
-
- // AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted.
- // Can be overridden at the pod level.
- // +optional
- AutomountServiceAccountToken *bool
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// ServiceAccountList is a list of ServiceAccount objects
-type ServiceAccountList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
-
- Items []ServiceAccount
-}
-
-// +genclient
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// Endpoints is a collection of endpoints that implement the actual service. Example:
-// Name: "mysvc",
-// Subsets: [
-// {
-// Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}],
-// Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}]
-// },
-// {
-// Addresses: [{"ip": "10.10.3.3"}],
-// Ports: [{"name": "a", "port": 93}, {"name": "b", "port": 76}]
-// },
-// ]
-type Endpoints struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- // The set of all endpoints is the union of all subsets.
- Subsets []EndpointSubset
-}
-
-// EndpointSubset is a group of addresses with a common set of ports. The
-// expanded set of endpoints is the Cartesian product of Addresses x Ports.
-// For example, given:
-// {
-// Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}],
-// Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}]
-// }
-// The resulting set of endpoints can be viewed as:
-// a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],
-// b: [ 10.10.1.1:309, 10.10.2.2:309 ]
-type EndpointSubset struct {
- Addresses []EndpointAddress
- NotReadyAddresses []EndpointAddress
- Ports []EndpointPort
-}
-
-// EndpointAddress is a tuple that describes single IP address.
-type EndpointAddress struct {
- // The IP of this endpoint.
- // IPv6 is also accepted but not fully supported on all platforms. Also, certain
- // kubernetes components, like kube-proxy, are not IPv6 ready.
- // TODO: This should allow hostname or IP, see #4447.
- IP string
- // Optional: Hostname of this endpoint
- // Meant to be used by DNS servers etc.
- // +optional
- Hostname string
- // Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.
- // +optional
- NodeName *string
- // Optional: The kubernetes object related to the entry point.
- TargetRef *ObjectReference
-}
-
-// EndpointPort is a tuple that describes a single port.
-type EndpointPort struct {
- // The name of this port (corresponds to ServicePort.Name). Optional
- // if only one port is defined. Must be a DNS_LABEL.
- Name string
-
- // The port number.
- Port int32
-
- // The IP protocol for this port.
- Protocol Protocol
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// EndpointsList is a list of endpoints.
-type EndpointsList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
-
- Items []Endpoints
-}
-
-// NodeSpec describes the attributes that a node is created with.
-type NodeSpec struct {
- // PodCIDR represents the pod IP range assigned to the node
- // Note: assigning IP ranges to nodes might need to be revisited when we support migratable IPs.
- // +optional
- PodCIDR string
-
- // External ID of the node assigned by some machine database (e.g. a cloud provider)
- // +optional
- ExternalID string
-
- // ID of the node assigned by the cloud provider
- // Note: format is "<ProviderName>://<ProviderSpecificNodeID>"
- // +optional
- ProviderID string
-
- // Unschedulable controls node schedulability of new pods. By default node is schedulable.
- // +optional
- Unschedulable bool
-
- // If specified, the node's taints.
- // +optional
- Taints []Taint
-
- // If specified, the source to get node configuration from
- // The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field
- // +optional
- ConfigSource *NodeConfigSource
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// NodeConfigSource specifies a source of node configuration. Exactly one subfield must be non-nil.
-type NodeConfigSource struct {
- metav1.TypeMeta
- ConfigMapRef *ObjectReference
-}
-
-// DaemonEndpoint contains information about a single Daemon endpoint.
-type DaemonEndpoint struct {
- /*
- The port tag was not properly in quotes in earlier releases, so it must be
- uppercase for backwards compatibility (since it was falling back to var name of
- 'Port').
- */
-
- // Port number of the given endpoint.
- Port int32
-}
-
-// NodeDaemonEndpoints lists ports opened by daemons running on the Node.
-type NodeDaemonEndpoints struct {
- // Endpoint on which Kubelet is listening.
- // +optional
- KubeletEndpoint DaemonEndpoint
-}
-
-// NodeSystemInfo is a set of ids/uuids to uniquely identify the node.
-type NodeSystemInfo struct {
- // MachineID reported by the node. For unique machine identification
- // in the cluster this field is preferred. Learn more from man(5)
- // machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html
- MachineID string
- // SystemUUID reported by the node. For unique machine identification
- // MachineID is preferred. This field is specific to Red Hat hosts
- // https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html
- SystemUUID string
- // Boot ID reported by the node.
- BootID string
- // Kernel Version reported by the node.
- KernelVersion string
- // OS Image reported by the node.
- OSImage string
- // ContainerRuntime Version reported by the node.
- ContainerRuntimeVersion string
- // Kubelet Version reported by the node.
- KubeletVersion string
- // KubeProxy Version reported by the node.
- KubeProxyVersion string
- // The Operating System reported by the node
- OperatingSystem string
- // The Architecture reported by the node
- Architecture string
-}
-
-// NodeStatus is information about the current status of a node.
-type NodeStatus struct {
- // Capacity represents the total resources of a node.
- // +optional
- Capacity ResourceList
- // Allocatable represents the resources of a node that are available for scheduling.
- // +optional
- Allocatable ResourceList
- // NodePhase is the current lifecycle phase of the node.
- // +optional
- Phase NodePhase
- // Conditions is an array of current node conditions.
- // +optional
- Conditions []NodeCondition
- // Queried from cloud provider, if available.
- // +optional
- Addresses []NodeAddress
- // Endpoints of daemons running on the Node.
- // +optional
- DaemonEndpoints NodeDaemonEndpoints
- // Set of ids/uuids to uniquely identify the node.
- // +optional
- NodeInfo NodeSystemInfo
- // List of container images on this node
- // +optional
- Images []ContainerImage
- // List of attachable volumes in use (mounted) by the node.
- // +optional
- VolumesInUse []UniqueVolumeName
- // List of volumes that are attached to the node.
- // +optional
- VolumesAttached []AttachedVolume
-}
-
-type UniqueVolumeName string
-
-// AttachedVolume describes a volume attached to a node
-type AttachedVolume struct {
- // Name of the attached volume
- Name UniqueVolumeName
-
- // DevicePath represents the device path where the volume should be available
- DevicePath string
-}
-
-// AvoidPods describes pods that should avoid this node. This is the value for a
-// Node annotation with key scheduler.alpha.kubernetes.io/preferAvoidPods and
-// will eventually become a field of NodeStatus.
-type AvoidPods struct {
- // Bounded-sized list of signatures of pods that should avoid this node, sorted
- // in timestamp order from oldest to newest. Size of the slice is unspecified.
- // +optional
- PreferAvoidPods []PreferAvoidPodsEntry
-}
-
-// Describes a class of pods that should avoid this node.
-type PreferAvoidPodsEntry struct {
- // The class of pods.
- PodSignature PodSignature
- // Time at which this entry was added to the list.
- // +optional
- EvictionTime metav1.Time
- // (brief) reason why this entry was added to the list.
- // +optional
- Reason string
- // Human readable message indicating why this entry was added to the list.
- // +optional
- Message string
-}
-
-// Describes the class of pods that should avoid this node.
-// Exactly one field should be set.
-type PodSignature struct {
- // Reference to controller whose pods should avoid this node.
- // +optional
- PodController *metav1.OwnerReference
-}
-
-// Describe a container image
-type ContainerImage struct {
- // Names by which this image is known.
- Names []string
- // The size of the image in bytes.
- // +optional
- SizeBytes int64
-}
-
-type NodePhase string
-
-// These are the valid phases of node.
-const (
- // NodePending means the node has been created/added by the system, but not configured.
- NodePending NodePhase = "Pending"
- // NodeRunning means the node has been configured and has Kubernetes components running.
- NodeRunning NodePhase = "Running"
- // NodeTerminated means the node has been removed from the cluster.
- NodeTerminated NodePhase = "Terminated"
-)
-
-type NodeConditionType string
-
-// These are valid conditions of node. Currently, we don't have enough information to decide
-// node condition. In the future, we will add more. The proposed set of conditions are:
-// NodeReady, NodeReachable
-const (
- // NodeReady means kubelet is healthy and ready to accept pods.
- NodeReady NodeConditionType = "Ready"
- // NodeOutOfDisk means the kubelet will not accept new pods due to insufficient free disk
- // space on the node.
- NodeOutOfDisk NodeConditionType = "OutOfDisk"
- // NodeMemoryPressure means the kubelet is under pressure due to insufficient available memory.
- NodeMemoryPressure NodeConditionType = "MemoryPressure"
- // NodeDiskPressure means the kubelet is under pressure due to insufficient available disk.
- NodeDiskPressure NodeConditionType = "DiskPressure"
- // NodeNetworkUnavailable means that network for the node is not correctly configured.
- NodeNetworkUnavailable NodeConditionType = "NetworkUnavailable"
- // NodeKubeletConfigOk indicates whether the kubelet is correctly configured
- NodeKubeletConfigOk NodeConditionType = "KubeletConfigOk"
-)
-
-type NodeCondition struct {
- Type NodeConditionType
- Status ConditionStatus
- // +optional
- LastHeartbeatTime metav1.Time
- // +optional
- LastTransitionTime metav1.Time
- // +optional
- Reason string
- // +optional
- Message string
-}
-
-type NodeAddressType string
-
-const (
- NodeHostName NodeAddressType = "Hostname"
- NodeExternalIP NodeAddressType = "ExternalIP"
- NodeInternalIP NodeAddressType = "InternalIP"
- NodeExternalDNS NodeAddressType = "ExternalDNS"
- NodeInternalDNS NodeAddressType = "InternalDNS"
-)
-
-type NodeAddress struct {
- Type NodeAddressType
- Address string
-}
-
-// NodeResources is an object for conveying resource information about a node.
-// see http://releases.k8s.io/HEAD/docs/design/resources.md for more details.
-type NodeResources struct {
- // Capacity represents the available resources of a node
- // +optional
- Capacity ResourceList
-}
-
-// ResourceName is the name identifying various resources in a ResourceList.
-type ResourceName string
-
-// Resource names must be not more than 63 characters, consisting of upper- or lower-case alphanumeric characters,
-// with the -, _, and . characters allowed anywhere, except the first or last character.
-// The default convention, matching that for annotations, is to use lower-case names, with dashes, rather than
-// camel case, separating compound words.
-// Fully-qualified resource typenames are constructed from a DNS-style subdomain, followed by a slash `/` and a name.
-const (
- // CPU, in cores. (500m = .5 cores)
- ResourceCPU ResourceName = "cpu"
- // Memory, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
- ResourceMemory ResourceName = "memory"
- // Volume size, in bytes (e,g. 5Gi = 5GiB = 5 * 1024 * 1024 * 1024)
- ResourceStorage ResourceName = "storage"
- // Local ephemeral storage, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
- // The resource name for ResourceEphemeralStorage is alpha and it can change across releases.
- ResourceEphemeralStorage ResourceName = "ephemeral-storage"
- // NVIDIA GPU, in devices. Alpha, might change: although fractional and allowing values >1, only one whole device per node is assigned.
- ResourceNvidiaGPU ResourceName = "alpha.kubernetes.io/nvidia-gpu"
-)
-
-const (
- // Default namespace prefix.
- ResourceDefaultNamespacePrefix = "kubernetes.io/"
- // Name prefix for huge page resources (alpha).
- ResourceHugePagesPrefix = "hugepages-"
-)
-
-// ResourceList is a set of (resource name, quantity) pairs.
-type ResourceList map[ResourceName]resource.Quantity
-
-// +genclient
-// +genclient:nonNamespaced
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// Node is a worker node in Kubernetes
-// The name of the node according to etcd is in ObjectMeta.Name.
-type Node struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- // Spec defines the behavior of a node.
- // +optional
- Spec NodeSpec
-
- // Status describes the current status of a Node
- // +optional
- Status NodeStatus
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// NodeList is a list of nodes.
-type NodeList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
-
- Items []Node
-}
-
-// NamespaceSpec describes the attributes on a Namespace
-type NamespaceSpec struct {
- // Finalizers is an opaque list of values that must be empty to permanently remove object from storage
- Finalizers []FinalizerName
-}
-
-// FinalizerName is the name identifying a finalizer during namespace lifecycle.
-type FinalizerName string
-
-// These are internal finalizer values to Kubernetes, must be qualified name unless defined here or
-// in metav1.
-const (
- FinalizerKubernetes FinalizerName = "kubernetes"
-)
-
-// NamespaceStatus is information about the current status of a Namespace.
-type NamespaceStatus struct {
- // Phase is the current lifecycle phase of the namespace.
- // +optional
- Phase NamespacePhase
-}
-
-type NamespacePhase string
-
-// These are the valid phases of a namespace.
-const (
- // NamespaceActive means the namespace is available for use in the system
- NamespaceActive NamespacePhase = "Active"
- // NamespaceTerminating means the namespace is undergoing graceful termination
- NamespaceTerminating NamespacePhase = "Terminating"
-)
-
-// +genclient
-// +genclient:nonNamespaced
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// A namespace provides a scope for Names.
-// Use of multiple namespaces is optional
-type Namespace struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- // Spec defines the behavior of the Namespace.
- // +optional
- Spec NamespaceSpec
-
- // Status describes the current status of a Namespace
- // +optional
- Status NamespaceStatus
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// NamespaceList is a list of Namespaces.
-type NamespaceList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
-
- Items []Namespace
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// Binding ties one object to another; for example, a pod is bound to a node by a scheduler.
-// Deprecated in 1.7, please use the bindings subresource of pods instead.
-type Binding struct {
- metav1.TypeMeta
- // ObjectMeta describes the object that is being bound.
- // +optional
- metav1.ObjectMeta
-
- // Target is the object to bind to.
- Target ObjectReference
-}
-
-// Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.
-type Preconditions struct {
- // Specifies the target UID.
- // +optional
- UID *types.UID
-}
-
-// DeletionPropagation decides whether and how garbage collection will be performed.
-type DeletionPropagation string
-
-const (
- // Orphans the dependents.
- DeletePropagationOrphan DeletionPropagation = "Orphan"
- // Deletes the object from the key-value store, the garbage collector will delete the dependents in the background.
- DeletePropagationBackground DeletionPropagation = "Background"
- // The object exists in the key-value store until the garbage collector deletes all the dependents whose ownerReference.blockOwnerDeletion=true from the key-value store.
- // API sever will put the "DeletingDependents" finalizer on the object, and sets its deletionTimestamp.
- // This policy is cascading, i.e., the dependents will be deleted with Foreground.
- DeletePropagationForeground DeletionPropagation = "Foreground"
-)
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// DeleteOptions may be provided when deleting an API object
-// DEPRECATED: This type has been moved to meta/v1 and will be removed soon.
-type DeleteOptions struct {
- metav1.TypeMeta
-
- // Optional duration in seconds before the object should be deleted. Value must be non-negative integer.
- // The value zero indicates delete immediately. If this value is nil, the default grace period for the
- // specified type will be used.
- // +optional
- GracePeriodSeconds *int64
-
- // Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be
- // returned.
- // +optional
- Preconditions *Preconditions
-
- // Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.
- // Should the dependent objects be orphaned. If true/false, the "orphan"
- // finalizer will be added to/removed from the object's finalizers list.
- // Either this field or PropagationPolicy may be set, but not both.
- // +optional
- OrphanDependents *bool
-
- // Whether and how garbage collection will be performed.
- // Either this field or OrphanDependents may be set, but not both.
- // The default policy is decided by the existing finalizer set in the
- // metadata.finalizers and the resource-specific default policy.
- // Acceptable values are: 'Orphan' - orphan the dependents; 'Background' -
- // allow the garbage collector to delete the dependents in the background;
- // 'Foreground' - a cascading policy that deletes all dependents in the
- // foreground.
- // +optional
- PropagationPolicy *DeletionPropagation
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// ListOptions is the query options to a standard REST list call, and has future support for
-// watch calls.
-// DEPRECATED: This type has been moved to meta/v1 and will be removed soon.
-type ListOptions struct {
- metav1.TypeMeta
-
- // A selector based on labels
- LabelSelector labels.Selector
- // A selector based on fields
- FieldSelector fields.Selector
-
- // If true, partially initialized resources are included in the response.
- IncludeUninitialized bool
-
- // If true, watch for changes to this list
- Watch bool
- // 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 string
- // Timeout for the list/watch call.
- TimeoutSeconds *int64
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// PodLogOptions is the query options for a Pod's logs REST call
-type PodLogOptions struct {
- metav1.TypeMeta
-
- // Container for which to return logs
- Container string
- // If true, follow the logs for the pod
- Follow bool
- // If true, return previous terminated container logs
- Previous bool
- // A relative time in seconds before the current time from which to show logs. If this value
- // precedes the time a pod was started, only logs since the pod start will be returned.
- // If this value is in the future, no logs will be returned.
- // Only one of sinceSeconds or sinceTime may be specified.
- SinceSeconds *int64
- // An RFC3339 timestamp from which to show logs. If this value
- // precedes the time a pod was started, only logs since the pod start will be returned.
- // If this value is in the future, no logs will be returned.
- // Only one of sinceSeconds or sinceTime may be specified.
- SinceTime *metav1.Time
- // If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line
- // of log output.
- Timestamps bool
- // If set, the number of lines from the end of the logs to show. If not specified,
- // logs are shown from the creation of the container or sinceSeconds or sinceTime
- TailLines *int64
- // If set, the number of bytes to read from the server before terminating the
- // log output. This may not display a complete final line of logging, and may return
- // slightly more or slightly less than the specified limit.
- LimitBytes *int64
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// PodAttachOptions is the query options to a Pod's remote attach call
-// TODO: merge w/ PodExecOptions below for stdin, stdout, etc
-type PodAttachOptions struct {
- metav1.TypeMeta
-
- // Stdin if true indicates that stdin is to be redirected for the attach call
- // +optional
- Stdin bool
-
- // Stdout if true indicates that stdout is to be redirected for the attach call
- // +optional
- Stdout bool
-
- // Stderr if true indicates that stderr is to be redirected for the attach call
- // +optional
- Stderr bool
-
- // TTY if true indicates that a tty will be allocated for the attach call
- // +optional
- TTY bool
-
- // Container to attach to.
- // +optional
- Container string
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// PodExecOptions is the query options to a Pod's remote exec call
-type PodExecOptions struct {
- metav1.TypeMeta
-
- // Stdin if true indicates that stdin is to be redirected for the exec call
- Stdin bool
-
- // Stdout if true indicates that stdout is to be redirected for the exec call
- Stdout bool
-
- // Stderr if true indicates that stderr is to be redirected for the exec call
- Stderr bool
-
- // TTY if true indicates that a tty will be allocated for the exec call
- TTY bool
-
- // Container in which to execute the command.
- Container string
-
- // Command is the remote command to execute; argv array; not executed within a shell.
- Command []string
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// PodPortForwardOptions is the query options to a Pod's port forward call
-type PodPortForwardOptions struct {
- metav1.TypeMeta
-
- // The list of ports to forward
- // +optional
- Ports []int32
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// PodProxyOptions is the query options to a Pod's proxy call
-type PodProxyOptions struct {
- metav1.TypeMeta
-
- // Path is the URL path to use for the current proxy request
- Path string
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// NodeProxyOptions is the query options to a Node's proxy call
-type NodeProxyOptions struct {
- metav1.TypeMeta
-
- // Path is the URL path to use for the current proxy request
- Path string
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// ServiceProxyOptions is the query options to a Service's proxy call.
-type ServiceProxyOptions struct {
- metav1.TypeMeta
-
- // Path is the part of URLs that include service endpoints, suffixes,
- // and parameters to use for the current proxy request to service.
- // For example, the whole request URL is
- // http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
- // Path is _search?q=user:kimchy.
- Path string
-}
-
-// ObjectReference contains enough information to let you inspect or modify the referred object.
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-type ObjectReference struct {
- // +optional
- Kind string
- // +optional
- Namespace string
- // +optional
- Name string
- // +optional
- UID types.UID
- // +optional
- APIVersion string
- // +optional
- ResourceVersion string
-
- // Optional. If referring to a piece of an object instead of an entire object, this string
- // should contain information to identify the sub-object. For example, if the object
- // reference is to a container within a pod, this would take on a value like:
- // "spec.containers{name}" (where "name" refers to the name of the container that triggered
- // the event) or if no container name is specified "spec.containers[2]" (container with
- // index 2 in this pod). This syntax is chosen only to have some well-defined way of
- // referencing a part of an object.
- // TODO: this design is not final and this field is subject to change in the future.
- // +optional
- FieldPath string
-}
-
-// LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
-type LocalObjectReference struct {
- //TODO: Add other useful fields. apiVersion, kind, uid?
- Name string
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-type SerializedReference struct {
- metav1.TypeMeta
- // +optional
- Reference ObjectReference
-}
-
-type EventSource struct {
- // Component from which the event is generated.
- // +optional
- Component string
- // Node name on which the event is generated.
- // +optional
- Host string
-}
-
-// Valid values for event types (new types could be added in future)
-const (
- // Information only and will not cause any problems
- EventTypeNormal string = "Normal"
- // These events are to warn that something might go wrong
- EventTypeWarning string = "Warning"
-)
-
-// +genclient
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// Event is a report of an event somewhere in the cluster.
-// TODO: Decide whether to store these separately or with the object they apply to.
-type Event struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- // Required. The object that this event is about. Mapped to events.Event.regarding
- // +optional
- InvolvedObject ObjectReference
-
- // Optional; this should be a short, machine understandable string that gives the reason
- // for this event being generated. For example, if the event is reporting that a container
- // can't start, the Reason might be "ImageNotFound".
- // TODO: provide exact specification for format.
- // +optional
- Reason string
-
- // Optional. A human-readable description of the status of this operation.
- // TODO: decide on maximum length. Mapped to events.Event.note
- // +optional
- Message string
-
- // Optional. The component reporting this event. Should be a short machine understandable string.
- // +optional
- Source EventSource
-
- // The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
- // +optional
- FirstTimestamp metav1.Time
-
- // The time at which the most recent occurrence of this event was recorded.
- // +optional
- LastTimestamp metav1.Time
-
- // The number of times this event has occurred.
- // +optional
- Count int32
-
- // Type of this event (Normal, Warning), new types could be added in the future.
- // +optional
- Type string
-
- // Time when this Event was first observed.
- // +optional
- EventTime metav1.MicroTime
-
- // Data about the Event series this event represents or nil if it's a singleton Event.
- // +optional
- Series *EventSeries
-
- // What action was taken/failed regarding to the Regarding object.
- // +optional
- Action string
-
- // Optional secondary object for more complex actions.
- // +optional
- Related *ObjectReference
-
- // Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.
- // +optional
- ReportingController string
-
- // ID of the controller instance, e.g. `kubelet-xyzf`.
- // +optional
- ReportingInstance string
-}
-
-type EventSeries struct {
- // Number of occurrences in this series up to the last heartbeat time
- Count int32
- // Time of the last occurrence observed
- LastObservedTime metav1.MicroTime
- // State of this Series: Ongoing or Finished
- State EventSeriesState
-}
-
-type EventSeriesState string
-
-const (
- EventSeriesStateOngoing EventSeriesState = "Ongoing"
- EventSeriesStateFinished EventSeriesState = "Finished"
- EventSeriesStateUnknown EventSeriesState = "Unknown"
-)
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// EventList is a list of events.
-type EventList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
-
- Items []Event
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// List holds a list of objects, which may not be known by the server.
-type List metainternalversion.List
-
-// A type of object that is limited
-type LimitType string
-
-const (
- // Limit that applies to all pods in a namespace
- LimitTypePod LimitType = "Pod"
- // Limit that applies to all containers in a namespace
- LimitTypeContainer LimitType = "Container"
- // Limit that applies to all persistent volume claims in a namespace
- LimitTypePersistentVolumeClaim LimitType = "PersistentVolumeClaim"
-)
-
-// LimitRangeItem defines a min/max usage limit for any resource that matches on kind
-type LimitRangeItem struct {
- // Type of resource that this limit applies to
- // +optional
- Type LimitType
- // Max usage constraints on this kind by resource name
- // +optional
- Max ResourceList
- // Min usage constraints on this kind by resource name
- // +optional
- Min ResourceList
- // Default resource requirement limit value by resource name.
- // +optional
- Default ResourceList
- // DefaultRequest resource requirement request value by resource name.
- // +optional
- DefaultRequest ResourceList
- // MaxLimitRequestRatio represents the max burst value for the named resource
- // +optional
- MaxLimitRequestRatio ResourceList
-}
-
-// LimitRangeSpec defines a min/max usage limit for resources that match on kind
-type LimitRangeSpec struct {
- // Limits is the list of LimitRangeItem objects that are enforced
- Limits []LimitRangeItem
-}
-
-// +genclient
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// LimitRange sets resource usage limits for each kind of resource in a Namespace
-type LimitRange struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- // Spec defines the limits enforced
- // +optional
- Spec LimitRangeSpec
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// LimitRangeList is a list of LimitRange items.
-type LimitRangeList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
-
- // Items is a list of LimitRange objects
- Items []LimitRange
-}
-
-// The following identify resource constants for Kubernetes object types
-const (
- // Pods, number
- ResourcePods ResourceName = "pods"
- // Services, number
- ResourceServices ResourceName = "services"
- // ReplicationControllers, number
- ResourceReplicationControllers ResourceName = "replicationcontrollers"
- // ResourceQuotas, number
- ResourceQuotas ResourceName = "resourcequotas"
- // ResourceSecrets, number
- ResourceSecrets ResourceName = "secrets"
- // ResourceConfigMaps, number
- ResourceConfigMaps ResourceName = "configmaps"
- // ResourcePersistentVolumeClaims, number
- ResourcePersistentVolumeClaims ResourceName = "persistentvolumeclaims"
- // ResourceServicesNodePorts, number
- ResourceServicesNodePorts ResourceName = "services.nodeports"
- // ResourceServicesLoadBalancers, number
- ResourceServicesLoadBalancers ResourceName = "services.loadbalancers"
- // CPU request, in cores. (500m = .5 cores)
- ResourceRequestsCPU ResourceName = "requests.cpu"
- // Memory request, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
- ResourceRequestsMemory ResourceName = "requests.memory"
- // Storage request, in bytes
- ResourceRequestsStorage ResourceName = "requests.storage"
- // Local ephemeral storage request, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
- ResourceRequestsEphemeralStorage ResourceName = "requests.ephemeral-storage"
- // CPU limit, in cores. (500m = .5 cores)
- ResourceLimitsCPU ResourceName = "limits.cpu"
- // Memory limit, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
- ResourceLimitsMemory ResourceName = "limits.memory"
- // Local ephemeral storage limit, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
- ResourceLimitsEphemeralStorage ResourceName = "limits.ephemeral-storage"
-)
-
-// The following identify resource prefix for Kubernetes object types
-const (
- // HugePages request, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
- // As burst is not supported for HugePages, we would only quota its request, and ignore the limit.
- ResourceRequestsHugePagesPrefix = "requests.hugepages-"
- // Default resource requests prefix
- DefaultResourceRequestsPrefix = "requests."
-)
-
-// A ResourceQuotaScope defines a filter that must match each object tracked by a quota
-type ResourceQuotaScope string
-
-const (
- // Match all pod objects where spec.activeDeadlineSeconds
- ResourceQuotaScopeTerminating ResourceQuotaScope = "Terminating"
- // Match all pod objects where !spec.activeDeadlineSeconds
- ResourceQuotaScopeNotTerminating ResourceQuotaScope = "NotTerminating"
- // Match all pod objects that have best effort quality of service
- ResourceQuotaScopeBestEffort ResourceQuotaScope = "BestEffort"
- // Match all pod objects that do not have best effort quality of service
- ResourceQuotaScopeNotBestEffort ResourceQuotaScope = "NotBestEffort"
-)
-
-// ResourceQuotaSpec defines the desired hard limits to enforce for Quota
-type ResourceQuotaSpec struct {
- // Hard is the set of desired hard limits for each named resource
- // +optional
- Hard ResourceList
- // A collection of filters that must match each object tracked by a quota.
- // If not specified, the quota matches all objects.
- // +optional
- Scopes []ResourceQuotaScope
-}
-
-// ResourceQuotaStatus defines the enforced hard limits and observed use
-type ResourceQuotaStatus struct {
- // Hard is the set of enforced hard limits for each named resource
- // +optional
- Hard ResourceList
- // Used is the current observed total usage of the resource in the namespace
- // +optional
- Used ResourceList
-}
-
-// +genclient
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// ResourceQuota sets aggregate quota restrictions enforced per namespace
-type ResourceQuota struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- // Spec defines the desired quota
- // +optional
- Spec ResourceQuotaSpec
-
- // Status defines the actual enforced quota and its current usage
- // +optional
- Status ResourceQuotaStatus
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// ResourceQuotaList is a list of ResourceQuota items
-type ResourceQuotaList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
-
- // Items is a list of ResourceQuota objects
- Items []ResourceQuota
-}
-
-// +genclient
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// Secret holds secret data of a certain type. The total bytes of the values in
-// the Data field must be less than MaxSecretSize bytes.
-type Secret struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- // Data contains the secret data. Each key must consist of alphanumeric
- // characters, '-', '_' or '.'. The serialized form of the secret data is a
- // base64 encoded string, representing the arbitrary (possibly non-string)
- // data value here.
- // +optional
- Data map[string][]byte
-
- // Used to facilitate programmatic handling of secret data.
- // +optional
- Type SecretType
-}
-
-const MaxSecretSize = 1 * 1024 * 1024
-
-type SecretType string
-
-const (
- // SecretTypeOpaque is the default; arbitrary user-defined data
- SecretTypeOpaque SecretType = "Opaque"
-
- // SecretTypeServiceAccountToken contains a token that identifies a service account to the API
- //
- // Required fields:
- // - Secret.Annotations["kubernetes.io/service-account.name"] - the name of the ServiceAccount the token identifies
- // - Secret.Annotations["kubernetes.io/service-account.uid"] - the UID of the ServiceAccount the token identifies
- // - Secret.Data["token"] - a token that identifies the service account to the API
- SecretTypeServiceAccountToken SecretType = "kubernetes.io/service-account-token"
-
- // ServiceAccountNameKey is the key of the required annotation for SecretTypeServiceAccountToken secrets
- ServiceAccountNameKey = "kubernetes.io/service-account.name"
- // ServiceAccountUIDKey is the key of the required annotation for SecretTypeServiceAccountToken secrets
- ServiceAccountUIDKey = "kubernetes.io/service-account.uid"
- // ServiceAccountTokenKey is the key of the required data for SecretTypeServiceAccountToken secrets
- ServiceAccountTokenKey = "token"
- // ServiceAccountKubeconfigKey is the key of the optional kubeconfig data for SecretTypeServiceAccountToken secrets
- ServiceAccountKubeconfigKey = "kubernetes.kubeconfig"
- // ServiceAccountRootCAKey is the key of the optional root certificate authority for SecretTypeServiceAccountToken secrets
- ServiceAccountRootCAKey = "ca.crt"
- // ServiceAccountNamespaceKey is the key of the optional namespace to use as the default for namespaced API calls
- ServiceAccountNamespaceKey = "namespace"
-
- // SecretTypeDockercfg contains a dockercfg file that follows the same format rules as ~/.dockercfg
- //
- // Required fields:
- // - Secret.Data[".dockercfg"] - a serialized ~/.dockercfg file
- SecretTypeDockercfg SecretType = "kubernetes.io/dockercfg"
-
- // DockerConfigKey is the key of the required data for SecretTypeDockercfg secrets
- DockerConfigKey = ".dockercfg"
-
- // SecretTypeDockerConfigJson contains a dockercfg file that follows the same format rules as ~/.docker/config.json
- //
- // Required fields:
- // - Secret.Data[".dockerconfigjson"] - a serialized ~/.docker/config.json file
- SecretTypeDockerConfigJson SecretType = "kubernetes.io/dockerconfigjson"
-
- // DockerConfigJsonKey is the key of the required data for SecretTypeDockerConfigJson secrets
- DockerConfigJsonKey = ".dockerconfigjson"
-
- // SecretTypeBasicAuth contains data needed for basic authentication.
- //
- // Required at least one of fields:
- // - Secret.Data["username"] - username used for authentication
- // - Secret.Data["password"] - password or token needed for authentication
- SecretTypeBasicAuth SecretType = "kubernetes.io/basic-auth"
-
- // BasicAuthUsernameKey is the key of the username for SecretTypeBasicAuth secrets
- BasicAuthUsernameKey = "username"
- // BasicAuthPasswordKey is the key of the password or token for SecretTypeBasicAuth secrets
- BasicAuthPasswordKey = "password"
-
- // SecretTypeSSHAuth contains data needed for SSH authentication.
- //
- // Required field:
- // - Secret.Data["ssh-privatekey"] - private SSH key needed for authentication
- SecretTypeSSHAuth SecretType = "kubernetes.io/ssh-auth"
-
- // SSHAuthPrivateKey is the key of the required SSH private key for SecretTypeSSHAuth secrets
- SSHAuthPrivateKey = "ssh-privatekey"
-
- // SecretTypeTLS contains information about a TLS client or server secret. It
- // is primarily used with TLS termination of the Ingress resource, but may be
- // used in other types.
- //
- // Required fields:
- // - Secret.Data["tls.key"] - TLS private key.
- // Secret.Data["tls.crt"] - TLS certificate.
- // TODO: Consider supporting different formats, specifying CA/destinationCA.
- SecretTypeTLS SecretType = "kubernetes.io/tls"
-
- // TLSCertKey is the key for tls certificates in a TLS secret.
- TLSCertKey = "tls.crt"
- // TLSPrivateKeyKey is the key for the private key field in a TLS secret.
- TLSPrivateKeyKey = "tls.key"
- // SecretTypeBootstrapToken is used during the automated bootstrap process (first
- // implemented by kubeadm). It stores tokens that are used to sign well known
- // ConfigMaps. They are used for authn.
- SecretTypeBootstrapToken SecretType = "bootstrap.kubernetes.io/token"
-)
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-type SecretList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
-
- Items []Secret
-}
-
-// +genclient
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// ConfigMap holds configuration data for components or applications to consume.
-type ConfigMap struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- // Data contains the configuration data.
- // Each key must consist of alphanumeric characters, '-', '_' or '.'.
- // Values with non-UTF-8 byte sequences must use the BinaryData field.
- // The keys stored in Data must not overlap with the keys in
- // the BinaryData field, this is enforced during validation process.
- // +optional
- Data map[string]string
-
- // BinaryData contains the binary data.
- // Each key must consist of alphanumeric characters, '-', '_' or '.'.
- // BinaryData can contain byte sequences that are not in the UTF-8 range.
- // The keys stored in BinaryData must not overlap with the ones in
- // the Data field, this is enforced during validation process.
- // Using this field will require 1.10+ apiserver and
- // kubelet.
- // +optional
- BinaryData map[string][]byte
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// ConfigMapList is a resource containing a list of ConfigMap objects.
-type ConfigMapList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
-
- // Items is the list of ConfigMaps.
- Items []ConfigMap
-}
-
-// These constants are for remote command execution and port forwarding and are
-// used by both the client side and server side components.
-//
-// This is probably not the ideal place for them, but it didn't seem worth it
-// to create pkg/exec and pkg/portforward just to contain a single file with
-// constants in it. Suggestions for more appropriate alternatives are
-// definitely welcome!
-const (
- // Enable stdin for remote command execution
- ExecStdinParam = "input"
- // Enable stdout for remote command execution
- ExecStdoutParam = "output"
- // Enable stderr for remote command execution
- ExecStderrParam = "error"
- // Enable TTY for remote command execution
- ExecTTYParam = "tty"
- // Command to run for remote command execution
- ExecCommandParam = "command"
-
- // Name of header that specifies stream type
- StreamType = "streamType"
- // Value for streamType header for stdin stream
- StreamTypeStdin = "stdin"
- // Value for streamType header for stdout stream
- StreamTypeStdout = "stdout"
- // Value for streamType header for stderr stream
- StreamTypeStderr = "stderr"
- // Value for streamType header for data stream
- StreamTypeData = "data"
- // Value for streamType header for error stream
- StreamTypeError = "error"
- // Value for streamType header for terminal resize stream
- StreamTypeResize = "resize"
-
- // Name of header that specifies the port being forwarded
- PortHeader = "port"
- // Name of header that specifies a request ID used to associate the error
- // and data streams for a single forwarded connection
- PortForwardRequestIDHeader = "requestID"
-)
-
-// Type and constants for component health validation.
-type ComponentConditionType string
-
-// These are the valid conditions for the component.
-const (
- ComponentHealthy ComponentConditionType = "Healthy"
-)
-
-type ComponentCondition struct {
- Type ComponentConditionType
- Status ConditionStatus
- // +optional
- Message string
- // +optional
- Error string
-}
-
-// +genclient
-// +genclient:nonNamespaced
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// ComponentStatus (and ComponentStatusList) holds the cluster validation info.
-type ComponentStatus struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- // +optional
- Conditions []ComponentCondition
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-type ComponentStatusList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
-
- Items []ComponentStatus
-}
-
-// SecurityContext holds security configuration that will be applied to a container.
-// Some fields are present in both SecurityContext and PodSecurityContext. When both
-// are set, the values in SecurityContext take precedence.
-type SecurityContext struct {
- // The capabilities to add/drop when running containers.
- // Defaults to the default set of capabilities granted by the container runtime.
- // +optional
- Capabilities *Capabilities
- // Run container in privileged mode.
- // Processes in privileged containers are essentially equivalent to root on the host.
- // Defaults to false.
- // +optional
- Privileged *bool
- // The SELinux context to be applied to the container.
- // If unspecified, the container runtime will allocate a random SELinux context for each
- // container. May also be set in PodSecurityContext. If set in both SecurityContext and
- // PodSecurityContext, the value specified in SecurityContext takes precedence.
- // +optional
- SELinuxOptions *SELinuxOptions
- // The UID to run the entrypoint of the container process.
- // Defaults to user specified in image metadata if unspecified.
- // May also be set in PodSecurityContext. If set in both SecurityContext and
- // PodSecurityContext, the value specified in SecurityContext takes precedence.
- // +optional
- RunAsUser *int64
- // Indicates that the container must run as a non-root user.
- // If true, the Kubelet will validate the image at runtime to ensure that it
- // does not run as UID 0 (root) and fail to start the container if it does.
- // If unset or false, no such validation will be performed.
- // May also be set in PodSecurityContext. If set in both SecurityContext and
- // PodSecurityContext, the value specified in SecurityContext takes precedence.
- // +optional
- RunAsNonRoot *bool
- // The read-only root filesystem allows you to restrict the locations that an application can write
- // files to, ensuring the persistent data can only be written to mounts.
- // +optional
- ReadOnlyRootFilesystem *bool
- // 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.
- // +optional
- AllowPrivilegeEscalation *bool
-}
-
-// SELinuxOptions are the labels to be applied to the container.
-type SELinuxOptions struct {
- // SELinux user label
- // +optional
- User string
- // SELinux role label
- // +optional
- Role string
- // SELinux type label
- // +optional
- Type string
- // SELinux level label.
- // +optional
- Level string
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// RangeAllocation is an opaque API object (not exposed to end users) that can be persisted to record
-// the global allocation state of the cluster. The schema of Range and Data generic, in that Range
-// should be a string representation of the inputs to a range (for instance, for IP allocation it
-// might be a CIDR) and Data is an opaque blob understood by an allocator which is typically a
-// binary range. Consumers should use annotations to record additional information (schema version,
-// data encoding hints). A range allocation should *ALWAYS* be recreatable at any time by observation
-// of the cluster, thus the object is less strongly typed than most.
-type RangeAllocation struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
- // A string representing a unique label for a range of resources, such as a CIDR "10.0.0.0/8" or
- // port range "10000-30000". Range is not strongly schema'd here. The Range is expected to define
- // a start and end unless there is an implicit end.
- Range string
- // A byte array representing the serialized state of a range allocation. Additional clarifiers on
- // the type or format of data should be represented with annotations. For IP allocations, this is
- // represented as a bit array starting at the base IP of the CIDR in Range, with each bit representing
- // a single allocated address (the fifth bit on CIDR 10.0.0.0/8 is 10.0.0.4).
- Data []byte
-}
-
-const (
- // "default-scheduler" is the name of default scheduler.
- DefaultSchedulerName = "default-scheduler"
-
- // RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule
- // corresponding to every RequiredDuringScheduling affinity rule.
- // When the --hard-pod-affinity-weight scheduler flag is not specified,
- // DefaultHardPodAffinityWeight defines the weight of the implicit PreferredDuringScheduling affinity rule.
- DefaultHardPodAffinitySymmetricWeight int32 = 1
-)
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/v1/conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/conversion.go
deleted file mode 100644
index d888ebca4..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/v1/conversion.go
+++ /dev/null
@@ -1,619 +0,0 @@
-/*
-Copyright 2015 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
-
-import (
- "fmt"
- "reflect"
-
- "k8s.io/api/core/v1"
-
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/apimachinery/pkg/conversion"
- "k8s.io/apimachinery/pkg/runtime"
- "k8s.io/apimachinery/pkg/util/validation/field"
- "k8s.io/kubernetes/pkg/apis/core"
- "k8s.io/kubernetes/pkg/apis/extensions"
-)
-
-// This is a "fast-path" that avoids reflection for common types. It focuses on the objects that are
-// converted the most in the cluster.
-// TODO: generate one of these for every external API group - this is to prove the impact
-func addFastPathConversionFuncs(scheme *runtime.Scheme) error {
- scheme.AddGenericConversionFunc(func(objA, objB interface{}, s conversion.Scope) (bool, error) {
- switch a := objA.(type) {
- case *v1.Pod:
- switch b := objB.(type) {
- case *core.Pod:
- return true, Convert_v1_Pod_To_core_Pod(a, b, s)
- }
- case *core.Pod:
- switch b := objB.(type) {
- case *v1.Pod:
- return true, Convert_core_Pod_To_v1_Pod(a, b, s)
- }
-
- case *v1.Event:
- switch b := objB.(type) {
- case *core.Event:
- return true, Convert_v1_Event_To_core_Event(a, b, s)
- }
- case *core.Event:
- switch b := objB.(type) {
- case *v1.Event:
- return true, Convert_core_Event_To_v1_Event(a, b, s)
- }
-
- case *v1.ReplicationController:
- switch b := objB.(type) {
- case *core.ReplicationController:
- return true, Convert_v1_ReplicationController_To_core_ReplicationController(a, b, s)
- }
- case *core.ReplicationController:
- switch b := objB.(type) {
- case *v1.ReplicationController:
- return true, Convert_core_ReplicationController_To_v1_ReplicationController(a, b, s)
- }
-
- case *v1.Node:
- switch b := objB.(type) {
- case *core.Node:
- return true, Convert_v1_Node_To_core_Node(a, b, s)
- }
- case *core.Node:
- switch b := objB.(type) {
- case *v1.Node:
- return true, Convert_core_Node_To_v1_Node(a, b, s)
- }
-
- case *v1.Namespace:
- switch b := objB.(type) {
- case *core.Namespace:
- return true, Convert_v1_Namespace_To_core_Namespace(a, b, s)
- }
- case *core.Namespace:
- switch b := objB.(type) {
- case *v1.Namespace:
- return true, Convert_core_Namespace_To_v1_Namespace(a, b, s)
- }
-
- case *v1.Service:
- switch b := objB.(type) {
- case *core.Service:
- return true, Convert_v1_Service_To_core_Service(a, b, s)
- }
- case *core.Service:
- switch b := objB.(type) {
- case *v1.Service:
- return true, Convert_core_Service_To_v1_Service(a, b, s)
- }
-
- case *v1.Endpoints:
- switch b := objB.(type) {
- case *core.Endpoints:
- return true, Convert_v1_Endpoints_To_core_Endpoints(a, b, s)
- }
- case *core.Endpoints:
- switch b := objB.(type) {
- case *v1.Endpoints:
- return true, Convert_core_Endpoints_To_v1_Endpoints(a, b, s)
- }
-
- case *metav1.WatchEvent:
- switch b := objB.(type) {
- case *metav1.InternalEvent:
- return true, metav1.Convert_versioned_Event_to_versioned_InternalEvent(a, b, s)
- }
- case *metav1.InternalEvent:
- switch b := objB.(type) {
- case *metav1.WatchEvent:
- return true, metav1.Convert_versioned_InternalEvent_to_versioned_Event(a, b, s)
- }
- }
- return false, nil
- })
- return nil
-}
-
-func addConversionFuncs(scheme *runtime.Scheme) error {
- // Add non-generated conversion functions
- err := scheme.AddConversionFuncs(
- Convert_core_Pod_To_v1_Pod,
- Convert_core_PodSpec_To_v1_PodSpec,
- Convert_core_ReplicationControllerSpec_To_v1_ReplicationControllerSpec,
- Convert_core_ServiceSpec_To_v1_ServiceSpec,
- Convert_v1_Pod_To_core_Pod,
- Convert_v1_PodSpec_To_core_PodSpec,
- Convert_v1_ReplicationControllerSpec_To_core_ReplicationControllerSpec,
- Convert_v1_Secret_To_core_Secret,
- Convert_v1_ServiceSpec_To_core_ServiceSpec,
- Convert_v1_ResourceList_To_core_ResourceList,
- Convert_v1_ReplicationController_to_extensions_ReplicaSet,
- Convert_v1_ReplicationControllerSpec_to_extensions_ReplicaSetSpec,
- Convert_v1_ReplicationControllerStatus_to_extensions_ReplicaSetStatus,
- Convert_extensions_ReplicaSet_to_v1_ReplicationController,
- Convert_extensions_ReplicaSetSpec_to_v1_ReplicationControllerSpec,
- Convert_extensions_ReplicaSetStatus_to_v1_ReplicationControllerStatus,
- )
- if err != nil {
- return err
- }
-
- // Add field conversion funcs.
- err = scheme.AddFieldLabelConversionFunc("v1", "Pod",
- func(label, value string) (string, string, error) {
- switch label {
- case "metadata.name",
- "metadata.namespace",
- "spec.nodeName",
- "spec.restartPolicy",
- "spec.schedulerName",
- "status.phase",
- "status.podIP",
- "status.nominatedNodeName":
- return label, value, nil
- // This is for backwards compatibility with old v1 clients which send spec.host
- case "spec.host":
- return "spec.nodeName", value, nil
- default:
- return "", "", fmt.Errorf("field label not supported: %s", label)
- }
- },
- )
- if err != nil {
- return err
- }
- err = scheme.AddFieldLabelConversionFunc("v1", "Node",
- func(label, value string) (string, string, error) {
- switch label {
- case "metadata.name":
- return label, value, nil
- case "spec.unschedulable":
- return label, value, nil
- default:
- return "", "", fmt.Errorf("field label not supported: %s", label)
- }
- },
- )
- if err != nil {
- return err
- }
- err = scheme.AddFieldLabelConversionFunc("v1", "ReplicationController",
- func(label, value string) (string, string, error) {
- switch label {
- case "metadata.name",
- "metadata.namespace",
- "status.replicas":
- return label, value, nil
- default:
- return "", "", fmt.Errorf("field label not supported: %s", label)
- }
- })
- if err != nil {
- return err
- }
- if err := AddFieldLabelConversionsForEvent(scheme); err != nil {
- return err
- }
- if err := AddFieldLabelConversionsForNamespace(scheme); err != nil {
- return err
- }
- if err := AddFieldLabelConversionsForSecret(scheme); err != nil {
- return err
- }
- return nil
-}
-
-func Convert_v1_ReplicationController_to_extensions_ReplicaSet(in *v1.ReplicationController, out *extensions.ReplicaSet, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_v1_ReplicationControllerSpec_to_extensions_ReplicaSetSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- if err := Convert_v1_ReplicationControllerStatus_to_extensions_ReplicaSetStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-func Convert_v1_ReplicationControllerSpec_to_extensions_ReplicaSetSpec(in *v1.ReplicationControllerSpec, out *extensions.ReplicaSetSpec, s conversion.Scope) error {
- out.Replicas = *in.Replicas
- out.MinReadySeconds = in.MinReadySeconds
- if in.Selector != nil {
- out.Selector = new(metav1.LabelSelector)
- metav1.Convert_map_to_unversioned_LabelSelector(&in.Selector, out.Selector, s)
- }
- if in.Template != nil {
- if err := Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(in.Template, &out.Template, s); err != nil {
- return err
- }
- }
- return nil
-}
-
-func Convert_v1_ReplicationControllerStatus_to_extensions_ReplicaSetStatus(in *v1.ReplicationControllerStatus, out *extensions.ReplicaSetStatus, s conversion.Scope) error {
- out.Replicas = in.Replicas
- out.FullyLabeledReplicas = in.FullyLabeledReplicas
- out.ReadyReplicas = in.ReadyReplicas
- out.AvailableReplicas = in.AvailableReplicas
- out.ObservedGeneration = in.ObservedGeneration
- for _, cond := range in.Conditions {
- out.Conditions = append(out.Conditions, extensions.ReplicaSetCondition{
- Type: extensions.ReplicaSetConditionType(cond.Type),
- Status: core.ConditionStatus(cond.Status),
- LastTransitionTime: cond.LastTransitionTime,
- Reason: cond.Reason,
- Message: cond.Message,
- })
- }
- return nil
-}
-
-func Convert_extensions_ReplicaSet_to_v1_ReplicationController(in *extensions.ReplicaSet, out *v1.ReplicationController, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_extensions_ReplicaSetSpec_to_v1_ReplicationControllerSpec(&in.Spec, &out.Spec, s); err != nil {
- fieldErr, ok := err.(*field.Error)
- if !ok {
- return err
- }
- if out.Annotations == nil {
- out.Annotations = make(map[string]string)
- }
- out.Annotations[v1.NonConvertibleAnnotationPrefix+"/"+fieldErr.Field] = reflect.ValueOf(fieldErr.BadValue).String()
- }
- if err := Convert_extensions_ReplicaSetStatus_to_v1_ReplicationControllerStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-func Convert_extensions_ReplicaSetSpec_to_v1_ReplicationControllerSpec(in *extensions.ReplicaSetSpec, out *v1.ReplicationControllerSpec, s conversion.Scope) error {
- out.Replicas = new(int32)
- *out.Replicas = in.Replicas
- out.MinReadySeconds = in.MinReadySeconds
- var invalidErr error
- if in.Selector != nil {
- invalidErr = metav1.Convert_unversioned_LabelSelector_to_map(in.Selector, &out.Selector, s)
- }
- out.Template = new(v1.PodTemplateSpec)
- if err := Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, out.Template, s); err != nil {
- return err
- }
- return invalidErr
-}
-
-func Convert_extensions_ReplicaSetStatus_to_v1_ReplicationControllerStatus(in *extensions.ReplicaSetStatus, out *v1.ReplicationControllerStatus, s conversion.Scope) error {
- out.Replicas = in.Replicas
- out.FullyLabeledReplicas = in.FullyLabeledReplicas
- out.ReadyReplicas = in.ReadyReplicas
- out.AvailableReplicas = in.AvailableReplicas
- out.ObservedGeneration = in.ObservedGeneration
- for _, cond := range in.Conditions {
- out.Conditions = append(out.Conditions, v1.ReplicationControllerCondition{
- Type: v1.ReplicationControllerConditionType(cond.Type),
- Status: v1.ConditionStatus(cond.Status),
- LastTransitionTime: cond.LastTransitionTime,
- Reason: cond.Reason,
- Message: cond.Message,
- })
- }
- return nil
-}
-
-func Convert_core_ReplicationControllerSpec_To_v1_ReplicationControllerSpec(in *core.ReplicationControllerSpec, out *v1.ReplicationControllerSpec, s conversion.Scope) error {
- out.Replicas = &in.Replicas
- out.MinReadySeconds = in.MinReadySeconds
- out.Selector = in.Selector
- if in.Template != nil {
- out.Template = new(v1.PodTemplateSpec)
- if err := Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(in.Template, out.Template, s); err != nil {
- return err
- }
- } else {
- out.Template = nil
- }
- return nil
-}
-
-func Convert_v1_ReplicationControllerSpec_To_core_ReplicationControllerSpec(in *v1.ReplicationControllerSpec, out *core.ReplicationControllerSpec, s conversion.Scope) error {
- if in.Replicas != nil {
- out.Replicas = *in.Replicas
- }
- out.MinReadySeconds = in.MinReadySeconds
- out.Selector = in.Selector
- if in.Template != nil {
- out.Template = new(core.PodTemplateSpec)
- if err := Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(in.Template, out.Template, s); err != nil {
- return err
- }
- } else {
- out.Template = nil
- }
- return nil
-}
-
-func Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(in *core.PodTemplateSpec, out *v1.PodTemplateSpec, s conversion.Scope) error {
- if err := autoConvert_core_PodTemplateSpec_To_v1_PodTemplateSpec(in, out, s); err != nil {
- return err
- }
-
- // drop init container annotations so they don't take effect on legacy kubelets.
- // remove this once the oldest supported kubelet no longer honors the annotations over the field.
- out.Annotations = dropInitContainerAnnotations(out.Annotations)
-
- return nil
-}
-
-func Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(in *v1.PodTemplateSpec, out *core.PodTemplateSpec, s conversion.Scope) error {
- if err := autoConvert_v1_PodTemplateSpec_To_core_PodTemplateSpec(in, out, s); err != nil {
- return err
- }
-
- // drop init container annotations so they don't show up as differences when receiving requests from old clients
- out.Annotations = dropInitContainerAnnotations(out.Annotations)
-
- return nil
-}
-
-// The following two v1.PodSpec conversions are done here to support v1.ServiceAccount
-// as an alias for ServiceAccountName.
-func Convert_core_PodSpec_To_v1_PodSpec(in *core.PodSpec, out *v1.PodSpec, s conversion.Scope) error {
- if err := autoConvert_core_PodSpec_To_v1_PodSpec(in, out, s); err != nil {
- return err
- }
-
- // DeprecatedServiceAccount is an alias for ServiceAccountName.
- out.DeprecatedServiceAccount = in.ServiceAccountName
-
- if in.SecurityContext != nil {
- // the host namespace fields have to be handled here for backward compatibility
- // with v1.0.0
- out.HostPID = in.SecurityContext.HostPID
- out.HostNetwork = in.SecurityContext.HostNetwork
- out.HostIPC = in.SecurityContext.HostIPC
- out.ShareProcessNamespace = in.SecurityContext.ShareProcessNamespace
- }
-
- return nil
-}
-
-func Convert_v1_PodSpec_To_core_PodSpec(in *v1.PodSpec, out *core.PodSpec, s conversion.Scope) error {
- if err := autoConvert_v1_PodSpec_To_core_PodSpec(in, out, s); err != nil {
- return err
- }
-
- // We support DeprecatedServiceAccount as an alias for ServiceAccountName.
- // If both are specified, ServiceAccountName (the new field) wins.
- if in.ServiceAccountName == "" {
- out.ServiceAccountName = in.DeprecatedServiceAccount
- }
-
- // the host namespace fields have to be handled specially for backward compatibility
- // with v1.0.0
- if out.SecurityContext == nil {
- out.SecurityContext = new(core.PodSecurityContext)
- }
- out.SecurityContext.HostNetwork = in.HostNetwork
- out.SecurityContext.HostPID = in.HostPID
- out.SecurityContext.HostIPC = in.HostIPC
- out.SecurityContext.ShareProcessNamespace = in.ShareProcessNamespace
-
- return nil
-}
-
-func Convert_v1_Pod_To_core_Pod(in *v1.Pod, out *core.Pod, s conversion.Scope) error {
- if err := autoConvert_v1_Pod_To_core_Pod(in, out, s); err != nil {
- return err
- }
-
- // drop init container annotations so they don't show up as differences when receiving requests from old clients
- out.Annotations = dropInitContainerAnnotations(out.Annotations)
-
- return nil
-}
-
-func Convert_core_Pod_To_v1_Pod(in *core.Pod, out *v1.Pod, s conversion.Scope) error {
- if err := autoConvert_core_Pod_To_v1_Pod(in, out, s); err != nil {
- return err
- }
-
- // drop init container annotations so they don't take effect on legacy kubelets.
- // remove this once the oldest supported kubelet no longer honors the annotations over the field.
- out.Annotations = dropInitContainerAnnotations(out.Annotations)
-
- return nil
-}
-
-func Convert_v1_Secret_To_core_Secret(in *v1.Secret, out *core.Secret, s conversion.Scope) error {
- if err := autoConvert_v1_Secret_To_core_Secret(in, out, s); err != nil {
- return err
- }
-
- // StringData overwrites Data
- if len(in.StringData) > 0 {
- if out.Data == nil {
- out.Data = map[string][]byte{}
- }
- for k, v := range in.StringData {
- out.Data[k] = []byte(v)
- }
- }
-
- return nil
-}
-func Convert_core_SecurityContext_To_v1_SecurityContext(in *core.SecurityContext, out *v1.SecurityContext, s conversion.Scope) error {
- if in.Capabilities != nil {
- out.Capabilities = new(v1.Capabilities)
- if err := Convert_core_Capabilities_To_v1_Capabilities(in.Capabilities, out.Capabilities, s); err != nil {
- return err
- }
- } else {
- out.Capabilities = nil
- }
- out.Privileged = in.Privileged
- if in.SELinuxOptions != nil {
- out.SELinuxOptions = new(v1.SELinuxOptions)
- if err := Convert_core_SELinuxOptions_To_v1_SELinuxOptions(in.SELinuxOptions, out.SELinuxOptions, s); err != nil {
- return err
- }
- } else {
- out.SELinuxOptions = nil
- }
- out.RunAsUser = in.RunAsUser
- out.RunAsNonRoot = in.RunAsNonRoot
- out.ReadOnlyRootFilesystem = in.ReadOnlyRootFilesystem
- out.AllowPrivilegeEscalation = in.AllowPrivilegeEscalation
- return nil
-}
-
-func Convert_core_PodSecurityContext_To_v1_PodSecurityContext(in *core.PodSecurityContext, out *v1.PodSecurityContext, s conversion.Scope) error {
- out.SupplementalGroups = in.SupplementalGroups
- if in.SELinuxOptions != nil {
- out.SELinuxOptions = new(v1.SELinuxOptions)
- if err := Convert_core_SELinuxOptions_To_v1_SELinuxOptions(in.SELinuxOptions, out.SELinuxOptions, s); err != nil {
- return err
- }
- } else {
- out.SELinuxOptions = nil
- }
- out.RunAsUser = in.RunAsUser
- out.RunAsNonRoot = in.RunAsNonRoot
- out.FSGroup = in.FSGroup
- return nil
-}
-
-func Convert_v1_PodSecurityContext_To_core_PodSecurityContext(in *v1.PodSecurityContext, out *core.PodSecurityContext, s conversion.Scope) error {
- out.SupplementalGroups = in.SupplementalGroups
- if in.SELinuxOptions != nil {
- out.SELinuxOptions = new(core.SELinuxOptions)
- if err := Convert_v1_SELinuxOptions_To_core_SELinuxOptions(in.SELinuxOptions, out.SELinuxOptions, s); err != nil {
- return err
- }
- } else {
- out.SELinuxOptions = nil
- }
- out.RunAsUser = in.RunAsUser
- out.RunAsNonRoot = in.RunAsNonRoot
- out.FSGroup = in.FSGroup
- return nil
-}
-
-// +k8s:conversion-fn=copy-only
-func Convert_v1_ResourceList_To_core_ResourceList(in *v1.ResourceList, out *core.ResourceList, s conversion.Scope) error {
- if *in == nil {
- return nil
- }
- if *out == nil {
- *out = make(core.ResourceList, len(*in))
- }
- for key, val := range *in {
- // Moved to defaults
- // TODO(#18538): We round up resource values to milli scale to maintain API compatibility.
- // In the future, we should instead reject values that need rounding.
- // const milliScale = -3
- // val.RoundUp(milliScale)
-
- (*out)[core.ResourceName(key)] = val
- }
- return nil
-}
-
-func AddFieldLabelConversionsForEvent(scheme *runtime.Scheme) error {
- return scheme.AddFieldLabelConversionFunc("v1", "Event",
- func(label, value string) (string, string, error) {
- switch label {
- case "involvedObject.kind",
- "involvedObject.namespace",
- "involvedObject.name",
- "involvedObject.uid",
- "involvedObject.apiVersion",
- "involvedObject.resourceVersion",
- "involvedObject.fieldPath",
- "reason",
- "source",
- "type",
- "metadata.namespace",
- "metadata.name":
- return label, value, nil
- default:
- return "", "", fmt.Errorf("field label not supported: %s", label)
- }
- })
-}
-
-func AddFieldLabelConversionsForNamespace(scheme *runtime.Scheme) error {
- return scheme.AddFieldLabelConversionFunc("v1", "Namespace",
- func(label, value string) (string, string, error) {
- switch label {
- case "status.phase",
- "metadata.name":
- return label, value, nil
- default:
- return "", "", fmt.Errorf("field label not supported: %s", label)
- }
- })
-}
-
-func AddFieldLabelConversionsForSecret(scheme *runtime.Scheme) error {
- return scheme.AddFieldLabelConversionFunc("v1", "Secret",
- func(label, value string) (string, string, error) {
- switch label {
- case "type",
- "metadata.namespace",
- "metadata.name":
- return label, value, nil
- default:
- return "", "", fmt.Errorf("field label not supported: %s", label)
- }
- })
-}
-
-var initContainerAnnotations = map[string]bool{
- "pod.beta.kubernetes.io/init-containers": true,
- "pod.alpha.kubernetes.io/init-containers": true,
- "pod.beta.kubernetes.io/init-container-statuses": true,
- "pod.alpha.kubernetes.io/init-container-statuses": true,
-}
-
-// dropInitContainerAnnotations returns a copy of the annotations with init container annotations removed,
-// or the original annotations if no init container annotations were present.
-//
-// this can be removed once no clients prior to 1.8 are supported, and no kubelets prior to 1.8 can be run
-// (we don't support kubelets older than 2 versions skewed from the apiserver, but we don't prevent them, either)
-func dropInitContainerAnnotations(oldAnnotations map[string]string) map[string]string {
- if len(oldAnnotations) == 0 {
- return oldAnnotations
- }
-
- found := false
- for k := range initContainerAnnotations {
- if _, ok := oldAnnotations[k]; ok {
- found = true
- break
- }
- }
- if !found {
- return oldAnnotations
- }
-
- newAnnotations := make(map[string]string, len(oldAnnotations))
- for k, v := range oldAnnotations {
- if !initContainerAnnotations[k] {
- newAnnotations[k] = v
- }
- }
- return newAnnotations
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/v1/defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/defaults.go
deleted file mode 100644
index c2aeafc3d..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/v1/defaults.go
+++ /dev/null
@@ -1,413 +0,0 @@
-/*
-Copyright 2015 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
-
-import (
- "k8s.io/api/core/v1"
- "k8s.io/apimachinery/pkg/runtime"
- "k8s.io/apimachinery/pkg/util/intstr"
- utilfeature "k8s.io/apiserver/pkg/util/feature"
- "k8s.io/kubernetes/pkg/features"
- "k8s.io/kubernetes/pkg/util/parsers"
- utilpointer "k8s.io/kubernetes/pkg/util/pointer"
-)
-
-func addDefaultingFuncs(scheme *runtime.Scheme) error {
- return RegisterDefaults(scheme)
-}
-
-func SetDefaults_ResourceList(obj *v1.ResourceList) {
- for key, val := range *obj {
- // TODO(#18538): We round up resource values to milli scale to maintain API compatibility.
- // In the future, we should instead reject values that need rounding.
- const milliScale = -3
- val.RoundUp(milliScale)
-
- (*obj)[v1.ResourceName(key)] = val
- }
-}
-
-func SetDefaults_ReplicationController(obj *v1.ReplicationController) {
- var labels map[string]string
- if obj.Spec.Template != nil {
- labels = obj.Spec.Template.Labels
- }
- // TODO: support templates defined elsewhere when we support them in the API
- if labels != nil {
- if len(obj.Spec.Selector) == 0 {
- obj.Spec.Selector = labels
- }
- if len(obj.Labels) == 0 {
- obj.Labels = labels
- }
- }
- if obj.Spec.Replicas == nil {
- obj.Spec.Replicas = new(int32)
- *obj.Spec.Replicas = 1
- }
-}
-func SetDefaults_Volume(obj *v1.Volume) {
- if utilpointer.AllPtrFieldsNil(&obj.VolumeSource) {
- obj.VolumeSource = v1.VolumeSource{
- EmptyDir: &v1.EmptyDirVolumeSource{},
- }
- }
-}
-func SetDefaults_ContainerPort(obj *v1.ContainerPort) {
- if obj.Protocol == "" {
- obj.Protocol = v1.ProtocolTCP
- }
-}
-func SetDefaults_Container(obj *v1.Container) {
- if obj.ImagePullPolicy == "" {
- // Ignore error and assume it has been validated elsewhere
- _, tag, _, _ := parsers.ParseImageName(obj.Image)
-
- // Check image tag
- if tag == "latest" {
- obj.ImagePullPolicy = v1.PullAlways
- } else {
- obj.ImagePullPolicy = v1.PullIfNotPresent
- }
- }
- if obj.TerminationMessagePath == "" {
- obj.TerminationMessagePath = v1.TerminationMessagePathDefault
- }
- if obj.TerminationMessagePolicy == "" {
- obj.TerminationMessagePolicy = v1.TerminationMessageReadFile
- }
-}
-func SetDefaults_Service(obj *v1.Service) {
- if obj.Spec.SessionAffinity == "" {
- obj.Spec.SessionAffinity = v1.ServiceAffinityNone
- }
- if obj.Spec.SessionAffinity == v1.ServiceAffinityNone {
- obj.Spec.SessionAffinityConfig = nil
- }
- if obj.Spec.SessionAffinity == v1.ServiceAffinityClientIP {
- if obj.Spec.SessionAffinityConfig == nil || obj.Spec.SessionAffinityConfig.ClientIP == nil || obj.Spec.SessionAffinityConfig.ClientIP.TimeoutSeconds == nil {
- timeoutSeconds := v1.DefaultClientIPServiceAffinitySeconds
- obj.Spec.SessionAffinityConfig = &v1.SessionAffinityConfig{
- ClientIP: &v1.ClientIPConfig{
- TimeoutSeconds: &timeoutSeconds,
- },
- }
- }
- }
- if obj.Spec.Type == "" {
- obj.Spec.Type = v1.ServiceTypeClusterIP
- }
- for i := range obj.Spec.Ports {
- sp := &obj.Spec.Ports[i]
- if sp.Protocol == "" {
- sp.Protocol = v1.ProtocolTCP
- }
- if sp.TargetPort == intstr.FromInt(0) || sp.TargetPort == intstr.FromString("") {
- sp.TargetPort = intstr.FromInt(int(sp.Port))
- }
- }
- // Defaults ExternalTrafficPolicy field for NodePort / LoadBalancer service
- // to Global for consistency.
- if (obj.Spec.Type == v1.ServiceTypeNodePort ||
- obj.Spec.Type == v1.ServiceTypeLoadBalancer) &&
- obj.Spec.ExternalTrafficPolicy == "" {
- obj.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeCluster
- }
-}
-func SetDefaults_Pod(obj *v1.Pod) {
- // If limits are specified, but requests are not, default requests to limits
- // This is done here rather than a more specific defaulting pass on v1.ResourceRequirements
- // because we only want this defaulting semantic to take place on a v1.Pod and not a v1.PodTemplate
- for i := range obj.Spec.Containers {
- // set requests to limits if requests are not specified, but limits are
- if obj.Spec.Containers[i].Resources.Limits != nil {
- if obj.Spec.Containers[i].Resources.Requests == nil {
- obj.Spec.Containers[i].Resources.Requests = make(v1.ResourceList)
- }
- for key, value := range obj.Spec.Containers[i].Resources.Limits {
- if _, exists := obj.Spec.Containers[i].Resources.Requests[key]; !exists {
- obj.Spec.Containers[i].Resources.Requests[key] = *(value.Copy())
- }
- }
- }
- }
- for i := range obj.Spec.InitContainers {
- if obj.Spec.InitContainers[i].Resources.Limits != nil {
- if obj.Spec.InitContainers[i].Resources.Requests == nil {
- obj.Spec.InitContainers[i].Resources.Requests = make(v1.ResourceList)
- }
- for key, value := range obj.Spec.InitContainers[i].Resources.Limits {
- if _, exists := obj.Spec.InitContainers[i].Resources.Requests[key]; !exists {
- obj.Spec.InitContainers[i].Resources.Requests[key] = *(value.Copy())
- }
- }
- }
- }
-}
-func SetDefaults_PodSpec(obj *v1.PodSpec) {
- if obj.DNSPolicy == "" {
- obj.DNSPolicy = v1.DNSClusterFirst
- }
- if obj.RestartPolicy == "" {
- obj.RestartPolicy = v1.RestartPolicyAlways
- }
- if obj.HostNetwork {
- defaultHostNetworkPorts(&obj.Containers)
- defaultHostNetworkPorts(&obj.InitContainers)
- }
- if obj.SecurityContext == nil {
- obj.SecurityContext = &v1.PodSecurityContext{}
- }
- if obj.TerminationGracePeriodSeconds == nil {
- period := int64(v1.DefaultTerminationGracePeriodSeconds)
- obj.TerminationGracePeriodSeconds = &period
- }
- if obj.SchedulerName == "" {
- obj.SchedulerName = v1.DefaultSchedulerName
- }
-}
-func SetDefaults_Probe(obj *v1.Probe) {
- if obj.TimeoutSeconds == 0 {
- obj.TimeoutSeconds = 1
- }
- if obj.PeriodSeconds == 0 {
- obj.PeriodSeconds = 10
- }
- if obj.SuccessThreshold == 0 {
- obj.SuccessThreshold = 1
- }
- if obj.FailureThreshold == 0 {
- obj.FailureThreshold = 3
- }
-}
-func SetDefaults_SecretVolumeSource(obj *v1.SecretVolumeSource) {
- if obj.DefaultMode == nil {
- perm := int32(v1.SecretVolumeSourceDefaultMode)
- obj.DefaultMode = &perm
- }
-}
-func SetDefaults_ConfigMapVolumeSource(obj *v1.ConfigMapVolumeSource) {
- if obj.DefaultMode == nil {
- perm := int32(v1.ConfigMapVolumeSourceDefaultMode)
- obj.DefaultMode = &perm
- }
-}
-func SetDefaults_DownwardAPIVolumeSource(obj *v1.DownwardAPIVolumeSource) {
- if obj.DefaultMode == nil {
- perm := int32(v1.DownwardAPIVolumeSourceDefaultMode)
- obj.DefaultMode = &perm
- }
-}
-func SetDefaults_Secret(obj *v1.Secret) {
- if obj.Type == "" {
- obj.Type = v1.SecretTypeOpaque
- }
-}
-func SetDefaults_ProjectedVolumeSource(obj *v1.ProjectedVolumeSource) {
- if obj.DefaultMode == nil {
- perm := int32(v1.ProjectedVolumeSourceDefaultMode)
- obj.DefaultMode = &perm
- }
-}
-func SetDefaults_PersistentVolume(obj *v1.PersistentVolume) {
- if obj.Status.Phase == "" {
- obj.Status.Phase = v1.VolumePending
- }
- if obj.Spec.PersistentVolumeReclaimPolicy == "" {
- obj.Spec.PersistentVolumeReclaimPolicy = v1.PersistentVolumeReclaimRetain
- }
- if obj.Spec.VolumeMode == nil && utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
- obj.Spec.VolumeMode = new(v1.PersistentVolumeMode)
- *obj.Spec.VolumeMode = v1.PersistentVolumeFilesystem
- }
-}
-func SetDefaults_PersistentVolumeClaim(obj *v1.PersistentVolumeClaim) {
- if obj.Status.Phase == "" {
- obj.Status.Phase = v1.ClaimPending
- }
- if obj.Spec.VolumeMode == nil && utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
- obj.Spec.VolumeMode = new(v1.PersistentVolumeMode)
- *obj.Spec.VolumeMode = v1.PersistentVolumeFilesystem
- }
-}
-func SetDefaults_ISCSIVolumeSource(obj *v1.ISCSIVolumeSource) {
- if obj.ISCSIInterface == "" {
- obj.ISCSIInterface = "default"
- }
-}
-func SetDefaults_ISCSIPersistentVolumeSource(obj *v1.ISCSIPersistentVolumeSource) {
- if obj.ISCSIInterface == "" {
- obj.ISCSIInterface = "default"
- }
-}
-func SetDefaults_AzureDiskVolumeSource(obj *v1.AzureDiskVolumeSource) {
- if obj.CachingMode == nil {
- obj.CachingMode = new(v1.AzureDataDiskCachingMode)
- *obj.CachingMode = v1.AzureDataDiskCachingReadWrite
- }
- if obj.Kind == nil {
- obj.Kind = new(v1.AzureDataDiskKind)
- *obj.Kind = v1.AzureSharedBlobDisk
- }
- if obj.FSType == nil {
- obj.FSType = new(string)
- *obj.FSType = "ext4"
- }
- if obj.ReadOnly == nil {
- obj.ReadOnly = new(bool)
- *obj.ReadOnly = false
- }
-}
-func SetDefaults_Endpoints(obj *v1.Endpoints) {
- for i := range obj.Subsets {
- ss := &obj.Subsets[i]
- for i := range ss.Ports {
- ep := &ss.Ports[i]
- if ep.Protocol == "" {
- ep.Protocol = v1.ProtocolTCP
- }
- }
- }
-}
-func SetDefaults_HTTPGetAction(obj *v1.HTTPGetAction) {
- if obj.Path == "" {
- obj.Path = "/"
- }
- if obj.Scheme == "" {
- obj.Scheme = v1.URISchemeHTTP
- }
-}
-func SetDefaults_NamespaceStatus(obj *v1.NamespaceStatus) {
- if obj.Phase == "" {
- obj.Phase = v1.NamespaceActive
- }
-}
-func SetDefaults_Node(obj *v1.Node) {
- if obj.Spec.ExternalID == "" {
- obj.Spec.ExternalID = obj.Name
- }
-}
-func SetDefaults_NodeStatus(obj *v1.NodeStatus) {
- if obj.Allocatable == nil && obj.Capacity != nil {
- obj.Allocatable = make(v1.ResourceList, len(obj.Capacity))
- for key, value := range obj.Capacity {
- obj.Allocatable[key] = *(value.Copy())
- }
- obj.Allocatable = obj.Capacity
- }
-}
-func SetDefaults_ObjectFieldSelector(obj *v1.ObjectFieldSelector) {
- if obj.APIVersion == "" {
- obj.APIVersion = "v1"
- }
-}
-func SetDefaults_LimitRangeItem(obj *v1.LimitRangeItem) {
- // for container limits, we apply default values
- if obj.Type == v1.LimitTypeContainer {
-
- if obj.Default == nil {
- obj.Default = make(v1.ResourceList)
- }
- if obj.DefaultRequest == nil {
- obj.DefaultRequest = make(v1.ResourceList)
- }
-
- // If a default limit is unspecified, but the max is specified, default the limit to the max
- for key, value := range obj.Max {
- if _, exists := obj.Default[key]; !exists {
- obj.Default[key] = *(value.Copy())
- }
- }
- // If a default limit is specified, but the default request is not, default request to limit
- for key, value := range obj.Default {
- if _, exists := obj.DefaultRequest[key]; !exists {
- obj.DefaultRequest[key] = *(value.Copy())
- }
- }
- // If a default request is not specified, but the min is provided, default request to the min
- for key, value := range obj.Min {
- if _, exists := obj.DefaultRequest[key]; !exists {
- obj.DefaultRequest[key] = *(value.Copy())
- }
- }
- }
-}
-func SetDefaults_ConfigMap(obj *v1.ConfigMap) {
- if obj.Data == nil {
- obj.Data = make(map[string]string)
- }
-}
-
-// With host networking default all container ports to host ports.
-func defaultHostNetworkPorts(containers *[]v1.Container) {
- for i := range *containers {
- for j := range (*containers)[i].Ports {
- if (*containers)[i].Ports[j].HostPort == 0 {
- (*containers)[i].Ports[j].HostPort = (*containers)[i].Ports[j].ContainerPort
- }
- }
- }
-}
-
-func SetDefaults_RBDVolumeSource(obj *v1.RBDVolumeSource) {
- if obj.RBDPool == "" {
- obj.RBDPool = "rbd"
- }
- if obj.RadosUser == "" {
- obj.RadosUser = "admin"
- }
- if obj.Keyring == "" {
- obj.Keyring = "/etc/ceph/keyring"
- }
-}
-
-func SetDefaults_RBDPersistentVolumeSource(obj *v1.RBDPersistentVolumeSource) {
- if obj.RBDPool == "" {
- obj.RBDPool = "rbd"
- }
- if obj.RadosUser == "" {
- obj.RadosUser = "admin"
- }
- if obj.Keyring == "" {
- obj.Keyring = "/etc/ceph/keyring"
- }
-}
-
-func SetDefaults_ScaleIOVolumeSource(obj *v1.ScaleIOVolumeSource) {
- if obj.StorageMode == "" {
- obj.StorageMode = "ThinProvisioned"
- }
- if obj.FSType == "" {
- obj.FSType = "xfs"
- }
-}
-
-func SetDefaults_ScaleIOPersistentVolumeSource(obj *v1.ScaleIOPersistentVolumeSource) {
- if obj.StorageMode == "" {
- obj.StorageMode = "ThinProvisioned"
- }
- if obj.FSType == "" {
- obj.FSType = "xfs"
- }
-}
-
-func SetDefaults_HostPathVolumeSource(obj *v1.HostPathVolumeSource) {
- typeVol := v1.HostPathUnset
- if obj.Type == nil {
- obj.Type = &typeVol
- }
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/v1/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/doc.go
deleted file mode 100644
index 454e30183..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/v1/doc.go
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-Copyright 2015 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.
-*/
-
-// +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/core
-// +k8s:conversion-gen-external-types=k8s.io/api/core/v1
-// +k8s:defaulter-gen=TypeMeta
-// +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/core/v1
-
-// Package v1 is the v1 version of the API.
-package v1 // import "k8s.io/kubernetes/pkg/apis/core/v1"
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/helpers.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/helpers.go
deleted file mode 100644
index bb6d9385f..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/helpers.go
+++ /dev/null
@@ -1,450 +0,0 @@
-/*
-Copyright 2014 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 helper
-
-import (
- "encoding/json"
- "fmt"
- "strings"
-
- "k8s.io/api/core/v1"
- "k8s.io/apimachinery/pkg/api/resource"
- "k8s.io/apimachinery/pkg/labels"
- "k8s.io/apimachinery/pkg/selection"
- "k8s.io/apimachinery/pkg/util/sets"
- "k8s.io/apimachinery/pkg/util/validation"
- "k8s.io/kubernetes/pkg/apis/core/helper"
-)
-
-// IsExtendedResourceName returns true if:
-// 1. the resource name is not in the default namespace;
-// 2. resource name does not have "requests." prefix,
-// to avoid confusion with the convention in quota
-// 3. it satisfies the rules in IsQualifiedName() after converted into quota resource name
-func IsExtendedResourceName(name v1.ResourceName) bool {
- if IsDefaultNamespaceResource(name) || strings.HasPrefix(string(name), v1.DefaultResourceRequestsPrefix) {
- return false
- }
- // Ensure it satisfies the rules in IsQualifiedName() after converted into quota resource name
- nameForQuota := fmt.Sprintf("%s%s", v1.DefaultResourceRequestsPrefix, string(name))
- if errs := validation.IsQualifiedName(string(nameForQuota)); len(errs) != 0 {
- return false
- }
- return true
-}
-
-// IsDefaultNamespaceResource returns true if the resource name is in the
-// *kubernetes.io/ namespace. Partially-qualified (unprefixed) names are
-// implicitly in the kubernetes.io/ namespace.
-func IsDefaultNamespaceResource(name v1.ResourceName) bool {
- return !strings.Contains(string(name), "/") ||
- strings.Contains(string(name), v1.ResourceDefaultNamespacePrefix)
-
-}
-
-// IsHugePageResourceName returns true if the resource name has the huge page
-// resource prefix.
-func IsHugePageResourceName(name v1.ResourceName) bool {
- return strings.HasPrefix(string(name), v1.ResourceHugePagesPrefix)
-}
-
-// HugePageResourceName returns a ResourceName with the canonical hugepage
-// prefix prepended for the specified page size. The page size is converted
-// to its canonical representation.
-func HugePageResourceName(pageSize resource.Quantity) v1.ResourceName {
- return v1.ResourceName(fmt.Sprintf("%s%s", v1.ResourceHugePagesPrefix, pageSize.String()))
-}
-
-// HugePageSizeFromResourceName returns the page size for the specified huge page
-// resource name. If the specified input is not a valid huge page resource name
-// an error is returned.
-func HugePageSizeFromResourceName(name v1.ResourceName) (resource.Quantity, error) {
- if !IsHugePageResourceName(name) {
- return resource.Quantity{}, fmt.Errorf("resource name: %s is not valid hugepage name", name)
- }
- pageSize := strings.TrimPrefix(string(name), v1.ResourceHugePagesPrefix)
- return resource.ParseQuantity(pageSize)
-}
-
-var overcommitBlacklist = sets.NewString(string(v1.ResourceNvidiaGPU))
-
-// IsOvercommitAllowed returns true if the resource is in the default
-// namespace and not blacklisted and is not hugepages.
-func IsOvercommitAllowed(name v1.ResourceName) bool {
- return IsDefaultNamespaceResource(name) &&
- !IsHugePageResourceName(name) &&
- !overcommitBlacklist.Has(string(name))
-}
-
-// Extended and Hugepages resources
-func IsScalarResourceName(name v1.ResourceName) bool {
- return IsExtendedResourceName(name) || IsHugePageResourceName(name)
-}
-
-// this function aims to check if the service's ClusterIP is set or not
-// the objective is not to perform validation here
-func IsServiceIPSet(service *v1.Service) bool {
- return service.Spec.ClusterIP != v1.ClusterIPNone && service.Spec.ClusterIP != ""
-}
-
-// AddToNodeAddresses appends the NodeAddresses to the passed-by-pointer slice,
-// only if they do not already exist
-func AddToNodeAddresses(addresses *[]v1.NodeAddress, addAddresses ...v1.NodeAddress) {
- for _, add := range addAddresses {
- exists := false
- for _, existing := range *addresses {
- if existing.Address == add.Address && existing.Type == add.Type {
- exists = true
- break
- }
- }
- if !exists {
- *addresses = append(*addresses, add)
- }
- }
-}
-
-// TODO: make method on LoadBalancerStatus?
-func LoadBalancerStatusEqual(l, r *v1.LoadBalancerStatus) bool {
- return ingressSliceEqual(l.Ingress, r.Ingress)
-}
-
-func ingressSliceEqual(lhs, rhs []v1.LoadBalancerIngress) bool {
- if len(lhs) != len(rhs) {
- return false
- }
- for i := range lhs {
- if !ingressEqual(&lhs[i], &rhs[i]) {
- return false
- }
- }
- return true
-}
-
-func ingressEqual(lhs, rhs *v1.LoadBalancerIngress) bool {
- if lhs.IP != rhs.IP {
- return false
- }
- if lhs.Hostname != rhs.Hostname {
- return false
- }
- return true
-}
-
-// TODO: make method on LoadBalancerStatus?
-func LoadBalancerStatusDeepCopy(lb *v1.LoadBalancerStatus) *v1.LoadBalancerStatus {
- c := &v1.LoadBalancerStatus{}
- c.Ingress = make([]v1.LoadBalancerIngress, len(lb.Ingress))
- for i := range lb.Ingress {
- c.Ingress[i] = lb.Ingress[i]
- }
- return c
-}
-
-// GetAccessModesAsString returns a string representation of an array of access modes.
-// modes, when present, are always in the same order: RWO,ROX,RWX.
-func GetAccessModesAsString(modes []v1.PersistentVolumeAccessMode) string {
- modes = removeDuplicateAccessModes(modes)
- modesStr := []string{}
- if containsAccessMode(modes, v1.ReadWriteOnce) {
- modesStr = append(modesStr, "RWO")
- }
- if containsAccessMode(modes, v1.ReadOnlyMany) {
- modesStr = append(modesStr, "ROX")
- }
- if containsAccessMode(modes, v1.ReadWriteMany) {
- modesStr = append(modesStr, "RWX")
- }
- return strings.Join(modesStr, ",")
-}
-
-// GetAccessModesAsString returns an array of AccessModes from a string created by GetAccessModesAsString
-func GetAccessModesFromString(modes string) []v1.PersistentVolumeAccessMode {
- strmodes := strings.Split(modes, ",")
- accessModes := []v1.PersistentVolumeAccessMode{}
- for _, s := range strmodes {
- s = strings.Trim(s, " ")
- switch {
- case s == "RWO":
- accessModes = append(accessModes, v1.ReadWriteOnce)
- case s == "ROX":
- accessModes = append(accessModes, v1.ReadOnlyMany)
- case s == "RWX":
- accessModes = append(accessModes, v1.ReadWriteMany)
- }
- }
- return accessModes
-}
-
-// removeDuplicateAccessModes returns an array of access modes without any duplicates
-func removeDuplicateAccessModes(modes []v1.PersistentVolumeAccessMode) []v1.PersistentVolumeAccessMode {
- accessModes := []v1.PersistentVolumeAccessMode{}
- for _, m := range modes {
- if !containsAccessMode(accessModes, m) {
- accessModes = append(accessModes, m)
- }
- }
- return accessModes
-}
-
-func containsAccessMode(modes []v1.PersistentVolumeAccessMode, mode v1.PersistentVolumeAccessMode) bool {
- for _, m := range modes {
- if m == mode {
- return true
- }
- }
- return false
-}
-
-// NodeSelectorRequirementsAsSelector converts the []NodeSelectorRequirement api type into a struct that implements
-// labels.Selector.
-func NodeSelectorRequirementsAsSelector(nsm []v1.NodeSelectorRequirement) (labels.Selector, error) {
- if len(nsm) == 0 {
- return labels.Nothing(), nil
- }
- selector := labels.NewSelector()
- for _, expr := range nsm {
- var op selection.Operator
- switch expr.Operator {
- case v1.NodeSelectorOpIn:
- op = selection.In
- case v1.NodeSelectorOpNotIn:
- op = selection.NotIn
- case v1.NodeSelectorOpExists:
- op = selection.Exists
- case v1.NodeSelectorOpDoesNotExist:
- op = selection.DoesNotExist
- case v1.NodeSelectorOpGt:
- op = selection.GreaterThan
- case v1.NodeSelectorOpLt:
- op = selection.LessThan
- default:
- return nil, fmt.Errorf("%q is not a valid node selector operator", expr.Operator)
- }
- r, err := labels.NewRequirement(expr.Key, op, expr.Values)
- if err != nil {
- return nil, err
- }
- selector = selector.Add(*r)
- }
- return selector, nil
-}
-
-// AddOrUpdateTolerationInPodSpec tries to add a toleration to the toleration list in PodSpec.
-// Returns true if something was updated, false otherwise.
-func AddOrUpdateTolerationInPodSpec(spec *v1.PodSpec, toleration *v1.Toleration) bool {
- podTolerations := spec.Tolerations
-
- var newTolerations []v1.Toleration
- updated := false
- for i := range podTolerations {
- if toleration.MatchToleration(&podTolerations[i]) {
- if helper.Semantic.DeepEqual(toleration, podTolerations[i]) {
- return false
- }
- newTolerations = append(newTolerations, *toleration)
- updated = true
- continue
- }
-
- newTolerations = append(newTolerations, podTolerations[i])
- }
-
- if !updated {
- newTolerations = append(newTolerations, *toleration)
- }
-
- spec.Tolerations = newTolerations
- return true
-}
-
-// AddOrUpdateTolerationInPod tries to add a toleration to the pod's toleration list.
-// Returns true if something was updated, false otherwise.
-func AddOrUpdateTolerationInPod(pod *v1.Pod, toleration *v1.Toleration) bool {
- return AddOrUpdateTolerationInPodSpec(&pod.Spec, toleration)
-}
-
-// TolerationsTolerateTaint checks if taint is tolerated by any of the tolerations.
-func TolerationsTolerateTaint(tolerations []v1.Toleration, taint *v1.Taint) bool {
- for i := range tolerations {
- if tolerations[i].ToleratesTaint(taint) {
- return true
- }
- }
- return false
-}
-
-type taintsFilterFunc func(*v1.Taint) bool
-
-// TolerationsTolerateTaintsWithFilter checks if given tolerations tolerates
-// all the taints that apply to the filter in given taint list.
-func TolerationsTolerateTaintsWithFilter(tolerations []v1.Toleration, taints []v1.Taint, applyFilter taintsFilterFunc) bool {
- if len(taints) == 0 {
- return true
- }
-
- for i := range taints {
- if applyFilter != nil && !applyFilter(&taints[i]) {
- continue
- }
-
- if !TolerationsTolerateTaint(tolerations, &taints[i]) {
- return false
- }
- }
-
- return true
-}
-
-// Returns true and list of Tolerations matching all Taints if all are tolerated, or false otherwise.
-func GetMatchingTolerations(taints []v1.Taint, tolerations []v1.Toleration) (bool, []v1.Toleration) {
- if len(taints) == 0 {
- return true, []v1.Toleration{}
- }
- if len(tolerations) == 0 && len(taints) > 0 {
- return false, []v1.Toleration{}
- }
- result := []v1.Toleration{}
- for i := range taints {
- tolerated := false
- for j := range tolerations {
- if tolerations[j].ToleratesTaint(&taints[i]) {
- result = append(result, tolerations[j])
- tolerated = true
- break
- }
- }
- if !tolerated {
- return false, []v1.Toleration{}
- }
- }
- return true, result
-}
-
-func GetAvoidPodsFromNodeAnnotations(annotations map[string]string) (v1.AvoidPods, error) {
- var avoidPods v1.AvoidPods
- if len(annotations) > 0 && annotations[v1.PreferAvoidPodsAnnotationKey] != "" {
- err := json.Unmarshal([]byte(annotations[v1.PreferAvoidPodsAnnotationKey]), &avoidPods)
- if err != nil {
- return avoidPods, err
- }
- }
- return avoidPods, nil
-}
-
-// SysctlsFromPodAnnotations parses the sysctl annotations into a slice of safe Sysctls
-// and a slice of unsafe Sysctls. This is only a convenience wrapper around
-// SysctlsFromPodAnnotation.
-func SysctlsFromPodAnnotations(a map[string]string) ([]v1.Sysctl, []v1.Sysctl, error) {
- safe, err := SysctlsFromPodAnnotation(a[v1.SysctlsPodAnnotationKey])
- if err != nil {
- return nil, nil, err
- }
- unsafe, err := SysctlsFromPodAnnotation(a[v1.UnsafeSysctlsPodAnnotationKey])
- if err != nil {
- return nil, nil, err
- }
-
- return safe, unsafe, nil
-}
-
-// SysctlsFromPodAnnotation parses an annotation value into a slice of Sysctls.
-func SysctlsFromPodAnnotation(annotation string) ([]v1.Sysctl, error) {
- if len(annotation) == 0 {
- return nil, nil
- }
-
- kvs := strings.Split(annotation, ",")
- sysctls := make([]v1.Sysctl, len(kvs))
- for i, kv := range kvs {
- cs := strings.Split(kv, "=")
- if len(cs) != 2 || len(cs[0]) == 0 {
- return nil, fmt.Errorf("sysctl %q not of the format sysctl_name=value", kv)
- }
- sysctls[i].Name = cs[0]
- sysctls[i].Value = cs[1]
- }
- return sysctls, nil
-}
-
-// PodAnnotationsFromSysctls creates an annotation value for a slice of Sysctls.
-func PodAnnotationsFromSysctls(sysctls []v1.Sysctl) string {
- if len(sysctls) == 0 {
- return ""
- }
-
- kvs := make([]string, len(sysctls))
- for i := range sysctls {
- kvs[i] = fmt.Sprintf("%s=%s", sysctls[i].Name, sysctls[i].Value)
- }
- return strings.Join(kvs, ",")
-}
-
-// GetPersistentVolumeClass returns StorageClassName.
-func GetPersistentVolumeClass(volume *v1.PersistentVolume) string {
- // Use beta annotation first
- if class, found := volume.Annotations[v1.BetaStorageClassAnnotation]; found {
- return class
- }
-
- return volume.Spec.StorageClassName
-}
-
-// GetPersistentVolumeClaimClass returns StorageClassName. If no storage class was
-// requested, it returns "".
-func GetPersistentVolumeClaimClass(claim *v1.PersistentVolumeClaim) string {
- // Use beta annotation first
- if class, found := claim.Annotations[v1.BetaStorageClassAnnotation]; found {
- return class
- }
-
- if claim.Spec.StorageClassName != nil {
- return *claim.Spec.StorageClassName
- }
-
- return ""
-}
-
-// GetStorageNodeAffinityFromAnnotation gets the json serialized data from PersistentVolume.Annotations
-// and converts it to the NodeAffinity type in api.
-// TODO: update when storage node affinity graduates to beta
-func GetStorageNodeAffinityFromAnnotation(annotations map[string]string) (*v1.NodeAffinity, error) {
- if len(annotations) > 0 && annotations[v1.AlphaStorageNodeAffinityAnnotation] != "" {
- var affinity v1.NodeAffinity
- err := json.Unmarshal([]byte(annotations[v1.AlphaStorageNodeAffinityAnnotation]), &affinity)
- if err != nil {
- return nil, err
- }
- return &affinity, nil
- }
- return nil, nil
-}
-
-// Converts NodeAffinity type to Alpha annotation for use in PersistentVolumes
-// TODO: update when storage node affinity graduates to beta
-func StorageNodeAffinityToAlphaAnnotation(annotations map[string]string, affinity *v1.NodeAffinity) error {
- if affinity == nil {
- return nil
- }
-
- json, err := json.Marshal(*affinity)
- if err != nil {
- return err
- }
- annotations[v1.AlphaStorageNodeAffinityAnnotation] = string(json)
- return nil
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/v1/register.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/register.go
deleted file mode 100644
index 79611beab..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/v1/register.go
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-Copyright 2017 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
-
-import (
- "k8s.io/api/core/v1"
- "k8s.io/apimachinery/pkg/runtime/schema"
-)
-
-var (
- localSchemeBuilder = &v1.SchemeBuilder
- AddToScheme = localSchemeBuilder.AddToScheme
-)
-
-func init() {
- // We only register manually written functions here. The registration of the
- // generated functions takes place in the generated files. The separation
- // makes the code compile even when the generated files are missing.
- localSchemeBuilder.Register(addDefaultingFuncs, addConversionFuncs, addFastPathConversionFuncs)
-}
-
-// TODO: remove these global varialbes
-// GroupName is the group name use in this package
-const GroupName = ""
-
-// SchemeGroupVersion is group version used to register these objects
-var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"}
-
-// Resource takes an unqualified resource and returns a Group qualified GroupResource
-func Resource(resource string) schema.GroupResource {
- return SchemeGroupVersion.WithResource(resource).GroupResource()
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/v1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/zz_generated.conversion.go
deleted file mode 100644
index 17773f26e..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/v1/zz_generated.conversion.go
+++ /dev/null
@@ -1,5686 +0,0 @@
-// +build !ignore_autogenerated
-
-/*
-Copyright 2018 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.
-*/
-
-// Code generated by conversion-gen. DO NOT EDIT.
-
-package v1
-
-import (
- unsafe "unsafe"
-
- v1 "k8s.io/api/core/v1"
- resource "k8s.io/apimachinery/pkg/api/resource"
- meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- conversion "k8s.io/apimachinery/pkg/conversion"
- runtime "k8s.io/apimachinery/pkg/runtime"
- types "k8s.io/apimachinery/pkg/types"
- core "k8s.io/kubernetes/pkg/apis/core"
-)
-
-func init() {
- localSchemeBuilder.Register(RegisterConversions)
-}
-
-// RegisterConversions adds conversion functions to the given scheme.
-// Public to allow building arbitrary schemes.
-func RegisterConversions(scheme *runtime.Scheme) error {
- return scheme.AddGeneratedConversionFuncs(
- Convert_v1_AWSElasticBlockStoreVolumeSource_To_core_AWSElasticBlockStoreVolumeSource,
- Convert_core_AWSElasticBlockStoreVolumeSource_To_v1_AWSElasticBlockStoreVolumeSource,
- Convert_v1_Affinity_To_core_Affinity,
- Convert_core_Affinity_To_v1_Affinity,
- Convert_v1_AttachedVolume_To_core_AttachedVolume,
- Convert_core_AttachedVolume_To_v1_AttachedVolume,
- Convert_v1_AvoidPods_To_core_AvoidPods,
- Convert_core_AvoidPods_To_v1_AvoidPods,
- Convert_v1_AzureDiskVolumeSource_To_core_AzureDiskVolumeSource,
- Convert_core_AzureDiskVolumeSource_To_v1_AzureDiskVolumeSource,
- Convert_v1_AzureFilePersistentVolumeSource_To_core_AzureFilePersistentVolumeSource,
- Convert_core_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource,
- Convert_v1_AzureFileVolumeSource_To_core_AzureFileVolumeSource,
- Convert_core_AzureFileVolumeSource_To_v1_AzureFileVolumeSource,
- Convert_v1_Binding_To_core_Binding,
- Convert_core_Binding_To_v1_Binding,
- Convert_v1_CSIPersistentVolumeSource_To_core_CSIPersistentVolumeSource,
- Convert_core_CSIPersistentVolumeSource_To_v1_CSIPersistentVolumeSource,
- Convert_v1_Capabilities_To_core_Capabilities,
- Convert_core_Capabilities_To_v1_Capabilities,
- Convert_v1_CephFSPersistentVolumeSource_To_core_CephFSPersistentVolumeSource,
- Convert_core_CephFSPersistentVolumeSource_To_v1_CephFSPersistentVolumeSource,
- Convert_v1_CephFSVolumeSource_To_core_CephFSVolumeSource,
- Convert_core_CephFSVolumeSource_To_v1_CephFSVolumeSource,
- Convert_v1_CinderVolumeSource_To_core_CinderVolumeSource,
- Convert_core_CinderVolumeSource_To_v1_CinderVolumeSource,
- Convert_v1_ClientIPConfig_To_core_ClientIPConfig,
- Convert_core_ClientIPConfig_To_v1_ClientIPConfig,
- Convert_v1_ComponentCondition_To_core_ComponentCondition,
- Convert_core_ComponentCondition_To_v1_ComponentCondition,
- Convert_v1_ComponentStatus_To_core_ComponentStatus,
- Convert_core_ComponentStatus_To_v1_ComponentStatus,
- Convert_v1_ComponentStatusList_To_core_ComponentStatusList,
- Convert_core_ComponentStatusList_To_v1_ComponentStatusList,
- Convert_v1_ConfigMap_To_core_ConfigMap,
- Convert_core_ConfigMap_To_v1_ConfigMap,
- Convert_v1_ConfigMapEnvSource_To_core_ConfigMapEnvSource,
- Convert_core_ConfigMapEnvSource_To_v1_ConfigMapEnvSource,
- Convert_v1_ConfigMapKeySelector_To_core_ConfigMapKeySelector,
- Convert_core_ConfigMapKeySelector_To_v1_ConfigMapKeySelector,
- Convert_v1_ConfigMapList_To_core_ConfigMapList,
- Convert_core_ConfigMapList_To_v1_ConfigMapList,
- Convert_v1_ConfigMapProjection_To_core_ConfigMapProjection,
- Convert_core_ConfigMapProjection_To_v1_ConfigMapProjection,
- Convert_v1_ConfigMapVolumeSource_To_core_ConfigMapVolumeSource,
- Convert_core_ConfigMapVolumeSource_To_v1_ConfigMapVolumeSource,
- Convert_v1_Container_To_core_Container,
- Convert_core_Container_To_v1_Container,
- Convert_v1_ContainerImage_To_core_ContainerImage,
- Convert_core_ContainerImage_To_v1_ContainerImage,
- Convert_v1_ContainerPort_To_core_ContainerPort,
- Convert_core_ContainerPort_To_v1_ContainerPort,
- Convert_v1_ContainerState_To_core_ContainerState,
- Convert_core_ContainerState_To_v1_ContainerState,
- Convert_v1_ContainerStateRunning_To_core_ContainerStateRunning,
- Convert_core_ContainerStateRunning_To_v1_ContainerStateRunning,
- Convert_v1_ContainerStateTerminated_To_core_ContainerStateTerminated,
- Convert_core_ContainerStateTerminated_To_v1_ContainerStateTerminated,
- Convert_v1_ContainerStateWaiting_To_core_ContainerStateWaiting,
- Convert_core_ContainerStateWaiting_To_v1_ContainerStateWaiting,
- Convert_v1_ContainerStatus_To_core_ContainerStatus,
- Convert_core_ContainerStatus_To_v1_ContainerStatus,
- Convert_v1_DaemonEndpoint_To_core_DaemonEndpoint,
- Convert_core_DaemonEndpoint_To_v1_DaemonEndpoint,
- Convert_v1_DeleteOptions_To_core_DeleteOptions,
- Convert_core_DeleteOptions_To_v1_DeleteOptions,
- Convert_v1_DownwardAPIProjection_To_core_DownwardAPIProjection,
- Convert_core_DownwardAPIProjection_To_v1_DownwardAPIProjection,
- Convert_v1_DownwardAPIVolumeFile_To_core_DownwardAPIVolumeFile,
- Convert_core_DownwardAPIVolumeFile_To_v1_DownwardAPIVolumeFile,
- Convert_v1_DownwardAPIVolumeSource_To_core_DownwardAPIVolumeSource,
- Convert_core_DownwardAPIVolumeSource_To_v1_DownwardAPIVolumeSource,
- Convert_v1_EmptyDirVolumeSource_To_core_EmptyDirVolumeSource,
- Convert_core_EmptyDirVolumeSource_To_v1_EmptyDirVolumeSource,
- Convert_v1_EndpointAddress_To_core_EndpointAddress,
- Convert_core_EndpointAddress_To_v1_EndpointAddress,
- Convert_v1_EndpointPort_To_core_EndpointPort,
- Convert_core_EndpointPort_To_v1_EndpointPort,
- Convert_v1_EndpointSubset_To_core_EndpointSubset,
- Convert_core_EndpointSubset_To_v1_EndpointSubset,
- Convert_v1_Endpoints_To_core_Endpoints,
- Convert_core_Endpoints_To_v1_Endpoints,
- Convert_v1_EndpointsList_To_core_EndpointsList,
- Convert_core_EndpointsList_To_v1_EndpointsList,
- Convert_v1_EnvFromSource_To_core_EnvFromSource,
- Convert_core_EnvFromSource_To_v1_EnvFromSource,
- Convert_v1_EnvVar_To_core_EnvVar,
- Convert_core_EnvVar_To_v1_EnvVar,
- Convert_v1_EnvVarSource_To_core_EnvVarSource,
- Convert_core_EnvVarSource_To_v1_EnvVarSource,
- Convert_v1_Event_To_core_Event,
- Convert_core_Event_To_v1_Event,
- Convert_v1_EventList_To_core_EventList,
- Convert_core_EventList_To_v1_EventList,
- Convert_v1_EventSeries_To_core_EventSeries,
- Convert_core_EventSeries_To_v1_EventSeries,
- Convert_v1_EventSource_To_core_EventSource,
- Convert_core_EventSource_To_v1_EventSource,
- Convert_v1_ExecAction_To_core_ExecAction,
- Convert_core_ExecAction_To_v1_ExecAction,
- Convert_v1_FCVolumeSource_To_core_FCVolumeSource,
- Convert_core_FCVolumeSource_To_v1_FCVolumeSource,
- Convert_v1_FlexPersistentVolumeSource_To_core_FlexPersistentVolumeSource,
- Convert_core_FlexPersistentVolumeSource_To_v1_FlexPersistentVolumeSource,
- Convert_v1_FlexVolumeSource_To_core_FlexVolumeSource,
- Convert_core_FlexVolumeSource_To_v1_FlexVolumeSource,
- Convert_v1_FlockerVolumeSource_To_core_FlockerVolumeSource,
- Convert_core_FlockerVolumeSource_To_v1_FlockerVolumeSource,
- Convert_v1_GCEPersistentDiskVolumeSource_To_core_GCEPersistentDiskVolumeSource,
- Convert_core_GCEPersistentDiskVolumeSource_To_v1_GCEPersistentDiskVolumeSource,
- Convert_v1_GitRepoVolumeSource_To_core_GitRepoVolumeSource,
- Convert_core_GitRepoVolumeSource_To_v1_GitRepoVolumeSource,
- Convert_v1_GlusterfsVolumeSource_To_core_GlusterfsVolumeSource,
- Convert_core_GlusterfsVolumeSource_To_v1_GlusterfsVolumeSource,
- Convert_v1_HTTPGetAction_To_core_HTTPGetAction,
- Convert_core_HTTPGetAction_To_v1_HTTPGetAction,
- Convert_v1_HTTPHeader_To_core_HTTPHeader,
- Convert_core_HTTPHeader_To_v1_HTTPHeader,
- Convert_v1_Handler_To_core_Handler,
- Convert_core_Handler_To_v1_Handler,
- Convert_v1_HostAlias_To_core_HostAlias,
- Convert_core_HostAlias_To_v1_HostAlias,
- Convert_v1_HostPathVolumeSource_To_core_HostPathVolumeSource,
- Convert_core_HostPathVolumeSource_To_v1_HostPathVolumeSource,
- Convert_v1_ISCSIPersistentVolumeSource_To_core_ISCSIPersistentVolumeSource,
- Convert_core_ISCSIPersistentVolumeSource_To_v1_ISCSIPersistentVolumeSource,
- Convert_v1_ISCSIVolumeSource_To_core_ISCSIVolumeSource,
- Convert_core_ISCSIVolumeSource_To_v1_ISCSIVolumeSource,
- Convert_v1_KeyToPath_To_core_KeyToPath,
- Convert_core_KeyToPath_To_v1_KeyToPath,
- Convert_v1_Lifecycle_To_core_Lifecycle,
- Convert_core_Lifecycle_To_v1_Lifecycle,
- Convert_v1_LimitRange_To_core_LimitRange,
- Convert_core_LimitRange_To_v1_LimitRange,
- Convert_v1_LimitRangeItem_To_core_LimitRangeItem,
- Convert_core_LimitRangeItem_To_v1_LimitRangeItem,
- Convert_v1_LimitRangeList_To_core_LimitRangeList,
- Convert_core_LimitRangeList_To_v1_LimitRangeList,
- Convert_v1_LimitRangeSpec_To_core_LimitRangeSpec,
- Convert_core_LimitRangeSpec_To_v1_LimitRangeSpec,
- Convert_v1_List_To_core_List,
- Convert_core_List_To_v1_List,
- Convert_v1_ListOptions_To_core_ListOptions,
- Convert_core_ListOptions_To_v1_ListOptions,
- Convert_v1_LoadBalancerIngress_To_core_LoadBalancerIngress,
- Convert_core_LoadBalancerIngress_To_v1_LoadBalancerIngress,
- Convert_v1_LoadBalancerStatus_To_core_LoadBalancerStatus,
- Convert_core_LoadBalancerStatus_To_v1_LoadBalancerStatus,
- Convert_v1_LocalObjectReference_To_core_LocalObjectReference,
- Convert_core_LocalObjectReference_To_v1_LocalObjectReference,
- Convert_v1_LocalVolumeSource_To_core_LocalVolumeSource,
- Convert_core_LocalVolumeSource_To_v1_LocalVolumeSource,
- Convert_v1_NFSVolumeSource_To_core_NFSVolumeSource,
- Convert_core_NFSVolumeSource_To_v1_NFSVolumeSource,
- Convert_v1_Namespace_To_core_Namespace,
- Convert_core_Namespace_To_v1_Namespace,
- Convert_v1_NamespaceList_To_core_NamespaceList,
- Convert_core_NamespaceList_To_v1_NamespaceList,
- Convert_v1_NamespaceSpec_To_core_NamespaceSpec,
- Convert_core_NamespaceSpec_To_v1_NamespaceSpec,
- Convert_v1_NamespaceStatus_To_core_NamespaceStatus,
- Convert_core_NamespaceStatus_To_v1_NamespaceStatus,
- Convert_v1_Node_To_core_Node,
- Convert_core_Node_To_v1_Node,
- Convert_v1_NodeAddress_To_core_NodeAddress,
- Convert_core_NodeAddress_To_v1_NodeAddress,
- Convert_v1_NodeAffinity_To_core_NodeAffinity,
- Convert_core_NodeAffinity_To_v1_NodeAffinity,
- Convert_v1_NodeCondition_To_core_NodeCondition,
- Convert_core_NodeCondition_To_v1_NodeCondition,
- Convert_v1_NodeConfigSource_To_core_NodeConfigSource,
- Convert_core_NodeConfigSource_To_v1_NodeConfigSource,
- Convert_v1_NodeDaemonEndpoints_To_core_NodeDaemonEndpoints,
- Convert_core_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints,
- Convert_v1_NodeList_To_core_NodeList,
- Convert_core_NodeList_To_v1_NodeList,
- Convert_v1_NodeProxyOptions_To_core_NodeProxyOptions,
- Convert_core_NodeProxyOptions_To_v1_NodeProxyOptions,
- Convert_v1_NodeResources_To_core_NodeResources,
- Convert_core_NodeResources_To_v1_NodeResources,
- Convert_v1_NodeSelector_To_core_NodeSelector,
- Convert_core_NodeSelector_To_v1_NodeSelector,
- Convert_v1_NodeSelectorRequirement_To_core_NodeSelectorRequirement,
- Convert_core_NodeSelectorRequirement_To_v1_NodeSelectorRequirement,
- Convert_v1_NodeSelectorTerm_To_core_NodeSelectorTerm,
- Convert_core_NodeSelectorTerm_To_v1_NodeSelectorTerm,
- Convert_v1_NodeSpec_To_core_NodeSpec,
- Convert_core_NodeSpec_To_v1_NodeSpec,
- Convert_v1_NodeStatus_To_core_NodeStatus,
- Convert_core_NodeStatus_To_v1_NodeStatus,
- Convert_v1_NodeSystemInfo_To_core_NodeSystemInfo,
- Convert_core_NodeSystemInfo_To_v1_NodeSystemInfo,
- Convert_v1_ObjectFieldSelector_To_core_ObjectFieldSelector,
- Convert_core_ObjectFieldSelector_To_v1_ObjectFieldSelector,
- Convert_v1_ObjectMeta_To_core_ObjectMeta,
- Convert_core_ObjectMeta_To_v1_ObjectMeta,
- Convert_v1_ObjectReference_To_core_ObjectReference,
- Convert_core_ObjectReference_To_v1_ObjectReference,
- Convert_v1_PersistentVolume_To_core_PersistentVolume,
- Convert_core_PersistentVolume_To_v1_PersistentVolume,
- Convert_v1_PersistentVolumeClaim_To_core_PersistentVolumeClaim,
- Convert_core_PersistentVolumeClaim_To_v1_PersistentVolumeClaim,
- Convert_v1_PersistentVolumeClaimCondition_To_core_PersistentVolumeClaimCondition,
- Convert_core_PersistentVolumeClaimCondition_To_v1_PersistentVolumeClaimCondition,
- Convert_v1_PersistentVolumeClaimList_To_core_PersistentVolumeClaimList,
- Convert_core_PersistentVolumeClaimList_To_v1_PersistentVolumeClaimList,
- Convert_v1_PersistentVolumeClaimSpec_To_core_PersistentVolumeClaimSpec,
- Convert_core_PersistentVolumeClaimSpec_To_v1_PersistentVolumeClaimSpec,
- Convert_v1_PersistentVolumeClaimStatus_To_core_PersistentVolumeClaimStatus,
- Convert_core_PersistentVolumeClaimStatus_To_v1_PersistentVolumeClaimStatus,
- Convert_v1_PersistentVolumeClaimVolumeSource_To_core_PersistentVolumeClaimVolumeSource,
- Convert_core_PersistentVolumeClaimVolumeSource_To_v1_PersistentVolumeClaimVolumeSource,
- Convert_v1_PersistentVolumeList_To_core_PersistentVolumeList,
- Convert_core_PersistentVolumeList_To_v1_PersistentVolumeList,
- Convert_v1_PersistentVolumeSource_To_core_PersistentVolumeSource,
- Convert_core_PersistentVolumeSource_To_v1_PersistentVolumeSource,
- Convert_v1_PersistentVolumeSpec_To_core_PersistentVolumeSpec,
- Convert_core_PersistentVolumeSpec_To_v1_PersistentVolumeSpec,
- Convert_v1_PersistentVolumeStatus_To_core_PersistentVolumeStatus,
- Convert_core_PersistentVolumeStatus_To_v1_PersistentVolumeStatus,
- Convert_v1_PhotonPersistentDiskVolumeSource_To_core_PhotonPersistentDiskVolumeSource,
- Convert_core_PhotonPersistentDiskVolumeSource_To_v1_PhotonPersistentDiskVolumeSource,
- Convert_v1_Pod_To_core_Pod,
- Convert_core_Pod_To_v1_Pod,
- Convert_v1_PodAffinity_To_core_PodAffinity,
- Convert_core_PodAffinity_To_v1_PodAffinity,
- Convert_v1_PodAffinityTerm_To_core_PodAffinityTerm,
- Convert_core_PodAffinityTerm_To_v1_PodAffinityTerm,
- Convert_v1_PodAntiAffinity_To_core_PodAntiAffinity,
- Convert_core_PodAntiAffinity_To_v1_PodAntiAffinity,
- Convert_v1_PodAttachOptions_To_core_PodAttachOptions,
- Convert_core_PodAttachOptions_To_v1_PodAttachOptions,
- Convert_v1_PodCondition_To_core_PodCondition,
- Convert_core_PodCondition_To_v1_PodCondition,
- Convert_v1_PodDNSConfig_To_core_PodDNSConfig,
- Convert_core_PodDNSConfig_To_v1_PodDNSConfig,
- Convert_v1_PodDNSConfigOption_To_core_PodDNSConfigOption,
- Convert_core_PodDNSConfigOption_To_v1_PodDNSConfigOption,
- Convert_v1_PodExecOptions_To_core_PodExecOptions,
- Convert_core_PodExecOptions_To_v1_PodExecOptions,
- Convert_v1_PodList_To_core_PodList,
- Convert_core_PodList_To_v1_PodList,
- Convert_v1_PodLogOptions_To_core_PodLogOptions,
- Convert_core_PodLogOptions_To_v1_PodLogOptions,
- Convert_v1_PodPortForwardOptions_To_core_PodPortForwardOptions,
- Convert_core_PodPortForwardOptions_To_v1_PodPortForwardOptions,
- Convert_v1_PodProxyOptions_To_core_PodProxyOptions,
- Convert_core_PodProxyOptions_To_v1_PodProxyOptions,
- Convert_v1_PodSecurityContext_To_core_PodSecurityContext,
- Convert_core_PodSecurityContext_To_v1_PodSecurityContext,
- Convert_v1_PodSignature_To_core_PodSignature,
- Convert_core_PodSignature_To_v1_PodSignature,
- Convert_v1_PodSpec_To_core_PodSpec,
- Convert_core_PodSpec_To_v1_PodSpec,
- Convert_v1_PodStatus_To_core_PodStatus,
- Convert_core_PodStatus_To_v1_PodStatus,
- Convert_v1_PodStatusResult_To_core_PodStatusResult,
- Convert_core_PodStatusResult_To_v1_PodStatusResult,
- Convert_v1_PodTemplate_To_core_PodTemplate,
- Convert_core_PodTemplate_To_v1_PodTemplate,
- Convert_v1_PodTemplateList_To_core_PodTemplateList,
- Convert_core_PodTemplateList_To_v1_PodTemplateList,
- Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec,
- Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec,
- Convert_v1_PortworxVolumeSource_To_core_PortworxVolumeSource,
- Convert_core_PortworxVolumeSource_To_v1_PortworxVolumeSource,
- Convert_v1_Preconditions_To_core_Preconditions,
- Convert_core_Preconditions_To_v1_Preconditions,
- Convert_v1_PreferAvoidPodsEntry_To_core_PreferAvoidPodsEntry,
- Convert_core_PreferAvoidPodsEntry_To_v1_PreferAvoidPodsEntry,
- Convert_v1_PreferredSchedulingTerm_To_core_PreferredSchedulingTerm,
- Convert_core_PreferredSchedulingTerm_To_v1_PreferredSchedulingTerm,
- Convert_v1_Probe_To_core_Probe,
- Convert_core_Probe_To_v1_Probe,
- Convert_v1_ProjectedVolumeSource_To_core_ProjectedVolumeSource,
- Convert_core_ProjectedVolumeSource_To_v1_ProjectedVolumeSource,
- Convert_v1_QuobyteVolumeSource_To_core_QuobyteVolumeSource,
- Convert_core_QuobyteVolumeSource_To_v1_QuobyteVolumeSource,
- Convert_v1_RBDPersistentVolumeSource_To_core_RBDPersistentVolumeSource,
- Convert_core_RBDPersistentVolumeSource_To_v1_RBDPersistentVolumeSource,
- Convert_v1_RBDVolumeSource_To_core_RBDVolumeSource,
- Convert_core_RBDVolumeSource_To_v1_RBDVolumeSource,
- Convert_v1_RangeAllocation_To_core_RangeAllocation,
- Convert_core_RangeAllocation_To_v1_RangeAllocation,
- Convert_v1_ReplicationController_To_core_ReplicationController,
- Convert_core_ReplicationController_To_v1_ReplicationController,
- Convert_v1_ReplicationControllerCondition_To_core_ReplicationControllerCondition,
- Convert_core_ReplicationControllerCondition_To_v1_ReplicationControllerCondition,
- Convert_v1_ReplicationControllerList_To_core_ReplicationControllerList,
- Convert_core_ReplicationControllerList_To_v1_ReplicationControllerList,
- Convert_v1_ReplicationControllerSpec_To_core_ReplicationControllerSpec,
- Convert_core_ReplicationControllerSpec_To_v1_ReplicationControllerSpec,
- Convert_v1_ReplicationControllerStatus_To_core_ReplicationControllerStatus,
- Convert_core_ReplicationControllerStatus_To_v1_ReplicationControllerStatus,
- Convert_v1_ResourceFieldSelector_To_core_ResourceFieldSelector,
- Convert_core_ResourceFieldSelector_To_v1_ResourceFieldSelector,
- Convert_v1_ResourceQuota_To_core_ResourceQuota,
- Convert_core_ResourceQuota_To_v1_ResourceQuota,
- Convert_v1_ResourceQuotaList_To_core_ResourceQuotaList,
- Convert_core_ResourceQuotaList_To_v1_ResourceQuotaList,
- Convert_v1_ResourceQuotaSpec_To_core_ResourceQuotaSpec,
- Convert_core_ResourceQuotaSpec_To_v1_ResourceQuotaSpec,
- Convert_v1_ResourceQuotaStatus_To_core_ResourceQuotaStatus,
- Convert_core_ResourceQuotaStatus_To_v1_ResourceQuotaStatus,
- Convert_v1_ResourceRequirements_To_core_ResourceRequirements,
- Convert_core_ResourceRequirements_To_v1_ResourceRequirements,
- Convert_v1_SELinuxOptions_To_core_SELinuxOptions,
- Convert_core_SELinuxOptions_To_v1_SELinuxOptions,
- Convert_v1_ScaleIOPersistentVolumeSource_To_core_ScaleIOPersistentVolumeSource,
- Convert_core_ScaleIOPersistentVolumeSource_To_v1_ScaleIOPersistentVolumeSource,
- Convert_v1_ScaleIOVolumeSource_To_core_ScaleIOVolumeSource,
- Convert_core_ScaleIOVolumeSource_To_v1_ScaleIOVolumeSource,
- Convert_v1_Secret_To_core_Secret,
- Convert_core_Secret_To_v1_Secret,
- Convert_v1_SecretEnvSource_To_core_SecretEnvSource,
- Convert_core_SecretEnvSource_To_v1_SecretEnvSource,
- Convert_v1_SecretKeySelector_To_core_SecretKeySelector,
- Convert_core_SecretKeySelector_To_v1_SecretKeySelector,
- Convert_v1_SecretList_To_core_SecretList,
- Convert_core_SecretList_To_v1_SecretList,
- Convert_v1_SecretProjection_To_core_SecretProjection,
- Convert_core_SecretProjection_To_v1_SecretProjection,
- Convert_v1_SecretReference_To_core_SecretReference,
- Convert_core_SecretReference_To_v1_SecretReference,
- Convert_v1_SecretVolumeSource_To_core_SecretVolumeSource,
- Convert_core_SecretVolumeSource_To_v1_SecretVolumeSource,
- Convert_v1_SecurityContext_To_core_SecurityContext,
- Convert_core_SecurityContext_To_v1_SecurityContext,
- Convert_v1_SerializedReference_To_core_SerializedReference,
- Convert_core_SerializedReference_To_v1_SerializedReference,
- Convert_v1_Service_To_core_Service,
- Convert_core_Service_To_v1_Service,
- Convert_v1_ServiceAccount_To_core_ServiceAccount,
- Convert_core_ServiceAccount_To_v1_ServiceAccount,
- Convert_v1_ServiceAccountList_To_core_ServiceAccountList,
- Convert_core_ServiceAccountList_To_v1_ServiceAccountList,
- Convert_v1_ServiceList_To_core_ServiceList,
- Convert_core_ServiceList_To_v1_ServiceList,
- Convert_v1_ServicePort_To_core_ServicePort,
- Convert_core_ServicePort_To_v1_ServicePort,
- Convert_v1_ServiceProxyOptions_To_core_ServiceProxyOptions,
- Convert_core_ServiceProxyOptions_To_v1_ServiceProxyOptions,
- Convert_v1_ServiceSpec_To_core_ServiceSpec,
- Convert_core_ServiceSpec_To_v1_ServiceSpec,
- Convert_v1_ServiceStatus_To_core_ServiceStatus,
- Convert_core_ServiceStatus_To_v1_ServiceStatus,
- Convert_v1_SessionAffinityConfig_To_core_SessionAffinityConfig,
- Convert_core_SessionAffinityConfig_To_v1_SessionAffinityConfig,
- Convert_v1_StorageOSPersistentVolumeSource_To_core_StorageOSPersistentVolumeSource,
- Convert_core_StorageOSPersistentVolumeSource_To_v1_StorageOSPersistentVolumeSource,
- Convert_v1_StorageOSVolumeSource_To_core_StorageOSVolumeSource,
- Convert_core_StorageOSVolumeSource_To_v1_StorageOSVolumeSource,
- Convert_v1_Sysctl_To_core_Sysctl,
- Convert_core_Sysctl_To_v1_Sysctl,
- Convert_v1_TCPSocketAction_To_core_TCPSocketAction,
- Convert_core_TCPSocketAction_To_v1_TCPSocketAction,
- Convert_v1_Taint_To_core_Taint,
- Convert_core_Taint_To_v1_Taint,
- Convert_v1_Toleration_To_core_Toleration,
- Convert_core_Toleration_To_v1_Toleration,
- Convert_v1_Volume_To_core_Volume,
- Convert_core_Volume_To_v1_Volume,
- Convert_v1_VolumeDevice_To_core_VolumeDevice,
- Convert_core_VolumeDevice_To_v1_VolumeDevice,
- Convert_v1_VolumeMount_To_core_VolumeMount,
- Convert_core_VolumeMount_To_v1_VolumeMount,
- Convert_v1_VolumeNodeAffinity_To_core_VolumeNodeAffinity,
- Convert_core_VolumeNodeAffinity_To_v1_VolumeNodeAffinity,
- Convert_v1_VolumeProjection_To_core_VolumeProjection,
- Convert_core_VolumeProjection_To_v1_VolumeProjection,
- Convert_v1_VolumeSource_To_core_VolumeSource,
- Convert_core_VolumeSource_To_v1_VolumeSource,
- Convert_v1_VsphereVirtualDiskVolumeSource_To_core_VsphereVirtualDiskVolumeSource,
- Convert_core_VsphereVirtualDiskVolumeSource_To_v1_VsphereVirtualDiskVolumeSource,
- Convert_v1_WeightedPodAffinityTerm_To_core_WeightedPodAffinityTerm,
- Convert_core_WeightedPodAffinityTerm_To_v1_WeightedPodAffinityTerm,
- )
-}
-
-func autoConvert_v1_AWSElasticBlockStoreVolumeSource_To_core_AWSElasticBlockStoreVolumeSource(in *v1.AWSElasticBlockStoreVolumeSource, out *core.AWSElasticBlockStoreVolumeSource, s conversion.Scope) error {
- out.VolumeID = in.VolumeID
- out.FSType = in.FSType
- out.Partition = in.Partition
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_v1_AWSElasticBlockStoreVolumeSource_To_core_AWSElasticBlockStoreVolumeSource is an autogenerated conversion function.
-func Convert_v1_AWSElasticBlockStoreVolumeSource_To_core_AWSElasticBlockStoreVolumeSource(in *v1.AWSElasticBlockStoreVolumeSource, out *core.AWSElasticBlockStoreVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_AWSElasticBlockStoreVolumeSource_To_core_AWSElasticBlockStoreVolumeSource(in, out, s)
-}
-
-func autoConvert_core_AWSElasticBlockStoreVolumeSource_To_v1_AWSElasticBlockStoreVolumeSource(in *core.AWSElasticBlockStoreVolumeSource, out *v1.AWSElasticBlockStoreVolumeSource, s conversion.Scope) error {
- out.VolumeID = in.VolumeID
- out.FSType = in.FSType
- out.Partition = in.Partition
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_core_AWSElasticBlockStoreVolumeSource_To_v1_AWSElasticBlockStoreVolumeSource is an autogenerated conversion function.
-func Convert_core_AWSElasticBlockStoreVolumeSource_To_v1_AWSElasticBlockStoreVolumeSource(in *core.AWSElasticBlockStoreVolumeSource, out *v1.AWSElasticBlockStoreVolumeSource, s conversion.Scope) error {
- return autoConvert_core_AWSElasticBlockStoreVolumeSource_To_v1_AWSElasticBlockStoreVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_Affinity_To_core_Affinity(in *v1.Affinity, out *core.Affinity, s conversion.Scope) error {
- out.NodeAffinity = (*core.NodeAffinity)(unsafe.Pointer(in.NodeAffinity))
- out.PodAffinity = (*core.PodAffinity)(unsafe.Pointer(in.PodAffinity))
- out.PodAntiAffinity = (*core.PodAntiAffinity)(unsafe.Pointer(in.PodAntiAffinity))
- return nil
-}
-
-// Convert_v1_Affinity_To_core_Affinity is an autogenerated conversion function.
-func Convert_v1_Affinity_To_core_Affinity(in *v1.Affinity, out *core.Affinity, s conversion.Scope) error {
- return autoConvert_v1_Affinity_To_core_Affinity(in, out, s)
-}
-
-func autoConvert_core_Affinity_To_v1_Affinity(in *core.Affinity, out *v1.Affinity, s conversion.Scope) error {
- out.NodeAffinity = (*v1.NodeAffinity)(unsafe.Pointer(in.NodeAffinity))
- out.PodAffinity = (*v1.PodAffinity)(unsafe.Pointer(in.PodAffinity))
- out.PodAntiAffinity = (*v1.PodAntiAffinity)(unsafe.Pointer(in.PodAntiAffinity))
- return nil
-}
-
-// Convert_core_Affinity_To_v1_Affinity is an autogenerated conversion function.
-func Convert_core_Affinity_To_v1_Affinity(in *core.Affinity, out *v1.Affinity, s conversion.Scope) error {
- return autoConvert_core_Affinity_To_v1_Affinity(in, out, s)
-}
-
-func autoConvert_v1_AttachedVolume_To_core_AttachedVolume(in *v1.AttachedVolume, out *core.AttachedVolume, s conversion.Scope) error {
- out.Name = core.UniqueVolumeName(in.Name)
- out.DevicePath = in.DevicePath
- return nil
-}
-
-// Convert_v1_AttachedVolume_To_core_AttachedVolume is an autogenerated conversion function.
-func Convert_v1_AttachedVolume_To_core_AttachedVolume(in *v1.AttachedVolume, out *core.AttachedVolume, s conversion.Scope) error {
- return autoConvert_v1_AttachedVolume_To_core_AttachedVolume(in, out, s)
-}
-
-func autoConvert_core_AttachedVolume_To_v1_AttachedVolume(in *core.AttachedVolume, out *v1.AttachedVolume, s conversion.Scope) error {
- out.Name = v1.UniqueVolumeName(in.Name)
- out.DevicePath = in.DevicePath
- return nil
-}
-
-// Convert_core_AttachedVolume_To_v1_AttachedVolume is an autogenerated conversion function.
-func Convert_core_AttachedVolume_To_v1_AttachedVolume(in *core.AttachedVolume, out *v1.AttachedVolume, s conversion.Scope) error {
- return autoConvert_core_AttachedVolume_To_v1_AttachedVolume(in, out, s)
-}
-
-func autoConvert_v1_AvoidPods_To_core_AvoidPods(in *v1.AvoidPods, out *core.AvoidPods, s conversion.Scope) error {
- out.PreferAvoidPods = *(*[]core.PreferAvoidPodsEntry)(unsafe.Pointer(&in.PreferAvoidPods))
- return nil
-}
-
-// Convert_v1_AvoidPods_To_core_AvoidPods is an autogenerated conversion function.
-func Convert_v1_AvoidPods_To_core_AvoidPods(in *v1.AvoidPods, out *core.AvoidPods, s conversion.Scope) error {
- return autoConvert_v1_AvoidPods_To_core_AvoidPods(in, out, s)
-}
-
-func autoConvert_core_AvoidPods_To_v1_AvoidPods(in *core.AvoidPods, out *v1.AvoidPods, s conversion.Scope) error {
- out.PreferAvoidPods = *(*[]v1.PreferAvoidPodsEntry)(unsafe.Pointer(&in.PreferAvoidPods))
- return nil
-}
-
-// Convert_core_AvoidPods_To_v1_AvoidPods is an autogenerated conversion function.
-func Convert_core_AvoidPods_To_v1_AvoidPods(in *core.AvoidPods, out *v1.AvoidPods, s conversion.Scope) error {
- return autoConvert_core_AvoidPods_To_v1_AvoidPods(in, out, s)
-}
-
-func autoConvert_v1_AzureDiskVolumeSource_To_core_AzureDiskVolumeSource(in *v1.AzureDiskVolumeSource, out *core.AzureDiskVolumeSource, s conversion.Scope) error {
- out.DiskName = in.DiskName
- out.DataDiskURI = in.DataDiskURI
- out.CachingMode = (*core.AzureDataDiskCachingMode)(unsafe.Pointer(in.CachingMode))
- out.FSType = (*string)(unsafe.Pointer(in.FSType))
- out.ReadOnly = (*bool)(unsafe.Pointer(in.ReadOnly))
- out.Kind = (*core.AzureDataDiskKind)(unsafe.Pointer(in.Kind))
- return nil
-}
-
-// Convert_v1_AzureDiskVolumeSource_To_core_AzureDiskVolumeSource is an autogenerated conversion function.
-func Convert_v1_AzureDiskVolumeSource_To_core_AzureDiskVolumeSource(in *v1.AzureDiskVolumeSource, out *core.AzureDiskVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_AzureDiskVolumeSource_To_core_AzureDiskVolumeSource(in, out, s)
-}
-
-func autoConvert_core_AzureDiskVolumeSource_To_v1_AzureDiskVolumeSource(in *core.AzureDiskVolumeSource, out *v1.AzureDiskVolumeSource, s conversion.Scope) error {
- out.DiskName = in.DiskName
- out.DataDiskURI = in.DataDiskURI
- out.CachingMode = (*v1.AzureDataDiskCachingMode)(unsafe.Pointer(in.CachingMode))
- out.FSType = (*string)(unsafe.Pointer(in.FSType))
- out.ReadOnly = (*bool)(unsafe.Pointer(in.ReadOnly))
- out.Kind = (*v1.AzureDataDiskKind)(unsafe.Pointer(in.Kind))
- return nil
-}
-
-// Convert_core_AzureDiskVolumeSource_To_v1_AzureDiskVolumeSource is an autogenerated conversion function.
-func Convert_core_AzureDiskVolumeSource_To_v1_AzureDiskVolumeSource(in *core.AzureDiskVolumeSource, out *v1.AzureDiskVolumeSource, s conversion.Scope) error {
- return autoConvert_core_AzureDiskVolumeSource_To_v1_AzureDiskVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_AzureFilePersistentVolumeSource_To_core_AzureFilePersistentVolumeSource(in *v1.AzureFilePersistentVolumeSource, out *core.AzureFilePersistentVolumeSource, s conversion.Scope) error {
- out.SecretName = in.SecretName
- out.ShareName = in.ShareName
- out.ReadOnly = in.ReadOnly
- out.SecretNamespace = (*string)(unsafe.Pointer(in.SecretNamespace))
- return nil
-}
-
-// Convert_v1_AzureFilePersistentVolumeSource_To_core_AzureFilePersistentVolumeSource is an autogenerated conversion function.
-func Convert_v1_AzureFilePersistentVolumeSource_To_core_AzureFilePersistentVolumeSource(in *v1.AzureFilePersistentVolumeSource, out *core.AzureFilePersistentVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_AzureFilePersistentVolumeSource_To_core_AzureFilePersistentVolumeSource(in, out, s)
-}
-
-func autoConvert_core_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource(in *core.AzureFilePersistentVolumeSource, out *v1.AzureFilePersistentVolumeSource, s conversion.Scope) error {
- out.SecretName = in.SecretName
- out.ShareName = in.ShareName
- out.ReadOnly = in.ReadOnly
- out.SecretNamespace = (*string)(unsafe.Pointer(in.SecretNamespace))
- return nil
-}
-
-// Convert_core_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource is an autogenerated conversion function.
-func Convert_core_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource(in *core.AzureFilePersistentVolumeSource, out *v1.AzureFilePersistentVolumeSource, s conversion.Scope) error {
- return autoConvert_core_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_AzureFileVolumeSource_To_core_AzureFileVolumeSource(in *v1.AzureFileVolumeSource, out *core.AzureFileVolumeSource, s conversion.Scope) error {
- out.SecretName = in.SecretName
- out.ShareName = in.ShareName
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_v1_AzureFileVolumeSource_To_core_AzureFileVolumeSource is an autogenerated conversion function.
-func Convert_v1_AzureFileVolumeSource_To_core_AzureFileVolumeSource(in *v1.AzureFileVolumeSource, out *core.AzureFileVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_AzureFileVolumeSource_To_core_AzureFileVolumeSource(in, out, s)
-}
-
-func autoConvert_core_AzureFileVolumeSource_To_v1_AzureFileVolumeSource(in *core.AzureFileVolumeSource, out *v1.AzureFileVolumeSource, s conversion.Scope) error {
- out.SecretName = in.SecretName
- out.ShareName = in.ShareName
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_core_AzureFileVolumeSource_To_v1_AzureFileVolumeSource is an autogenerated conversion function.
-func Convert_core_AzureFileVolumeSource_To_v1_AzureFileVolumeSource(in *core.AzureFileVolumeSource, out *v1.AzureFileVolumeSource, s conversion.Scope) error {
- return autoConvert_core_AzureFileVolumeSource_To_v1_AzureFileVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_Binding_To_core_Binding(in *v1.Binding, out *core.Binding, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_v1_ObjectReference_To_core_ObjectReference(&in.Target, &out.Target, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_v1_Binding_To_core_Binding is an autogenerated conversion function.
-func Convert_v1_Binding_To_core_Binding(in *v1.Binding, out *core.Binding, s conversion.Scope) error {
- return autoConvert_v1_Binding_To_core_Binding(in, out, s)
-}
-
-func autoConvert_core_Binding_To_v1_Binding(in *core.Binding, out *v1.Binding, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_core_ObjectReference_To_v1_ObjectReference(&in.Target, &out.Target, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_core_Binding_To_v1_Binding is an autogenerated conversion function.
-func Convert_core_Binding_To_v1_Binding(in *core.Binding, out *v1.Binding, s conversion.Scope) error {
- return autoConvert_core_Binding_To_v1_Binding(in, out, s)
-}
-
-func autoConvert_v1_CSIPersistentVolumeSource_To_core_CSIPersistentVolumeSource(in *v1.CSIPersistentVolumeSource, out *core.CSIPersistentVolumeSource, s conversion.Scope) error {
- out.Driver = in.Driver
- out.VolumeHandle = in.VolumeHandle
- out.ReadOnly = in.ReadOnly
- out.FSType = in.FSType
- out.VolumeAttributes = *(*map[string]string)(unsafe.Pointer(&in.VolumeAttributes))
- out.ControllerPublishSecretRef = (*core.SecretReference)(unsafe.Pointer(in.ControllerPublishSecretRef))
- out.NodeStageSecretRef = (*core.SecretReference)(unsafe.Pointer(in.NodeStageSecretRef))
- out.NodePublishSecretRef = (*core.SecretReference)(unsafe.Pointer(in.NodePublishSecretRef))
- return nil
-}
-
-// Convert_v1_CSIPersistentVolumeSource_To_core_CSIPersistentVolumeSource is an autogenerated conversion function.
-func Convert_v1_CSIPersistentVolumeSource_To_core_CSIPersistentVolumeSource(in *v1.CSIPersistentVolumeSource, out *core.CSIPersistentVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_CSIPersistentVolumeSource_To_core_CSIPersistentVolumeSource(in, out, s)
-}
-
-func autoConvert_core_CSIPersistentVolumeSource_To_v1_CSIPersistentVolumeSource(in *core.CSIPersistentVolumeSource, out *v1.CSIPersistentVolumeSource, s conversion.Scope) error {
- out.Driver = in.Driver
- out.VolumeHandle = in.VolumeHandle
- out.ReadOnly = in.ReadOnly
- out.FSType = in.FSType
- out.VolumeAttributes = *(*map[string]string)(unsafe.Pointer(&in.VolumeAttributes))
- out.ControllerPublishSecretRef = (*v1.SecretReference)(unsafe.Pointer(in.ControllerPublishSecretRef))
- out.NodeStageSecretRef = (*v1.SecretReference)(unsafe.Pointer(in.NodeStageSecretRef))
- out.NodePublishSecretRef = (*v1.SecretReference)(unsafe.Pointer(in.NodePublishSecretRef))
- return nil
-}
-
-// Convert_core_CSIPersistentVolumeSource_To_v1_CSIPersistentVolumeSource is an autogenerated conversion function.
-func Convert_core_CSIPersistentVolumeSource_To_v1_CSIPersistentVolumeSource(in *core.CSIPersistentVolumeSource, out *v1.CSIPersistentVolumeSource, s conversion.Scope) error {
- return autoConvert_core_CSIPersistentVolumeSource_To_v1_CSIPersistentVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_Capabilities_To_core_Capabilities(in *v1.Capabilities, out *core.Capabilities, s conversion.Scope) error {
- out.Add = *(*[]core.Capability)(unsafe.Pointer(&in.Add))
- out.Drop = *(*[]core.Capability)(unsafe.Pointer(&in.Drop))
- return nil
-}
-
-// Convert_v1_Capabilities_To_core_Capabilities is an autogenerated conversion function.
-func Convert_v1_Capabilities_To_core_Capabilities(in *v1.Capabilities, out *core.Capabilities, s conversion.Scope) error {
- return autoConvert_v1_Capabilities_To_core_Capabilities(in, out, s)
-}
-
-func autoConvert_core_Capabilities_To_v1_Capabilities(in *core.Capabilities, out *v1.Capabilities, s conversion.Scope) error {
- out.Add = *(*[]v1.Capability)(unsafe.Pointer(&in.Add))
- out.Drop = *(*[]v1.Capability)(unsafe.Pointer(&in.Drop))
- return nil
-}
-
-// Convert_core_Capabilities_To_v1_Capabilities is an autogenerated conversion function.
-func Convert_core_Capabilities_To_v1_Capabilities(in *core.Capabilities, out *v1.Capabilities, s conversion.Scope) error {
- return autoConvert_core_Capabilities_To_v1_Capabilities(in, out, s)
-}
-
-func autoConvert_v1_CephFSPersistentVolumeSource_To_core_CephFSPersistentVolumeSource(in *v1.CephFSPersistentVolumeSource, out *core.CephFSPersistentVolumeSource, s conversion.Scope) error {
- out.Monitors = *(*[]string)(unsafe.Pointer(&in.Monitors))
- out.Path = in.Path
- out.User = in.User
- out.SecretFile = in.SecretFile
- out.SecretRef = (*core.SecretReference)(unsafe.Pointer(in.SecretRef))
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_v1_CephFSPersistentVolumeSource_To_core_CephFSPersistentVolumeSource is an autogenerated conversion function.
-func Convert_v1_CephFSPersistentVolumeSource_To_core_CephFSPersistentVolumeSource(in *v1.CephFSPersistentVolumeSource, out *core.CephFSPersistentVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_CephFSPersistentVolumeSource_To_core_CephFSPersistentVolumeSource(in, out, s)
-}
-
-func autoConvert_core_CephFSPersistentVolumeSource_To_v1_CephFSPersistentVolumeSource(in *core.CephFSPersistentVolumeSource, out *v1.CephFSPersistentVolumeSource, s conversion.Scope) error {
- out.Monitors = *(*[]string)(unsafe.Pointer(&in.Monitors))
- out.Path = in.Path
- out.User = in.User
- out.SecretFile = in.SecretFile
- out.SecretRef = (*v1.SecretReference)(unsafe.Pointer(in.SecretRef))
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_core_CephFSPersistentVolumeSource_To_v1_CephFSPersistentVolumeSource is an autogenerated conversion function.
-func Convert_core_CephFSPersistentVolumeSource_To_v1_CephFSPersistentVolumeSource(in *core.CephFSPersistentVolumeSource, out *v1.CephFSPersistentVolumeSource, s conversion.Scope) error {
- return autoConvert_core_CephFSPersistentVolumeSource_To_v1_CephFSPersistentVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_CephFSVolumeSource_To_core_CephFSVolumeSource(in *v1.CephFSVolumeSource, out *core.CephFSVolumeSource, s conversion.Scope) error {
- out.Monitors = *(*[]string)(unsafe.Pointer(&in.Monitors))
- out.Path = in.Path
- out.User = in.User
- out.SecretFile = in.SecretFile
- out.SecretRef = (*core.LocalObjectReference)(unsafe.Pointer(in.SecretRef))
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_v1_CephFSVolumeSource_To_core_CephFSVolumeSource is an autogenerated conversion function.
-func Convert_v1_CephFSVolumeSource_To_core_CephFSVolumeSource(in *v1.CephFSVolumeSource, out *core.CephFSVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_CephFSVolumeSource_To_core_CephFSVolumeSource(in, out, s)
-}
-
-func autoConvert_core_CephFSVolumeSource_To_v1_CephFSVolumeSource(in *core.CephFSVolumeSource, out *v1.CephFSVolumeSource, s conversion.Scope) error {
- out.Monitors = *(*[]string)(unsafe.Pointer(&in.Monitors))
- out.Path = in.Path
- out.User = in.User
- out.SecretFile = in.SecretFile
- out.SecretRef = (*v1.LocalObjectReference)(unsafe.Pointer(in.SecretRef))
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_core_CephFSVolumeSource_To_v1_CephFSVolumeSource is an autogenerated conversion function.
-func Convert_core_CephFSVolumeSource_To_v1_CephFSVolumeSource(in *core.CephFSVolumeSource, out *v1.CephFSVolumeSource, s conversion.Scope) error {
- return autoConvert_core_CephFSVolumeSource_To_v1_CephFSVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_CinderVolumeSource_To_core_CinderVolumeSource(in *v1.CinderVolumeSource, out *core.CinderVolumeSource, s conversion.Scope) error {
- out.VolumeID = in.VolumeID
- out.FSType = in.FSType
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_v1_CinderVolumeSource_To_core_CinderVolumeSource is an autogenerated conversion function.
-func Convert_v1_CinderVolumeSource_To_core_CinderVolumeSource(in *v1.CinderVolumeSource, out *core.CinderVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_CinderVolumeSource_To_core_CinderVolumeSource(in, out, s)
-}
-
-func autoConvert_core_CinderVolumeSource_To_v1_CinderVolumeSource(in *core.CinderVolumeSource, out *v1.CinderVolumeSource, s conversion.Scope) error {
- out.VolumeID = in.VolumeID
- out.FSType = in.FSType
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_core_CinderVolumeSource_To_v1_CinderVolumeSource is an autogenerated conversion function.
-func Convert_core_CinderVolumeSource_To_v1_CinderVolumeSource(in *core.CinderVolumeSource, out *v1.CinderVolumeSource, s conversion.Scope) error {
- return autoConvert_core_CinderVolumeSource_To_v1_CinderVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_ClientIPConfig_To_core_ClientIPConfig(in *v1.ClientIPConfig, out *core.ClientIPConfig, s conversion.Scope) error {
- out.TimeoutSeconds = (*int32)(unsafe.Pointer(in.TimeoutSeconds))
- return nil
-}
-
-// Convert_v1_ClientIPConfig_To_core_ClientIPConfig is an autogenerated conversion function.
-func Convert_v1_ClientIPConfig_To_core_ClientIPConfig(in *v1.ClientIPConfig, out *core.ClientIPConfig, s conversion.Scope) error {
- return autoConvert_v1_ClientIPConfig_To_core_ClientIPConfig(in, out, s)
-}
-
-func autoConvert_core_ClientIPConfig_To_v1_ClientIPConfig(in *core.ClientIPConfig, out *v1.ClientIPConfig, s conversion.Scope) error {
- out.TimeoutSeconds = (*int32)(unsafe.Pointer(in.TimeoutSeconds))
- return nil
-}
-
-// Convert_core_ClientIPConfig_To_v1_ClientIPConfig is an autogenerated conversion function.
-func Convert_core_ClientIPConfig_To_v1_ClientIPConfig(in *core.ClientIPConfig, out *v1.ClientIPConfig, s conversion.Scope) error {
- return autoConvert_core_ClientIPConfig_To_v1_ClientIPConfig(in, out, s)
-}
-
-func autoConvert_v1_ComponentCondition_To_core_ComponentCondition(in *v1.ComponentCondition, out *core.ComponentCondition, s conversion.Scope) error {
- out.Type = core.ComponentConditionType(in.Type)
- out.Status = core.ConditionStatus(in.Status)
- out.Message = in.Message
- out.Error = in.Error
- return nil
-}
-
-// Convert_v1_ComponentCondition_To_core_ComponentCondition is an autogenerated conversion function.
-func Convert_v1_ComponentCondition_To_core_ComponentCondition(in *v1.ComponentCondition, out *core.ComponentCondition, s conversion.Scope) error {
- return autoConvert_v1_ComponentCondition_To_core_ComponentCondition(in, out, s)
-}
-
-func autoConvert_core_ComponentCondition_To_v1_ComponentCondition(in *core.ComponentCondition, out *v1.ComponentCondition, s conversion.Scope) error {
- out.Type = v1.ComponentConditionType(in.Type)
- out.Status = v1.ConditionStatus(in.Status)
- out.Message = in.Message
- out.Error = in.Error
- return nil
-}
-
-// Convert_core_ComponentCondition_To_v1_ComponentCondition is an autogenerated conversion function.
-func Convert_core_ComponentCondition_To_v1_ComponentCondition(in *core.ComponentCondition, out *v1.ComponentCondition, s conversion.Scope) error {
- return autoConvert_core_ComponentCondition_To_v1_ComponentCondition(in, out, s)
-}
-
-func autoConvert_v1_ComponentStatus_To_core_ComponentStatus(in *v1.ComponentStatus, out *core.ComponentStatus, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- out.Conditions = *(*[]core.ComponentCondition)(unsafe.Pointer(&in.Conditions))
- return nil
-}
-
-// Convert_v1_ComponentStatus_To_core_ComponentStatus is an autogenerated conversion function.
-func Convert_v1_ComponentStatus_To_core_ComponentStatus(in *v1.ComponentStatus, out *core.ComponentStatus, s conversion.Scope) error {
- return autoConvert_v1_ComponentStatus_To_core_ComponentStatus(in, out, s)
-}
-
-func autoConvert_core_ComponentStatus_To_v1_ComponentStatus(in *core.ComponentStatus, out *v1.ComponentStatus, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- out.Conditions = *(*[]v1.ComponentCondition)(unsafe.Pointer(&in.Conditions))
- return nil
-}
-
-// Convert_core_ComponentStatus_To_v1_ComponentStatus is an autogenerated conversion function.
-func Convert_core_ComponentStatus_To_v1_ComponentStatus(in *core.ComponentStatus, out *v1.ComponentStatus, s conversion.Scope) error {
- return autoConvert_core_ComponentStatus_To_v1_ComponentStatus(in, out, s)
-}
-
-func autoConvert_v1_ComponentStatusList_To_core_ComponentStatusList(in *v1.ComponentStatusList, out *core.ComponentStatusList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]core.ComponentStatus)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_v1_ComponentStatusList_To_core_ComponentStatusList is an autogenerated conversion function.
-func Convert_v1_ComponentStatusList_To_core_ComponentStatusList(in *v1.ComponentStatusList, out *core.ComponentStatusList, s conversion.Scope) error {
- return autoConvert_v1_ComponentStatusList_To_core_ComponentStatusList(in, out, s)
-}
-
-func autoConvert_core_ComponentStatusList_To_v1_ComponentStatusList(in *core.ComponentStatusList, out *v1.ComponentStatusList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]v1.ComponentStatus)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_core_ComponentStatusList_To_v1_ComponentStatusList is an autogenerated conversion function.
-func Convert_core_ComponentStatusList_To_v1_ComponentStatusList(in *core.ComponentStatusList, out *v1.ComponentStatusList, s conversion.Scope) error {
- return autoConvert_core_ComponentStatusList_To_v1_ComponentStatusList(in, out, s)
-}
-
-func autoConvert_v1_ConfigMap_To_core_ConfigMap(in *v1.ConfigMap, out *core.ConfigMap, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- out.Data = *(*map[string]string)(unsafe.Pointer(&in.Data))
- out.BinaryData = *(*map[string][]byte)(unsafe.Pointer(&in.BinaryData))
- return nil
-}
-
-// Convert_v1_ConfigMap_To_core_ConfigMap is an autogenerated conversion function.
-func Convert_v1_ConfigMap_To_core_ConfigMap(in *v1.ConfigMap, out *core.ConfigMap, s conversion.Scope) error {
- return autoConvert_v1_ConfigMap_To_core_ConfigMap(in, out, s)
-}
-
-func autoConvert_core_ConfigMap_To_v1_ConfigMap(in *core.ConfigMap, out *v1.ConfigMap, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- out.Data = *(*map[string]string)(unsafe.Pointer(&in.Data))
- out.BinaryData = *(*map[string][]byte)(unsafe.Pointer(&in.BinaryData))
- return nil
-}
-
-// Convert_core_ConfigMap_To_v1_ConfigMap is an autogenerated conversion function.
-func Convert_core_ConfigMap_To_v1_ConfigMap(in *core.ConfigMap, out *v1.ConfigMap, s conversion.Scope) error {
- return autoConvert_core_ConfigMap_To_v1_ConfigMap(in, out, s)
-}
-
-func autoConvert_v1_ConfigMapEnvSource_To_core_ConfigMapEnvSource(in *v1.ConfigMapEnvSource, out *core.ConfigMapEnvSource, s conversion.Scope) error {
- if err := Convert_v1_LocalObjectReference_To_core_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil {
- return err
- }
- out.Optional = (*bool)(unsafe.Pointer(in.Optional))
- return nil
-}
-
-// Convert_v1_ConfigMapEnvSource_To_core_ConfigMapEnvSource is an autogenerated conversion function.
-func Convert_v1_ConfigMapEnvSource_To_core_ConfigMapEnvSource(in *v1.ConfigMapEnvSource, out *core.ConfigMapEnvSource, s conversion.Scope) error {
- return autoConvert_v1_ConfigMapEnvSource_To_core_ConfigMapEnvSource(in, out, s)
-}
-
-func autoConvert_core_ConfigMapEnvSource_To_v1_ConfigMapEnvSource(in *core.ConfigMapEnvSource, out *v1.ConfigMapEnvSource, s conversion.Scope) error {
- if err := Convert_core_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil {
- return err
- }
- out.Optional = (*bool)(unsafe.Pointer(in.Optional))
- return nil
-}
-
-// Convert_core_ConfigMapEnvSource_To_v1_ConfigMapEnvSource is an autogenerated conversion function.
-func Convert_core_ConfigMapEnvSource_To_v1_ConfigMapEnvSource(in *core.ConfigMapEnvSource, out *v1.ConfigMapEnvSource, s conversion.Scope) error {
- return autoConvert_core_ConfigMapEnvSource_To_v1_ConfigMapEnvSource(in, out, s)
-}
-
-func autoConvert_v1_ConfigMapKeySelector_To_core_ConfigMapKeySelector(in *v1.ConfigMapKeySelector, out *core.ConfigMapKeySelector, s conversion.Scope) error {
- if err := Convert_v1_LocalObjectReference_To_core_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil {
- return err
- }
- out.Key = in.Key
- out.Optional = (*bool)(unsafe.Pointer(in.Optional))
- return nil
-}
-
-// Convert_v1_ConfigMapKeySelector_To_core_ConfigMapKeySelector is an autogenerated conversion function.
-func Convert_v1_ConfigMapKeySelector_To_core_ConfigMapKeySelector(in *v1.ConfigMapKeySelector, out *core.ConfigMapKeySelector, s conversion.Scope) error {
- return autoConvert_v1_ConfigMapKeySelector_To_core_ConfigMapKeySelector(in, out, s)
-}
-
-func autoConvert_core_ConfigMapKeySelector_To_v1_ConfigMapKeySelector(in *core.ConfigMapKeySelector, out *v1.ConfigMapKeySelector, s conversion.Scope) error {
- if err := Convert_core_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil {
- return err
- }
- out.Key = in.Key
- out.Optional = (*bool)(unsafe.Pointer(in.Optional))
- return nil
-}
-
-// Convert_core_ConfigMapKeySelector_To_v1_ConfigMapKeySelector is an autogenerated conversion function.
-func Convert_core_ConfigMapKeySelector_To_v1_ConfigMapKeySelector(in *core.ConfigMapKeySelector, out *v1.ConfigMapKeySelector, s conversion.Scope) error {
- return autoConvert_core_ConfigMapKeySelector_To_v1_ConfigMapKeySelector(in, out, s)
-}
-
-func autoConvert_v1_ConfigMapList_To_core_ConfigMapList(in *v1.ConfigMapList, out *core.ConfigMapList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]core.ConfigMap)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_v1_ConfigMapList_To_core_ConfigMapList is an autogenerated conversion function.
-func Convert_v1_ConfigMapList_To_core_ConfigMapList(in *v1.ConfigMapList, out *core.ConfigMapList, s conversion.Scope) error {
- return autoConvert_v1_ConfigMapList_To_core_ConfigMapList(in, out, s)
-}
-
-func autoConvert_core_ConfigMapList_To_v1_ConfigMapList(in *core.ConfigMapList, out *v1.ConfigMapList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]v1.ConfigMap)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_core_ConfigMapList_To_v1_ConfigMapList is an autogenerated conversion function.
-func Convert_core_ConfigMapList_To_v1_ConfigMapList(in *core.ConfigMapList, out *v1.ConfigMapList, s conversion.Scope) error {
- return autoConvert_core_ConfigMapList_To_v1_ConfigMapList(in, out, s)
-}
-
-func autoConvert_v1_ConfigMapProjection_To_core_ConfigMapProjection(in *v1.ConfigMapProjection, out *core.ConfigMapProjection, s conversion.Scope) error {
- if err := Convert_v1_LocalObjectReference_To_core_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil {
- return err
- }
- out.Items = *(*[]core.KeyToPath)(unsafe.Pointer(&in.Items))
- out.Optional = (*bool)(unsafe.Pointer(in.Optional))
- return nil
-}
-
-// Convert_v1_ConfigMapProjection_To_core_ConfigMapProjection is an autogenerated conversion function.
-func Convert_v1_ConfigMapProjection_To_core_ConfigMapProjection(in *v1.ConfigMapProjection, out *core.ConfigMapProjection, s conversion.Scope) error {
- return autoConvert_v1_ConfigMapProjection_To_core_ConfigMapProjection(in, out, s)
-}
-
-func autoConvert_core_ConfigMapProjection_To_v1_ConfigMapProjection(in *core.ConfigMapProjection, out *v1.ConfigMapProjection, s conversion.Scope) error {
- if err := Convert_core_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil {
- return err
- }
- out.Items = *(*[]v1.KeyToPath)(unsafe.Pointer(&in.Items))
- out.Optional = (*bool)(unsafe.Pointer(in.Optional))
- return nil
-}
-
-// Convert_core_ConfigMapProjection_To_v1_ConfigMapProjection is an autogenerated conversion function.
-func Convert_core_ConfigMapProjection_To_v1_ConfigMapProjection(in *core.ConfigMapProjection, out *v1.ConfigMapProjection, s conversion.Scope) error {
- return autoConvert_core_ConfigMapProjection_To_v1_ConfigMapProjection(in, out, s)
-}
-
-func autoConvert_v1_ConfigMapVolumeSource_To_core_ConfigMapVolumeSource(in *v1.ConfigMapVolumeSource, out *core.ConfigMapVolumeSource, s conversion.Scope) error {
- if err := Convert_v1_LocalObjectReference_To_core_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil {
- return err
- }
- out.Items = *(*[]core.KeyToPath)(unsafe.Pointer(&in.Items))
- out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode))
- out.Optional = (*bool)(unsafe.Pointer(in.Optional))
- return nil
-}
-
-// Convert_v1_ConfigMapVolumeSource_To_core_ConfigMapVolumeSource is an autogenerated conversion function.
-func Convert_v1_ConfigMapVolumeSource_To_core_ConfigMapVolumeSource(in *v1.ConfigMapVolumeSource, out *core.ConfigMapVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_ConfigMapVolumeSource_To_core_ConfigMapVolumeSource(in, out, s)
-}
-
-func autoConvert_core_ConfigMapVolumeSource_To_v1_ConfigMapVolumeSource(in *core.ConfigMapVolumeSource, out *v1.ConfigMapVolumeSource, s conversion.Scope) error {
- if err := Convert_core_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil {
- return err
- }
- out.Items = *(*[]v1.KeyToPath)(unsafe.Pointer(&in.Items))
- out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode))
- out.Optional = (*bool)(unsafe.Pointer(in.Optional))
- return nil
-}
-
-// Convert_core_ConfigMapVolumeSource_To_v1_ConfigMapVolumeSource is an autogenerated conversion function.
-func Convert_core_ConfigMapVolumeSource_To_v1_ConfigMapVolumeSource(in *core.ConfigMapVolumeSource, out *v1.ConfigMapVolumeSource, s conversion.Scope) error {
- return autoConvert_core_ConfigMapVolumeSource_To_v1_ConfigMapVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_Container_To_core_Container(in *v1.Container, out *core.Container, s conversion.Scope) error {
- out.Name = in.Name
- out.Image = in.Image
- out.Command = *(*[]string)(unsafe.Pointer(&in.Command))
- out.Args = *(*[]string)(unsafe.Pointer(&in.Args))
- out.WorkingDir = in.WorkingDir
- out.Ports = *(*[]core.ContainerPort)(unsafe.Pointer(&in.Ports))
- out.EnvFrom = *(*[]core.EnvFromSource)(unsafe.Pointer(&in.EnvFrom))
- out.Env = *(*[]core.EnvVar)(unsafe.Pointer(&in.Env))
- if err := Convert_v1_ResourceRequirements_To_core_ResourceRequirements(&in.Resources, &out.Resources, s); err != nil {
- return err
- }
- out.VolumeMounts = *(*[]core.VolumeMount)(unsafe.Pointer(&in.VolumeMounts))
- out.VolumeDevices = *(*[]core.VolumeDevice)(unsafe.Pointer(&in.VolumeDevices))
- out.LivenessProbe = (*core.Probe)(unsafe.Pointer(in.LivenessProbe))
- out.ReadinessProbe = (*core.Probe)(unsafe.Pointer(in.ReadinessProbe))
- out.Lifecycle = (*core.Lifecycle)(unsafe.Pointer(in.Lifecycle))
- out.TerminationMessagePath = in.TerminationMessagePath
- out.TerminationMessagePolicy = core.TerminationMessagePolicy(in.TerminationMessagePolicy)
- out.ImagePullPolicy = core.PullPolicy(in.ImagePullPolicy)
- if in.SecurityContext != nil {
- in, out := &in.SecurityContext, &out.SecurityContext
- *out = new(core.SecurityContext)
- if err := Convert_v1_SecurityContext_To_core_SecurityContext(*in, *out, s); err != nil {
- return err
- }
- } else {
- out.SecurityContext = nil
- }
- out.Stdin = in.Stdin
- out.StdinOnce = in.StdinOnce
- out.TTY = in.TTY
- return nil
-}
-
-// Convert_v1_Container_To_core_Container is an autogenerated conversion function.
-func Convert_v1_Container_To_core_Container(in *v1.Container, out *core.Container, s conversion.Scope) error {
- return autoConvert_v1_Container_To_core_Container(in, out, s)
-}
-
-func autoConvert_core_Container_To_v1_Container(in *core.Container, out *v1.Container, s conversion.Scope) error {
- out.Name = in.Name
- out.Image = in.Image
- out.Command = *(*[]string)(unsafe.Pointer(&in.Command))
- out.Args = *(*[]string)(unsafe.Pointer(&in.Args))
- out.WorkingDir = in.WorkingDir
- out.Ports = *(*[]v1.ContainerPort)(unsafe.Pointer(&in.Ports))
- out.EnvFrom = *(*[]v1.EnvFromSource)(unsafe.Pointer(&in.EnvFrom))
- out.Env = *(*[]v1.EnvVar)(unsafe.Pointer(&in.Env))
- if err := Convert_core_ResourceRequirements_To_v1_ResourceRequirements(&in.Resources, &out.Resources, s); err != nil {
- return err
- }
- out.VolumeMounts = *(*[]v1.VolumeMount)(unsafe.Pointer(&in.VolumeMounts))
- out.VolumeDevices = *(*[]v1.VolumeDevice)(unsafe.Pointer(&in.VolumeDevices))
- out.LivenessProbe = (*v1.Probe)(unsafe.Pointer(in.LivenessProbe))
- out.ReadinessProbe = (*v1.Probe)(unsafe.Pointer(in.ReadinessProbe))
- out.Lifecycle = (*v1.Lifecycle)(unsafe.Pointer(in.Lifecycle))
- out.TerminationMessagePath = in.TerminationMessagePath
- out.TerminationMessagePolicy = v1.TerminationMessagePolicy(in.TerminationMessagePolicy)
- out.ImagePullPolicy = v1.PullPolicy(in.ImagePullPolicy)
- if in.SecurityContext != nil {
- in, out := &in.SecurityContext, &out.SecurityContext
- *out = new(v1.SecurityContext)
- if err := Convert_core_SecurityContext_To_v1_SecurityContext(*in, *out, s); err != nil {
- return err
- }
- } else {
- out.SecurityContext = nil
- }
- out.Stdin = in.Stdin
- out.StdinOnce = in.StdinOnce
- out.TTY = in.TTY
- return nil
-}
-
-// Convert_core_Container_To_v1_Container is an autogenerated conversion function.
-func Convert_core_Container_To_v1_Container(in *core.Container, out *v1.Container, s conversion.Scope) error {
- return autoConvert_core_Container_To_v1_Container(in, out, s)
-}
-
-func autoConvert_v1_ContainerImage_To_core_ContainerImage(in *v1.ContainerImage, out *core.ContainerImage, s conversion.Scope) error {
- out.Names = *(*[]string)(unsafe.Pointer(&in.Names))
- out.SizeBytes = in.SizeBytes
- return nil
-}
-
-// Convert_v1_ContainerImage_To_core_ContainerImage is an autogenerated conversion function.
-func Convert_v1_ContainerImage_To_core_ContainerImage(in *v1.ContainerImage, out *core.ContainerImage, s conversion.Scope) error {
- return autoConvert_v1_ContainerImage_To_core_ContainerImage(in, out, s)
-}
-
-func autoConvert_core_ContainerImage_To_v1_ContainerImage(in *core.ContainerImage, out *v1.ContainerImage, s conversion.Scope) error {
- out.Names = *(*[]string)(unsafe.Pointer(&in.Names))
- out.SizeBytes = in.SizeBytes
- return nil
-}
-
-// Convert_core_ContainerImage_To_v1_ContainerImage is an autogenerated conversion function.
-func Convert_core_ContainerImage_To_v1_ContainerImage(in *core.ContainerImage, out *v1.ContainerImage, s conversion.Scope) error {
- return autoConvert_core_ContainerImage_To_v1_ContainerImage(in, out, s)
-}
-
-func autoConvert_v1_ContainerPort_To_core_ContainerPort(in *v1.ContainerPort, out *core.ContainerPort, s conversion.Scope) error {
- out.Name = in.Name
- out.HostPort = in.HostPort
- out.ContainerPort = in.ContainerPort
- out.Protocol = core.Protocol(in.Protocol)
- out.HostIP = in.HostIP
- return nil
-}
-
-// Convert_v1_ContainerPort_To_core_ContainerPort is an autogenerated conversion function.
-func Convert_v1_ContainerPort_To_core_ContainerPort(in *v1.ContainerPort, out *core.ContainerPort, s conversion.Scope) error {
- return autoConvert_v1_ContainerPort_To_core_ContainerPort(in, out, s)
-}
-
-func autoConvert_core_ContainerPort_To_v1_ContainerPort(in *core.ContainerPort, out *v1.ContainerPort, s conversion.Scope) error {
- out.Name = in.Name
- out.HostPort = in.HostPort
- out.ContainerPort = in.ContainerPort
- out.Protocol = v1.Protocol(in.Protocol)
- out.HostIP = in.HostIP
- return nil
-}
-
-// Convert_core_ContainerPort_To_v1_ContainerPort is an autogenerated conversion function.
-func Convert_core_ContainerPort_To_v1_ContainerPort(in *core.ContainerPort, out *v1.ContainerPort, s conversion.Scope) error {
- return autoConvert_core_ContainerPort_To_v1_ContainerPort(in, out, s)
-}
-
-func autoConvert_v1_ContainerState_To_core_ContainerState(in *v1.ContainerState, out *core.ContainerState, s conversion.Scope) error {
- out.Waiting = (*core.ContainerStateWaiting)(unsafe.Pointer(in.Waiting))
- out.Running = (*core.ContainerStateRunning)(unsafe.Pointer(in.Running))
- out.Terminated = (*core.ContainerStateTerminated)(unsafe.Pointer(in.Terminated))
- return nil
-}
-
-// Convert_v1_ContainerState_To_core_ContainerState is an autogenerated conversion function.
-func Convert_v1_ContainerState_To_core_ContainerState(in *v1.ContainerState, out *core.ContainerState, s conversion.Scope) error {
- return autoConvert_v1_ContainerState_To_core_ContainerState(in, out, s)
-}
-
-func autoConvert_core_ContainerState_To_v1_ContainerState(in *core.ContainerState, out *v1.ContainerState, s conversion.Scope) error {
- out.Waiting = (*v1.ContainerStateWaiting)(unsafe.Pointer(in.Waiting))
- out.Running = (*v1.ContainerStateRunning)(unsafe.Pointer(in.Running))
- out.Terminated = (*v1.ContainerStateTerminated)(unsafe.Pointer(in.Terminated))
- return nil
-}
-
-// Convert_core_ContainerState_To_v1_ContainerState is an autogenerated conversion function.
-func Convert_core_ContainerState_To_v1_ContainerState(in *core.ContainerState, out *v1.ContainerState, s conversion.Scope) error {
- return autoConvert_core_ContainerState_To_v1_ContainerState(in, out, s)
-}
-
-func autoConvert_v1_ContainerStateRunning_To_core_ContainerStateRunning(in *v1.ContainerStateRunning, out *core.ContainerStateRunning, s conversion.Scope) error {
- out.StartedAt = in.StartedAt
- return nil
-}
-
-// Convert_v1_ContainerStateRunning_To_core_ContainerStateRunning is an autogenerated conversion function.
-func Convert_v1_ContainerStateRunning_To_core_ContainerStateRunning(in *v1.ContainerStateRunning, out *core.ContainerStateRunning, s conversion.Scope) error {
- return autoConvert_v1_ContainerStateRunning_To_core_ContainerStateRunning(in, out, s)
-}
-
-func autoConvert_core_ContainerStateRunning_To_v1_ContainerStateRunning(in *core.ContainerStateRunning, out *v1.ContainerStateRunning, s conversion.Scope) error {
- out.StartedAt = in.StartedAt
- return nil
-}
-
-// Convert_core_ContainerStateRunning_To_v1_ContainerStateRunning is an autogenerated conversion function.
-func Convert_core_ContainerStateRunning_To_v1_ContainerStateRunning(in *core.ContainerStateRunning, out *v1.ContainerStateRunning, s conversion.Scope) error {
- return autoConvert_core_ContainerStateRunning_To_v1_ContainerStateRunning(in, out, s)
-}
-
-func autoConvert_v1_ContainerStateTerminated_To_core_ContainerStateTerminated(in *v1.ContainerStateTerminated, out *core.ContainerStateTerminated, s conversion.Scope) error {
- out.ExitCode = in.ExitCode
- out.Signal = in.Signal
- out.Reason = in.Reason
- out.Message = in.Message
- out.StartedAt = in.StartedAt
- out.FinishedAt = in.FinishedAt
- out.ContainerID = in.ContainerID
- return nil
-}
-
-// Convert_v1_ContainerStateTerminated_To_core_ContainerStateTerminated is an autogenerated conversion function.
-func Convert_v1_ContainerStateTerminated_To_core_ContainerStateTerminated(in *v1.ContainerStateTerminated, out *core.ContainerStateTerminated, s conversion.Scope) error {
- return autoConvert_v1_ContainerStateTerminated_To_core_ContainerStateTerminated(in, out, s)
-}
-
-func autoConvert_core_ContainerStateTerminated_To_v1_ContainerStateTerminated(in *core.ContainerStateTerminated, out *v1.ContainerStateTerminated, s conversion.Scope) error {
- out.ExitCode = in.ExitCode
- out.Signal = in.Signal
- out.Reason = in.Reason
- out.Message = in.Message
- out.StartedAt = in.StartedAt
- out.FinishedAt = in.FinishedAt
- out.ContainerID = in.ContainerID
- return nil
-}
-
-// Convert_core_ContainerStateTerminated_To_v1_ContainerStateTerminated is an autogenerated conversion function.
-func Convert_core_ContainerStateTerminated_To_v1_ContainerStateTerminated(in *core.ContainerStateTerminated, out *v1.ContainerStateTerminated, s conversion.Scope) error {
- return autoConvert_core_ContainerStateTerminated_To_v1_ContainerStateTerminated(in, out, s)
-}
-
-func autoConvert_v1_ContainerStateWaiting_To_core_ContainerStateWaiting(in *v1.ContainerStateWaiting, out *core.ContainerStateWaiting, s conversion.Scope) error {
- out.Reason = in.Reason
- out.Message = in.Message
- return nil
-}
-
-// Convert_v1_ContainerStateWaiting_To_core_ContainerStateWaiting is an autogenerated conversion function.
-func Convert_v1_ContainerStateWaiting_To_core_ContainerStateWaiting(in *v1.ContainerStateWaiting, out *core.ContainerStateWaiting, s conversion.Scope) error {
- return autoConvert_v1_ContainerStateWaiting_To_core_ContainerStateWaiting(in, out, s)
-}
-
-func autoConvert_core_ContainerStateWaiting_To_v1_ContainerStateWaiting(in *core.ContainerStateWaiting, out *v1.ContainerStateWaiting, s conversion.Scope) error {
- out.Reason = in.Reason
- out.Message = in.Message
- return nil
-}
-
-// Convert_core_ContainerStateWaiting_To_v1_ContainerStateWaiting is an autogenerated conversion function.
-func Convert_core_ContainerStateWaiting_To_v1_ContainerStateWaiting(in *core.ContainerStateWaiting, out *v1.ContainerStateWaiting, s conversion.Scope) error {
- return autoConvert_core_ContainerStateWaiting_To_v1_ContainerStateWaiting(in, out, s)
-}
-
-func autoConvert_v1_ContainerStatus_To_core_ContainerStatus(in *v1.ContainerStatus, out *core.ContainerStatus, s conversion.Scope) error {
- out.Name = in.Name
- if err := Convert_v1_ContainerState_To_core_ContainerState(&in.State, &out.State, s); err != nil {
- return err
- }
- if err := Convert_v1_ContainerState_To_core_ContainerState(&in.LastTerminationState, &out.LastTerminationState, s); err != nil {
- return err
- }
- out.Ready = in.Ready
- out.RestartCount = in.RestartCount
- out.Image = in.Image
- out.ImageID = in.ImageID
- out.ContainerID = in.ContainerID
- return nil
-}
-
-// Convert_v1_ContainerStatus_To_core_ContainerStatus is an autogenerated conversion function.
-func Convert_v1_ContainerStatus_To_core_ContainerStatus(in *v1.ContainerStatus, out *core.ContainerStatus, s conversion.Scope) error {
- return autoConvert_v1_ContainerStatus_To_core_ContainerStatus(in, out, s)
-}
-
-func autoConvert_core_ContainerStatus_To_v1_ContainerStatus(in *core.ContainerStatus, out *v1.ContainerStatus, s conversion.Scope) error {
- out.Name = in.Name
- if err := Convert_core_ContainerState_To_v1_ContainerState(&in.State, &out.State, s); err != nil {
- return err
- }
- if err := Convert_core_ContainerState_To_v1_ContainerState(&in.LastTerminationState, &out.LastTerminationState, s); err != nil {
- return err
- }
- out.Ready = in.Ready
- out.RestartCount = in.RestartCount
- out.Image = in.Image
- out.ImageID = in.ImageID
- out.ContainerID = in.ContainerID
- return nil
-}
-
-// Convert_core_ContainerStatus_To_v1_ContainerStatus is an autogenerated conversion function.
-func Convert_core_ContainerStatus_To_v1_ContainerStatus(in *core.ContainerStatus, out *v1.ContainerStatus, s conversion.Scope) error {
- return autoConvert_core_ContainerStatus_To_v1_ContainerStatus(in, out, s)
-}
-
-func autoConvert_v1_DaemonEndpoint_To_core_DaemonEndpoint(in *v1.DaemonEndpoint, out *core.DaemonEndpoint, s conversion.Scope) error {
- out.Port = in.Port
- return nil
-}
-
-// Convert_v1_DaemonEndpoint_To_core_DaemonEndpoint is an autogenerated conversion function.
-func Convert_v1_DaemonEndpoint_To_core_DaemonEndpoint(in *v1.DaemonEndpoint, out *core.DaemonEndpoint, s conversion.Scope) error {
- return autoConvert_v1_DaemonEndpoint_To_core_DaemonEndpoint(in, out, s)
-}
-
-func autoConvert_core_DaemonEndpoint_To_v1_DaemonEndpoint(in *core.DaemonEndpoint, out *v1.DaemonEndpoint, s conversion.Scope) error {
- out.Port = in.Port
- return nil
-}
-
-// Convert_core_DaemonEndpoint_To_v1_DaemonEndpoint is an autogenerated conversion function.
-func Convert_core_DaemonEndpoint_To_v1_DaemonEndpoint(in *core.DaemonEndpoint, out *v1.DaemonEndpoint, s conversion.Scope) error {
- return autoConvert_core_DaemonEndpoint_To_v1_DaemonEndpoint(in, out, s)
-}
-
-func autoConvert_v1_DeleteOptions_To_core_DeleteOptions(in *v1.DeleteOptions, out *core.DeleteOptions, s conversion.Scope) error {
- out.GracePeriodSeconds = (*int64)(unsafe.Pointer(in.GracePeriodSeconds))
- out.Preconditions = (*core.Preconditions)(unsafe.Pointer(in.Preconditions))
- out.OrphanDependents = (*bool)(unsafe.Pointer(in.OrphanDependents))
- out.PropagationPolicy = (*core.DeletionPropagation)(unsafe.Pointer(in.PropagationPolicy))
- return nil
-}
-
-// Convert_v1_DeleteOptions_To_core_DeleteOptions is an autogenerated conversion function.
-func Convert_v1_DeleteOptions_To_core_DeleteOptions(in *v1.DeleteOptions, out *core.DeleteOptions, s conversion.Scope) error {
- return autoConvert_v1_DeleteOptions_To_core_DeleteOptions(in, out, s)
-}
-
-func autoConvert_core_DeleteOptions_To_v1_DeleteOptions(in *core.DeleteOptions, out *v1.DeleteOptions, s conversion.Scope) error {
- out.GracePeriodSeconds = (*int64)(unsafe.Pointer(in.GracePeriodSeconds))
- out.Preconditions = (*v1.Preconditions)(unsafe.Pointer(in.Preconditions))
- out.OrphanDependents = (*bool)(unsafe.Pointer(in.OrphanDependents))
- out.PropagationPolicy = (*v1.DeletionPropagation)(unsafe.Pointer(in.PropagationPolicy))
- return nil
-}
-
-// Convert_core_DeleteOptions_To_v1_DeleteOptions is an autogenerated conversion function.
-func Convert_core_DeleteOptions_To_v1_DeleteOptions(in *core.DeleteOptions, out *v1.DeleteOptions, s conversion.Scope) error {
- return autoConvert_core_DeleteOptions_To_v1_DeleteOptions(in, out, s)
-}
-
-func autoConvert_v1_DownwardAPIProjection_To_core_DownwardAPIProjection(in *v1.DownwardAPIProjection, out *core.DownwardAPIProjection, s conversion.Scope) error {
- out.Items = *(*[]core.DownwardAPIVolumeFile)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_v1_DownwardAPIProjection_To_core_DownwardAPIProjection is an autogenerated conversion function.
-func Convert_v1_DownwardAPIProjection_To_core_DownwardAPIProjection(in *v1.DownwardAPIProjection, out *core.DownwardAPIProjection, s conversion.Scope) error {
- return autoConvert_v1_DownwardAPIProjection_To_core_DownwardAPIProjection(in, out, s)
-}
-
-func autoConvert_core_DownwardAPIProjection_To_v1_DownwardAPIProjection(in *core.DownwardAPIProjection, out *v1.DownwardAPIProjection, s conversion.Scope) error {
- out.Items = *(*[]v1.DownwardAPIVolumeFile)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_core_DownwardAPIProjection_To_v1_DownwardAPIProjection is an autogenerated conversion function.
-func Convert_core_DownwardAPIProjection_To_v1_DownwardAPIProjection(in *core.DownwardAPIProjection, out *v1.DownwardAPIProjection, s conversion.Scope) error {
- return autoConvert_core_DownwardAPIProjection_To_v1_DownwardAPIProjection(in, out, s)
-}
-
-func autoConvert_v1_DownwardAPIVolumeFile_To_core_DownwardAPIVolumeFile(in *v1.DownwardAPIVolumeFile, out *core.DownwardAPIVolumeFile, s conversion.Scope) error {
- out.Path = in.Path
- out.FieldRef = (*core.ObjectFieldSelector)(unsafe.Pointer(in.FieldRef))
- out.ResourceFieldRef = (*core.ResourceFieldSelector)(unsafe.Pointer(in.ResourceFieldRef))
- out.Mode = (*int32)(unsafe.Pointer(in.Mode))
- return nil
-}
-
-// Convert_v1_DownwardAPIVolumeFile_To_core_DownwardAPIVolumeFile is an autogenerated conversion function.
-func Convert_v1_DownwardAPIVolumeFile_To_core_DownwardAPIVolumeFile(in *v1.DownwardAPIVolumeFile, out *core.DownwardAPIVolumeFile, s conversion.Scope) error {
- return autoConvert_v1_DownwardAPIVolumeFile_To_core_DownwardAPIVolumeFile(in, out, s)
-}
-
-func autoConvert_core_DownwardAPIVolumeFile_To_v1_DownwardAPIVolumeFile(in *core.DownwardAPIVolumeFile, out *v1.DownwardAPIVolumeFile, s conversion.Scope) error {
- out.Path = in.Path
- out.FieldRef = (*v1.ObjectFieldSelector)(unsafe.Pointer(in.FieldRef))
- out.ResourceFieldRef = (*v1.ResourceFieldSelector)(unsafe.Pointer(in.ResourceFieldRef))
- out.Mode = (*int32)(unsafe.Pointer(in.Mode))
- return nil
-}
-
-// Convert_core_DownwardAPIVolumeFile_To_v1_DownwardAPIVolumeFile is an autogenerated conversion function.
-func Convert_core_DownwardAPIVolumeFile_To_v1_DownwardAPIVolumeFile(in *core.DownwardAPIVolumeFile, out *v1.DownwardAPIVolumeFile, s conversion.Scope) error {
- return autoConvert_core_DownwardAPIVolumeFile_To_v1_DownwardAPIVolumeFile(in, out, s)
-}
-
-func autoConvert_v1_DownwardAPIVolumeSource_To_core_DownwardAPIVolumeSource(in *v1.DownwardAPIVolumeSource, out *core.DownwardAPIVolumeSource, s conversion.Scope) error {
- out.Items = *(*[]core.DownwardAPIVolumeFile)(unsafe.Pointer(&in.Items))
- out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode))
- return nil
-}
-
-// Convert_v1_DownwardAPIVolumeSource_To_core_DownwardAPIVolumeSource is an autogenerated conversion function.
-func Convert_v1_DownwardAPIVolumeSource_To_core_DownwardAPIVolumeSource(in *v1.DownwardAPIVolumeSource, out *core.DownwardAPIVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_DownwardAPIVolumeSource_To_core_DownwardAPIVolumeSource(in, out, s)
-}
-
-func autoConvert_core_DownwardAPIVolumeSource_To_v1_DownwardAPIVolumeSource(in *core.DownwardAPIVolumeSource, out *v1.DownwardAPIVolumeSource, s conversion.Scope) error {
- out.Items = *(*[]v1.DownwardAPIVolumeFile)(unsafe.Pointer(&in.Items))
- out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode))
- return nil
-}
-
-// Convert_core_DownwardAPIVolumeSource_To_v1_DownwardAPIVolumeSource is an autogenerated conversion function.
-func Convert_core_DownwardAPIVolumeSource_To_v1_DownwardAPIVolumeSource(in *core.DownwardAPIVolumeSource, out *v1.DownwardAPIVolumeSource, s conversion.Scope) error {
- return autoConvert_core_DownwardAPIVolumeSource_To_v1_DownwardAPIVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_EmptyDirVolumeSource_To_core_EmptyDirVolumeSource(in *v1.EmptyDirVolumeSource, out *core.EmptyDirVolumeSource, s conversion.Scope) error {
- out.Medium = core.StorageMedium(in.Medium)
- out.SizeLimit = (*resource.Quantity)(unsafe.Pointer(in.SizeLimit))
- return nil
-}
-
-// Convert_v1_EmptyDirVolumeSource_To_core_EmptyDirVolumeSource is an autogenerated conversion function.
-func Convert_v1_EmptyDirVolumeSource_To_core_EmptyDirVolumeSource(in *v1.EmptyDirVolumeSource, out *core.EmptyDirVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_EmptyDirVolumeSource_To_core_EmptyDirVolumeSource(in, out, s)
-}
-
-func autoConvert_core_EmptyDirVolumeSource_To_v1_EmptyDirVolumeSource(in *core.EmptyDirVolumeSource, out *v1.EmptyDirVolumeSource, s conversion.Scope) error {
- out.Medium = v1.StorageMedium(in.Medium)
- out.SizeLimit = (*resource.Quantity)(unsafe.Pointer(in.SizeLimit))
- return nil
-}
-
-// Convert_core_EmptyDirVolumeSource_To_v1_EmptyDirVolumeSource is an autogenerated conversion function.
-func Convert_core_EmptyDirVolumeSource_To_v1_EmptyDirVolumeSource(in *core.EmptyDirVolumeSource, out *v1.EmptyDirVolumeSource, s conversion.Scope) error {
- return autoConvert_core_EmptyDirVolumeSource_To_v1_EmptyDirVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_EndpointAddress_To_core_EndpointAddress(in *v1.EndpointAddress, out *core.EndpointAddress, s conversion.Scope) error {
- out.IP = in.IP
- out.Hostname = in.Hostname
- out.NodeName = (*string)(unsafe.Pointer(in.NodeName))
- out.TargetRef = (*core.ObjectReference)(unsafe.Pointer(in.TargetRef))
- return nil
-}
-
-// Convert_v1_EndpointAddress_To_core_EndpointAddress is an autogenerated conversion function.
-func Convert_v1_EndpointAddress_To_core_EndpointAddress(in *v1.EndpointAddress, out *core.EndpointAddress, s conversion.Scope) error {
- return autoConvert_v1_EndpointAddress_To_core_EndpointAddress(in, out, s)
-}
-
-func autoConvert_core_EndpointAddress_To_v1_EndpointAddress(in *core.EndpointAddress, out *v1.EndpointAddress, s conversion.Scope) error {
- out.IP = in.IP
- out.Hostname = in.Hostname
- out.NodeName = (*string)(unsafe.Pointer(in.NodeName))
- out.TargetRef = (*v1.ObjectReference)(unsafe.Pointer(in.TargetRef))
- return nil
-}
-
-// Convert_core_EndpointAddress_To_v1_EndpointAddress is an autogenerated conversion function.
-func Convert_core_EndpointAddress_To_v1_EndpointAddress(in *core.EndpointAddress, out *v1.EndpointAddress, s conversion.Scope) error {
- return autoConvert_core_EndpointAddress_To_v1_EndpointAddress(in, out, s)
-}
-
-func autoConvert_v1_EndpointPort_To_core_EndpointPort(in *v1.EndpointPort, out *core.EndpointPort, s conversion.Scope) error {
- out.Name = in.Name
- out.Port = in.Port
- out.Protocol = core.Protocol(in.Protocol)
- return nil
-}
-
-// Convert_v1_EndpointPort_To_core_EndpointPort is an autogenerated conversion function.
-func Convert_v1_EndpointPort_To_core_EndpointPort(in *v1.EndpointPort, out *core.EndpointPort, s conversion.Scope) error {
- return autoConvert_v1_EndpointPort_To_core_EndpointPort(in, out, s)
-}
-
-func autoConvert_core_EndpointPort_To_v1_EndpointPort(in *core.EndpointPort, out *v1.EndpointPort, s conversion.Scope) error {
- out.Name = in.Name
- out.Port = in.Port
- out.Protocol = v1.Protocol(in.Protocol)
- return nil
-}
-
-// Convert_core_EndpointPort_To_v1_EndpointPort is an autogenerated conversion function.
-func Convert_core_EndpointPort_To_v1_EndpointPort(in *core.EndpointPort, out *v1.EndpointPort, s conversion.Scope) error {
- return autoConvert_core_EndpointPort_To_v1_EndpointPort(in, out, s)
-}
-
-func autoConvert_v1_EndpointSubset_To_core_EndpointSubset(in *v1.EndpointSubset, out *core.EndpointSubset, s conversion.Scope) error {
- out.Addresses = *(*[]core.EndpointAddress)(unsafe.Pointer(&in.Addresses))
- out.NotReadyAddresses = *(*[]core.EndpointAddress)(unsafe.Pointer(&in.NotReadyAddresses))
- out.Ports = *(*[]core.EndpointPort)(unsafe.Pointer(&in.Ports))
- return nil
-}
-
-// Convert_v1_EndpointSubset_To_core_EndpointSubset is an autogenerated conversion function.
-func Convert_v1_EndpointSubset_To_core_EndpointSubset(in *v1.EndpointSubset, out *core.EndpointSubset, s conversion.Scope) error {
- return autoConvert_v1_EndpointSubset_To_core_EndpointSubset(in, out, s)
-}
-
-func autoConvert_core_EndpointSubset_To_v1_EndpointSubset(in *core.EndpointSubset, out *v1.EndpointSubset, s conversion.Scope) error {
- out.Addresses = *(*[]v1.EndpointAddress)(unsafe.Pointer(&in.Addresses))
- out.NotReadyAddresses = *(*[]v1.EndpointAddress)(unsafe.Pointer(&in.NotReadyAddresses))
- out.Ports = *(*[]v1.EndpointPort)(unsafe.Pointer(&in.Ports))
- return nil
-}
-
-// Convert_core_EndpointSubset_To_v1_EndpointSubset is an autogenerated conversion function.
-func Convert_core_EndpointSubset_To_v1_EndpointSubset(in *core.EndpointSubset, out *v1.EndpointSubset, s conversion.Scope) error {
- return autoConvert_core_EndpointSubset_To_v1_EndpointSubset(in, out, s)
-}
-
-func autoConvert_v1_Endpoints_To_core_Endpoints(in *v1.Endpoints, out *core.Endpoints, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- out.Subsets = *(*[]core.EndpointSubset)(unsafe.Pointer(&in.Subsets))
- return nil
-}
-
-// Convert_v1_Endpoints_To_core_Endpoints is an autogenerated conversion function.
-func Convert_v1_Endpoints_To_core_Endpoints(in *v1.Endpoints, out *core.Endpoints, s conversion.Scope) error {
- return autoConvert_v1_Endpoints_To_core_Endpoints(in, out, s)
-}
-
-func autoConvert_core_Endpoints_To_v1_Endpoints(in *core.Endpoints, out *v1.Endpoints, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- out.Subsets = *(*[]v1.EndpointSubset)(unsafe.Pointer(&in.Subsets))
- return nil
-}
-
-// Convert_core_Endpoints_To_v1_Endpoints is an autogenerated conversion function.
-func Convert_core_Endpoints_To_v1_Endpoints(in *core.Endpoints, out *v1.Endpoints, s conversion.Scope) error {
- return autoConvert_core_Endpoints_To_v1_Endpoints(in, out, s)
-}
-
-func autoConvert_v1_EndpointsList_To_core_EndpointsList(in *v1.EndpointsList, out *core.EndpointsList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]core.Endpoints)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_v1_EndpointsList_To_core_EndpointsList is an autogenerated conversion function.
-func Convert_v1_EndpointsList_To_core_EndpointsList(in *v1.EndpointsList, out *core.EndpointsList, s conversion.Scope) error {
- return autoConvert_v1_EndpointsList_To_core_EndpointsList(in, out, s)
-}
-
-func autoConvert_core_EndpointsList_To_v1_EndpointsList(in *core.EndpointsList, out *v1.EndpointsList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]v1.Endpoints)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_core_EndpointsList_To_v1_EndpointsList is an autogenerated conversion function.
-func Convert_core_EndpointsList_To_v1_EndpointsList(in *core.EndpointsList, out *v1.EndpointsList, s conversion.Scope) error {
- return autoConvert_core_EndpointsList_To_v1_EndpointsList(in, out, s)
-}
-
-func autoConvert_v1_EnvFromSource_To_core_EnvFromSource(in *v1.EnvFromSource, out *core.EnvFromSource, s conversion.Scope) error {
- out.Prefix = in.Prefix
- out.ConfigMapRef = (*core.ConfigMapEnvSource)(unsafe.Pointer(in.ConfigMapRef))
- out.SecretRef = (*core.SecretEnvSource)(unsafe.Pointer(in.SecretRef))
- return nil
-}
-
-// Convert_v1_EnvFromSource_To_core_EnvFromSource is an autogenerated conversion function.
-func Convert_v1_EnvFromSource_To_core_EnvFromSource(in *v1.EnvFromSource, out *core.EnvFromSource, s conversion.Scope) error {
- return autoConvert_v1_EnvFromSource_To_core_EnvFromSource(in, out, s)
-}
-
-func autoConvert_core_EnvFromSource_To_v1_EnvFromSource(in *core.EnvFromSource, out *v1.EnvFromSource, s conversion.Scope) error {
- out.Prefix = in.Prefix
- out.ConfigMapRef = (*v1.ConfigMapEnvSource)(unsafe.Pointer(in.ConfigMapRef))
- out.SecretRef = (*v1.SecretEnvSource)(unsafe.Pointer(in.SecretRef))
- return nil
-}
-
-// Convert_core_EnvFromSource_To_v1_EnvFromSource is an autogenerated conversion function.
-func Convert_core_EnvFromSource_To_v1_EnvFromSource(in *core.EnvFromSource, out *v1.EnvFromSource, s conversion.Scope) error {
- return autoConvert_core_EnvFromSource_To_v1_EnvFromSource(in, out, s)
-}
-
-func autoConvert_v1_EnvVar_To_core_EnvVar(in *v1.EnvVar, out *core.EnvVar, s conversion.Scope) error {
- out.Name = in.Name
- out.Value = in.Value
- out.ValueFrom = (*core.EnvVarSource)(unsafe.Pointer(in.ValueFrom))
- return nil
-}
-
-// Convert_v1_EnvVar_To_core_EnvVar is an autogenerated conversion function.
-func Convert_v1_EnvVar_To_core_EnvVar(in *v1.EnvVar, out *core.EnvVar, s conversion.Scope) error {
- return autoConvert_v1_EnvVar_To_core_EnvVar(in, out, s)
-}
-
-func autoConvert_core_EnvVar_To_v1_EnvVar(in *core.EnvVar, out *v1.EnvVar, s conversion.Scope) error {
- out.Name = in.Name
- out.Value = in.Value
- out.ValueFrom = (*v1.EnvVarSource)(unsafe.Pointer(in.ValueFrom))
- return nil
-}
-
-// Convert_core_EnvVar_To_v1_EnvVar is an autogenerated conversion function.
-func Convert_core_EnvVar_To_v1_EnvVar(in *core.EnvVar, out *v1.EnvVar, s conversion.Scope) error {
- return autoConvert_core_EnvVar_To_v1_EnvVar(in, out, s)
-}
-
-func autoConvert_v1_EnvVarSource_To_core_EnvVarSource(in *v1.EnvVarSource, out *core.EnvVarSource, s conversion.Scope) error {
- out.FieldRef = (*core.ObjectFieldSelector)(unsafe.Pointer(in.FieldRef))
- out.ResourceFieldRef = (*core.ResourceFieldSelector)(unsafe.Pointer(in.ResourceFieldRef))
- out.ConfigMapKeyRef = (*core.ConfigMapKeySelector)(unsafe.Pointer(in.ConfigMapKeyRef))
- out.SecretKeyRef = (*core.SecretKeySelector)(unsafe.Pointer(in.SecretKeyRef))
- return nil
-}
-
-// Convert_v1_EnvVarSource_To_core_EnvVarSource is an autogenerated conversion function.
-func Convert_v1_EnvVarSource_To_core_EnvVarSource(in *v1.EnvVarSource, out *core.EnvVarSource, s conversion.Scope) error {
- return autoConvert_v1_EnvVarSource_To_core_EnvVarSource(in, out, s)
-}
-
-func autoConvert_core_EnvVarSource_To_v1_EnvVarSource(in *core.EnvVarSource, out *v1.EnvVarSource, s conversion.Scope) error {
- out.FieldRef = (*v1.ObjectFieldSelector)(unsafe.Pointer(in.FieldRef))
- out.ResourceFieldRef = (*v1.ResourceFieldSelector)(unsafe.Pointer(in.ResourceFieldRef))
- out.ConfigMapKeyRef = (*v1.ConfigMapKeySelector)(unsafe.Pointer(in.ConfigMapKeyRef))
- out.SecretKeyRef = (*v1.SecretKeySelector)(unsafe.Pointer(in.SecretKeyRef))
- return nil
-}
-
-// Convert_core_EnvVarSource_To_v1_EnvVarSource is an autogenerated conversion function.
-func Convert_core_EnvVarSource_To_v1_EnvVarSource(in *core.EnvVarSource, out *v1.EnvVarSource, s conversion.Scope) error {
- return autoConvert_core_EnvVarSource_To_v1_EnvVarSource(in, out, s)
-}
-
-func autoConvert_v1_Event_To_core_Event(in *v1.Event, out *core.Event, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_v1_ObjectReference_To_core_ObjectReference(&in.InvolvedObject, &out.InvolvedObject, s); err != nil {
- return err
- }
- out.Reason = in.Reason
- out.Message = in.Message
- if err := Convert_v1_EventSource_To_core_EventSource(&in.Source, &out.Source, s); err != nil {
- return err
- }
- out.FirstTimestamp = in.FirstTimestamp
- out.LastTimestamp = in.LastTimestamp
- out.Count = in.Count
- out.Type = in.Type
- out.EventTime = in.EventTime
- out.Series = (*core.EventSeries)(unsafe.Pointer(in.Series))
- out.Action = in.Action
- out.Related = (*core.ObjectReference)(unsafe.Pointer(in.Related))
- out.ReportingController = in.ReportingController
- out.ReportingInstance = in.ReportingInstance
- return nil
-}
-
-// Convert_v1_Event_To_core_Event is an autogenerated conversion function.
-func Convert_v1_Event_To_core_Event(in *v1.Event, out *core.Event, s conversion.Scope) error {
- return autoConvert_v1_Event_To_core_Event(in, out, s)
-}
-
-func autoConvert_core_Event_To_v1_Event(in *core.Event, out *v1.Event, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_core_ObjectReference_To_v1_ObjectReference(&in.InvolvedObject, &out.InvolvedObject, s); err != nil {
- return err
- }
- out.Reason = in.Reason
- out.Message = in.Message
- if err := Convert_core_EventSource_To_v1_EventSource(&in.Source, &out.Source, s); err != nil {
- return err
- }
- out.FirstTimestamp = in.FirstTimestamp
- out.LastTimestamp = in.LastTimestamp
- out.Count = in.Count
- out.Type = in.Type
- out.EventTime = in.EventTime
- out.Series = (*v1.EventSeries)(unsafe.Pointer(in.Series))
- out.Action = in.Action
- out.Related = (*v1.ObjectReference)(unsafe.Pointer(in.Related))
- out.ReportingController = in.ReportingController
- out.ReportingInstance = in.ReportingInstance
- return nil
-}
-
-// Convert_core_Event_To_v1_Event is an autogenerated conversion function.
-func Convert_core_Event_To_v1_Event(in *core.Event, out *v1.Event, s conversion.Scope) error {
- return autoConvert_core_Event_To_v1_Event(in, out, s)
-}
-
-func autoConvert_v1_EventList_To_core_EventList(in *v1.EventList, out *core.EventList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]core.Event)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_v1_EventList_To_core_EventList is an autogenerated conversion function.
-func Convert_v1_EventList_To_core_EventList(in *v1.EventList, out *core.EventList, s conversion.Scope) error {
- return autoConvert_v1_EventList_To_core_EventList(in, out, s)
-}
-
-func autoConvert_core_EventList_To_v1_EventList(in *core.EventList, out *v1.EventList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]v1.Event)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_core_EventList_To_v1_EventList is an autogenerated conversion function.
-func Convert_core_EventList_To_v1_EventList(in *core.EventList, out *v1.EventList, s conversion.Scope) error {
- return autoConvert_core_EventList_To_v1_EventList(in, out, s)
-}
-
-func autoConvert_v1_EventSeries_To_core_EventSeries(in *v1.EventSeries, out *core.EventSeries, s conversion.Scope) error {
- out.Count = in.Count
- out.LastObservedTime = in.LastObservedTime
- out.State = core.EventSeriesState(in.State)
- return nil
-}
-
-// Convert_v1_EventSeries_To_core_EventSeries is an autogenerated conversion function.
-func Convert_v1_EventSeries_To_core_EventSeries(in *v1.EventSeries, out *core.EventSeries, s conversion.Scope) error {
- return autoConvert_v1_EventSeries_To_core_EventSeries(in, out, s)
-}
-
-func autoConvert_core_EventSeries_To_v1_EventSeries(in *core.EventSeries, out *v1.EventSeries, s conversion.Scope) error {
- out.Count = in.Count
- out.LastObservedTime = in.LastObservedTime
- out.State = v1.EventSeriesState(in.State)
- return nil
-}
-
-// Convert_core_EventSeries_To_v1_EventSeries is an autogenerated conversion function.
-func Convert_core_EventSeries_To_v1_EventSeries(in *core.EventSeries, out *v1.EventSeries, s conversion.Scope) error {
- return autoConvert_core_EventSeries_To_v1_EventSeries(in, out, s)
-}
-
-func autoConvert_v1_EventSource_To_core_EventSource(in *v1.EventSource, out *core.EventSource, s conversion.Scope) error {
- out.Component = in.Component
- out.Host = in.Host
- return nil
-}
-
-// Convert_v1_EventSource_To_core_EventSource is an autogenerated conversion function.
-func Convert_v1_EventSource_To_core_EventSource(in *v1.EventSource, out *core.EventSource, s conversion.Scope) error {
- return autoConvert_v1_EventSource_To_core_EventSource(in, out, s)
-}
-
-func autoConvert_core_EventSource_To_v1_EventSource(in *core.EventSource, out *v1.EventSource, s conversion.Scope) error {
- out.Component = in.Component
- out.Host = in.Host
- return nil
-}
-
-// Convert_core_EventSource_To_v1_EventSource is an autogenerated conversion function.
-func Convert_core_EventSource_To_v1_EventSource(in *core.EventSource, out *v1.EventSource, s conversion.Scope) error {
- return autoConvert_core_EventSource_To_v1_EventSource(in, out, s)
-}
-
-func autoConvert_v1_ExecAction_To_core_ExecAction(in *v1.ExecAction, out *core.ExecAction, s conversion.Scope) error {
- out.Command = *(*[]string)(unsafe.Pointer(&in.Command))
- return nil
-}
-
-// Convert_v1_ExecAction_To_core_ExecAction is an autogenerated conversion function.
-func Convert_v1_ExecAction_To_core_ExecAction(in *v1.ExecAction, out *core.ExecAction, s conversion.Scope) error {
- return autoConvert_v1_ExecAction_To_core_ExecAction(in, out, s)
-}
-
-func autoConvert_core_ExecAction_To_v1_ExecAction(in *core.ExecAction, out *v1.ExecAction, s conversion.Scope) error {
- out.Command = *(*[]string)(unsafe.Pointer(&in.Command))
- return nil
-}
-
-// Convert_core_ExecAction_To_v1_ExecAction is an autogenerated conversion function.
-func Convert_core_ExecAction_To_v1_ExecAction(in *core.ExecAction, out *v1.ExecAction, s conversion.Scope) error {
- return autoConvert_core_ExecAction_To_v1_ExecAction(in, out, s)
-}
-
-func autoConvert_v1_FCVolumeSource_To_core_FCVolumeSource(in *v1.FCVolumeSource, out *core.FCVolumeSource, s conversion.Scope) error {
- out.TargetWWNs = *(*[]string)(unsafe.Pointer(&in.TargetWWNs))
- out.Lun = (*int32)(unsafe.Pointer(in.Lun))
- out.FSType = in.FSType
- out.ReadOnly = in.ReadOnly
- out.WWIDs = *(*[]string)(unsafe.Pointer(&in.WWIDs))
- return nil
-}
-
-// Convert_v1_FCVolumeSource_To_core_FCVolumeSource is an autogenerated conversion function.
-func Convert_v1_FCVolumeSource_To_core_FCVolumeSource(in *v1.FCVolumeSource, out *core.FCVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_FCVolumeSource_To_core_FCVolumeSource(in, out, s)
-}
-
-func autoConvert_core_FCVolumeSource_To_v1_FCVolumeSource(in *core.FCVolumeSource, out *v1.FCVolumeSource, s conversion.Scope) error {
- out.TargetWWNs = *(*[]string)(unsafe.Pointer(&in.TargetWWNs))
- out.Lun = (*int32)(unsafe.Pointer(in.Lun))
- out.FSType = in.FSType
- out.ReadOnly = in.ReadOnly
- out.WWIDs = *(*[]string)(unsafe.Pointer(&in.WWIDs))
- return nil
-}
-
-// Convert_core_FCVolumeSource_To_v1_FCVolumeSource is an autogenerated conversion function.
-func Convert_core_FCVolumeSource_To_v1_FCVolumeSource(in *core.FCVolumeSource, out *v1.FCVolumeSource, s conversion.Scope) error {
- return autoConvert_core_FCVolumeSource_To_v1_FCVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_FlexPersistentVolumeSource_To_core_FlexPersistentVolumeSource(in *v1.FlexPersistentVolumeSource, out *core.FlexPersistentVolumeSource, s conversion.Scope) error {
- out.Driver = in.Driver
- out.FSType = in.FSType
- out.SecretRef = (*core.SecretReference)(unsafe.Pointer(in.SecretRef))
- out.ReadOnly = in.ReadOnly
- out.Options = *(*map[string]string)(unsafe.Pointer(&in.Options))
- return nil
-}
-
-// Convert_v1_FlexPersistentVolumeSource_To_core_FlexPersistentVolumeSource is an autogenerated conversion function.
-func Convert_v1_FlexPersistentVolumeSource_To_core_FlexPersistentVolumeSource(in *v1.FlexPersistentVolumeSource, out *core.FlexPersistentVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_FlexPersistentVolumeSource_To_core_FlexPersistentVolumeSource(in, out, s)
-}
-
-func autoConvert_core_FlexPersistentVolumeSource_To_v1_FlexPersistentVolumeSource(in *core.FlexPersistentVolumeSource, out *v1.FlexPersistentVolumeSource, s conversion.Scope) error {
- out.Driver = in.Driver
- out.FSType = in.FSType
- out.SecretRef = (*v1.SecretReference)(unsafe.Pointer(in.SecretRef))
- out.ReadOnly = in.ReadOnly
- out.Options = *(*map[string]string)(unsafe.Pointer(&in.Options))
- return nil
-}
-
-// Convert_core_FlexPersistentVolumeSource_To_v1_FlexPersistentVolumeSource is an autogenerated conversion function.
-func Convert_core_FlexPersistentVolumeSource_To_v1_FlexPersistentVolumeSource(in *core.FlexPersistentVolumeSource, out *v1.FlexPersistentVolumeSource, s conversion.Scope) error {
- return autoConvert_core_FlexPersistentVolumeSource_To_v1_FlexPersistentVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_FlexVolumeSource_To_core_FlexVolumeSource(in *v1.FlexVolumeSource, out *core.FlexVolumeSource, s conversion.Scope) error {
- out.Driver = in.Driver
- out.FSType = in.FSType
- out.SecretRef = (*core.LocalObjectReference)(unsafe.Pointer(in.SecretRef))
- out.ReadOnly = in.ReadOnly
- out.Options = *(*map[string]string)(unsafe.Pointer(&in.Options))
- return nil
-}
-
-// Convert_v1_FlexVolumeSource_To_core_FlexVolumeSource is an autogenerated conversion function.
-func Convert_v1_FlexVolumeSource_To_core_FlexVolumeSource(in *v1.FlexVolumeSource, out *core.FlexVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_FlexVolumeSource_To_core_FlexVolumeSource(in, out, s)
-}
-
-func autoConvert_core_FlexVolumeSource_To_v1_FlexVolumeSource(in *core.FlexVolumeSource, out *v1.FlexVolumeSource, s conversion.Scope) error {
- out.Driver = in.Driver
- out.FSType = in.FSType
- out.SecretRef = (*v1.LocalObjectReference)(unsafe.Pointer(in.SecretRef))
- out.ReadOnly = in.ReadOnly
- out.Options = *(*map[string]string)(unsafe.Pointer(&in.Options))
- return nil
-}
-
-// Convert_core_FlexVolumeSource_To_v1_FlexVolumeSource is an autogenerated conversion function.
-func Convert_core_FlexVolumeSource_To_v1_FlexVolumeSource(in *core.FlexVolumeSource, out *v1.FlexVolumeSource, s conversion.Scope) error {
- return autoConvert_core_FlexVolumeSource_To_v1_FlexVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_FlockerVolumeSource_To_core_FlockerVolumeSource(in *v1.FlockerVolumeSource, out *core.FlockerVolumeSource, s conversion.Scope) error {
- out.DatasetName = in.DatasetName
- out.DatasetUUID = in.DatasetUUID
- return nil
-}
-
-// Convert_v1_FlockerVolumeSource_To_core_FlockerVolumeSource is an autogenerated conversion function.
-func Convert_v1_FlockerVolumeSource_To_core_FlockerVolumeSource(in *v1.FlockerVolumeSource, out *core.FlockerVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_FlockerVolumeSource_To_core_FlockerVolumeSource(in, out, s)
-}
-
-func autoConvert_core_FlockerVolumeSource_To_v1_FlockerVolumeSource(in *core.FlockerVolumeSource, out *v1.FlockerVolumeSource, s conversion.Scope) error {
- out.DatasetName = in.DatasetName
- out.DatasetUUID = in.DatasetUUID
- return nil
-}
-
-// Convert_core_FlockerVolumeSource_To_v1_FlockerVolumeSource is an autogenerated conversion function.
-func Convert_core_FlockerVolumeSource_To_v1_FlockerVolumeSource(in *core.FlockerVolumeSource, out *v1.FlockerVolumeSource, s conversion.Scope) error {
- return autoConvert_core_FlockerVolumeSource_To_v1_FlockerVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_GCEPersistentDiskVolumeSource_To_core_GCEPersistentDiskVolumeSource(in *v1.GCEPersistentDiskVolumeSource, out *core.GCEPersistentDiskVolumeSource, s conversion.Scope) error {
- out.PDName = in.PDName
- out.FSType = in.FSType
- out.Partition = in.Partition
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_v1_GCEPersistentDiskVolumeSource_To_core_GCEPersistentDiskVolumeSource is an autogenerated conversion function.
-func Convert_v1_GCEPersistentDiskVolumeSource_To_core_GCEPersistentDiskVolumeSource(in *v1.GCEPersistentDiskVolumeSource, out *core.GCEPersistentDiskVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_GCEPersistentDiskVolumeSource_To_core_GCEPersistentDiskVolumeSource(in, out, s)
-}
-
-func autoConvert_core_GCEPersistentDiskVolumeSource_To_v1_GCEPersistentDiskVolumeSource(in *core.GCEPersistentDiskVolumeSource, out *v1.GCEPersistentDiskVolumeSource, s conversion.Scope) error {
- out.PDName = in.PDName
- out.FSType = in.FSType
- out.Partition = in.Partition
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_core_GCEPersistentDiskVolumeSource_To_v1_GCEPersistentDiskVolumeSource is an autogenerated conversion function.
-func Convert_core_GCEPersistentDiskVolumeSource_To_v1_GCEPersistentDiskVolumeSource(in *core.GCEPersistentDiskVolumeSource, out *v1.GCEPersistentDiskVolumeSource, s conversion.Scope) error {
- return autoConvert_core_GCEPersistentDiskVolumeSource_To_v1_GCEPersistentDiskVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_GitRepoVolumeSource_To_core_GitRepoVolumeSource(in *v1.GitRepoVolumeSource, out *core.GitRepoVolumeSource, s conversion.Scope) error {
- out.Repository = in.Repository
- out.Revision = in.Revision
- out.Directory = in.Directory
- return nil
-}
-
-// Convert_v1_GitRepoVolumeSource_To_core_GitRepoVolumeSource is an autogenerated conversion function.
-func Convert_v1_GitRepoVolumeSource_To_core_GitRepoVolumeSource(in *v1.GitRepoVolumeSource, out *core.GitRepoVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_GitRepoVolumeSource_To_core_GitRepoVolumeSource(in, out, s)
-}
-
-func autoConvert_core_GitRepoVolumeSource_To_v1_GitRepoVolumeSource(in *core.GitRepoVolumeSource, out *v1.GitRepoVolumeSource, s conversion.Scope) error {
- out.Repository = in.Repository
- out.Revision = in.Revision
- out.Directory = in.Directory
- return nil
-}
-
-// Convert_core_GitRepoVolumeSource_To_v1_GitRepoVolumeSource is an autogenerated conversion function.
-func Convert_core_GitRepoVolumeSource_To_v1_GitRepoVolumeSource(in *core.GitRepoVolumeSource, out *v1.GitRepoVolumeSource, s conversion.Scope) error {
- return autoConvert_core_GitRepoVolumeSource_To_v1_GitRepoVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_GlusterfsVolumeSource_To_core_GlusterfsVolumeSource(in *v1.GlusterfsVolumeSource, out *core.GlusterfsVolumeSource, s conversion.Scope) error {
- out.EndpointsName = in.EndpointsName
- out.Path = in.Path
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_v1_GlusterfsVolumeSource_To_core_GlusterfsVolumeSource is an autogenerated conversion function.
-func Convert_v1_GlusterfsVolumeSource_To_core_GlusterfsVolumeSource(in *v1.GlusterfsVolumeSource, out *core.GlusterfsVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_GlusterfsVolumeSource_To_core_GlusterfsVolumeSource(in, out, s)
-}
-
-func autoConvert_core_GlusterfsVolumeSource_To_v1_GlusterfsVolumeSource(in *core.GlusterfsVolumeSource, out *v1.GlusterfsVolumeSource, s conversion.Scope) error {
- out.EndpointsName = in.EndpointsName
- out.Path = in.Path
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_core_GlusterfsVolumeSource_To_v1_GlusterfsVolumeSource is an autogenerated conversion function.
-func Convert_core_GlusterfsVolumeSource_To_v1_GlusterfsVolumeSource(in *core.GlusterfsVolumeSource, out *v1.GlusterfsVolumeSource, s conversion.Scope) error {
- return autoConvert_core_GlusterfsVolumeSource_To_v1_GlusterfsVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_HTTPGetAction_To_core_HTTPGetAction(in *v1.HTTPGetAction, out *core.HTTPGetAction, s conversion.Scope) error {
- out.Path = in.Path
- out.Port = in.Port
- out.Host = in.Host
- out.Scheme = core.URIScheme(in.Scheme)
- out.HTTPHeaders = *(*[]core.HTTPHeader)(unsafe.Pointer(&in.HTTPHeaders))
- return nil
-}
-
-// Convert_v1_HTTPGetAction_To_core_HTTPGetAction is an autogenerated conversion function.
-func Convert_v1_HTTPGetAction_To_core_HTTPGetAction(in *v1.HTTPGetAction, out *core.HTTPGetAction, s conversion.Scope) error {
- return autoConvert_v1_HTTPGetAction_To_core_HTTPGetAction(in, out, s)
-}
-
-func autoConvert_core_HTTPGetAction_To_v1_HTTPGetAction(in *core.HTTPGetAction, out *v1.HTTPGetAction, s conversion.Scope) error {
- out.Path = in.Path
- out.Port = in.Port
- out.Host = in.Host
- out.Scheme = v1.URIScheme(in.Scheme)
- out.HTTPHeaders = *(*[]v1.HTTPHeader)(unsafe.Pointer(&in.HTTPHeaders))
- return nil
-}
-
-// Convert_core_HTTPGetAction_To_v1_HTTPGetAction is an autogenerated conversion function.
-func Convert_core_HTTPGetAction_To_v1_HTTPGetAction(in *core.HTTPGetAction, out *v1.HTTPGetAction, s conversion.Scope) error {
- return autoConvert_core_HTTPGetAction_To_v1_HTTPGetAction(in, out, s)
-}
-
-func autoConvert_v1_HTTPHeader_To_core_HTTPHeader(in *v1.HTTPHeader, out *core.HTTPHeader, s conversion.Scope) error {
- out.Name = in.Name
- out.Value = in.Value
- return nil
-}
-
-// Convert_v1_HTTPHeader_To_core_HTTPHeader is an autogenerated conversion function.
-func Convert_v1_HTTPHeader_To_core_HTTPHeader(in *v1.HTTPHeader, out *core.HTTPHeader, s conversion.Scope) error {
- return autoConvert_v1_HTTPHeader_To_core_HTTPHeader(in, out, s)
-}
-
-func autoConvert_core_HTTPHeader_To_v1_HTTPHeader(in *core.HTTPHeader, out *v1.HTTPHeader, s conversion.Scope) error {
- out.Name = in.Name
- out.Value = in.Value
- return nil
-}
-
-// Convert_core_HTTPHeader_To_v1_HTTPHeader is an autogenerated conversion function.
-func Convert_core_HTTPHeader_To_v1_HTTPHeader(in *core.HTTPHeader, out *v1.HTTPHeader, s conversion.Scope) error {
- return autoConvert_core_HTTPHeader_To_v1_HTTPHeader(in, out, s)
-}
-
-func autoConvert_v1_Handler_To_core_Handler(in *v1.Handler, out *core.Handler, s conversion.Scope) error {
- out.Exec = (*core.ExecAction)(unsafe.Pointer(in.Exec))
- out.HTTPGet = (*core.HTTPGetAction)(unsafe.Pointer(in.HTTPGet))
- out.TCPSocket = (*core.TCPSocketAction)(unsafe.Pointer(in.TCPSocket))
- return nil
-}
-
-// Convert_v1_Handler_To_core_Handler is an autogenerated conversion function.
-func Convert_v1_Handler_To_core_Handler(in *v1.Handler, out *core.Handler, s conversion.Scope) error {
- return autoConvert_v1_Handler_To_core_Handler(in, out, s)
-}
-
-func autoConvert_core_Handler_To_v1_Handler(in *core.Handler, out *v1.Handler, s conversion.Scope) error {
- out.Exec = (*v1.ExecAction)(unsafe.Pointer(in.Exec))
- out.HTTPGet = (*v1.HTTPGetAction)(unsafe.Pointer(in.HTTPGet))
- out.TCPSocket = (*v1.TCPSocketAction)(unsafe.Pointer(in.TCPSocket))
- return nil
-}
-
-// Convert_core_Handler_To_v1_Handler is an autogenerated conversion function.
-func Convert_core_Handler_To_v1_Handler(in *core.Handler, out *v1.Handler, s conversion.Scope) error {
- return autoConvert_core_Handler_To_v1_Handler(in, out, s)
-}
-
-func autoConvert_v1_HostAlias_To_core_HostAlias(in *v1.HostAlias, out *core.HostAlias, s conversion.Scope) error {
- out.IP = in.IP
- out.Hostnames = *(*[]string)(unsafe.Pointer(&in.Hostnames))
- return nil
-}
-
-// Convert_v1_HostAlias_To_core_HostAlias is an autogenerated conversion function.
-func Convert_v1_HostAlias_To_core_HostAlias(in *v1.HostAlias, out *core.HostAlias, s conversion.Scope) error {
- return autoConvert_v1_HostAlias_To_core_HostAlias(in, out, s)
-}
-
-func autoConvert_core_HostAlias_To_v1_HostAlias(in *core.HostAlias, out *v1.HostAlias, s conversion.Scope) error {
- out.IP = in.IP
- out.Hostnames = *(*[]string)(unsafe.Pointer(&in.Hostnames))
- return nil
-}
-
-// Convert_core_HostAlias_To_v1_HostAlias is an autogenerated conversion function.
-func Convert_core_HostAlias_To_v1_HostAlias(in *core.HostAlias, out *v1.HostAlias, s conversion.Scope) error {
- return autoConvert_core_HostAlias_To_v1_HostAlias(in, out, s)
-}
-
-func autoConvert_v1_HostPathVolumeSource_To_core_HostPathVolumeSource(in *v1.HostPathVolumeSource, out *core.HostPathVolumeSource, s conversion.Scope) error {
- out.Path = in.Path
- out.Type = (*core.HostPathType)(unsafe.Pointer(in.Type))
- return nil
-}
-
-// Convert_v1_HostPathVolumeSource_To_core_HostPathVolumeSource is an autogenerated conversion function.
-func Convert_v1_HostPathVolumeSource_To_core_HostPathVolumeSource(in *v1.HostPathVolumeSource, out *core.HostPathVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_HostPathVolumeSource_To_core_HostPathVolumeSource(in, out, s)
-}
-
-func autoConvert_core_HostPathVolumeSource_To_v1_HostPathVolumeSource(in *core.HostPathVolumeSource, out *v1.HostPathVolumeSource, s conversion.Scope) error {
- out.Path = in.Path
- out.Type = (*v1.HostPathType)(unsafe.Pointer(in.Type))
- return nil
-}
-
-// Convert_core_HostPathVolumeSource_To_v1_HostPathVolumeSource is an autogenerated conversion function.
-func Convert_core_HostPathVolumeSource_To_v1_HostPathVolumeSource(in *core.HostPathVolumeSource, out *v1.HostPathVolumeSource, s conversion.Scope) error {
- return autoConvert_core_HostPathVolumeSource_To_v1_HostPathVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_ISCSIPersistentVolumeSource_To_core_ISCSIPersistentVolumeSource(in *v1.ISCSIPersistentVolumeSource, out *core.ISCSIPersistentVolumeSource, s conversion.Scope) error {
- out.TargetPortal = in.TargetPortal
- out.IQN = in.IQN
- out.Lun = in.Lun
- out.ISCSIInterface = in.ISCSIInterface
- out.FSType = in.FSType
- out.ReadOnly = in.ReadOnly
- out.Portals = *(*[]string)(unsafe.Pointer(&in.Portals))
- out.DiscoveryCHAPAuth = in.DiscoveryCHAPAuth
- out.SessionCHAPAuth = in.SessionCHAPAuth
- out.SecretRef = (*core.SecretReference)(unsafe.Pointer(in.SecretRef))
- out.InitiatorName = (*string)(unsafe.Pointer(in.InitiatorName))
- return nil
-}
-
-// Convert_v1_ISCSIPersistentVolumeSource_To_core_ISCSIPersistentVolumeSource is an autogenerated conversion function.
-func Convert_v1_ISCSIPersistentVolumeSource_To_core_ISCSIPersistentVolumeSource(in *v1.ISCSIPersistentVolumeSource, out *core.ISCSIPersistentVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_ISCSIPersistentVolumeSource_To_core_ISCSIPersistentVolumeSource(in, out, s)
-}
-
-func autoConvert_core_ISCSIPersistentVolumeSource_To_v1_ISCSIPersistentVolumeSource(in *core.ISCSIPersistentVolumeSource, out *v1.ISCSIPersistentVolumeSource, s conversion.Scope) error {
- out.TargetPortal = in.TargetPortal
- out.IQN = in.IQN
- out.Lun = in.Lun
- out.ISCSIInterface = in.ISCSIInterface
- out.FSType = in.FSType
- out.ReadOnly = in.ReadOnly
- out.Portals = *(*[]string)(unsafe.Pointer(&in.Portals))
- out.DiscoveryCHAPAuth = in.DiscoveryCHAPAuth
- out.SessionCHAPAuth = in.SessionCHAPAuth
- out.SecretRef = (*v1.SecretReference)(unsafe.Pointer(in.SecretRef))
- out.InitiatorName = (*string)(unsafe.Pointer(in.InitiatorName))
- return nil
-}
-
-// Convert_core_ISCSIPersistentVolumeSource_To_v1_ISCSIPersistentVolumeSource is an autogenerated conversion function.
-func Convert_core_ISCSIPersistentVolumeSource_To_v1_ISCSIPersistentVolumeSource(in *core.ISCSIPersistentVolumeSource, out *v1.ISCSIPersistentVolumeSource, s conversion.Scope) error {
- return autoConvert_core_ISCSIPersistentVolumeSource_To_v1_ISCSIPersistentVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_ISCSIVolumeSource_To_core_ISCSIVolumeSource(in *v1.ISCSIVolumeSource, out *core.ISCSIVolumeSource, s conversion.Scope) error {
- out.TargetPortal = in.TargetPortal
- out.IQN = in.IQN
- out.Lun = in.Lun
- out.ISCSIInterface = in.ISCSIInterface
- out.FSType = in.FSType
- out.ReadOnly = in.ReadOnly
- out.Portals = *(*[]string)(unsafe.Pointer(&in.Portals))
- out.DiscoveryCHAPAuth = in.DiscoveryCHAPAuth
- out.SessionCHAPAuth = in.SessionCHAPAuth
- out.SecretRef = (*core.LocalObjectReference)(unsafe.Pointer(in.SecretRef))
- out.InitiatorName = (*string)(unsafe.Pointer(in.InitiatorName))
- return nil
-}
-
-// Convert_v1_ISCSIVolumeSource_To_core_ISCSIVolumeSource is an autogenerated conversion function.
-func Convert_v1_ISCSIVolumeSource_To_core_ISCSIVolumeSource(in *v1.ISCSIVolumeSource, out *core.ISCSIVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_ISCSIVolumeSource_To_core_ISCSIVolumeSource(in, out, s)
-}
-
-func autoConvert_core_ISCSIVolumeSource_To_v1_ISCSIVolumeSource(in *core.ISCSIVolumeSource, out *v1.ISCSIVolumeSource, s conversion.Scope) error {
- out.TargetPortal = in.TargetPortal
- out.IQN = in.IQN
- out.Lun = in.Lun
- out.ISCSIInterface = in.ISCSIInterface
- out.FSType = in.FSType
- out.ReadOnly = in.ReadOnly
- out.Portals = *(*[]string)(unsafe.Pointer(&in.Portals))
- out.DiscoveryCHAPAuth = in.DiscoveryCHAPAuth
- out.SessionCHAPAuth = in.SessionCHAPAuth
- out.SecretRef = (*v1.LocalObjectReference)(unsafe.Pointer(in.SecretRef))
- out.InitiatorName = (*string)(unsafe.Pointer(in.InitiatorName))
- return nil
-}
-
-// Convert_core_ISCSIVolumeSource_To_v1_ISCSIVolumeSource is an autogenerated conversion function.
-func Convert_core_ISCSIVolumeSource_To_v1_ISCSIVolumeSource(in *core.ISCSIVolumeSource, out *v1.ISCSIVolumeSource, s conversion.Scope) error {
- return autoConvert_core_ISCSIVolumeSource_To_v1_ISCSIVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_KeyToPath_To_core_KeyToPath(in *v1.KeyToPath, out *core.KeyToPath, s conversion.Scope) error {
- out.Key = in.Key
- out.Path = in.Path
- out.Mode = (*int32)(unsafe.Pointer(in.Mode))
- return nil
-}
-
-// Convert_v1_KeyToPath_To_core_KeyToPath is an autogenerated conversion function.
-func Convert_v1_KeyToPath_To_core_KeyToPath(in *v1.KeyToPath, out *core.KeyToPath, s conversion.Scope) error {
- return autoConvert_v1_KeyToPath_To_core_KeyToPath(in, out, s)
-}
-
-func autoConvert_core_KeyToPath_To_v1_KeyToPath(in *core.KeyToPath, out *v1.KeyToPath, s conversion.Scope) error {
- out.Key = in.Key
- out.Path = in.Path
- out.Mode = (*int32)(unsafe.Pointer(in.Mode))
- return nil
-}
-
-// Convert_core_KeyToPath_To_v1_KeyToPath is an autogenerated conversion function.
-func Convert_core_KeyToPath_To_v1_KeyToPath(in *core.KeyToPath, out *v1.KeyToPath, s conversion.Scope) error {
- return autoConvert_core_KeyToPath_To_v1_KeyToPath(in, out, s)
-}
-
-func autoConvert_v1_Lifecycle_To_core_Lifecycle(in *v1.Lifecycle, out *core.Lifecycle, s conversion.Scope) error {
- out.PostStart = (*core.Handler)(unsafe.Pointer(in.PostStart))
- out.PreStop = (*core.Handler)(unsafe.Pointer(in.PreStop))
- return nil
-}
-
-// Convert_v1_Lifecycle_To_core_Lifecycle is an autogenerated conversion function.
-func Convert_v1_Lifecycle_To_core_Lifecycle(in *v1.Lifecycle, out *core.Lifecycle, s conversion.Scope) error {
- return autoConvert_v1_Lifecycle_To_core_Lifecycle(in, out, s)
-}
-
-func autoConvert_core_Lifecycle_To_v1_Lifecycle(in *core.Lifecycle, out *v1.Lifecycle, s conversion.Scope) error {
- out.PostStart = (*v1.Handler)(unsafe.Pointer(in.PostStart))
- out.PreStop = (*v1.Handler)(unsafe.Pointer(in.PreStop))
- return nil
-}
-
-// Convert_core_Lifecycle_To_v1_Lifecycle is an autogenerated conversion function.
-func Convert_core_Lifecycle_To_v1_Lifecycle(in *core.Lifecycle, out *v1.Lifecycle, s conversion.Scope) error {
- return autoConvert_core_Lifecycle_To_v1_Lifecycle(in, out, s)
-}
-
-func autoConvert_v1_LimitRange_To_core_LimitRange(in *v1.LimitRange, out *core.LimitRange, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_v1_LimitRangeSpec_To_core_LimitRangeSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_v1_LimitRange_To_core_LimitRange is an autogenerated conversion function.
-func Convert_v1_LimitRange_To_core_LimitRange(in *v1.LimitRange, out *core.LimitRange, s conversion.Scope) error {
- return autoConvert_v1_LimitRange_To_core_LimitRange(in, out, s)
-}
-
-func autoConvert_core_LimitRange_To_v1_LimitRange(in *core.LimitRange, out *v1.LimitRange, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_core_LimitRangeSpec_To_v1_LimitRangeSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_core_LimitRange_To_v1_LimitRange is an autogenerated conversion function.
-func Convert_core_LimitRange_To_v1_LimitRange(in *core.LimitRange, out *v1.LimitRange, s conversion.Scope) error {
- return autoConvert_core_LimitRange_To_v1_LimitRange(in, out, s)
-}
-
-func autoConvert_v1_LimitRangeItem_To_core_LimitRangeItem(in *v1.LimitRangeItem, out *core.LimitRangeItem, s conversion.Scope) error {
- out.Type = core.LimitType(in.Type)
- out.Max = *(*core.ResourceList)(unsafe.Pointer(&in.Max))
- out.Min = *(*core.ResourceList)(unsafe.Pointer(&in.Min))
- out.Default = *(*core.ResourceList)(unsafe.Pointer(&in.Default))
- out.DefaultRequest = *(*core.ResourceList)(unsafe.Pointer(&in.DefaultRequest))
- out.MaxLimitRequestRatio = *(*core.ResourceList)(unsafe.Pointer(&in.MaxLimitRequestRatio))
- return nil
-}
-
-// Convert_v1_LimitRangeItem_To_core_LimitRangeItem is an autogenerated conversion function.
-func Convert_v1_LimitRangeItem_To_core_LimitRangeItem(in *v1.LimitRangeItem, out *core.LimitRangeItem, s conversion.Scope) error {
- return autoConvert_v1_LimitRangeItem_To_core_LimitRangeItem(in, out, s)
-}
-
-func autoConvert_core_LimitRangeItem_To_v1_LimitRangeItem(in *core.LimitRangeItem, out *v1.LimitRangeItem, s conversion.Scope) error {
- out.Type = v1.LimitType(in.Type)
- out.Max = *(*v1.ResourceList)(unsafe.Pointer(&in.Max))
- out.Min = *(*v1.ResourceList)(unsafe.Pointer(&in.Min))
- out.Default = *(*v1.ResourceList)(unsafe.Pointer(&in.Default))
- out.DefaultRequest = *(*v1.ResourceList)(unsafe.Pointer(&in.DefaultRequest))
- out.MaxLimitRequestRatio = *(*v1.ResourceList)(unsafe.Pointer(&in.MaxLimitRequestRatio))
- return nil
-}
-
-// Convert_core_LimitRangeItem_To_v1_LimitRangeItem is an autogenerated conversion function.
-func Convert_core_LimitRangeItem_To_v1_LimitRangeItem(in *core.LimitRangeItem, out *v1.LimitRangeItem, s conversion.Scope) error {
- return autoConvert_core_LimitRangeItem_To_v1_LimitRangeItem(in, out, s)
-}
-
-func autoConvert_v1_LimitRangeList_To_core_LimitRangeList(in *v1.LimitRangeList, out *core.LimitRangeList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]core.LimitRange)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_v1_LimitRangeList_To_core_LimitRangeList is an autogenerated conversion function.
-func Convert_v1_LimitRangeList_To_core_LimitRangeList(in *v1.LimitRangeList, out *core.LimitRangeList, s conversion.Scope) error {
- return autoConvert_v1_LimitRangeList_To_core_LimitRangeList(in, out, s)
-}
-
-func autoConvert_core_LimitRangeList_To_v1_LimitRangeList(in *core.LimitRangeList, out *v1.LimitRangeList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]v1.LimitRange)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_core_LimitRangeList_To_v1_LimitRangeList is an autogenerated conversion function.
-func Convert_core_LimitRangeList_To_v1_LimitRangeList(in *core.LimitRangeList, out *v1.LimitRangeList, s conversion.Scope) error {
- return autoConvert_core_LimitRangeList_To_v1_LimitRangeList(in, out, s)
-}
-
-func autoConvert_v1_LimitRangeSpec_To_core_LimitRangeSpec(in *v1.LimitRangeSpec, out *core.LimitRangeSpec, s conversion.Scope) error {
- out.Limits = *(*[]core.LimitRangeItem)(unsafe.Pointer(&in.Limits))
- return nil
-}
-
-// Convert_v1_LimitRangeSpec_To_core_LimitRangeSpec is an autogenerated conversion function.
-func Convert_v1_LimitRangeSpec_To_core_LimitRangeSpec(in *v1.LimitRangeSpec, out *core.LimitRangeSpec, s conversion.Scope) error {
- return autoConvert_v1_LimitRangeSpec_To_core_LimitRangeSpec(in, out, s)
-}
-
-func autoConvert_core_LimitRangeSpec_To_v1_LimitRangeSpec(in *core.LimitRangeSpec, out *v1.LimitRangeSpec, s conversion.Scope) error {
- out.Limits = *(*[]v1.LimitRangeItem)(unsafe.Pointer(&in.Limits))
- return nil
-}
-
-// Convert_core_LimitRangeSpec_To_v1_LimitRangeSpec is an autogenerated conversion function.
-func Convert_core_LimitRangeSpec_To_v1_LimitRangeSpec(in *core.LimitRangeSpec, out *v1.LimitRangeSpec, s conversion.Scope) error {
- return autoConvert_core_LimitRangeSpec_To_v1_LimitRangeSpec(in, out, s)
-}
-
-func autoConvert_v1_List_To_core_List(in *v1.List, out *core.List, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]runtime.Object, len(*in))
- for i := range *in {
- if err := runtime.Convert_runtime_RawExtension_To_runtime_Object(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.Items = nil
- }
- return nil
-}
-
-// Convert_v1_List_To_core_List is an autogenerated conversion function.
-func Convert_v1_List_To_core_List(in *v1.List, out *core.List, s conversion.Scope) error {
- return autoConvert_v1_List_To_core_List(in, out, s)
-}
-
-func autoConvert_core_List_To_v1_List(in *core.List, out *v1.List, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]runtime.RawExtension, len(*in))
- for i := range *in {
- if err := runtime.Convert_runtime_Object_To_runtime_RawExtension(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.Items = nil
- }
- return nil
-}
-
-// Convert_core_List_To_v1_List is an autogenerated conversion function.
-func Convert_core_List_To_v1_List(in *core.List, out *v1.List, s conversion.Scope) error {
- return autoConvert_core_List_To_v1_List(in, out, s)
-}
-
-func autoConvert_v1_ListOptions_To_core_ListOptions(in *v1.ListOptions, out *core.ListOptions, s conversion.Scope) error {
- if err := meta_v1.Convert_string_To_labels_Selector(&in.LabelSelector, &out.LabelSelector, s); err != nil {
- return err
- }
- if err := meta_v1.Convert_string_To_fields_Selector(&in.FieldSelector, &out.FieldSelector, s); err != nil {
- return err
- }
- out.IncludeUninitialized = in.IncludeUninitialized
- out.Watch = in.Watch
- out.ResourceVersion = in.ResourceVersion
- out.TimeoutSeconds = (*int64)(unsafe.Pointer(in.TimeoutSeconds))
- return nil
-}
-
-// Convert_v1_ListOptions_To_core_ListOptions is an autogenerated conversion function.
-func Convert_v1_ListOptions_To_core_ListOptions(in *v1.ListOptions, out *core.ListOptions, s conversion.Scope) error {
- return autoConvert_v1_ListOptions_To_core_ListOptions(in, out, s)
-}
-
-func autoConvert_core_ListOptions_To_v1_ListOptions(in *core.ListOptions, out *v1.ListOptions, s conversion.Scope) error {
- if err := meta_v1.Convert_labels_Selector_To_string(&in.LabelSelector, &out.LabelSelector, s); err != nil {
- return err
- }
- if err := meta_v1.Convert_fields_Selector_To_string(&in.FieldSelector, &out.FieldSelector, s); err != nil {
- return err
- }
- out.IncludeUninitialized = in.IncludeUninitialized
- out.Watch = in.Watch
- out.ResourceVersion = in.ResourceVersion
- out.TimeoutSeconds = (*int64)(unsafe.Pointer(in.TimeoutSeconds))
- return nil
-}
-
-// Convert_core_ListOptions_To_v1_ListOptions is an autogenerated conversion function.
-func Convert_core_ListOptions_To_v1_ListOptions(in *core.ListOptions, out *v1.ListOptions, s conversion.Scope) error {
- return autoConvert_core_ListOptions_To_v1_ListOptions(in, out, s)
-}
-
-func autoConvert_v1_LoadBalancerIngress_To_core_LoadBalancerIngress(in *v1.LoadBalancerIngress, out *core.LoadBalancerIngress, s conversion.Scope) error {
- out.IP = in.IP
- out.Hostname = in.Hostname
- return nil
-}
-
-// Convert_v1_LoadBalancerIngress_To_core_LoadBalancerIngress is an autogenerated conversion function.
-func Convert_v1_LoadBalancerIngress_To_core_LoadBalancerIngress(in *v1.LoadBalancerIngress, out *core.LoadBalancerIngress, s conversion.Scope) error {
- return autoConvert_v1_LoadBalancerIngress_To_core_LoadBalancerIngress(in, out, s)
-}
-
-func autoConvert_core_LoadBalancerIngress_To_v1_LoadBalancerIngress(in *core.LoadBalancerIngress, out *v1.LoadBalancerIngress, s conversion.Scope) error {
- out.IP = in.IP
- out.Hostname = in.Hostname
- return nil
-}
-
-// Convert_core_LoadBalancerIngress_To_v1_LoadBalancerIngress is an autogenerated conversion function.
-func Convert_core_LoadBalancerIngress_To_v1_LoadBalancerIngress(in *core.LoadBalancerIngress, out *v1.LoadBalancerIngress, s conversion.Scope) error {
- return autoConvert_core_LoadBalancerIngress_To_v1_LoadBalancerIngress(in, out, s)
-}
-
-func autoConvert_v1_LoadBalancerStatus_To_core_LoadBalancerStatus(in *v1.LoadBalancerStatus, out *core.LoadBalancerStatus, s conversion.Scope) error {
- out.Ingress = *(*[]core.LoadBalancerIngress)(unsafe.Pointer(&in.Ingress))
- return nil
-}
-
-// Convert_v1_LoadBalancerStatus_To_core_LoadBalancerStatus is an autogenerated conversion function.
-func Convert_v1_LoadBalancerStatus_To_core_LoadBalancerStatus(in *v1.LoadBalancerStatus, out *core.LoadBalancerStatus, s conversion.Scope) error {
- return autoConvert_v1_LoadBalancerStatus_To_core_LoadBalancerStatus(in, out, s)
-}
-
-func autoConvert_core_LoadBalancerStatus_To_v1_LoadBalancerStatus(in *core.LoadBalancerStatus, out *v1.LoadBalancerStatus, s conversion.Scope) error {
- out.Ingress = *(*[]v1.LoadBalancerIngress)(unsafe.Pointer(&in.Ingress))
- return nil
-}
-
-// Convert_core_LoadBalancerStatus_To_v1_LoadBalancerStatus is an autogenerated conversion function.
-func Convert_core_LoadBalancerStatus_To_v1_LoadBalancerStatus(in *core.LoadBalancerStatus, out *v1.LoadBalancerStatus, s conversion.Scope) error {
- return autoConvert_core_LoadBalancerStatus_To_v1_LoadBalancerStatus(in, out, s)
-}
-
-func autoConvert_v1_LocalObjectReference_To_core_LocalObjectReference(in *v1.LocalObjectReference, out *core.LocalObjectReference, s conversion.Scope) error {
- out.Name = in.Name
- return nil
-}
-
-// Convert_v1_LocalObjectReference_To_core_LocalObjectReference is an autogenerated conversion function.
-func Convert_v1_LocalObjectReference_To_core_LocalObjectReference(in *v1.LocalObjectReference, out *core.LocalObjectReference, s conversion.Scope) error {
- return autoConvert_v1_LocalObjectReference_To_core_LocalObjectReference(in, out, s)
-}
-
-func autoConvert_core_LocalObjectReference_To_v1_LocalObjectReference(in *core.LocalObjectReference, out *v1.LocalObjectReference, s conversion.Scope) error {
- out.Name = in.Name
- return nil
-}
-
-// Convert_core_LocalObjectReference_To_v1_LocalObjectReference is an autogenerated conversion function.
-func Convert_core_LocalObjectReference_To_v1_LocalObjectReference(in *core.LocalObjectReference, out *v1.LocalObjectReference, s conversion.Scope) error {
- return autoConvert_core_LocalObjectReference_To_v1_LocalObjectReference(in, out, s)
-}
-
-func autoConvert_v1_LocalVolumeSource_To_core_LocalVolumeSource(in *v1.LocalVolumeSource, out *core.LocalVolumeSource, s conversion.Scope) error {
- out.Path = in.Path
- return nil
-}
-
-// Convert_v1_LocalVolumeSource_To_core_LocalVolumeSource is an autogenerated conversion function.
-func Convert_v1_LocalVolumeSource_To_core_LocalVolumeSource(in *v1.LocalVolumeSource, out *core.LocalVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_LocalVolumeSource_To_core_LocalVolumeSource(in, out, s)
-}
-
-func autoConvert_core_LocalVolumeSource_To_v1_LocalVolumeSource(in *core.LocalVolumeSource, out *v1.LocalVolumeSource, s conversion.Scope) error {
- out.Path = in.Path
- return nil
-}
-
-// Convert_core_LocalVolumeSource_To_v1_LocalVolumeSource is an autogenerated conversion function.
-func Convert_core_LocalVolumeSource_To_v1_LocalVolumeSource(in *core.LocalVolumeSource, out *v1.LocalVolumeSource, s conversion.Scope) error {
- return autoConvert_core_LocalVolumeSource_To_v1_LocalVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_NFSVolumeSource_To_core_NFSVolumeSource(in *v1.NFSVolumeSource, out *core.NFSVolumeSource, s conversion.Scope) error {
- out.Server = in.Server
- out.Path = in.Path
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_v1_NFSVolumeSource_To_core_NFSVolumeSource is an autogenerated conversion function.
-func Convert_v1_NFSVolumeSource_To_core_NFSVolumeSource(in *v1.NFSVolumeSource, out *core.NFSVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_NFSVolumeSource_To_core_NFSVolumeSource(in, out, s)
-}
-
-func autoConvert_core_NFSVolumeSource_To_v1_NFSVolumeSource(in *core.NFSVolumeSource, out *v1.NFSVolumeSource, s conversion.Scope) error {
- out.Server = in.Server
- out.Path = in.Path
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_core_NFSVolumeSource_To_v1_NFSVolumeSource is an autogenerated conversion function.
-func Convert_core_NFSVolumeSource_To_v1_NFSVolumeSource(in *core.NFSVolumeSource, out *v1.NFSVolumeSource, s conversion.Scope) error {
- return autoConvert_core_NFSVolumeSource_To_v1_NFSVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_Namespace_To_core_Namespace(in *v1.Namespace, out *core.Namespace, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_v1_NamespaceSpec_To_core_NamespaceSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- if err := Convert_v1_NamespaceStatus_To_core_NamespaceStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_v1_Namespace_To_core_Namespace is an autogenerated conversion function.
-func Convert_v1_Namespace_To_core_Namespace(in *v1.Namespace, out *core.Namespace, s conversion.Scope) error {
- return autoConvert_v1_Namespace_To_core_Namespace(in, out, s)
-}
-
-func autoConvert_core_Namespace_To_v1_Namespace(in *core.Namespace, out *v1.Namespace, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_core_NamespaceSpec_To_v1_NamespaceSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- if err := Convert_core_NamespaceStatus_To_v1_NamespaceStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_core_Namespace_To_v1_Namespace is an autogenerated conversion function.
-func Convert_core_Namespace_To_v1_Namespace(in *core.Namespace, out *v1.Namespace, s conversion.Scope) error {
- return autoConvert_core_Namespace_To_v1_Namespace(in, out, s)
-}
-
-func autoConvert_v1_NamespaceList_To_core_NamespaceList(in *v1.NamespaceList, out *core.NamespaceList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]core.Namespace)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_v1_NamespaceList_To_core_NamespaceList is an autogenerated conversion function.
-func Convert_v1_NamespaceList_To_core_NamespaceList(in *v1.NamespaceList, out *core.NamespaceList, s conversion.Scope) error {
- return autoConvert_v1_NamespaceList_To_core_NamespaceList(in, out, s)
-}
-
-func autoConvert_core_NamespaceList_To_v1_NamespaceList(in *core.NamespaceList, out *v1.NamespaceList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]v1.Namespace)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_core_NamespaceList_To_v1_NamespaceList is an autogenerated conversion function.
-func Convert_core_NamespaceList_To_v1_NamespaceList(in *core.NamespaceList, out *v1.NamespaceList, s conversion.Scope) error {
- return autoConvert_core_NamespaceList_To_v1_NamespaceList(in, out, s)
-}
-
-func autoConvert_v1_NamespaceSpec_To_core_NamespaceSpec(in *v1.NamespaceSpec, out *core.NamespaceSpec, s conversion.Scope) error {
- out.Finalizers = *(*[]core.FinalizerName)(unsafe.Pointer(&in.Finalizers))
- return nil
-}
-
-// Convert_v1_NamespaceSpec_To_core_NamespaceSpec is an autogenerated conversion function.
-func Convert_v1_NamespaceSpec_To_core_NamespaceSpec(in *v1.NamespaceSpec, out *core.NamespaceSpec, s conversion.Scope) error {
- return autoConvert_v1_NamespaceSpec_To_core_NamespaceSpec(in, out, s)
-}
-
-func autoConvert_core_NamespaceSpec_To_v1_NamespaceSpec(in *core.NamespaceSpec, out *v1.NamespaceSpec, s conversion.Scope) error {
- out.Finalizers = *(*[]v1.FinalizerName)(unsafe.Pointer(&in.Finalizers))
- return nil
-}
-
-// Convert_core_NamespaceSpec_To_v1_NamespaceSpec is an autogenerated conversion function.
-func Convert_core_NamespaceSpec_To_v1_NamespaceSpec(in *core.NamespaceSpec, out *v1.NamespaceSpec, s conversion.Scope) error {
- return autoConvert_core_NamespaceSpec_To_v1_NamespaceSpec(in, out, s)
-}
-
-func autoConvert_v1_NamespaceStatus_To_core_NamespaceStatus(in *v1.NamespaceStatus, out *core.NamespaceStatus, s conversion.Scope) error {
- out.Phase = core.NamespacePhase(in.Phase)
- return nil
-}
-
-// Convert_v1_NamespaceStatus_To_core_NamespaceStatus is an autogenerated conversion function.
-func Convert_v1_NamespaceStatus_To_core_NamespaceStatus(in *v1.NamespaceStatus, out *core.NamespaceStatus, s conversion.Scope) error {
- return autoConvert_v1_NamespaceStatus_To_core_NamespaceStatus(in, out, s)
-}
-
-func autoConvert_core_NamespaceStatus_To_v1_NamespaceStatus(in *core.NamespaceStatus, out *v1.NamespaceStatus, s conversion.Scope) error {
- out.Phase = v1.NamespacePhase(in.Phase)
- return nil
-}
-
-// Convert_core_NamespaceStatus_To_v1_NamespaceStatus is an autogenerated conversion function.
-func Convert_core_NamespaceStatus_To_v1_NamespaceStatus(in *core.NamespaceStatus, out *v1.NamespaceStatus, s conversion.Scope) error {
- return autoConvert_core_NamespaceStatus_To_v1_NamespaceStatus(in, out, s)
-}
-
-func autoConvert_v1_Node_To_core_Node(in *v1.Node, out *core.Node, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_v1_NodeSpec_To_core_NodeSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- if err := Convert_v1_NodeStatus_To_core_NodeStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_v1_Node_To_core_Node is an autogenerated conversion function.
-func Convert_v1_Node_To_core_Node(in *v1.Node, out *core.Node, s conversion.Scope) error {
- return autoConvert_v1_Node_To_core_Node(in, out, s)
-}
-
-func autoConvert_core_Node_To_v1_Node(in *core.Node, out *v1.Node, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_core_NodeSpec_To_v1_NodeSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- if err := Convert_core_NodeStatus_To_v1_NodeStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_core_Node_To_v1_Node is an autogenerated conversion function.
-func Convert_core_Node_To_v1_Node(in *core.Node, out *v1.Node, s conversion.Scope) error {
- return autoConvert_core_Node_To_v1_Node(in, out, s)
-}
-
-func autoConvert_v1_NodeAddress_To_core_NodeAddress(in *v1.NodeAddress, out *core.NodeAddress, s conversion.Scope) error {
- out.Type = core.NodeAddressType(in.Type)
- out.Address = in.Address
- return nil
-}
-
-// Convert_v1_NodeAddress_To_core_NodeAddress is an autogenerated conversion function.
-func Convert_v1_NodeAddress_To_core_NodeAddress(in *v1.NodeAddress, out *core.NodeAddress, s conversion.Scope) error {
- return autoConvert_v1_NodeAddress_To_core_NodeAddress(in, out, s)
-}
-
-func autoConvert_core_NodeAddress_To_v1_NodeAddress(in *core.NodeAddress, out *v1.NodeAddress, s conversion.Scope) error {
- out.Type = v1.NodeAddressType(in.Type)
- out.Address = in.Address
- return nil
-}
-
-// Convert_core_NodeAddress_To_v1_NodeAddress is an autogenerated conversion function.
-func Convert_core_NodeAddress_To_v1_NodeAddress(in *core.NodeAddress, out *v1.NodeAddress, s conversion.Scope) error {
- return autoConvert_core_NodeAddress_To_v1_NodeAddress(in, out, s)
-}
-
-func autoConvert_v1_NodeAffinity_To_core_NodeAffinity(in *v1.NodeAffinity, out *core.NodeAffinity, s conversion.Scope) error {
- out.RequiredDuringSchedulingIgnoredDuringExecution = (*core.NodeSelector)(unsafe.Pointer(in.RequiredDuringSchedulingIgnoredDuringExecution))
- out.PreferredDuringSchedulingIgnoredDuringExecution = *(*[]core.PreferredSchedulingTerm)(unsafe.Pointer(&in.PreferredDuringSchedulingIgnoredDuringExecution))
- return nil
-}
-
-// Convert_v1_NodeAffinity_To_core_NodeAffinity is an autogenerated conversion function.
-func Convert_v1_NodeAffinity_To_core_NodeAffinity(in *v1.NodeAffinity, out *core.NodeAffinity, s conversion.Scope) error {
- return autoConvert_v1_NodeAffinity_To_core_NodeAffinity(in, out, s)
-}
-
-func autoConvert_core_NodeAffinity_To_v1_NodeAffinity(in *core.NodeAffinity, out *v1.NodeAffinity, s conversion.Scope) error {
- out.RequiredDuringSchedulingIgnoredDuringExecution = (*v1.NodeSelector)(unsafe.Pointer(in.RequiredDuringSchedulingIgnoredDuringExecution))
- out.PreferredDuringSchedulingIgnoredDuringExecution = *(*[]v1.PreferredSchedulingTerm)(unsafe.Pointer(&in.PreferredDuringSchedulingIgnoredDuringExecution))
- return nil
-}
-
-// Convert_core_NodeAffinity_To_v1_NodeAffinity is an autogenerated conversion function.
-func Convert_core_NodeAffinity_To_v1_NodeAffinity(in *core.NodeAffinity, out *v1.NodeAffinity, s conversion.Scope) error {
- return autoConvert_core_NodeAffinity_To_v1_NodeAffinity(in, out, s)
-}
-
-func autoConvert_v1_NodeCondition_To_core_NodeCondition(in *v1.NodeCondition, out *core.NodeCondition, s conversion.Scope) error {
- out.Type = core.NodeConditionType(in.Type)
- out.Status = core.ConditionStatus(in.Status)
- out.LastHeartbeatTime = in.LastHeartbeatTime
- out.LastTransitionTime = in.LastTransitionTime
- out.Reason = in.Reason
- out.Message = in.Message
- return nil
-}
-
-// Convert_v1_NodeCondition_To_core_NodeCondition is an autogenerated conversion function.
-func Convert_v1_NodeCondition_To_core_NodeCondition(in *v1.NodeCondition, out *core.NodeCondition, s conversion.Scope) error {
- return autoConvert_v1_NodeCondition_To_core_NodeCondition(in, out, s)
-}
-
-func autoConvert_core_NodeCondition_To_v1_NodeCondition(in *core.NodeCondition, out *v1.NodeCondition, s conversion.Scope) error {
- out.Type = v1.NodeConditionType(in.Type)
- out.Status = v1.ConditionStatus(in.Status)
- out.LastHeartbeatTime = in.LastHeartbeatTime
- out.LastTransitionTime = in.LastTransitionTime
- out.Reason = in.Reason
- out.Message = in.Message
- return nil
-}
-
-// Convert_core_NodeCondition_To_v1_NodeCondition is an autogenerated conversion function.
-func Convert_core_NodeCondition_To_v1_NodeCondition(in *core.NodeCondition, out *v1.NodeCondition, s conversion.Scope) error {
- return autoConvert_core_NodeCondition_To_v1_NodeCondition(in, out, s)
-}
-
-func autoConvert_v1_NodeConfigSource_To_core_NodeConfigSource(in *v1.NodeConfigSource, out *core.NodeConfigSource, s conversion.Scope) error {
- out.ConfigMapRef = (*core.ObjectReference)(unsafe.Pointer(in.ConfigMapRef))
- return nil
-}
-
-// Convert_v1_NodeConfigSource_To_core_NodeConfigSource is an autogenerated conversion function.
-func Convert_v1_NodeConfigSource_To_core_NodeConfigSource(in *v1.NodeConfigSource, out *core.NodeConfigSource, s conversion.Scope) error {
- return autoConvert_v1_NodeConfigSource_To_core_NodeConfigSource(in, out, s)
-}
-
-func autoConvert_core_NodeConfigSource_To_v1_NodeConfigSource(in *core.NodeConfigSource, out *v1.NodeConfigSource, s conversion.Scope) error {
- out.ConfigMapRef = (*v1.ObjectReference)(unsafe.Pointer(in.ConfigMapRef))
- return nil
-}
-
-// Convert_core_NodeConfigSource_To_v1_NodeConfigSource is an autogenerated conversion function.
-func Convert_core_NodeConfigSource_To_v1_NodeConfigSource(in *core.NodeConfigSource, out *v1.NodeConfigSource, s conversion.Scope) error {
- return autoConvert_core_NodeConfigSource_To_v1_NodeConfigSource(in, out, s)
-}
-
-func autoConvert_v1_NodeDaemonEndpoints_To_core_NodeDaemonEndpoints(in *v1.NodeDaemonEndpoints, out *core.NodeDaemonEndpoints, s conversion.Scope) error {
- if err := Convert_v1_DaemonEndpoint_To_core_DaemonEndpoint(&in.KubeletEndpoint, &out.KubeletEndpoint, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_v1_NodeDaemonEndpoints_To_core_NodeDaemonEndpoints is an autogenerated conversion function.
-func Convert_v1_NodeDaemonEndpoints_To_core_NodeDaemonEndpoints(in *v1.NodeDaemonEndpoints, out *core.NodeDaemonEndpoints, s conversion.Scope) error {
- return autoConvert_v1_NodeDaemonEndpoints_To_core_NodeDaemonEndpoints(in, out, s)
-}
-
-func autoConvert_core_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints(in *core.NodeDaemonEndpoints, out *v1.NodeDaemonEndpoints, s conversion.Scope) error {
- if err := Convert_core_DaemonEndpoint_To_v1_DaemonEndpoint(&in.KubeletEndpoint, &out.KubeletEndpoint, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_core_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints is an autogenerated conversion function.
-func Convert_core_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints(in *core.NodeDaemonEndpoints, out *v1.NodeDaemonEndpoints, s conversion.Scope) error {
- return autoConvert_core_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints(in, out, s)
-}
-
-func autoConvert_v1_NodeList_To_core_NodeList(in *v1.NodeList, out *core.NodeList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]core.Node)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_v1_NodeList_To_core_NodeList is an autogenerated conversion function.
-func Convert_v1_NodeList_To_core_NodeList(in *v1.NodeList, out *core.NodeList, s conversion.Scope) error {
- return autoConvert_v1_NodeList_To_core_NodeList(in, out, s)
-}
-
-func autoConvert_core_NodeList_To_v1_NodeList(in *core.NodeList, out *v1.NodeList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]v1.Node)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_core_NodeList_To_v1_NodeList is an autogenerated conversion function.
-func Convert_core_NodeList_To_v1_NodeList(in *core.NodeList, out *v1.NodeList, s conversion.Scope) error {
- return autoConvert_core_NodeList_To_v1_NodeList(in, out, s)
-}
-
-func autoConvert_v1_NodeProxyOptions_To_core_NodeProxyOptions(in *v1.NodeProxyOptions, out *core.NodeProxyOptions, s conversion.Scope) error {
- out.Path = in.Path
- return nil
-}
-
-// Convert_v1_NodeProxyOptions_To_core_NodeProxyOptions is an autogenerated conversion function.
-func Convert_v1_NodeProxyOptions_To_core_NodeProxyOptions(in *v1.NodeProxyOptions, out *core.NodeProxyOptions, s conversion.Scope) error {
- return autoConvert_v1_NodeProxyOptions_To_core_NodeProxyOptions(in, out, s)
-}
-
-func autoConvert_core_NodeProxyOptions_To_v1_NodeProxyOptions(in *core.NodeProxyOptions, out *v1.NodeProxyOptions, s conversion.Scope) error {
- out.Path = in.Path
- return nil
-}
-
-// Convert_core_NodeProxyOptions_To_v1_NodeProxyOptions is an autogenerated conversion function.
-func Convert_core_NodeProxyOptions_To_v1_NodeProxyOptions(in *core.NodeProxyOptions, out *v1.NodeProxyOptions, s conversion.Scope) error {
- return autoConvert_core_NodeProxyOptions_To_v1_NodeProxyOptions(in, out, s)
-}
-
-func autoConvert_v1_NodeResources_To_core_NodeResources(in *v1.NodeResources, out *core.NodeResources, s conversion.Scope) error {
- out.Capacity = *(*core.ResourceList)(unsafe.Pointer(&in.Capacity))
- return nil
-}
-
-// Convert_v1_NodeResources_To_core_NodeResources is an autogenerated conversion function.
-func Convert_v1_NodeResources_To_core_NodeResources(in *v1.NodeResources, out *core.NodeResources, s conversion.Scope) error {
- return autoConvert_v1_NodeResources_To_core_NodeResources(in, out, s)
-}
-
-func autoConvert_core_NodeResources_To_v1_NodeResources(in *core.NodeResources, out *v1.NodeResources, s conversion.Scope) error {
- out.Capacity = *(*v1.ResourceList)(unsafe.Pointer(&in.Capacity))
- return nil
-}
-
-// Convert_core_NodeResources_To_v1_NodeResources is an autogenerated conversion function.
-func Convert_core_NodeResources_To_v1_NodeResources(in *core.NodeResources, out *v1.NodeResources, s conversion.Scope) error {
- return autoConvert_core_NodeResources_To_v1_NodeResources(in, out, s)
-}
-
-func autoConvert_v1_NodeSelector_To_core_NodeSelector(in *v1.NodeSelector, out *core.NodeSelector, s conversion.Scope) error {
- out.NodeSelectorTerms = *(*[]core.NodeSelectorTerm)(unsafe.Pointer(&in.NodeSelectorTerms))
- return nil
-}
-
-// Convert_v1_NodeSelector_To_core_NodeSelector is an autogenerated conversion function.
-func Convert_v1_NodeSelector_To_core_NodeSelector(in *v1.NodeSelector, out *core.NodeSelector, s conversion.Scope) error {
- return autoConvert_v1_NodeSelector_To_core_NodeSelector(in, out, s)
-}
-
-func autoConvert_core_NodeSelector_To_v1_NodeSelector(in *core.NodeSelector, out *v1.NodeSelector, s conversion.Scope) error {
- out.NodeSelectorTerms = *(*[]v1.NodeSelectorTerm)(unsafe.Pointer(&in.NodeSelectorTerms))
- return nil
-}
-
-// Convert_core_NodeSelector_To_v1_NodeSelector is an autogenerated conversion function.
-func Convert_core_NodeSelector_To_v1_NodeSelector(in *core.NodeSelector, out *v1.NodeSelector, s conversion.Scope) error {
- return autoConvert_core_NodeSelector_To_v1_NodeSelector(in, out, s)
-}
-
-func autoConvert_v1_NodeSelectorRequirement_To_core_NodeSelectorRequirement(in *v1.NodeSelectorRequirement, out *core.NodeSelectorRequirement, s conversion.Scope) error {
- out.Key = in.Key
- out.Operator = core.NodeSelectorOperator(in.Operator)
- out.Values = *(*[]string)(unsafe.Pointer(&in.Values))
- return nil
-}
-
-// Convert_v1_NodeSelectorRequirement_To_core_NodeSelectorRequirement is an autogenerated conversion function.
-func Convert_v1_NodeSelectorRequirement_To_core_NodeSelectorRequirement(in *v1.NodeSelectorRequirement, out *core.NodeSelectorRequirement, s conversion.Scope) error {
- return autoConvert_v1_NodeSelectorRequirement_To_core_NodeSelectorRequirement(in, out, s)
-}
-
-func autoConvert_core_NodeSelectorRequirement_To_v1_NodeSelectorRequirement(in *core.NodeSelectorRequirement, out *v1.NodeSelectorRequirement, s conversion.Scope) error {
- out.Key = in.Key
- out.Operator = v1.NodeSelectorOperator(in.Operator)
- out.Values = *(*[]string)(unsafe.Pointer(&in.Values))
- return nil
-}
-
-// Convert_core_NodeSelectorRequirement_To_v1_NodeSelectorRequirement is an autogenerated conversion function.
-func Convert_core_NodeSelectorRequirement_To_v1_NodeSelectorRequirement(in *core.NodeSelectorRequirement, out *v1.NodeSelectorRequirement, s conversion.Scope) error {
- return autoConvert_core_NodeSelectorRequirement_To_v1_NodeSelectorRequirement(in, out, s)
-}
-
-func autoConvert_v1_NodeSelectorTerm_To_core_NodeSelectorTerm(in *v1.NodeSelectorTerm, out *core.NodeSelectorTerm, s conversion.Scope) error {
- out.MatchExpressions = *(*[]core.NodeSelectorRequirement)(unsafe.Pointer(&in.MatchExpressions))
- return nil
-}
-
-// Convert_v1_NodeSelectorTerm_To_core_NodeSelectorTerm is an autogenerated conversion function.
-func Convert_v1_NodeSelectorTerm_To_core_NodeSelectorTerm(in *v1.NodeSelectorTerm, out *core.NodeSelectorTerm, s conversion.Scope) error {
- return autoConvert_v1_NodeSelectorTerm_To_core_NodeSelectorTerm(in, out, s)
-}
-
-func autoConvert_core_NodeSelectorTerm_To_v1_NodeSelectorTerm(in *core.NodeSelectorTerm, out *v1.NodeSelectorTerm, s conversion.Scope) error {
- out.MatchExpressions = *(*[]v1.NodeSelectorRequirement)(unsafe.Pointer(&in.MatchExpressions))
- return nil
-}
-
-// Convert_core_NodeSelectorTerm_To_v1_NodeSelectorTerm is an autogenerated conversion function.
-func Convert_core_NodeSelectorTerm_To_v1_NodeSelectorTerm(in *core.NodeSelectorTerm, out *v1.NodeSelectorTerm, s conversion.Scope) error {
- return autoConvert_core_NodeSelectorTerm_To_v1_NodeSelectorTerm(in, out, s)
-}
-
-func autoConvert_v1_NodeSpec_To_core_NodeSpec(in *v1.NodeSpec, out *core.NodeSpec, s conversion.Scope) error {
- out.PodCIDR = in.PodCIDR
- out.ExternalID = in.ExternalID
- out.ProviderID = in.ProviderID
- out.Unschedulable = in.Unschedulable
- out.Taints = *(*[]core.Taint)(unsafe.Pointer(&in.Taints))
- out.ConfigSource = (*core.NodeConfigSource)(unsafe.Pointer(in.ConfigSource))
- return nil
-}
-
-// Convert_v1_NodeSpec_To_core_NodeSpec is an autogenerated conversion function.
-func Convert_v1_NodeSpec_To_core_NodeSpec(in *v1.NodeSpec, out *core.NodeSpec, s conversion.Scope) error {
- return autoConvert_v1_NodeSpec_To_core_NodeSpec(in, out, s)
-}
-
-func autoConvert_core_NodeSpec_To_v1_NodeSpec(in *core.NodeSpec, out *v1.NodeSpec, s conversion.Scope) error {
- out.PodCIDR = in.PodCIDR
- out.ExternalID = in.ExternalID
- out.ProviderID = in.ProviderID
- out.Unschedulable = in.Unschedulable
- out.Taints = *(*[]v1.Taint)(unsafe.Pointer(&in.Taints))
- out.ConfigSource = (*v1.NodeConfigSource)(unsafe.Pointer(in.ConfigSource))
- return nil
-}
-
-// Convert_core_NodeSpec_To_v1_NodeSpec is an autogenerated conversion function.
-func Convert_core_NodeSpec_To_v1_NodeSpec(in *core.NodeSpec, out *v1.NodeSpec, s conversion.Scope) error {
- return autoConvert_core_NodeSpec_To_v1_NodeSpec(in, out, s)
-}
-
-func autoConvert_v1_NodeStatus_To_core_NodeStatus(in *v1.NodeStatus, out *core.NodeStatus, s conversion.Scope) error {
- out.Capacity = *(*core.ResourceList)(unsafe.Pointer(&in.Capacity))
- out.Allocatable = *(*core.ResourceList)(unsafe.Pointer(&in.Allocatable))
- out.Phase = core.NodePhase(in.Phase)
- out.Conditions = *(*[]core.NodeCondition)(unsafe.Pointer(&in.Conditions))
- out.Addresses = *(*[]core.NodeAddress)(unsafe.Pointer(&in.Addresses))
- if err := Convert_v1_NodeDaemonEndpoints_To_core_NodeDaemonEndpoints(&in.DaemonEndpoints, &out.DaemonEndpoints, s); err != nil {
- return err
- }
- if err := Convert_v1_NodeSystemInfo_To_core_NodeSystemInfo(&in.NodeInfo, &out.NodeInfo, s); err != nil {
- return err
- }
- out.Images = *(*[]core.ContainerImage)(unsafe.Pointer(&in.Images))
- out.VolumesInUse = *(*[]core.UniqueVolumeName)(unsafe.Pointer(&in.VolumesInUse))
- out.VolumesAttached = *(*[]core.AttachedVolume)(unsafe.Pointer(&in.VolumesAttached))
- return nil
-}
-
-// Convert_v1_NodeStatus_To_core_NodeStatus is an autogenerated conversion function.
-func Convert_v1_NodeStatus_To_core_NodeStatus(in *v1.NodeStatus, out *core.NodeStatus, s conversion.Scope) error {
- return autoConvert_v1_NodeStatus_To_core_NodeStatus(in, out, s)
-}
-
-func autoConvert_core_NodeStatus_To_v1_NodeStatus(in *core.NodeStatus, out *v1.NodeStatus, s conversion.Scope) error {
- out.Capacity = *(*v1.ResourceList)(unsafe.Pointer(&in.Capacity))
- out.Allocatable = *(*v1.ResourceList)(unsafe.Pointer(&in.Allocatable))
- out.Phase = v1.NodePhase(in.Phase)
- out.Conditions = *(*[]v1.NodeCondition)(unsafe.Pointer(&in.Conditions))
- out.Addresses = *(*[]v1.NodeAddress)(unsafe.Pointer(&in.Addresses))
- if err := Convert_core_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints(&in.DaemonEndpoints, &out.DaemonEndpoints, s); err != nil {
- return err
- }
- if err := Convert_core_NodeSystemInfo_To_v1_NodeSystemInfo(&in.NodeInfo, &out.NodeInfo, s); err != nil {
- return err
- }
- out.Images = *(*[]v1.ContainerImage)(unsafe.Pointer(&in.Images))
- out.VolumesInUse = *(*[]v1.UniqueVolumeName)(unsafe.Pointer(&in.VolumesInUse))
- out.VolumesAttached = *(*[]v1.AttachedVolume)(unsafe.Pointer(&in.VolumesAttached))
- return nil
-}
-
-// Convert_core_NodeStatus_To_v1_NodeStatus is an autogenerated conversion function.
-func Convert_core_NodeStatus_To_v1_NodeStatus(in *core.NodeStatus, out *v1.NodeStatus, s conversion.Scope) error {
- return autoConvert_core_NodeStatus_To_v1_NodeStatus(in, out, s)
-}
-
-func autoConvert_v1_NodeSystemInfo_To_core_NodeSystemInfo(in *v1.NodeSystemInfo, out *core.NodeSystemInfo, s conversion.Scope) error {
- out.MachineID = in.MachineID
- out.SystemUUID = in.SystemUUID
- out.BootID = in.BootID
- out.KernelVersion = in.KernelVersion
- out.OSImage = in.OSImage
- out.ContainerRuntimeVersion = in.ContainerRuntimeVersion
- out.KubeletVersion = in.KubeletVersion
- out.KubeProxyVersion = in.KubeProxyVersion
- out.OperatingSystem = in.OperatingSystem
- out.Architecture = in.Architecture
- return nil
-}
-
-// Convert_v1_NodeSystemInfo_To_core_NodeSystemInfo is an autogenerated conversion function.
-func Convert_v1_NodeSystemInfo_To_core_NodeSystemInfo(in *v1.NodeSystemInfo, out *core.NodeSystemInfo, s conversion.Scope) error {
- return autoConvert_v1_NodeSystemInfo_To_core_NodeSystemInfo(in, out, s)
-}
-
-func autoConvert_core_NodeSystemInfo_To_v1_NodeSystemInfo(in *core.NodeSystemInfo, out *v1.NodeSystemInfo, s conversion.Scope) error {
- out.MachineID = in.MachineID
- out.SystemUUID = in.SystemUUID
- out.BootID = in.BootID
- out.KernelVersion = in.KernelVersion
- out.OSImage = in.OSImage
- out.ContainerRuntimeVersion = in.ContainerRuntimeVersion
- out.KubeletVersion = in.KubeletVersion
- out.KubeProxyVersion = in.KubeProxyVersion
- out.OperatingSystem = in.OperatingSystem
- out.Architecture = in.Architecture
- return nil
-}
-
-// Convert_core_NodeSystemInfo_To_v1_NodeSystemInfo is an autogenerated conversion function.
-func Convert_core_NodeSystemInfo_To_v1_NodeSystemInfo(in *core.NodeSystemInfo, out *v1.NodeSystemInfo, s conversion.Scope) error {
- return autoConvert_core_NodeSystemInfo_To_v1_NodeSystemInfo(in, out, s)
-}
-
-func autoConvert_v1_ObjectFieldSelector_To_core_ObjectFieldSelector(in *v1.ObjectFieldSelector, out *core.ObjectFieldSelector, s conversion.Scope) error {
- out.APIVersion = in.APIVersion
- out.FieldPath = in.FieldPath
- return nil
-}
-
-// Convert_v1_ObjectFieldSelector_To_core_ObjectFieldSelector is an autogenerated conversion function.
-func Convert_v1_ObjectFieldSelector_To_core_ObjectFieldSelector(in *v1.ObjectFieldSelector, out *core.ObjectFieldSelector, s conversion.Scope) error {
- return autoConvert_v1_ObjectFieldSelector_To_core_ObjectFieldSelector(in, out, s)
-}
-
-func autoConvert_core_ObjectFieldSelector_To_v1_ObjectFieldSelector(in *core.ObjectFieldSelector, out *v1.ObjectFieldSelector, s conversion.Scope) error {
- out.APIVersion = in.APIVersion
- out.FieldPath = in.FieldPath
- return nil
-}
-
-// Convert_core_ObjectFieldSelector_To_v1_ObjectFieldSelector is an autogenerated conversion function.
-func Convert_core_ObjectFieldSelector_To_v1_ObjectFieldSelector(in *core.ObjectFieldSelector, out *v1.ObjectFieldSelector, s conversion.Scope) error {
- return autoConvert_core_ObjectFieldSelector_To_v1_ObjectFieldSelector(in, out, s)
-}
-
-func autoConvert_v1_ObjectMeta_To_core_ObjectMeta(in *v1.ObjectMeta, out *core.ObjectMeta, s conversion.Scope) error {
- out.Name = in.Name
- out.GenerateName = in.GenerateName
- out.Namespace = in.Namespace
- out.SelfLink = in.SelfLink
- out.UID = types.UID(in.UID)
- out.ResourceVersion = in.ResourceVersion
- out.Generation = in.Generation
- out.CreationTimestamp = in.CreationTimestamp
- out.DeletionTimestamp = (*meta_v1.Time)(unsafe.Pointer(in.DeletionTimestamp))
- out.DeletionGracePeriodSeconds = (*int64)(unsafe.Pointer(in.DeletionGracePeriodSeconds))
- out.Labels = *(*map[string]string)(unsafe.Pointer(&in.Labels))
- out.Annotations = *(*map[string]string)(unsafe.Pointer(&in.Annotations))
- out.OwnerReferences = *(*[]meta_v1.OwnerReference)(unsafe.Pointer(&in.OwnerReferences))
- out.Initializers = (*meta_v1.Initializers)(unsafe.Pointer(in.Initializers))
- out.Finalizers = *(*[]string)(unsafe.Pointer(&in.Finalizers))
- out.ClusterName = in.ClusterName
- return nil
-}
-
-// Convert_v1_ObjectMeta_To_core_ObjectMeta is an autogenerated conversion function.
-func Convert_v1_ObjectMeta_To_core_ObjectMeta(in *v1.ObjectMeta, out *core.ObjectMeta, s conversion.Scope) error {
- return autoConvert_v1_ObjectMeta_To_core_ObjectMeta(in, out, s)
-}
-
-func autoConvert_core_ObjectMeta_To_v1_ObjectMeta(in *core.ObjectMeta, out *v1.ObjectMeta, s conversion.Scope) error {
- out.Name = in.Name
- out.GenerateName = in.GenerateName
- out.Namespace = in.Namespace
- out.SelfLink = in.SelfLink
- out.UID = types.UID(in.UID)
- out.ResourceVersion = in.ResourceVersion
- out.Generation = in.Generation
- out.CreationTimestamp = in.CreationTimestamp
- out.DeletionTimestamp = (*meta_v1.Time)(unsafe.Pointer(in.DeletionTimestamp))
- out.DeletionGracePeriodSeconds = (*int64)(unsafe.Pointer(in.DeletionGracePeriodSeconds))
- out.Labels = *(*map[string]string)(unsafe.Pointer(&in.Labels))
- out.Annotations = *(*map[string]string)(unsafe.Pointer(&in.Annotations))
- out.OwnerReferences = *(*[]meta_v1.OwnerReference)(unsafe.Pointer(&in.OwnerReferences))
- out.Initializers = (*meta_v1.Initializers)(unsafe.Pointer(in.Initializers))
- out.Finalizers = *(*[]string)(unsafe.Pointer(&in.Finalizers))
- out.ClusterName = in.ClusterName
- return nil
-}
-
-// Convert_core_ObjectMeta_To_v1_ObjectMeta is an autogenerated conversion function.
-func Convert_core_ObjectMeta_To_v1_ObjectMeta(in *core.ObjectMeta, out *v1.ObjectMeta, s conversion.Scope) error {
- return autoConvert_core_ObjectMeta_To_v1_ObjectMeta(in, out, s)
-}
-
-func autoConvert_v1_ObjectReference_To_core_ObjectReference(in *v1.ObjectReference, out *core.ObjectReference, s conversion.Scope) error {
- out.Kind = in.Kind
- out.Namespace = in.Namespace
- out.Name = in.Name
- out.UID = types.UID(in.UID)
- out.APIVersion = in.APIVersion
- out.ResourceVersion = in.ResourceVersion
- out.FieldPath = in.FieldPath
- return nil
-}
-
-// Convert_v1_ObjectReference_To_core_ObjectReference is an autogenerated conversion function.
-func Convert_v1_ObjectReference_To_core_ObjectReference(in *v1.ObjectReference, out *core.ObjectReference, s conversion.Scope) error {
- return autoConvert_v1_ObjectReference_To_core_ObjectReference(in, out, s)
-}
-
-func autoConvert_core_ObjectReference_To_v1_ObjectReference(in *core.ObjectReference, out *v1.ObjectReference, s conversion.Scope) error {
- out.Kind = in.Kind
- out.Namespace = in.Namespace
- out.Name = in.Name
- out.UID = types.UID(in.UID)
- out.APIVersion = in.APIVersion
- out.ResourceVersion = in.ResourceVersion
- out.FieldPath = in.FieldPath
- return nil
-}
-
-// Convert_core_ObjectReference_To_v1_ObjectReference is an autogenerated conversion function.
-func Convert_core_ObjectReference_To_v1_ObjectReference(in *core.ObjectReference, out *v1.ObjectReference, s conversion.Scope) error {
- return autoConvert_core_ObjectReference_To_v1_ObjectReference(in, out, s)
-}
-
-func autoConvert_v1_PersistentVolume_To_core_PersistentVolume(in *v1.PersistentVolume, out *core.PersistentVolume, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_v1_PersistentVolumeSpec_To_core_PersistentVolumeSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- if err := Convert_v1_PersistentVolumeStatus_To_core_PersistentVolumeStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_v1_PersistentVolume_To_core_PersistentVolume is an autogenerated conversion function.
-func Convert_v1_PersistentVolume_To_core_PersistentVolume(in *v1.PersistentVolume, out *core.PersistentVolume, s conversion.Scope) error {
- return autoConvert_v1_PersistentVolume_To_core_PersistentVolume(in, out, s)
-}
-
-func autoConvert_core_PersistentVolume_To_v1_PersistentVolume(in *core.PersistentVolume, out *v1.PersistentVolume, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_core_PersistentVolumeSpec_To_v1_PersistentVolumeSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- if err := Convert_core_PersistentVolumeStatus_To_v1_PersistentVolumeStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_core_PersistentVolume_To_v1_PersistentVolume is an autogenerated conversion function.
-func Convert_core_PersistentVolume_To_v1_PersistentVolume(in *core.PersistentVolume, out *v1.PersistentVolume, s conversion.Scope) error {
- return autoConvert_core_PersistentVolume_To_v1_PersistentVolume(in, out, s)
-}
-
-func autoConvert_v1_PersistentVolumeClaim_To_core_PersistentVolumeClaim(in *v1.PersistentVolumeClaim, out *core.PersistentVolumeClaim, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_v1_PersistentVolumeClaimSpec_To_core_PersistentVolumeClaimSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- if err := Convert_v1_PersistentVolumeClaimStatus_To_core_PersistentVolumeClaimStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_v1_PersistentVolumeClaim_To_core_PersistentVolumeClaim is an autogenerated conversion function.
-func Convert_v1_PersistentVolumeClaim_To_core_PersistentVolumeClaim(in *v1.PersistentVolumeClaim, out *core.PersistentVolumeClaim, s conversion.Scope) error {
- return autoConvert_v1_PersistentVolumeClaim_To_core_PersistentVolumeClaim(in, out, s)
-}
-
-func autoConvert_core_PersistentVolumeClaim_To_v1_PersistentVolumeClaim(in *core.PersistentVolumeClaim, out *v1.PersistentVolumeClaim, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_core_PersistentVolumeClaimSpec_To_v1_PersistentVolumeClaimSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- if err := Convert_core_PersistentVolumeClaimStatus_To_v1_PersistentVolumeClaimStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_core_PersistentVolumeClaim_To_v1_PersistentVolumeClaim is an autogenerated conversion function.
-func Convert_core_PersistentVolumeClaim_To_v1_PersistentVolumeClaim(in *core.PersistentVolumeClaim, out *v1.PersistentVolumeClaim, s conversion.Scope) error {
- return autoConvert_core_PersistentVolumeClaim_To_v1_PersistentVolumeClaim(in, out, s)
-}
-
-func autoConvert_v1_PersistentVolumeClaimCondition_To_core_PersistentVolumeClaimCondition(in *v1.PersistentVolumeClaimCondition, out *core.PersistentVolumeClaimCondition, s conversion.Scope) error {
- out.Type = core.PersistentVolumeClaimConditionType(in.Type)
- out.Status = core.ConditionStatus(in.Status)
- out.LastProbeTime = in.LastProbeTime
- out.LastTransitionTime = in.LastTransitionTime
- out.Reason = in.Reason
- out.Message = in.Message
- return nil
-}
-
-// Convert_v1_PersistentVolumeClaimCondition_To_core_PersistentVolumeClaimCondition is an autogenerated conversion function.
-func Convert_v1_PersistentVolumeClaimCondition_To_core_PersistentVolumeClaimCondition(in *v1.PersistentVolumeClaimCondition, out *core.PersistentVolumeClaimCondition, s conversion.Scope) error {
- return autoConvert_v1_PersistentVolumeClaimCondition_To_core_PersistentVolumeClaimCondition(in, out, s)
-}
-
-func autoConvert_core_PersistentVolumeClaimCondition_To_v1_PersistentVolumeClaimCondition(in *core.PersistentVolumeClaimCondition, out *v1.PersistentVolumeClaimCondition, s conversion.Scope) error {
- out.Type = v1.PersistentVolumeClaimConditionType(in.Type)
- out.Status = v1.ConditionStatus(in.Status)
- out.LastProbeTime = in.LastProbeTime
- out.LastTransitionTime = in.LastTransitionTime
- out.Reason = in.Reason
- out.Message = in.Message
- return nil
-}
-
-// Convert_core_PersistentVolumeClaimCondition_To_v1_PersistentVolumeClaimCondition is an autogenerated conversion function.
-func Convert_core_PersistentVolumeClaimCondition_To_v1_PersistentVolumeClaimCondition(in *core.PersistentVolumeClaimCondition, out *v1.PersistentVolumeClaimCondition, s conversion.Scope) error {
- return autoConvert_core_PersistentVolumeClaimCondition_To_v1_PersistentVolumeClaimCondition(in, out, s)
-}
-
-func autoConvert_v1_PersistentVolumeClaimList_To_core_PersistentVolumeClaimList(in *v1.PersistentVolumeClaimList, out *core.PersistentVolumeClaimList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]core.PersistentVolumeClaim)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_v1_PersistentVolumeClaimList_To_core_PersistentVolumeClaimList is an autogenerated conversion function.
-func Convert_v1_PersistentVolumeClaimList_To_core_PersistentVolumeClaimList(in *v1.PersistentVolumeClaimList, out *core.PersistentVolumeClaimList, s conversion.Scope) error {
- return autoConvert_v1_PersistentVolumeClaimList_To_core_PersistentVolumeClaimList(in, out, s)
-}
-
-func autoConvert_core_PersistentVolumeClaimList_To_v1_PersistentVolumeClaimList(in *core.PersistentVolumeClaimList, out *v1.PersistentVolumeClaimList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]v1.PersistentVolumeClaim)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_core_PersistentVolumeClaimList_To_v1_PersistentVolumeClaimList is an autogenerated conversion function.
-func Convert_core_PersistentVolumeClaimList_To_v1_PersistentVolumeClaimList(in *core.PersistentVolumeClaimList, out *v1.PersistentVolumeClaimList, s conversion.Scope) error {
- return autoConvert_core_PersistentVolumeClaimList_To_v1_PersistentVolumeClaimList(in, out, s)
-}
-
-func autoConvert_v1_PersistentVolumeClaimSpec_To_core_PersistentVolumeClaimSpec(in *v1.PersistentVolumeClaimSpec, out *core.PersistentVolumeClaimSpec, s conversion.Scope) error {
- out.AccessModes = *(*[]core.PersistentVolumeAccessMode)(unsafe.Pointer(&in.AccessModes))
- out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector))
- if err := Convert_v1_ResourceRequirements_To_core_ResourceRequirements(&in.Resources, &out.Resources, s); err != nil {
- return err
- }
- out.VolumeName = in.VolumeName
- out.StorageClassName = (*string)(unsafe.Pointer(in.StorageClassName))
- out.VolumeMode = (*core.PersistentVolumeMode)(unsafe.Pointer(in.VolumeMode))
- return nil
-}
-
-// Convert_v1_PersistentVolumeClaimSpec_To_core_PersistentVolumeClaimSpec is an autogenerated conversion function.
-func Convert_v1_PersistentVolumeClaimSpec_To_core_PersistentVolumeClaimSpec(in *v1.PersistentVolumeClaimSpec, out *core.PersistentVolumeClaimSpec, s conversion.Scope) error {
- return autoConvert_v1_PersistentVolumeClaimSpec_To_core_PersistentVolumeClaimSpec(in, out, s)
-}
-
-func autoConvert_core_PersistentVolumeClaimSpec_To_v1_PersistentVolumeClaimSpec(in *core.PersistentVolumeClaimSpec, out *v1.PersistentVolumeClaimSpec, s conversion.Scope) error {
- out.AccessModes = *(*[]v1.PersistentVolumeAccessMode)(unsafe.Pointer(&in.AccessModes))
- out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector))
- if err := Convert_core_ResourceRequirements_To_v1_ResourceRequirements(&in.Resources, &out.Resources, s); err != nil {
- return err
- }
- out.VolumeName = in.VolumeName
- out.StorageClassName = (*string)(unsafe.Pointer(in.StorageClassName))
- out.VolumeMode = (*v1.PersistentVolumeMode)(unsafe.Pointer(in.VolumeMode))
- return nil
-}
-
-// Convert_core_PersistentVolumeClaimSpec_To_v1_PersistentVolumeClaimSpec is an autogenerated conversion function.
-func Convert_core_PersistentVolumeClaimSpec_To_v1_PersistentVolumeClaimSpec(in *core.PersistentVolumeClaimSpec, out *v1.PersistentVolumeClaimSpec, s conversion.Scope) error {
- return autoConvert_core_PersistentVolumeClaimSpec_To_v1_PersistentVolumeClaimSpec(in, out, s)
-}
-
-func autoConvert_v1_PersistentVolumeClaimStatus_To_core_PersistentVolumeClaimStatus(in *v1.PersistentVolumeClaimStatus, out *core.PersistentVolumeClaimStatus, s conversion.Scope) error {
- out.Phase = core.PersistentVolumeClaimPhase(in.Phase)
- out.AccessModes = *(*[]core.PersistentVolumeAccessMode)(unsafe.Pointer(&in.AccessModes))
- out.Capacity = *(*core.ResourceList)(unsafe.Pointer(&in.Capacity))
- out.Conditions = *(*[]core.PersistentVolumeClaimCondition)(unsafe.Pointer(&in.Conditions))
- return nil
-}
-
-// Convert_v1_PersistentVolumeClaimStatus_To_core_PersistentVolumeClaimStatus is an autogenerated conversion function.
-func Convert_v1_PersistentVolumeClaimStatus_To_core_PersistentVolumeClaimStatus(in *v1.PersistentVolumeClaimStatus, out *core.PersistentVolumeClaimStatus, s conversion.Scope) error {
- return autoConvert_v1_PersistentVolumeClaimStatus_To_core_PersistentVolumeClaimStatus(in, out, s)
-}
-
-func autoConvert_core_PersistentVolumeClaimStatus_To_v1_PersistentVolumeClaimStatus(in *core.PersistentVolumeClaimStatus, out *v1.PersistentVolumeClaimStatus, s conversion.Scope) error {
- out.Phase = v1.PersistentVolumeClaimPhase(in.Phase)
- out.AccessModes = *(*[]v1.PersistentVolumeAccessMode)(unsafe.Pointer(&in.AccessModes))
- out.Capacity = *(*v1.ResourceList)(unsafe.Pointer(&in.Capacity))
- out.Conditions = *(*[]v1.PersistentVolumeClaimCondition)(unsafe.Pointer(&in.Conditions))
- return nil
-}
-
-// Convert_core_PersistentVolumeClaimStatus_To_v1_PersistentVolumeClaimStatus is an autogenerated conversion function.
-func Convert_core_PersistentVolumeClaimStatus_To_v1_PersistentVolumeClaimStatus(in *core.PersistentVolumeClaimStatus, out *v1.PersistentVolumeClaimStatus, s conversion.Scope) error {
- return autoConvert_core_PersistentVolumeClaimStatus_To_v1_PersistentVolumeClaimStatus(in, out, s)
-}
-
-func autoConvert_v1_PersistentVolumeClaimVolumeSource_To_core_PersistentVolumeClaimVolumeSource(in *v1.PersistentVolumeClaimVolumeSource, out *core.PersistentVolumeClaimVolumeSource, s conversion.Scope) error {
- out.ClaimName = in.ClaimName
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_v1_PersistentVolumeClaimVolumeSource_To_core_PersistentVolumeClaimVolumeSource is an autogenerated conversion function.
-func Convert_v1_PersistentVolumeClaimVolumeSource_To_core_PersistentVolumeClaimVolumeSource(in *v1.PersistentVolumeClaimVolumeSource, out *core.PersistentVolumeClaimVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_PersistentVolumeClaimVolumeSource_To_core_PersistentVolumeClaimVolumeSource(in, out, s)
-}
-
-func autoConvert_core_PersistentVolumeClaimVolumeSource_To_v1_PersistentVolumeClaimVolumeSource(in *core.PersistentVolumeClaimVolumeSource, out *v1.PersistentVolumeClaimVolumeSource, s conversion.Scope) error {
- out.ClaimName = in.ClaimName
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_core_PersistentVolumeClaimVolumeSource_To_v1_PersistentVolumeClaimVolumeSource is an autogenerated conversion function.
-func Convert_core_PersistentVolumeClaimVolumeSource_To_v1_PersistentVolumeClaimVolumeSource(in *core.PersistentVolumeClaimVolumeSource, out *v1.PersistentVolumeClaimVolumeSource, s conversion.Scope) error {
- return autoConvert_core_PersistentVolumeClaimVolumeSource_To_v1_PersistentVolumeClaimVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_PersistentVolumeList_To_core_PersistentVolumeList(in *v1.PersistentVolumeList, out *core.PersistentVolumeList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]core.PersistentVolume, len(*in))
- for i := range *in {
- if err := Convert_v1_PersistentVolume_To_core_PersistentVolume(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.Items = nil
- }
- return nil
-}
-
-// Convert_v1_PersistentVolumeList_To_core_PersistentVolumeList is an autogenerated conversion function.
-func Convert_v1_PersistentVolumeList_To_core_PersistentVolumeList(in *v1.PersistentVolumeList, out *core.PersistentVolumeList, s conversion.Scope) error {
- return autoConvert_v1_PersistentVolumeList_To_core_PersistentVolumeList(in, out, s)
-}
-
-func autoConvert_core_PersistentVolumeList_To_v1_PersistentVolumeList(in *core.PersistentVolumeList, out *v1.PersistentVolumeList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]v1.PersistentVolume, len(*in))
- for i := range *in {
- if err := Convert_core_PersistentVolume_To_v1_PersistentVolume(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.Items = nil
- }
- return nil
-}
-
-// Convert_core_PersistentVolumeList_To_v1_PersistentVolumeList is an autogenerated conversion function.
-func Convert_core_PersistentVolumeList_To_v1_PersistentVolumeList(in *core.PersistentVolumeList, out *v1.PersistentVolumeList, s conversion.Scope) error {
- return autoConvert_core_PersistentVolumeList_To_v1_PersistentVolumeList(in, out, s)
-}
-
-func autoConvert_v1_PersistentVolumeSource_To_core_PersistentVolumeSource(in *v1.PersistentVolumeSource, out *core.PersistentVolumeSource, s conversion.Scope) error {
- out.GCEPersistentDisk = (*core.GCEPersistentDiskVolumeSource)(unsafe.Pointer(in.GCEPersistentDisk))
- out.AWSElasticBlockStore = (*core.AWSElasticBlockStoreVolumeSource)(unsafe.Pointer(in.AWSElasticBlockStore))
- out.HostPath = (*core.HostPathVolumeSource)(unsafe.Pointer(in.HostPath))
- out.Glusterfs = (*core.GlusterfsVolumeSource)(unsafe.Pointer(in.Glusterfs))
- out.NFS = (*core.NFSVolumeSource)(unsafe.Pointer(in.NFS))
- out.RBD = (*core.RBDPersistentVolumeSource)(unsafe.Pointer(in.RBD))
- out.ISCSI = (*core.ISCSIPersistentVolumeSource)(unsafe.Pointer(in.ISCSI))
- out.Cinder = (*core.CinderVolumeSource)(unsafe.Pointer(in.Cinder))
- out.CephFS = (*core.CephFSPersistentVolumeSource)(unsafe.Pointer(in.CephFS))
- out.FC = (*core.FCVolumeSource)(unsafe.Pointer(in.FC))
- out.Flocker = (*core.FlockerVolumeSource)(unsafe.Pointer(in.Flocker))
- out.FlexVolume = (*core.FlexPersistentVolumeSource)(unsafe.Pointer(in.FlexVolume))
- out.AzureFile = (*core.AzureFilePersistentVolumeSource)(unsafe.Pointer(in.AzureFile))
- out.VsphereVolume = (*core.VsphereVirtualDiskVolumeSource)(unsafe.Pointer(in.VsphereVolume))
- out.Quobyte = (*core.QuobyteVolumeSource)(unsafe.Pointer(in.Quobyte))
- out.AzureDisk = (*core.AzureDiskVolumeSource)(unsafe.Pointer(in.AzureDisk))
- out.PhotonPersistentDisk = (*core.PhotonPersistentDiskVolumeSource)(unsafe.Pointer(in.PhotonPersistentDisk))
- out.PortworxVolume = (*core.PortworxVolumeSource)(unsafe.Pointer(in.PortworxVolume))
- out.ScaleIO = (*core.ScaleIOPersistentVolumeSource)(unsafe.Pointer(in.ScaleIO))
- out.Local = (*core.LocalVolumeSource)(unsafe.Pointer(in.Local))
- out.StorageOS = (*core.StorageOSPersistentVolumeSource)(unsafe.Pointer(in.StorageOS))
- out.CSI = (*core.CSIPersistentVolumeSource)(unsafe.Pointer(in.CSI))
- return nil
-}
-
-// Convert_v1_PersistentVolumeSource_To_core_PersistentVolumeSource is an autogenerated conversion function.
-func Convert_v1_PersistentVolumeSource_To_core_PersistentVolumeSource(in *v1.PersistentVolumeSource, out *core.PersistentVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_PersistentVolumeSource_To_core_PersistentVolumeSource(in, out, s)
-}
-
-func autoConvert_core_PersistentVolumeSource_To_v1_PersistentVolumeSource(in *core.PersistentVolumeSource, out *v1.PersistentVolumeSource, s conversion.Scope) error {
- out.GCEPersistentDisk = (*v1.GCEPersistentDiskVolumeSource)(unsafe.Pointer(in.GCEPersistentDisk))
- out.AWSElasticBlockStore = (*v1.AWSElasticBlockStoreVolumeSource)(unsafe.Pointer(in.AWSElasticBlockStore))
- out.HostPath = (*v1.HostPathVolumeSource)(unsafe.Pointer(in.HostPath))
- out.Glusterfs = (*v1.GlusterfsVolumeSource)(unsafe.Pointer(in.Glusterfs))
- out.NFS = (*v1.NFSVolumeSource)(unsafe.Pointer(in.NFS))
- out.RBD = (*v1.RBDPersistentVolumeSource)(unsafe.Pointer(in.RBD))
- out.Quobyte = (*v1.QuobyteVolumeSource)(unsafe.Pointer(in.Quobyte))
- out.ISCSI = (*v1.ISCSIPersistentVolumeSource)(unsafe.Pointer(in.ISCSI))
- out.FlexVolume = (*v1.FlexPersistentVolumeSource)(unsafe.Pointer(in.FlexVolume))
- out.Cinder = (*v1.CinderVolumeSource)(unsafe.Pointer(in.Cinder))
- out.CephFS = (*v1.CephFSPersistentVolumeSource)(unsafe.Pointer(in.CephFS))
- out.FC = (*v1.FCVolumeSource)(unsafe.Pointer(in.FC))
- out.Flocker = (*v1.FlockerVolumeSource)(unsafe.Pointer(in.Flocker))
- out.AzureFile = (*v1.AzureFilePersistentVolumeSource)(unsafe.Pointer(in.AzureFile))
- out.VsphereVolume = (*v1.VsphereVirtualDiskVolumeSource)(unsafe.Pointer(in.VsphereVolume))
- out.AzureDisk = (*v1.AzureDiskVolumeSource)(unsafe.Pointer(in.AzureDisk))
- out.PhotonPersistentDisk = (*v1.PhotonPersistentDiskVolumeSource)(unsafe.Pointer(in.PhotonPersistentDisk))
- out.PortworxVolume = (*v1.PortworxVolumeSource)(unsafe.Pointer(in.PortworxVolume))
- out.ScaleIO = (*v1.ScaleIOPersistentVolumeSource)(unsafe.Pointer(in.ScaleIO))
- out.Local = (*v1.LocalVolumeSource)(unsafe.Pointer(in.Local))
- out.StorageOS = (*v1.StorageOSPersistentVolumeSource)(unsafe.Pointer(in.StorageOS))
- out.CSI = (*v1.CSIPersistentVolumeSource)(unsafe.Pointer(in.CSI))
- return nil
-}
-
-// Convert_core_PersistentVolumeSource_To_v1_PersistentVolumeSource is an autogenerated conversion function.
-func Convert_core_PersistentVolumeSource_To_v1_PersistentVolumeSource(in *core.PersistentVolumeSource, out *v1.PersistentVolumeSource, s conversion.Scope) error {
- return autoConvert_core_PersistentVolumeSource_To_v1_PersistentVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_PersistentVolumeSpec_To_core_PersistentVolumeSpec(in *v1.PersistentVolumeSpec, out *core.PersistentVolumeSpec, s conversion.Scope) error {
- out.Capacity = *(*core.ResourceList)(unsafe.Pointer(&in.Capacity))
- if err := Convert_v1_PersistentVolumeSource_To_core_PersistentVolumeSource(&in.PersistentVolumeSource, &out.PersistentVolumeSource, s); err != nil {
- return err
- }
- out.AccessModes = *(*[]core.PersistentVolumeAccessMode)(unsafe.Pointer(&in.AccessModes))
- out.ClaimRef = (*core.ObjectReference)(unsafe.Pointer(in.ClaimRef))
- out.PersistentVolumeReclaimPolicy = core.PersistentVolumeReclaimPolicy(in.PersistentVolumeReclaimPolicy)
- out.StorageClassName = in.StorageClassName
- out.MountOptions = *(*[]string)(unsafe.Pointer(&in.MountOptions))
- out.VolumeMode = (*core.PersistentVolumeMode)(unsafe.Pointer(in.VolumeMode))
- out.NodeAffinity = (*core.VolumeNodeAffinity)(unsafe.Pointer(in.NodeAffinity))
- return nil
-}
-
-// Convert_v1_PersistentVolumeSpec_To_core_PersistentVolumeSpec is an autogenerated conversion function.
-func Convert_v1_PersistentVolumeSpec_To_core_PersistentVolumeSpec(in *v1.PersistentVolumeSpec, out *core.PersistentVolumeSpec, s conversion.Scope) error {
- return autoConvert_v1_PersistentVolumeSpec_To_core_PersistentVolumeSpec(in, out, s)
-}
-
-func autoConvert_core_PersistentVolumeSpec_To_v1_PersistentVolumeSpec(in *core.PersistentVolumeSpec, out *v1.PersistentVolumeSpec, s conversion.Scope) error {
- out.Capacity = *(*v1.ResourceList)(unsafe.Pointer(&in.Capacity))
- if err := Convert_core_PersistentVolumeSource_To_v1_PersistentVolumeSource(&in.PersistentVolumeSource, &out.PersistentVolumeSource, s); err != nil {
- return err
- }
- out.AccessModes = *(*[]v1.PersistentVolumeAccessMode)(unsafe.Pointer(&in.AccessModes))
- out.ClaimRef = (*v1.ObjectReference)(unsafe.Pointer(in.ClaimRef))
- out.PersistentVolumeReclaimPolicy = v1.PersistentVolumeReclaimPolicy(in.PersistentVolumeReclaimPolicy)
- out.StorageClassName = in.StorageClassName
- out.MountOptions = *(*[]string)(unsafe.Pointer(&in.MountOptions))
- out.VolumeMode = (*v1.PersistentVolumeMode)(unsafe.Pointer(in.VolumeMode))
- out.NodeAffinity = (*v1.VolumeNodeAffinity)(unsafe.Pointer(in.NodeAffinity))
- return nil
-}
-
-// Convert_core_PersistentVolumeSpec_To_v1_PersistentVolumeSpec is an autogenerated conversion function.
-func Convert_core_PersistentVolumeSpec_To_v1_PersistentVolumeSpec(in *core.PersistentVolumeSpec, out *v1.PersistentVolumeSpec, s conversion.Scope) error {
- return autoConvert_core_PersistentVolumeSpec_To_v1_PersistentVolumeSpec(in, out, s)
-}
-
-func autoConvert_v1_PersistentVolumeStatus_To_core_PersistentVolumeStatus(in *v1.PersistentVolumeStatus, out *core.PersistentVolumeStatus, s conversion.Scope) error {
- out.Phase = core.PersistentVolumePhase(in.Phase)
- out.Message = in.Message
- out.Reason = in.Reason
- return nil
-}
-
-// Convert_v1_PersistentVolumeStatus_To_core_PersistentVolumeStatus is an autogenerated conversion function.
-func Convert_v1_PersistentVolumeStatus_To_core_PersistentVolumeStatus(in *v1.PersistentVolumeStatus, out *core.PersistentVolumeStatus, s conversion.Scope) error {
- return autoConvert_v1_PersistentVolumeStatus_To_core_PersistentVolumeStatus(in, out, s)
-}
-
-func autoConvert_core_PersistentVolumeStatus_To_v1_PersistentVolumeStatus(in *core.PersistentVolumeStatus, out *v1.PersistentVolumeStatus, s conversion.Scope) error {
- out.Phase = v1.PersistentVolumePhase(in.Phase)
- out.Message = in.Message
- out.Reason = in.Reason
- return nil
-}
-
-// Convert_core_PersistentVolumeStatus_To_v1_PersistentVolumeStatus is an autogenerated conversion function.
-func Convert_core_PersistentVolumeStatus_To_v1_PersistentVolumeStatus(in *core.PersistentVolumeStatus, out *v1.PersistentVolumeStatus, s conversion.Scope) error {
- return autoConvert_core_PersistentVolumeStatus_To_v1_PersistentVolumeStatus(in, out, s)
-}
-
-func autoConvert_v1_PhotonPersistentDiskVolumeSource_To_core_PhotonPersistentDiskVolumeSource(in *v1.PhotonPersistentDiskVolumeSource, out *core.PhotonPersistentDiskVolumeSource, s conversion.Scope) error {
- out.PdID = in.PdID
- out.FSType = in.FSType
- return nil
-}
-
-// Convert_v1_PhotonPersistentDiskVolumeSource_To_core_PhotonPersistentDiskVolumeSource is an autogenerated conversion function.
-func Convert_v1_PhotonPersistentDiskVolumeSource_To_core_PhotonPersistentDiskVolumeSource(in *v1.PhotonPersistentDiskVolumeSource, out *core.PhotonPersistentDiskVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_PhotonPersistentDiskVolumeSource_To_core_PhotonPersistentDiskVolumeSource(in, out, s)
-}
-
-func autoConvert_core_PhotonPersistentDiskVolumeSource_To_v1_PhotonPersistentDiskVolumeSource(in *core.PhotonPersistentDiskVolumeSource, out *v1.PhotonPersistentDiskVolumeSource, s conversion.Scope) error {
- out.PdID = in.PdID
- out.FSType = in.FSType
- return nil
-}
-
-// Convert_core_PhotonPersistentDiskVolumeSource_To_v1_PhotonPersistentDiskVolumeSource is an autogenerated conversion function.
-func Convert_core_PhotonPersistentDiskVolumeSource_To_v1_PhotonPersistentDiskVolumeSource(in *core.PhotonPersistentDiskVolumeSource, out *v1.PhotonPersistentDiskVolumeSource, s conversion.Scope) error {
- return autoConvert_core_PhotonPersistentDiskVolumeSource_To_v1_PhotonPersistentDiskVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_Pod_To_core_Pod(in *v1.Pod, out *core.Pod, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_v1_PodSpec_To_core_PodSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- if err := Convert_v1_PodStatus_To_core_PodStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-func autoConvert_core_Pod_To_v1_Pod(in *core.Pod, out *v1.Pod, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_core_PodSpec_To_v1_PodSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- if err := Convert_core_PodStatus_To_v1_PodStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-func autoConvert_v1_PodAffinity_To_core_PodAffinity(in *v1.PodAffinity, out *core.PodAffinity, s conversion.Scope) error {
- out.RequiredDuringSchedulingIgnoredDuringExecution = *(*[]core.PodAffinityTerm)(unsafe.Pointer(&in.RequiredDuringSchedulingIgnoredDuringExecution))
- out.PreferredDuringSchedulingIgnoredDuringExecution = *(*[]core.WeightedPodAffinityTerm)(unsafe.Pointer(&in.PreferredDuringSchedulingIgnoredDuringExecution))
- return nil
-}
-
-// Convert_v1_PodAffinity_To_core_PodAffinity is an autogenerated conversion function.
-func Convert_v1_PodAffinity_To_core_PodAffinity(in *v1.PodAffinity, out *core.PodAffinity, s conversion.Scope) error {
- return autoConvert_v1_PodAffinity_To_core_PodAffinity(in, out, s)
-}
-
-func autoConvert_core_PodAffinity_To_v1_PodAffinity(in *core.PodAffinity, out *v1.PodAffinity, s conversion.Scope) error {
- out.RequiredDuringSchedulingIgnoredDuringExecution = *(*[]v1.PodAffinityTerm)(unsafe.Pointer(&in.RequiredDuringSchedulingIgnoredDuringExecution))
- out.PreferredDuringSchedulingIgnoredDuringExecution = *(*[]v1.WeightedPodAffinityTerm)(unsafe.Pointer(&in.PreferredDuringSchedulingIgnoredDuringExecution))
- return nil
-}
-
-// Convert_core_PodAffinity_To_v1_PodAffinity is an autogenerated conversion function.
-func Convert_core_PodAffinity_To_v1_PodAffinity(in *core.PodAffinity, out *v1.PodAffinity, s conversion.Scope) error {
- return autoConvert_core_PodAffinity_To_v1_PodAffinity(in, out, s)
-}
-
-func autoConvert_v1_PodAffinityTerm_To_core_PodAffinityTerm(in *v1.PodAffinityTerm, out *core.PodAffinityTerm, s conversion.Scope) error {
- out.LabelSelector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.LabelSelector))
- out.Namespaces = *(*[]string)(unsafe.Pointer(&in.Namespaces))
- out.TopologyKey = in.TopologyKey
- return nil
-}
-
-// Convert_v1_PodAffinityTerm_To_core_PodAffinityTerm is an autogenerated conversion function.
-func Convert_v1_PodAffinityTerm_To_core_PodAffinityTerm(in *v1.PodAffinityTerm, out *core.PodAffinityTerm, s conversion.Scope) error {
- return autoConvert_v1_PodAffinityTerm_To_core_PodAffinityTerm(in, out, s)
-}
-
-func autoConvert_core_PodAffinityTerm_To_v1_PodAffinityTerm(in *core.PodAffinityTerm, out *v1.PodAffinityTerm, s conversion.Scope) error {
- out.LabelSelector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.LabelSelector))
- out.Namespaces = *(*[]string)(unsafe.Pointer(&in.Namespaces))
- out.TopologyKey = in.TopologyKey
- return nil
-}
-
-// Convert_core_PodAffinityTerm_To_v1_PodAffinityTerm is an autogenerated conversion function.
-func Convert_core_PodAffinityTerm_To_v1_PodAffinityTerm(in *core.PodAffinityTerm, out *v1.PodAffinityTerm, s conversion.Scope) error {
- return autoConvert_core_PodAffinityTerm_To_v1_PodAffinityTerm(in, out, s)
-}
-
-func autoConvert_v1_PodAntiAffinity_To_core_PodAntiAffinity(in *v1.PodAntiAffinity, out *core.PodAntiAffinity, s conversion.Scope) error {
- out.RequiredDuringSchedulingIgnoredDuringExecution = *(*[]core.PodAffinityTerm)(unsafe.Pointer(&in.RequiredDuringSchedulingIgnoredDuringExecution))
- out.PreferredDuringSchedulingIgnoredDuringExecution = *(*[]core.WeightedPodAffinityTerm)(unsafe.Pointer(&in.PreferredDuringSchedulingIgnoredDuringExecution))
- return nil
-}
-
-// Convert_v1_PodAntiAffinity_To_core_PodAntiAffinity is an autogenerated conversion function.
-func Convert_v1_PodAntiAffinity_To_core_PodAntiAffinity(in *v1.PodAntiAffinity, out *core.PodAntiAffinity, s conversion.Scope) error {
- return autoConvert_v1_PodAntiAffinity_To_core_PodAntiAffinity(in, out, s)
-}
-
-func autoConvert_core_PodAntiAffinity_To_v1_PodAntiAffinity(in *core.PodAntiAffinity, out *v1.PodAntiAffinity, s conversion.Scope) error {
- out.RequiredDuringSchedulingIgnoredDuringExecution = *(*[]v1.PodAffinityTerm)(unsafe.Pointer(&in.RequiredDuringSchedulingIgnoredDuringExecution))
- out.PreferredDuringSchedulingIgnoredDuringExecution = *(*[]v1.WeightedPodAffinityTerm)(unsafe.Pointer(&in.PreferredDuringSchedulingIgnoredDuringExecution))
- return nil
-}
-
-// Convert_core_PodAntiAffinity_To_v1_PodAntiAffinity is an autogenerated conversion function.
-func Convert_core_PodAntiAffinity_To_v1_PodAntiAffinity(in *core.PodAntiAffinity, out *v1.PodAntiAffinity, s conversion.Scope) error {
- return autoConvert_core_PodAntiAffinity_To_v1_PodAntiAffinity(in, out, s)
-}
-
-func autoConvert_v1_PodAttachOptions_To_core_PodAttachOptions(in *v1.PodAttachOptions, out *core.PodAttachOptions, s conversion.Scope) error {
- out.Stdin = in.Stdin
- out.Stdout = in.Stdout
- out.Stderr = in.Stderr
- out.TTY = in.TTY
- out.Container = in.Container
- return nil
-}
-
-// Convert_v1_PodAttachOptions_To_core_PodAttachOptions is an autogenerated conversion function.
-func Convert_v1_PodAttachOptions_To_core_PodAttachOptions(in *v1.PodAttachOptions, out *core.PodAttachOptions, s conversion.Scope) error {
- return autoConvert_v1_PodAttachOptions_To_core_PodAttachOptions(in, out, s)
-}
-
-func autoConvert_core_PodAttachOptions_To_v1_PodAttachOptions(in *core.PodAttachOptions, out *v1.PodAttachOptions, s conversion.Scope) error {
- out.Stdin = in.Stdin
- out.Stdout = in.Stdout
- out.Stderr = in.Stderr
- out.TTY = in.TTY
- out.Container = in.Container
- return nil
-}
-
-// Convert_core_PodAttachOptions_To_v1_PodAttachOptions is an autogenerated conversion function.
-func Convert_core_PodAttachOptions_To_v1_PodAttachOptions(in *core.PodAttachOptions, out *v1.PodAttachOptions, s conversion.Scope) error {
- return autoConvert_core_PodAttachOptions_To_v1_PodAttachOptions(in, out, s)
-}
-
-func autoConvert_v1_PodCondition_To_core_PodCondition(in *v1.PodCondition, out *core.PodCondition, s conversion.Scope) error {
- out.Type = core.PodConditionType(in.Type)
- out.Status = core.ConditionStatus(in.Status)
- out.LastProbeTime = in.LastProbeTime
- out.LastTransitionTime = in.LastTransitionTime
- out.Reason = in.Reason
- out.Message = in.Message
- return nil
-}
-
-// Convert_v1_PodCondition_To_core_PodCondition is an autogenerated conversion function.
-func Convert_v1_PodCondition_To_core_PodCondition(in *v1.PodCondition, out *core.PodCondition, s conversion.Scope) error {
- return autoConvert_v1_PodCondition_To_core_PodCondition(in, out, s)
-}
-
-func autoConvert_core_PodCondition_To_v1_PodCondition(in *core.PodCondition, out *v1.PodCondition, s conversion.Scope) error {
- out.Type = v1.PodConditionType(in.Type)
- out.Status = v1.ConditionStatus(in.Status)
- out.LastProbeTime = in.LastProbeTime
- out.LastTransitionTime = in.LastTransitionTime
- out.Reason = in.Reason
- out.Message = in.Message
- return nil
-}
-
-// Convert_core_PodCondition_To_v1_PodCondition is an autogenerated conversion function.
-func Convert_core_PodCondition_To_v1_PodCondition(in *core.PodCondition, out *v1.PodCondition, s conversion.Scope) error {
- return autoConvert_core_PodCondition_To_v1_PodCondition(in, out, s)
-}
-
-func autoConvert_v1_PodDNSConfig_To_core_PodDNSConfig(in *v1.PodDNSConfig, out *core.PodDNSConfig, s conversion.Scope) error {
- out.Nameservers = *(*[]string)(unsafe.Pointer(&in.Nameservers))
- out.Searches = *(*[]string)(unsafe.Pointer(&in.Searches))
- out.Options = *(*[]core.PodDNSConfigOption)(unsafe.Pointer(&in.Options))
- return nil
-}
-
-// Convert_v1_PodDNSConfig_To_core_PodDNSConfig is an autogenerated conversion function.
-func Convert_v1_PodDNSConfig_To_core_PodDNSConfig(in *v1.PodDNSConfig, out *core.PodDNSConfig, s conversion.Scope) error {
- return autoConvert_v1_PodDNSConfig_To_core_PodDNSConfig(in, out, s)
-}
-
-func autoConvert_core_PodDNSConfig_To_v1_PodDNSConfig(in *core.PodDNSConfig, out *v1.PodDNSConfig, s conversion.Scope) error {
- out.Nameservers = *(*[]string)(unsafe.Pointer(&in.Nameservers))
- out.Searches = *(*[]string)(unsafe.Pointer(&in.Searches))
- out.Options = *(*[]v1.PodDNSConfigOption)(unsafe.Pointer(&in.Options))
- return nil
-}
-
-// Convert_core_PodDNSConfig_To_v1_PodDNSConfig is an autogenerated conversion function.
-func Convert_core_PodDNSConfig_To_v1_PodDNSConfig(in *core.PodDNSConfig, out *v1.PodDNSConfig, s conversion.Scope) error {
- return autoConvert_core_PodDNSConfig_To_v1_PodDNSConfig(in, out, s)
-}
-
-func autoConvert_v1_PodDNSConfigOption_To_core_PodDNSConfigOption(in *v1.PodDNSConfigOption, out *core.PodDNSConfigOption, s conversion.Scope) error {
- out.Name = in.Name
- out.Value = (*string)(unsafe.Pointer(in.Value))
- return nil
-}
-
-// Convert_v1_PodDNSConfigOption_To_core_PodDNSConfigOption is an autogenerated conversion function.
-func Convert_v1_PodDNSConfigOption_To_core_PodDNSConfigOption(in *v1.PodDNSConfigOption, out *core.PodDNSConfigOption, s conversion.Scope) error {
- return autoConvert_v1_PodDNSConfigOption_To_core_PodDNSConfigOption(in, out, s)
-}
-
-func autoConvert_core_PodDNSConfigOption_To_v1_PodDNSConfigOption(in *core.PodDNSConfigOption, out *v1.PodDNSConfigOption, s conversion.Scope) error {
- out.Name = in.Name
- out.Value = (*string)(unsafe.Pointer(in.Value))
- return nil
-}
-
-// Convert_core_PodDNSConfigOption_To_v1_PodDNSConfigOption is an autogenerated conversion function.
-func Convert_core_PodDNSConfigOption_To_v1_PodDNSConfigOption(in *core.PodDNSConfigOption, out *v1.PodDNSConfigOption, s conversion.Scope) error {
- return autoConvert_core_PodDNSConfigOption_To_v1_PodDNSConfigOption(in, out, s)
-}
-
-func autoConvert_v1_PodExecOptions_To_core_PodExecOptions(in *v1.PodExecOptions, out *core.PodExecOptions, s conversion.Scope) error {
- out.Stdin = in.Stdin
- out.Stdout = in.Stdout
- out.Stderr = in.Stderr
- out.TTY = in.TTY
- out.Container = in.Container
- out.Command = *(*[]string)(unsafe.Pointer(&in.Command))
- return nil
-}
-
-// Convert_v1_PodExecOptions_To_core_PodExecOptions is an autogenerated conversion function.
-func Convert_v1_PodExecOptions_To_core_PodExecOptions(in *v1.PodExecOptions, out *core.PodExecOptions, s conversion.Scope) error {
- return autoConvert_v1_PodExecOptions_To_core_PodExecOptions(in, out, s)
-}
-
-func autoConvert_core_PodExecOptions_To_v1_PodExecOptions(in *core.PodExecOptions, out *v1.PodExecOptions, s conversion.Scope) error {
- out.Stdin = in.Stdin
- out.Stdout = in.Stdout
- out.Stderr = in.Stderr
- out.TTY = in.TTY
- out.Container = in.Container
- out.Command = *(*[]string)(unsafe.Pointer(&in.Command))
- return nil
-}
-
-// Convert_core_PodExecOptions_To_v1_PodExecOptions is an autogenerated conversion function.
-func Convert_core_PodExecOptions_To_v1_PodExecOptions(in *core.PodExecOptions, out *v1.PodExecOptions, s conversion.Scope) error {
- return autoConvert_core_PodExecOptions_To_v1_PodExecOptions(in, out, s)
-}
-
-func autoConvert_v1_PodList_To_core_PodList(in *v1.PodList, out *core.PodList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]core.Pod, len(*in))
- for i := range *in {
- if err := Convert_v1_Pod_To_core_Pod(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.Items = nil
- }
- return nil
-}
-
-// Convert_v1_PodList_To_core_PodList is an autogenerated conversion function.
-func Convert_v1_PodList_To_core_PodList(in *v1.PodList, out *core.PodList, s conversion.Scope) error {
- return autoConvert_v1_PodList_To_core_PodList(in, out, s)
-}
-
-func autoConvert_core_PodList_To_v1_PodList(in *core.PodList, out *v1.PodList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]v1.Pod, len(*in))
- for i := range *in {
- if err := Convert_core_Pod_To_v1_Pod(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.Items = nil
- }
- return nil
-}
-
-// Convert_core_PodList_To_v1_PodList is an autogenerated conversion function.
-func Convert_core_PodList_To_v1_PodList(in *core.PodList, out *v1.PodList, s conversion.Scope) error {
- return autoConvert_core_PodList_To_v1_PodList(in, out, s)
-}
-
-func autoConvert_v1_PodLogOptions_To_core_PodLogOptions(in *v1.PodLogOptions, out *core.PodLogOptions, s conversion.Scope) error {
- out.Container = in.Container
- out.Follow = in.Follow
- out.Previous = in.Previous
- out.SinceSeconds = (*int64)(unsafe.Pointer(in.SinceSeconds))
- out.SinceTime = (*meta_v1.Time)(unsafe.Pointer(in.SinceTime))
- out.Timestamps = in.Timestamps
- out.TailLines = (*int64)(unsafe.Pointer(in.TailLines))
- out.LimitBytes = (*int64)(unsafe.Pointer(in.LimitBytes))
- return nil
-}
-
-// Convert_v1_PodLogOptions_To_core_PodLogOptions is an autogenerated conversion function.
-func Convert_v1_PodLogOptions_To_core_PodLogOptions(in *v1.PodLogOptions, out *core.PodLogOptions, s conversion.Scope) error {
- return autoConvert_v1_PodLogOptions_To_core_PodLogOptions(in, out, s)
-}
-
-func autoConvert_core_PodLogOptions_To_v1_PodLogOptions(in *core.PodLogOptions, out *v1.PodLogOptions, s conversion.Scope) error {
- out.Container = in.Container
- out.Follow = in.Follow
- out.Previous = in.Previous
- out.SinceSeconds = (*int64)(unsafe.Pointer(in.SinceSeconds))
- out.SinceTime = (*meta_v1.Time)(unsafe.Pointer(in.SinceTime))
- out.Timestamps = in.Timestamps
- out.TailLines = (*int64)(unsafe.Pointer(in.TailLines))
- out.LimitBytes = (*int64)(unsafe.Pointer(in.LimitBytes))
- return nil
-}
-
-// Convert_core_PodLogOptions_To_v1_PodLogOptions is an autogenerated conversion function.
-func Convert_core_PodLogOptions_To_v1_PodLogOptions(in *core.PodLogOptions, out *v1.PodLogOptions, s conversion.Scope) error {
- return autoConvert_core_PodLogOptions_To_v1_PodLogOptions(in, out, s)
-}
-
-func autoConvert_v1_PodPortForwardOptions_To_core_PodPortForwardOptions(in *v1.PodPortForwardOptions, out *core.PodPortForwardOptions, s conversion.Scope) error {
- out.Ports = *(*[]int32)(unsafe.Pointer(&in.Ports))
- return nil
-}
-
-// Convert_v1_PodPortForwardOptions_To_core_PodPortForwardOptions is an autogenerated conversion function.
-func Convert_v1_PodPortForwardOptions_To_core_PodPortForwardOptions(in *v1.PodPortForwardOptions, out *core.PodPortForwardOptions, s conversion.Scope) error {
- return autoConvert_v1_PodPortForwardOptions_To_core_PodPortForwardOptions(in, out, s)
-}
-
-func autoConvert_core_PodPortForwardOptions_To_v1_PodPortForwardOptions(in *core.PodPortForwardOptions, out *v1.PodPortForwardOptions, s conversion.Scope) error {
- out.Ports = *(*[]int32)(unsafe.Pointer(&in.Ports))
- return nil
-}
-
-// Convert_core_PodPortForwardOptions_To_v1_PodPortForwardOptions is an autogenerated conversion function.
-func Convert_core_PodPortForwardOptions_To_v1_PodPortForwardOptions(in *core.PodPortForwardOptions, out *v1.PodPortForwardOptions, s conversion.Scope) error {
- return autoConvert_core_PodPortForwardOptions_To_v1_PodPortForwardOptions(in, out, s)
-}
-
-func autoConvert_v1_PodProxyOptions_To_core_PodProxyOptions(in *v1.PodProxyOptions, out *core.PodProxyOptions, s conversion.Scope) error {
- out.Path = in.Path
- return nil
-}
-
-// Convert_v1_PodProxyOptions_To_core_PodProxyOptions is an autogenerated conversion function.
-func Convert_v1_PodProxyOptions_To_core_PodProxyOptions(in *v1.PodProxyOptions, out *core.PodProxyOptions, s conversion.Scope) error {
- return autoConvert_v1_PodProxyOptions_To_core_PodProxyOptions(in, out, s)
-}
-
-func autoConvert_core_PodProxyOptions_To_v1_PodProxyOptions(in *core.PodProxyOptions, out *v1.PodProxyOptions, s conversion.Scope) error {
- out.Path = in.Path
- return nil
-}
-
-// Convert_core_PodProxyOptions_To_v1_PodProxyOptions is an autogenerated conversion function.
-func Convert_core_PodProxyOptions_To_v1_PodProxyOptions(in *core.PodProxyOptions, out *v1.PodProxyOptions, s conversion.Scope) error {
- return autoConvert_core_PodProxyOptions_To_v1_PodProxyOptions(in, out, s)
-}
-
-func autoConvert_v1_PodSecurityContext_To_core_PodSecurityContext(in *v1.PodSecurityContext, out *core.PodSecurityContext, s conversion.Scope) error {
- out.SELinuxOptions = (*core.SELinuxOptions)(unsafe.Pointer(in.SELinuxOptions))
- out.RunAsUser = (*int64)(unsafe.Pointer(in.RunAsUser))
- out.RunAsNonRoot = (*bool)(unsafe.Pointer(in.RunAsNonRoot))
- out.SupplementalGroups = *(*[]int64)(unsafe.Pointer(&in.SupplementalGroups))
- out.FSGroup = (*int64)(unsafe.Pointer(in.FSGroup))
- return nil
-}
-
-func autoConvert_core_PodSecurityContext_To_v1_PodSecurityContext(in *core.PodSecurityContext, out *v1.PodSecurityContext, s conversion.Scope) error {
- // INFO: in.HostNetwork opted out of conversion generation
- // INFO: in.HostPID opted out of conversion generation
- // INFO: in.HostIPC opted out of conversion generation
- // INFO: in.ShareProcessNamespace opted out of conversion generation
- out.SELinuxOptions = (*v1.SELinuxOptions)(unsafe.Pointer(in.SELinuxOptions))
- out.RunAsUser = (*int64)(unsafe.Pointer(in.RunAsUser))
- out.RunAsNonRoot = (*bool)(unsafe.Pointer(in.RunAsNonRoot))
- out.SupplementalGroups = *(*[]int64)(unsafe.Pointer(&in.SupplementalGroups))
- out.FSGroup = (*int64)(unsafe.Pointer(in.FSGroup))
- return nil
-}
-
-func autoConvert_v1_PodSignature_To_core_PodSignature(in *v1.PodSignature, out *core.PodSignature, s conversion.Scope) error {
- out.PodController = (*meta_v1.OwnerReference)(unsafe.Pointer(in.PodController))
- return nil
-}
-
-// Convert_v1_PodSignature_To_core_PodSignature is an autogenerated conversion function.
-func Convert_v1_PodSignature_To_core_PodSignature(in *v1.PodSignature, out *core.PodSignature, s conversion.Scope) error {
- return autoConvert_v1_PodSignature_To_core_PodSignature(in, out, s)
-}
-
-func autoConvert_core_PodSignature_To_v1_PodSignature(in *core.PodSignature, out *v1.PodSignature, s conversion.Scope) error {
- out.PodController = (*meta_v1.OwnerReference)(unsafe.Pointer(in.PodController))
- return nil
-}
-
-// Convert_core_PodSignature_To_v1_PodSignature is an autogenerated conversion function.
-func Convert_core_PodSignature_To_v1_PodSignature(in *core.PodSignature, out *v1.PodSignature, s conversion.Scope) error {
- return autoConvert_core_PodSignature_To_v1_PodSignature(in, out, s)
-}
-
-func autoConvert_v1_PodSpec_To_core_PodSpec(in *v1.PodSpec, out *core.PodSpec, s conversion.Scope) error {
- if in.Volumes != nil {
- in, out := &in.Volumes, &out.Volumes
- *out = make([]core.Volume, len(*in))
- for i := range *in {
- if err := Convert_v1_Volume_To_core_Volume(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.Volumes = nil
- }
- if in.InitContainers != nil {
- in, out := &in.InitContainers, &out.InitContainers
- *out = make([]core.Container, len(*in))
- for i := range *in {
- if err := Convert_v1_Container_To_core_Container(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.InitContainers = nil
- }
- if in.Containers != nil {
- in, out := &in.Containers, &out.Containers
- *out = make([]core.Container, len(*in))
- for i := range *in {
- if err := Convert_v1_Container_To_core_Container(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.Containers = nil
- }
- out.RestartPolicy = core.RestartPolicy(in.RestartPolicy)
- out.TerminationGracePeriodSeconds = (*int64)(unsafe.Pointer(in.TerminationGracePeriodSeconds))
- out.ActiveDeadlineSeconds = (*int64)(unsafe.Pointer(in.ActiveDeadlineSeconds))
- out.DNSPolicy = core.DNSPolicy(in.DNSPolicy)
- out.NodeSelector = *(*map[string]string)(unsafe.Pointer(&in.NodeSelector))
- out.ServiceAccountName = in.ServiceAccountName
- // INFO: in.DeprecatedServiceAccount opted out of conversion generation
- out.AutomountServiceAccountToken = (*bool)(unsafe.Pointer(in.AutomountServiceAccountToken))
- out.NodeName = in.NodeName
- // INFO: in.HostNetwork opted out of conversion generation
- // INFO: in.HostPID opted out of conversion generation
- // INFO: in.HostIPC opted out of conversion generation
- // INFO: in.ShareProcessNamespace opted out of conversion generation
- if in.SecurityContext != nil {
- in, out := &in.SecurityContext, &out.SecurityContext
- *out = new(core.PodSecurityContext)
- if err := Convert_v1_PodSecurityContext_To_core_PodSecurityContext(*in, *out, s); err != nil {
- return err
- }
- } else {
- out.SecurityContext = nil
- }
- out.ImagePullSecrets = *(*[]core.LocalObjectReference)(unsafe.Pointer(&in.ImagePullSecrets))
- out.Hostname = in.Hostname
- out.Subdomain = in.Subdomain
- out.Affinity = (*core.Affinity)(unsafe.Pointer(in.Affinity))
- out.SchedulerName = in.SchedulerName
- out.Tolerations = *(*[]core.Toleration)(unsafe.Pointer(&in.Tolerations))
- out.HostAliases = *(*[]core.HostAlias)(unsafe.Pointer(&in.HostAliases))
- out.PriorityClassName = in.PriorityClassName
- out.Priority = (*int32)(unsafe.Pointer(in.Priority))
- out.DNSConfig = (*core.PodDNSConfig)(unsafe.Pointer(in.DNSConfig))
- return nil
-}
-
-func autoConvert_core_PodSpec_To_v1_PodSpec(in *core.PodSpec, out *v1.PodSpec, s conversion.Scope) error {
- if in.Volumes != nil {
- in, out := &in.Volumes, &out.Volumes
- *out = make([]v1.Volume, len(*in))
- for i := range *in {
- if err := Convert_core_Volume_To_v1_Volume(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.Volumes = nil
- }
- if in.InitContainers != nil {
- in, out := &in.InitContainers, &out.InitContainers
- *out = make([]v1.Container, len(*in))
- for i := range *in {
- if err := Convert_core_Container_To_v1_Container(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.InitContainers = nil
- }
- if in.Containers != nil {
- in, out := &in.Containers, &out.Containers
- *out = make([]v1.Container, len(*in))
- for i := range *in {
- if err := Convert_core_Container_To_v1_Container(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.Containers = nil
- }
- out.RestartPolicy = v1.RestartPolicy(in.RestartPolicy)
- out.TerminationGracePeriodSeconds = (*int64)(unsafe.Pointer(in.TerminationGracePeriodSeconds))
- out.ActiveDeadlineSeconds = (*int64)(unsafe.Pointer(in.ActiveDeadlineSeconds))
- out.DNSPolicy = v1.DNSPolicy(in.DNSPolicy)
- out.NodeSelector = *(*map[string]string)(unsafe.Pointer(&in.NodeSelector))
- out.ServiceAccountName = in.ServiceAccountName
- out.AutomountServiceAccountToken = (*bool)(unsafe.Pointer(in.AutomountServiceAccountToken))
- out.NodeName = in.NodeName
- if in.SecurityContext != nil {
- in, out := &in.SecurityContext, &out.SecurityContext
- *out = new(v1.PodSecurityContext)
- if err := Convert_core_PodSecurityContext_To_v1_PodSecurityContext(*in, *out, s); err != nil {
- return err
- }
- } else {
- out.SecurityContext = nil
- }
- out.ImagePullSecrets = *(*[]v1.LocalObjectReference)(unsafe.Pointer(&in.ImagePullSecrets))
- out.Hostname = in.Hostname
- out.Subdomain = in.Subdomain
- out.Affinity = (*v1.Affinity)(unsafe.Pointer(in.Affinity))
- out.SchedulerName = in.SchedulerName
- out.Tolerations = *(*[]v1.Toleration)(unsafe.Pointer(&in.Tolerations))
- out.HostAliases = *(*[]v1.HostAlias)(unsafe.Pointer(&in.HostAliases))
- out.PriorityClassName = in.PriorityClassName
- out.Priority = (*int32)(unsafe.Pointer(in.Priority))
- out.DNSConfig = (*v1.PodDNSConfig)(unsafe.Pointer(in.DNSConfig))
- return nil
-}
-
-func autoConvert_v1_PodStatus_To_core_PodStatus(in *v1.PodStatus, out *core.PodStatus, s conversion.Scope) error {
- out.Phase = core.PodPhase(in.Phase)
- out.Conditions = *(*[]core.PodCondition)(unsafe.Pointer(&in.Conditions))
- out.Message = in.Message
- out.Reason = in.Reason
- out.NominatedNodeName = in.NominatedNodeName
- out.HostIP = in.HostIP
- out.PodIP = in.PodIP
- out.StartTime = (*meta_v1.Time)(unsafe.Pointer(in.StartTime))
- out.InitContainerStatuses = *(*[]core.ContainerStatus)(unsafe.Pointer(&in.InitContainerStatuses))
- out.ContainerStatuses = *(*[]core.ContainerStatus)(unsafe.Pointer(&in.ContainerStatuses))
- out.QOSClass = core.PodQOSClass(in.QOSClass)
- return nil
-}
-
-// Convert_v1_PodStatus_To_core_PodStatus is an autogenerated conversion function.
-func Convert_v1_PodStatus_To_core_PodStatus(in *v1.PodStatus, out *core.PodStatus, s conversion.Scope) error {
- return autoConvert_v1_PodStatus_To_core_PodStatus(in, out, s)
-}
-
-func autoConvert_core_PodStatus_To_v1_PodStatus(in *core.PodStatus, out *v1.PodStatus, s conversion.Scope) error {
- out.Phase = v1.PodPhase(in.Phase)
- out.Conditions = *(*[]v1.PodCondition)(unsafe.Pointer(&in.Conditions))
- out.Message = in.Message
- out.Reason = in.Reason
- out.NominatedNodeName = in.NominatedNodeName
- out.HostIP = in.HostIP
- out.PodIP = in.PodIP
- out.StartTime = (*meta_v1.Time)(unsafe.Pointer(in.StartTime))
- out.QOSClass = v1.PodQOSClass(in.QOSClass)
- out.InitContainerStatuses = *(*[]v1.ContainerStatus)(unsafe.Pointer(&in.InitContainerStatuses))
- out.ContainerStatuses = *(*[]v1.ContainerStatus)(unsafe.Pointer(&in.ContainerStatuses))
- return nil
-}
-
-// Convert_core_PodStatus_To_v1_PodStatus is an autogenerated conversion function.
-func Convert_core_PodStatus_To_v1_PodStatus(in *core.PodStatus, out *v1.PodStatus, s conversion.Scope) error {
- return autoConvert_core_PodStatus_To_v1_PodStatus(in, out, s)
-}
-
-func autoConvert_v1_PodStatusResult_To_core_PodStatusResult(in *v1.PodStatusResult, out *core.PodStatusResult, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_v1_PodStatus_To_core_PodStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_v1_PodStatusResult_To_core_PodStatusResult is an autogenerated conversion function.
-func Convert_v1_PodStatusResult_To_core_PodStatusResult(in *v1.PodStatusResult, out *core.PodStatusResult, s conversion.Scope) error {
- return autoConvert_v1_PodStatusResult_To_core_PodStatusResult(in, out, s)
-}
-
-func autoConvert_core_PodStatusResult_To_v1_PodStatusResult(in *core.PodStatusResult, out *v1.PodStatusResult, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_core_PodStatus_To_v1_PodStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_core_PodStatusResult_To_v1_PodStatusResult is an autogenerated conversion function.
-func Convert_core_PodStatusResult_To_v1_PodStatusResult(in *core.PodStatusResult, out *v1.PodStatusResult, s conversion.Scope) error {
- return autoConvert_core_PodStatusResult_To_v1_PodStatusResult(in, out, s)
-}
-
-func autoConvert_v1_PodTemplate_To_core_PodTemplate(in *v1.PodTemplate, out *core.PodTemplate, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_v1_PodTemplate_To_core_PodTemplate is an autogenerated conversion function.
-func Convert_v1_PodTemplate_To_core_PodTemplate(in *v1.PodTemplate, out *core.PodTemplate, s conversion.Scope) error {
- return autoConvert_v1_PodTemplate_To_core_PodTemplate(in, out, s)
-}
-
-func autoConvert_core_PodTemplate_To_v1_PodTemplate(in *core.PodTemplate, out *v1.PodTemplate, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_core_PodTemplate_To_v1_PodTemplate is an autogenerated conversion function.
-func Convert_core_PodTemplate_To_v1_PodTemplate(in *core.PodTemplate, out *v1.PodTemplate, s conversion.Scope) error {
- return autoConvert_core_PodTemplate_To_v1_PodTemplate(in, out, s)
-}
-
-func autoConvert_v1_PodTemplateList_To_core_PodTemplateList(in *v1.PodTemplateList, out *core.PodTemplateList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]core.PodTemplate, len(*in))
- for i := range *in {
- if err := Convert_v1_PodTemplate_To_core_PodTemplate(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.Items = nil
- }
- return nil
-}
-
-// Convert_v1_PodTemplateList_To_core_PodTemplateList is an autogenerated conversion function.
-func Convert_v1_PodTemplateList_To_core_PodTemplateList(in *v1.PodTemplateList, out *core.PodTemplateList, s conversion.Scope) error {
- return autoConvert_v1_PodTemplateList_To_core_PodTemplateList(in, out, s)
-}
-
-func autoConvert_core_PodTemplateList_To_v1_PodTemplateList(in *core.PodTemplateList, out *v1.PodTemplateList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]v1.PodTemplate, len(*in))
- for i := range *in {
- if err := Convert_core_PodTemplate_To_v1_PodTemplate(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.Items = nil
- }
- return nil
-}
-
-// Convert_core_PodTemplateList_To_v1_PodTemplateList is an autogenerated conversion function.
-func Convert_core_PodTemplateList_To_v1_PodTemplateList(in *core.PodTemplateList, out *v1.PodTemplateList, s conversion.Scope) error {
- return autoConvert_core_PodTemplateList_To_v1_PodTemplateList(in, out, s)
-}
-
-func autoConvert_v1_PodTemplateSpec_To_core_PodTemplateSpec(in *v1.PodTemplateSpec, out *core.PodTemplateSpec, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_v1_PodSpec_To_core_PodSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- return nil
-}
-
-func autoConvert_core_PodTemplateSpec_To_v1_PodTemplateSpec(in *core.PodTemplateSpec, out *v1.PodTemplateSpec, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_core_PodSpec_To_v1_PodSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- return nil
-}
-
-func autoConvert_v1_PortworxVolumeSource_To_core_PortworxVolumeSource(in *v1.PortworxVolumeSource, out *core.PortworxVolumeSource, s conversion.Scope) error {
- out.VolumeID = in.VolumeID
- out.FSType = in.FSType
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_v1_PortworxVolumeSource_To_core_PortworxVolumeSource is an autogenerated conversion function.
-func Convert_v1_PortworxVolumeSource_To_core_PortworxVolumeSource(in *v1.PortworxVolumeSource, out *core.PortworxVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_PortworxVolumeSource_To_core_PortworxVolumeSource(in, out, s)
-}
-
-func autoConvert_core_PortworxVolumeSource_To_v1_PortworxVolumeSource(in *core.PortworxVolumeSource, out *v1.PortworxVolumeSource, s conversion.Scope) error {
- out.VolumeID = in.VolumeID
- out.FSType = in.FSType
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_core_PortworxVolumeSource_To_v1_PortworxVolumeSource is an autogenerated conversion function.
-func Convert_core_PortworxVolumeSource_To_v1_PortworxVolumeSource(in *core.PortworxVolumeSource, out *v1.PortworxVolumeSource, s conversion.Scope) error {
- return autoConvert_core_PortworxVolumeSource_To_v1_PortworxVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_Preconditions_To_core_Preconditions(in *v1.Preconditions, out *core.Preconditions, s conversion.Scope) error {
- out.UID = (*types.UID)(unsafe.Pointer(in.UID))
- return nil
-}
-
-// Convert_v1_Preconditions_To_core_Preconditions is an autogenerated conversion function.
-func Convert_v1_Preconditions_To_core_Preconditions(in *v1.Preconditions, out *core.Preconditions, s conversion.Scope) error {
- return autoConvert_v1_Preconditions_To_core_Preconditions(in, out, s)
-}
-
-func autoConvert_core_Preconditions_To_v1_Preconditions(in *core.Preconditions, out *v1.Preconditions, s conversion.Scope) error {
- out.UID = (*types.UID)(unsafe.Pointer(in.UID))
- return nil
-}
-
-// Convert_core_Preconditions_To_v1_Preconditions is an autogenerated conversion function.
-func Convert_core_Preconditions_To_v1_Preconditions(in *core.Preconditions, out *v1.Preconditions, s conversion.Scope) error {
- return autoConvert_core_Preconditions_To_v1_Preconditions(in, out, s)
-}
-
-func autoConvert_v1_PreferAvoidPodsEntry_To_core_PreferAvoidPodsEntry(in *v1.PreferAvoidPodsEntry, out *core.PreferAvoidPodsEntry, s conversion.Scope) error {
- if err := Convert_v1_PodSignature_To_core_PodSignature(&in.PodSignature, &out.PodSignature, s); err != nil {
- return err
- }
- out.EvictionTime = in.EvictionTime
- out.Reason = in.Reason
- out.Message = in.Message
- return nil
-}
-
-// Convert_v1_PreferAvoidPodsEntry_To_core_PreferAvoidPodsEntry is an autogenerated conversion function.
-func Convert_v1_PreferAvoidPodsEntry_To_core_PreferAvoidPodsEntry(in *v1.PreferAvoidPodsEntry, out *core.PreferAvoidPodsEntry, s conversion.Scope) error {
- return autoConvert_v1_PreferAvoidPodsEntry_To_core_PreferAvoidPodsEntry(in, out, s)
-}
-
-func autoConvert_core_PreferAvoidPodsEntry_To_v1_PreferAvoidPodsEntry(in *core.PreferAvoidPodsEntry, out *v1.PreferAvoidPodsEntry, s conversion.Scope) error {
- if err := Convert_core_PodSignature_To_v1_PodSignature(&in.PodSignature, &out.PodSignature, s); err != nil {
- return err
- }
- out.EvictionTime = in.EvictionTime
- out.Reason = in.Reason
- out.Message = in.Message
- return nil
-}
-
-// Convert_core_PreferAvoidPodsEntry_To_v1_PreferAvoidPodsEntry is an autogenerated conversion function.
-func Convert_core_PreferAvoidPodsEntry_To_v1_PreferAvoidPodsEntry(in *core.PreferAvoidPodsEntry, out *v1.PreferAvoidPodsEntry, s conversion.Scope) error {
- return autoConvert_core_PreferAvoidPodsEntry_To_v1_PreferAvoidPodsEntry(in, out, s)
-}
-
-func autoConvert_v1_PreferredSchedulingTerm_To_core_PreferredSchedulingTerm(in *v1.PreferredSchedulingTerm, out *core.PreferredSchedulingTerm, s conversion.Scope) error {
- out.Weight = in.Weight
- if err := Convert_v1_NodeSelectorTerm_To_core_NodeSelectorTerm(&in.Preference, &out.Preference, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_v1_PreferredSchedulingTerm_To_core_PreferredSchedulingTerm is an autogenerated conversion function.
-func Convert_v1_PreferredSchedulingTerm_To_core_PreferredSchedulingTerm(in *v1.PreferredSchedulingTerm, out *core.PreferredSchedulingTerm, s conversion.Scope) error {
- return autoConvert_v1_PreferredSchedulingTerm_To_core_PreferredSchedulingTerm(in, out, s)
-}
-
-func autoConvert_core_PreferredSchedulingTerm_To_v1_PreferredSchedulingTerm(in *core.PreferredSchedulingTerm, out *v1.PreferredSchedulingTerm, s conversion.Scope) error {
- out.Weight = in.Weight
- if err := Convert_core_NodeSelectorTerm_To_v1_NodeSelectorTerm(&in.Preference, &out.Preference, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_core_PreferredSchedulingTerm_To_v1_PreferredSchedulingTerm is an autogenerated conversion function.
-func Convert_core_PreferredSchedulingTerm_To_v1_PreferredSchedulingTerm(in *core.PreferredSchedulingTerm, out *v1.PreferredSchedulingTerm, s conversion.Scope) error {
- return autoConvert_core_PreferredSchedulingTerm_To_v1_PreferredSchedulingTerm(in, out, s)
-}
-
-func autoConvert_v1_Probe_To_core_Probe(in *v1.Probe, out *core.Probe, s conversion.Scope) error {
- if err := Convert_v1_Handler_To_core_Handler(&in.Handler, &out.Handler, s); err != nil {
- return err
- }
- out.InitialDelaySeconds = in.InitialDelaySeconds
- out.TimeoutSeconds = in.TimeoutSeconds
- out.PeriodSeconds = in.PeriodSeconds
- out.SuccessThreshold = in.SuccessThreshold
- out.FailureThreshold = in.FailureThreshold
- return nil
-}
-
-// Convert_v1_Probe_To_core_Probe is an autogenerated conversion function.
-func Convert_v1_Probe_To_core_Probe(in *v1.Probe, out *core.Probe, s conversion.Scope) error {
- return autoConvert_v1_Probe_To_core_Probe(in, out, s)
-}
-
-func autoConvert_core_Probe_To_v1_Probe(in *core.Probe, out *v1.Probe, s conversion.Scope) error {
- if err := Convert_core_Handler_To_v1_Handler(&in.Handler, &out.Handler, s); err != nil {
- return err
- }
- out.InitialDelaySeconds = in.InitialDelaySeconds
- out.TimeoutSeconds = in.TimeoutSeconds
- out.PeriodSeconds = in.PeriodSeconds
- out.SuccessThreshold = in.SuccessThreshold
- out.FailureThreshold = in.FailureThreshold
- return nil
-}
-
-// Convert_core_Probe_To_v1_Probe is an autogenerated conversion function.
-func Convert_core_Probe_To_v1_Probe(in *core.Probe, out *v1.Probe, s conversion.Scope) error {
- return autoConvert_core_Probe_To_v1_Probe(in, out, s)
-}
-
-func autoConvert_v1_ProjectedVolumeSource_To_core_ProjectedVolumeSource(in *v1.ProjectedVolumeSource, out *core.ProjectedVolumeSource, s conversion.Scope) error {
- out.Sources = *(*[]core.VolumeProjection)(unsafe.Pointer(&in.Sources))
- out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode))
- return nil
-}
-
-// Convert_v1_ProjectedVolumeSource_To_core_ProjectedVolumeSource is an autogenerated conversion function.
-func Convert_v1_ProjectedVolumeSource_To_core_ProjectedVolumeSource(in *v1.ProjectedVolumeSource, out *core.ProjectedVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_ProjectedVolumeSource_To_core_ProjectedVolumeSource(in, out, s)
-}
-
-func autoConvert_core_ProjectedVolumeSource_To_v1_ProjectedVolumeSource(in *core.ProjectedVolumeSource, out *v1.ProjectedVolumeSource, s conversion.Scope) error {
- out.Sources = *(*[]v1.VolumeProjection)(unsafe.Pointer(&in.Sources))
- out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode))
- return nil
-}
-
-// Convert_core_ProjectedVolumeSource_To_v1_ProjectedVolumeSource is an autogenerated conversion function.
-func Convert_core_ProjectedVolumeSource_To_v1_ProjectedVolumeSource(in *core.ProjectedVolumeSource, out *v1.ProjectedVolumeSource, s conversion.Scope) error {
- return autoConvert_core_ProjectedVolumeSource_To_v1_ProjectedVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_QuobyteVolumeSource_To_core_QuobyteVolumeSource(in *v1.QuobyteVolumeSource, out *core.QuobyteVolumeSource, s conversion.Scope) error {
- out.Registry = in.Registry
- out.Volume = in.Volume
- out.ReadOnly = in.ReadOnly
- out.User = in.User
- out.Group = in.Group
- return nil
-}
-
-// Convert_v1_QuobyteVolumeSource_To_core_QuobyteVolumeSource is an autogenerated conversion function.
-func Convert_v1_QuobyteVolumeSource_To_core_QuobyteVolumeSource(in *v1.QuobyteVolumeSource, out *core.QuobyteVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_QuobyteVolumeSource_To_core_QuobyteVolumeSource(in, out, s)
-}
-
-func autoConvert_core_QuobyteVolumeSource_To_v1_QuobyteVolumeSource(in *core.QuobyteVolumeSource, out *v1.QuobyteVolumeSource, s conversion.Scope) error {
- out.Registry = in.Registry
- out.Volume = in.Volume
- out.ReadOnly = in.ReadOnly
- out.User = in.User
- out.Group = in.Group
- return nil
-}
-
-// Convert_core_QuobyteVolumeSource_To_v1_QuobyteVolumeSource is an autogenerated conversion function.
-func Convert_core_QuobyteVolumeSource_To_v1_QuobyteVolumeSource(in *core.QuobyteVolumeSource, out *v1.QuobyteVolumeSource, s conversion.Scope) error {
- return autoConvert_core_QuobyteVolumeSource_To_v1_QuobyteVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_RBDPersistentVolumeSource_To_core_RBDPersistentVolumeSource(in *v1.RBDPersistentVolumeSource, out *core.RBDPersistentVolumeSource, s conversion.Scope) error {
- out.CephMonitors = *(*[]string)(unsafe.Pointer(&in.CephMonitors))
- out.RBDImage = in.RBDImage
- out.FSType = in.FSType
- out.RBDPool = in.RBDPool
- out.RadosUser = in.RadosUser
- out.Keyring = in.Keyring
- out.SecretRef = (*core.SecretReference)(unsafe.Pointer(in.SecretRef))
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_v1_RBDPersistentVolumeSource_To_core_RBDPersistentVolumeSource is an autogenerated conversion function.
-func Convert_v1_RBDPersistentVolumeSource_To_core_RBDPersistentVolumeSource(in *v1.RBDPersistentVolumeSource, out *core.RBDPersistentVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_RBDPersistentVolumeSource_To_core_RBDPersistentVolumeSource(in, out, s)
-}
-
-func autoConvert_core_RBDPersistentVolumeSource_To_v1_RBDPersistentVolumeSource(in *core.RBDPersistentVolumeSource, out *v1.RBDPersistentVolumeSource, s conversion.Scope) error {
- out.CephMonitors = *(*[]string)(unsafe.Pointer(&in.CephMonitors))
- out.RBDImage = in.RBDImage
- out.FSType = in.FSType
- out.RBDPool = in.RBDPool
- out.RadosUser = in.RadosUser
- out.Keyring = in.Keyring
- out.SecretRef = (*v1.SecretReference)(unsafe.Pointer(in.SecretRef))
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_core_RBDPersistentVolumeSource_To_v1_RBDPersistentVolumeSource is an autogenerated conversion function.
-func Convert_core_RBDPersistentVolumeSource_To_v1_RBDPersistentVolumeSource(in *core.RBDPersistentVolumeSource, out *v1.RBDPersistentVolumeSource, s conversion.Scope) error {
- return autoConvert_core_RBDPersistentVolumeSource_To_v1_RBDPersistentVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_RBDVolumeSource_To_core_RBDVolumeSource(in *v1.RBDVolumeSource, out *core.RBDVolumeSource, s conversion.Scope) error {
- out.CephMonitors = *(*[]string)(unsafe.Pointer(&in.CephMonitors))
- out.RBDImage = in.RBDImage
- out.FSType = in.FSType
- out.RBDPool = in.RBDPool
- out.RadosUser = in.RadosUser
- out.Keyring = in.Keyring
- out.SecretRef = (*core.LocalObjectReference)(unsafe.Pointer(in.SecretRef))
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_v1_RBDVolumeSource_To_core_RBDVolumeSource is an autogenerated conversion function.
-func Convert_v1_RBDVolumeSource_To_core_RBDVolumeSource(in *v1.RBDVolumeSource, out *core.RBDVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_RBDVolumeSource_To_core_RBDVolumeSource(in, out, s)
-}
-
-func autoConvert_core_RBDVolumeSource_To_v1_RBDVolumeSource(in *core.RBDVolumeSource, out *v1.RBDVolumeSource, s conversion.Scope) error {
- out.CephMonitors = *(*[]string)(unsafe.Pointer(&in.CephMonitors))
- out.RBDImage = in.RBDImage
- out.FSType = in.FSType
- out.RBDPool = in.RBDPool
- out.RadosUser = in.RadosUser
- out.Keyring = in.Keyring
- out.SecretRef = (*v1.LocalObjectReference)(unsafe.Pointer(in.SecretRef))
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_core_RBDVolumeSource_To_v1_RBDVolumeSource is an autogenerated conversion function.
-func Convert_core_RBDVolumeSource_To_v1_RBDVolumeSource(in *core.RBDVolumeSource, out *v1.RBDVolumeSource, s conversion.Scope) error {
- return autoConvert_core_RBDVolumeSource_To_v1_RBDVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_RangeAllocation_To_core_RangeAllocation(in *v1.RangeAllocation, out *core.RangeAllocation, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- out.Range = in.Range
- out.Data = *(*[]byte)(unsafe.Pointer(&in.Data))
- return nil
-}
-
-// Convert_v1_RangeAllocation_To_core_RangeAllocation is an autogenerated conversion function.
-func Convert_v1_RangeAllocation_To_core_RangeAllocation(in *v1.RangeAllocation, out *core.RangeAllocation, s conversion.Scope) error {
- return autoConvert_v1_RangeAllocation_To_core_RangeAllocation(in, out, s)
-}
-
-func autoConvert_core_RangeAllocation_To_v1_RangeAllocation(in *core.RangeAllocation, out *v1.RangeAllocation, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- out.Range = in.Range
- out.Data = *(*[]byte)(unsafe.Pointer(&in.Data))
- return nil
-}
-
-// Convert_core_RangeAllocation_To_v1_RangeAllocation is an autogenerated conversion function.
-func Convert_core_RangeAllocation_To_v1_RangeAllocation(in *core.RangeAllocation, out *v1.RangeAllocation, s conversion.Scope) error {
- return autoConvert_core_RangeAllocation_To_v1_RangeAllocation(in, out, s)
-}
-
-func autoConvert_v1_ReplicationController_To_core_ReplicationController(in *v1.ReplicationController, out *core.ReplicationController, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_v1_ReplicationControllerSpec_To_core_ReplicationControllerSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- if err := Convert_v1_ReplicationControllerStatus_To_core_ReplicationControllerStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_v1_ReplicationController_To_core_ReplicationController is an autogenerated conversion function.
-func Convert_v1_ReplicationController_To_core_ReplicationController(in *v1.ReplicationController, out *core.ReplicationController, s conversion.Scope) error {
- return autoConvert_v1_ReplicationController_To_core_ReplicationController(in, out, s)
-}
-
-func autoConvert_core_ReplicationController_To_v1_ReplicationController(in *core.ReplicationController, out *v1.ReplicationController, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_core_ReplicationControllerSpec_To_v1_ReplicationControllerSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- if err := Convert_core_ReplicationControllerStatus_To_v1_ReplicationControllerStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_core_ReplicationController_To_v1_ReplicationController is an autogenerated conversion function.
-func Convert_core_ReplicationController_To_v1_ReplicationController(in *core.ReplicationController, out *v1.ReplicationController, s conversion.Scope) error {
- return autoConvert_core_ReplicationController_To_v1_ReplicationController(in, out, s)
-}
-
-func autoConvert_v1_ReplicationControllerCondition_To_core_ReplicationControllerCondition(in *v1.ReplicationControllerCondition, out *core.ReplicationControllerCondition, s conversion.Scope) error {
- out.Type = core.ReplicationControllerConditionType(in.Type)
- out.Status = core.ConditionStatus(in.Status)
- out.LastTransitionTime = in.LastTransitionTime
- out.Reason = in.Reason
- out.Message = in.Message
- return nil
-}
-
-// Convert_v1_ReplicationControllerCondition_To_core_ReplicationControllerCondition is an autogenerated conversion function.
-func Convert_v1_ReplicationControllerCondition_To_core_ReplicationControllerCondition(in *v1.ReplicationControllerCondition, out *core.ReplicationControllerCondition, s conversion.Scope) error {
- return autoConvert_v1_ReplicationControllerCondition_To_core_ReplicationControllerCondition(in, out, s)
-}
-
-func autoConvert_core_ReplicationControllerCondition_To_v1_ReplicationControllerCondition(in *core.ReplicationControllerCondition, out *v1.ReplicationControllerCondition, s conversion.Scope) error {
- out.Type = v1.ReplicationControllerConditionType(in.Type)
- out.Status = v1.ConditionStatus(in.Status)
- out.LastTransitionTime = in.LastTransitionTime
- out.Reason = in.Reason
- out.Message = in.Message
- return nil
-}
-
-// Convert_core_ReplicationControllerCondition_To_v1_ReplicationControllerCondition is an autogenerated conversion function.
-func Convert_core_ReplicationControllerCondition_To_v1_ReplicationControllerCondition(in *core.ReplicationControllerCondition, out *v1.ReplicationControllerCondition, s conversion.Scope) error {
- return autoConvert_core_ReplicationControllerCondition_To_v1_ReplicationControllerCondition(in, out, s)
-}
-
-func autoConvert_v1_ReplicationControllerList_To_core_ReplicationControllerList(in *v1.ReplicationControllerList, out *core.ReplicationControllerList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]core.ReplicationController, len(*in))
- for i := range *in {
- if err := Convert_v1_ReplicationController_To_core_ReplicationController(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.Items = nil
- }
- return nil
-}
-
-// Convert_v1_ReplicationControllerList_To_core_ReplicationControllerList is an autogenerated conversion function.
-func Convert_v1_ReplicationControllerList_To_core_ReplicationControllerList(in *v1.ReplicationControllerList, out *core.ReplicationControllerList, s conversion.Scope) error {
- return autoConvert_v1_ReplicationControllerList_To_core_ReplicationControllerList(in, out, s)
-}
-
-func autoConvert_core_ReplicationControllerList_To_v1_ReplicationControllerList(in *core.ReplicationControllerList, out *v1.ReplicationControllerList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]v1.ReplicationController, len(*in))
- for i := range *in {
- if err := Convert_core_ReplicationController_To_v1_ReplicationController(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.Items = nil
- }
- return nil
-}
-
-// Convert_core_ReplicationControllerList_To_v1_ReplicationControllerList is an autogenerated conversion function.
-func Convert_core_ReplicationControllerList_To_v1_ReplicationControllerList(in *core.ReplicationControllerList, out *v1.ReplicationControllerList, s conversion.Scope) error {
- return autoConvert_core_ReplicationControllerList_To_v1_ReplicationControllerList(in, out, s)
-}
-
-func autoConvert_v1_ReplicationControllerSpec_To_core_ReplicationControllerSpec(in *v1.ReplicationControllerSpec, out *core.ReplicationControllerSpec, s conversion.Scope) error {
- if err := meta_v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil {
- return err
- }
- out.MinReadySeconds = in.MinReadySeconds
- out.Selector = *(*map[string]string)(unsafe.Pointer(&in.Selector))
- if in.Template != nil {
- in, out := &in.Template, &out.Template
- *out = new(core.PodTemplateSpec)
- if err := Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(*in, *out, s); err != nil {
- return err
- }
- } else {
- out.Template = nil
- }
- return nil
-}
-
-func autoConvert_core_ReplicationControllerSpec_To_v1_ReplicationControllerSpec(in *core.ReplicationControllerSpec, out *v1.ReplicationControllerSpec, s conversion.Scope) error {
- if err := meta_v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil {
- return err
- }
- out.MinReadySeconds = in.MinReadySeconds
- out.Selector = *(*map[string]string)(unsafe.Pointer(&in.Selector))
- if in.Template != nil {
- in, out := &in.Template, &out.Template
- *out = new(v1.PodTemplateSpec)
- if err := Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(*in, *out, s); err != nil {
- return err
- }
- } else {
- out.Template = nil
- }
- return nil
-}
-
-func autoConvert_v1_ReplicationControllerStatus_To_core_ReplicationControllerStatus(in *v1.ReplicationControllerStatus, out *core.ReplicationControllerStatus, s conversion.Scope) error {
- out.Replicas = in.Replicas
- out.FullyLabeledReplicas = in.FullyLabeledReplicas
- out.ReadyReplicas = in.ReadyReplicas
- out.AvailableReplicas = in.AvailableReplicas
- out.ObservedGeneration = in.ObservedGeneration
- out.Conditions = *(*[]core.ReplicationControllerCondition)(unsafe.Pointer(&in.Conditions))
- return nil
-}
-
-// Convert_v1_ReplicationControllerStatus_To_core_ReplicationControllerStatus is an autogenerated conversion function.
-func Convert_v1_ReplicationControllerStatus_To_core_ReplicationControllerStatus(in *v1.ReplicationControllerStatus, out *core.ReplicationControllerStatus, s conversion.Scope) error {
- return autoConvert_v1_ReplicationControllerStatus_To_core_ReplicationControllerStatus(in, out, s)
-}
-
-func autoConvert_core_ReplicationControllerStatus_To_v1_ReplicationControllerStatus(in *core.ReplicationControllerStatus, out *v1.ReplicationControllerStatus, s conversion.Scope) error {
- out.Replicas = in.Replicas
- out.FullyLabeledReplicas = in.FullyLabeledReplicas
- out.ReadyReplicas = in.ReadyReplicas
- out.AvailableReplicas = in.AvailableReplicas
- out.ObservedGeneration = in.ObservedGeneration
- out.Conditions = *(*[]v1.ReplicationControllerCondition)(unsafe.Pointer(&in.Conditions))
- return nil
-}
-
-// Convert_core_ReplicationControllerStatus_To_v1_ReplicationControllerStatus is an autogenerated conversion function.
-func Convert_core_ReplicationControllerStatus_To_v1_ReplicationControllerStatus(in *core.ReplicationControllerStatus, out *v1.ReplicationControllerStatus, s conversion.Scope) error {
- return autoConvert_core_ReplicationControllerStatus_To_v1_ReplicationControllerStatus(in, out, s)
-}
-
-func autoConvert_v1_ResourceFieldSelector_To_core_ResourceFieldSelector(in *v1.ResourceFieldSelector, out *core.ResourceFieldSelector, s conversion.Scope) error {
- out.ContainerName = in.ContainerName
- out.Resource = in.Resource
- out.Divisor = in.Divisor
- return nil
-}
-
-// Convert_v1_ResourceFieldSelector_To_core_ResourceFieldSelector is an autogenerated conversion function.
-func Convert_v1_ResourceFieldSelector_To_core_ResourceFieldSelector(in *v1.ResourceFieldSelector, out *core.ResourceFieldSelector, s conversion.Scope) error {
- return autoConvert_v1_ResourceFieldSelector_To_core_ResourceFieldSelector(in, out, s)
-}
-
-func autoConvert_core_ResourceFieldSelector_To_v1_ResourceFieldSelector(in *core.ResourceFieldSelector, out *v1.ResourceFieldSelector, s conversion.Scope) error {
- out.ContainerName = in.ContainerName
- out.Resource = in.Resource
- out.Divisor = in.Divisor
- return nil
-}
-
-// Convert_core_ResourceFieldSelector_To_v1_ResourceFieldSelector is an autogenerated conversion function.
-func Convert_core_ResourceFieldSelector_To_v1_ResourceFieldSelector(in *core.ResourceFieldSelector, out *v1.ResourceFieldSelector, s conversion.Scope) error {
- return autoConvert_core_ResourceFieldSelector_To_v1_ResourceFieldSelector(in, out, s)
-}
-
-func autoConvert_v1_ResourceQuota_To_core_ResourceQuota(in *v1.ResourceQuota, out *core.ResourceQuota, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_v1_ResourceQuotaSpec_To_core_ResourceQuotaSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- if err := Convert_v1_ResourceQuotaStatus_To_core_ResourceQuotaStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_v1_ResourceQuota_To_core_ResourceQuota is an autogenerated conversion function.
-func Convert_v1_ResourceQuota_To_core_ResourceQuota(in *v1.ResourceQuota, out *core.ResourceQuota, s conversion.Scope) error {
- return autoConvert_v1_ResourceQuota_To_core_ResourceQuota(in, out, s)
-}
-
-func autoConvert_core_ResourceQuota_To_v1_ResourceQuota(in *core.ResourceQuota, out *v1.ResourceQuota, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_core_ResourceQuotaSpec_To_v1_ResourceQuotaSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- if err := Convert_core_ResourceQuotaStatus_To_v1_ResourceQuotaStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_core_ResourceQuota_To_v1_ResourceQuota is an autogenerated conversion function.
-func Convert_core_ResourceQuota_To_v1_ResourceQuota(in *core.ResourceQuota, out *v1.ResourceQuota, s conversion.Scope) error {
- return autoConvert_core_ResourceQuota_To_v1_ResourceQuota(in, out, s)
-}
-
-func autoConvert_v1_ResourceQuotaList_To_core_ResourceQuotaList(in *v1.ResourceQuotaList, out *core.ResourceQuotaList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]core.ResourceQuota)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_v1_ResourceQuotaList_To_core_ResourceQuotaList is an autogenerated conversion function.
-func Convert_v1_ResourceQuotaList_To_core_ResourceQuotaList(in *v1.ResourceQuotaList, out *core.ResourceQuotaList, s conversion.Scope) error {
- return autoConvert_v1_ResourceQuotaList_To_core_ResourceQuotaList(in, out, s)
-}
-
-func autoConvert_core_ResourceQuotaList_To_v1_ResourceQuotaList(in *core.ResourceQuotaList, out *v1.ResourceQuotaList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]v1.ResourceQuota)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_core_ResourceQuotaList_To_v1_ResourceQuotaList is an autogenerated conversion function.
-func Convert_core_ResourceQuotaList_To_v1_ResourceQuotaList(in *core.ResourceQuotaList, out *v1.ResourceQuotaList, s conversion.Scope) error {
- return autoConvert_core_ResourceQuotaList_To_v1_ResourceQuotaList(in, out, s)
-}
-
-func autoConvert_v1_ResourceQuotaSpec_To_core_ResourceQuotaSpec(in *v1.ResourceQuotaSpec, out *core.ResourceQuotaSpec, s conversion.Scope) error {
- out.Hard = *(*core.ResourceList)(unsafe.Pointer(&in.Hard))
- out.Scopes = *(*[]core.ResourceQuotaScope)(unsafe.Pointer(&in.Scopes))
- return nil
-}
-
-// Convert_v1_ResourceQuotaSpec_To_core_ResourceQuotaSpec is an autogenerated conversion function.
-func Convert_v1_ResourceQuotaSpec_To_core_ResourceQuotaSpec(in *v1.ResourceQuotaSpec, out *core.ResourceQuotaSpec, s conversion.Scope) error {
- return autoConvert_v1_ResourceQuotaSpec_To_core_ResourceQuotaSpec(in, out, s)
-}
-
-func autoConvert_core_ResourceQuotaSpec_To_v1_ResourceQuotaSpec(in *core.ResourceQuotaSpec, out *v1.ResourceQuotaSpec, s conversion.Scope) error {
- out.Hard = *(*v1.ResourceList)(unsafe.Pointer(&in.Hard))
- out.Scopes = *(*[]v1.ResourceQuotaScope)(unsafe.Pointer(&in.Scopes))
- return nil
-}
-
-// Convert_core_ResourceQuotaSpec_To_v1_ResourceQuotaSpec is an autogenerated conversion function.
-func Convert_core_ResourceQuotaSpec_To_v1_ResourceQuotaSpec(in *core.ResourceQuotaSpec, out *v1.ResourceQuotaSpec, s conversion.Scope) error {
- return autoConvert_core_ResourceQuotaSpec_To_v1_ResourceQuotaSpec(in, out, s)
-}
-
-func autoConvert_v1_ResourceQuotaStatus_To_core_ResourceQuotaStatus(in *v1.ResourceQuotaStatus, out *core.ResourceQuotaStatus, s conversion.Scope) error {
- out.Hard = *(*core.ResourceList)(unsafe.Pointer(&in.Hard))
- out.Used = *(*core.ResourceList)(unsafe.Pointer(&in.Used))
- return nil
-}
-
-// Convert_v1_ResourceQuotaStatus_To_core_ResourceQuotaStatus is an autogenerated conversion function.
-func Convert_v1_ResourceQuotaStatus_To_core_ResourceQuotaStatus(in *v1.ResourceQuotaStatus, out *core.ResourceQuotaStatus, s conversion.Scope) error {
- return autoConvert_v1_ResourceQuotaStatus_To_core_ResourceQuotaStatus(in, out, s)
-}
-
-func autoConvert_core_ResourceQuotaStatus_To_v1_ResourceQuotaStatus(in *core.ResourceQuotaStatus, out *v1.ResourceQuotaStatus, s conversion.Scope) error {
- out.Hard = *(*v1.ResourceList)(unsafe.Pointer(&in.Hard))
- out.Used = *(*v1.ResourceList)(unsafe.Pointer(&in.Used))
- return nil
-}
-
-// Convert_core_ResourceQuotaStatus_To_v1_ResourceQuotaStatus is an autogenerated conversion function.
-func Convert_core_ResourceQuotaStatus_To_v1_ResourceQuotaStatus(in *core.ResourceQuotaStatus, out *v1.ResourceQuotaStatus, s conversion.Scope) error {
- return autoConvert_core_ResourceQuotaStatus_To_v1_ResourceQuotaStatus(in, out, s)
-}
-
-func autoConvert_v1_ResourceRequirements_To_core_ResourceRequirements(in *v1.ResourceRequirements, out *core.ResourceRequirements, s conversion.Scope) error {
- out.Limits = *(*core.ResourceList)(unsafe.Pointer(&in.Limits))
- out.Requests = *(*core.ResourceList)(unsafe.Pointer(&in.Requests))
- return nil
-}
-
-// Convert_v1_ResourceRequirements_To_core_ResourceRequirements is an autogenerated conversion function.
-func Convert_v1_ResourceRequirements_To_core_ResourceRequirements(in *v1.ResourceRequirements, out *core.ResourceRequirements, s conversion.Scope) error {
- return autoConvert_v1_ResourceRequirements_To_core_ResourceRequirements(in, out, s)
-}
-
-func autoConvert_core_ResourceRequirements_To_v1_ResourceRequirements(in *core.ResourceRequirements, out *v1.ResourceRequirements, s conversion.Scope) error {
- out.Limits = *(*v1.ResourceList)(unsafe.Pointer(&in.Limits))
- out.Requests = *(*v1.ResourceList)(unsafe.Pointer(&in.Requests))
- return nil
-}
-
-// Convert_core_ResourceRequirements_To_v1_ResourceRequirements is an autogenerated conversion function.
-func Convert_core_ResourceRequirements_To_v1_ResourceRequirements(in *core.ResourceRequirements, out *v1.ResourceRequirements, s conversion.Scope) error {
- return autoConvert_core_ResourceRequirements_To_v1_ResourceRequirements(in, out, s)
-}
-
-func autoConvert_v1_SELinuxOptions_To_core_SELinuxOptions(in *v1.SELinuxOptions, out *core.SELinuxOptions, s conversion.Scope) error {
- out.User = in.User
- out.Role = in.Role
- out.Type = in.Type
- out.Level = in.Level
- return nil
-}
-
-// Convert_v1_SELinuxOptions_To_core_SELinuxOptions is an autogenerated conversion function.
-func Convert_v1_SELinuxOptions_To_core_SELinuxOptions(in *v1.SELinuxOptions, out *core.SELinuxOptions, s conversion.Scope) error {
- return autoConvert_v1_SELinuxOptions_To_core_SELinuxOptions(in, out, s)
-}
-
-func autoConvert_core_SELinuxOptions_To_v1_SELinuxOptions(in *core.SELinuxOptions, out *v1.SELinuxOptions, s conversion.Scope) error {
- out.User = in.User
- out.Role = in.Role
- out.Type = in.Type
- out.Level = in.Level
- return nil
-}
-
-// Convert_core_SELinuxOptions_To_v1_SELinuxOptions is an autogenerated conversion function.
-func Convert_core_SELinuxOptions_To_v1_SELinuxOptions(in *core.SELinuxOptions, out *v1.SELinuxOptions, s conversion.Scope) error {
- return autoConvert_core_SELinuxOptions_To_v1_SELinuxOptions(in, out, s)
-}
-
-func autoConvert_v1_ScaleIOPersistentVolumeSource_To_core_ScaleIOPersistentVolumeSource(in *v1.ScaleIOPersistentVolumeSource, out *core.ScaleIOPersistentVolumeSource, s conversion.Scope) error {
- out.Gateway = in.Gateway
- out.System = in.System
- out.SecretRef = (*core.SecretReference)(unsafe.Pointer(in.SecretRef))
- out.SSLEnabled = in.SSLEnabled
- out.ProtectionDomain = in.ProtectionDomain
- out.StoragePool = in.StoragePool
- out.StorageMode = in.StorageMode
- out.VolumeName = in.VolumeName
- out.FSType = in.FSType
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_v1_ScaleIOPersistentVolumeSource_To_core_ScaleIOPersistentVolumeSource is an autogenerated conversion function.
-func Convert_v1_ScaleIOPersistentVolumeSource_To_core_ScaleIOPersistentVolumeSource(in *v1.ScaleIOPersistentVolumeSource, out *core.ScaleIOPersistentVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_ScaleIOPersistentVolumeSource_To_core_ScaleIOPersistentVolumeSource(in, out, s)
-}
-
-func autoConvert_core_ScaleIOPersistentVolumeSource_To_v1_ScaleIOPersistentVolumeSource(in *core.ScaleIOPersistentVolumeSource, out *v1.ScaleIOPersistentVolumeSource, s conversion.Scope) error {
- out.Gateway = in.Gateway
- out.System = in.System
- out.SecretRef = (*v1.SecretReference)(unsafe.Pointer(in.SecretRef))
- out.SSLEnabled = in.SSLEnabled
- out.ProtectionDomain = in.ProtectionDomain
- out.StoragePool = in.StoragePool
- out.StorageMode = in.StorageMode
- out.VolumeName = in.VolumeName
- out.FSType = in.FSType
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_core_ScaleIOPersistentVolumeSource_To_v1_ScaleIOPersistentVolumeSource is an autogenerated conversion function.
-func Convert_core_ScaleIOPersistentVolumeSource_To_v1_ScaleIOPersistentVolumeSource(in *core.ScaleIOPersistentVolumeSource, out *v1.ScaleIOPersistentVolumeSource, s conversion.Scope) error {
- return autoConvert_core_ScaleIOPersistentVolumeSource_To_v1_ScaleIOPersistentVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_ScaleIOVolumeSource_To_core_ScaleIOVolumeSource(in *v1.ScaleIOVolumeSource, out *core.ScaleIOVolumeSource, s conversion.Scope) error {
- out.Gateway = in.Gateway
- out.System = in.System
- out.SecretRef = (*core.LocalObjectReference)(unsafe.Pointer(in.SecretRef))
- out.SSLEnabled = in.SSLEnabled
- out.ProtectionDomain = in.ProtectionDomain
- out.StoragePool = in.StoragePool
- out.StorageMode = in.StorageMode
- out.VolumeName = in.VolumeName
- out.FSType = in.FSType
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_v1_ScaleIOVolumeSource_To_core_ScaleIOVolumeSource is an autogenerated conversion function.
-func Convert_v1_ScaleIOVolumeSource_To_core_ScaleIOVolumeSource(in *v1.ScaleIOVolumeSource, out *core.ScaleIOVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_ScaleIOVolumeSource_To_core_ScaleIOVolumeSource(in, out, s)
-}
-
-func autoConvert_core_ScaleIOVolumeSource_To_v1_ScaleIOVolumeSource(in *core.ScaleIOVolumeSource, out *v1.ScaleIOVolumeSource, s conversion.Scope) error {
- out.Gateway = in.Gateway
- out.System = in.System
- out.SecretRef = (*v1.LocalObjectReference)(unsafe.Pointer(in.SecretRef))
- out.SSLEnabled = in.SSLEnabled
- out.ProtectionDomain = in.ProtectionDomain
- out.StoragePool = in.StoragePool
- out.StorageMode = in.StorageMode
- out.VolumeName = in.VolumeName
- out.FSType = in.FSType
- out.ReadOnly = in.ReadOnly
- return nil
-}
-
-// Convert_core_ScaleIOVolumeSource_To_v1_ScaleIOVolumeSource is an autogenerated conversion function.
-func Convert_core_ScaleIOVolumeSource_To_v1_ScaleIOVolumeSource(in *core.ScaleIOVolumeSource, out *v1.ScaleIOVolumeSource, s conversion.Scope) error {
- return autoConvert_core_ScaleIOVolumeSource_To_v1_ScaleIOVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_Secret_To_core_Secret(in *v1.Secret, out *core.Secret, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- out.Data = *(*map[string][]byte)(unsafe.Pointer(&in.Data))
- // INFO: in.StringData opted out of conversion generation
- out.Type = core.SecretType(in.Type)
- return nil
-}
-
-func autoConvert_core_Secret_To_v1_Secret(in *core.Secret, out *v1.Secret, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- out.Data = *(*map[string][]byte)(unsafe.Pointer(&in.Data))
- out.Type = v1.SecretType(in.Type)
- return nil
-}
-
-// Convert_core_Secret_To_v1_Secret is an autogenerated conversion function.
-func Convert_core_Secret_To_v1_Secret(in *core.Secret, out *v1.Secret, s conversion.Scope) error {
- return autoConvert_core_Secret_To_v1_Secret(in, out, s)
-}
-
-func autoConvert_v1_SecretEnvSource_To_core_SecretEnvSource(in *v1.SecretEnvSource, out *core.SecretEnvSource, s conversion.Scope) error {
- if err := Convert_v1_LocalObjectReference_To_core_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil {
- return err
- }
- out.Optional = (*bool)(unsafe.Pointer(in.Optional))
- return nil
-}
-
-// Convert_v1_SecretEnvSource_To_core_SecretEnvSource is an autogenerated conversion function.
-func Convert_v1_SecretEnvSource_To_core_SecretEnvSource(in *v1.SecretEnvSource, out *core.SecretEnvSource, s conversion.Scope) error {
- return autoConvert_v1_SecretEnvSource_To_core_SecretEnvSource(in, out, s)
-}
-
-func autoConvert_core_SecretEnvSource_To_v1_SecretEnvSource(in *core.SecretEnvSource, out *v1.SecretEnvSource, s conversion.Scope) error {
- if err := Convert_core_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil {
- return err
- }
- out.Optional = (*bool)(unsafe.Pointer(in.Optional))
- return nil
-}
-
-// Convert_core_SecretEnvSource_To_v1_SecretEnvSource is an autogenerated conversion function.
-func Convert_core_SecretEnvSource_To_v1_SecretEnvSource(in *core.SecretEnvSource, out *v1.SecretEnvSource, s conversion.Scope) error {
- return autoConvert_core_SecretEnvSource_To_v1_SecretEnvSource(in, out, s)
-}
-
-func autoConvert_v1_SecretKeySelector_To_core_SecretKeySelector(in *v1.SecretKeySelector, out *core.SecretKeySelector, s conversion.Scope) error {
- if err := Convert_v1_LocalObjectReference_To_core_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil {
- return err
- }
- out.Key = in.Key
- out.Optional = (*bool)(unsafe.Pointer(in.Optional))
- return nil
-}
-
-// Convert_v1_SecretKeySelector_To_core_SecretKeySelector is an autogenerated conversion function.
-func Convert_v1_SecretKeySelector_To_core_SecretKeySelector(in *v1.SecretKeySelector, out *core.SecretKeySelector, s conversion.Scope) error {
- return autoConvert_v1_SecretKeySelector_To_core_SecretKeySelector(in, out, s)
-}
-
-func autoConvert_core_SecretKeySelector_To_v1_SecretKeySelector(in *core.SecretKeySelector, out *v1.SecretKeySelector, s conversion.Scope) error {
- if err := Convert_core_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil {
- return err
- }
- out.Key = in.Key
- out.Optional = (*bool)(unsafe.Pointer(in.Optional))
- return nil
-}
-
-// Convert_core_SecretKeySelector_To_v1_SecretKeySelector is an autogenerated conversion function.
-func Convert_core_SecretKeySelector_To_v1_SecretKeySelector(in *core.SecretKeySelector, out *v1.SecretKeySelector, s conversion.Scope) error {
- return autoConvert_core_SecretKeySelector_To_v1_SecretKeySelector(in, out, s)
-}
-
-func autoConvert_v1_SecretList_To_core_SecretList(in *v1.SecretList, out *core.SecretList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]core.Secret, len(*in))
- for i := range *in {
- if err := Convert_v1_Secret_To_core_Secret(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.Items = nil
- }
- return nil
-}
-
-// Convert_v1_SecretList_To_core_SecretList is an autogenerated conversion function.
-func Convert_v1_SecretList_To_core_SecretList(in *v1.SecretList, out *core.SecretList, s conversion.Scope) error {
- return autoConvert_v1_SecretList_To_core_SecretList(in, out, s)
-}
-
-func autoConvert_core_SecretList_To_v1_SecretList(in *core.SecretList, out *v1.SecretList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]v1.Secret, len(*in))
- for i := range *in {
- if err := Convert_core_Secret_To_v1_Secret(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.Items = nil
- }
- return nil
-}
-
-// Convert_core_SecretList_To_v1_SecretList is an autogenerated conversion function.
-func Convert_core_SecretList_To_v1_SecretList(in *core.SecretList, out *v1.SecretList, s conversion.Scope) error {
- return autoConvert_core_SecretList_To_v1_SecretList(in, out, s)
-}
-
-func autoConvert_v1_SecretProjection_To_core_SecretProjection(in *v1.SecretProjection, out *core.SecretProjection, s conversion.Scope) error {
- if err := Convert_v1_LocalObjectReference_To_core_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil {
- return err
- }
- out.Items = *(*[]core.KeyToPath)(unsafe.Pointer(&in.Items))
- out.Optional = (*bool)(unsafe.Pointer(in.Optional))
- return nil
-}
-
-// Convert_v1_SecretProjection_To_core_SecretProjection is an autogenerated conversion function.
-func Convert_v1_SecretProjection_To_core_SecretProjection(in *v1.SecretProjection, out *core.SecretProjection, s conversion.Scope) error {
- return autoConvert_v1_SecretProjection_To_core_SecretProjection(in, out, s)
-}
-
-func autoConvert_core_SecretProjection_To_v1_SecretProjection(in *core.SecretProjection, out *v1.SecretProjection, s conversion.Scope) error {
- if err := Convert_core_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil {
- return err
- }
- out.Items = *(*[]v1.KeyToPath)(unsafe.Pointer(&in.Items))
- out.Optional = (*bool)(unsafe.Pointer(in.Optional))
- return nil
-}
-
-// Convert_core_SecretProjection_To_v1_SecretProjection is an autogenerated conversion function.
-func Convert_core_SecretProjection_To_v1_SecretProjection(in *core.SecretProjection, out *v1.SecretProjection, s conversion.Scope) error {
- return autoConvert_core_SecretProjection_To_v1_SecretProjection(in, out, s)
-}
-
-func autoConvert_v1_SecretReference_To_core_SecretReference(in *v1.SecretReference, out *core.SecretReference, s conversion.Scope) error {
- out.Name = in.Name
- out.Namespace = in.Namespace
- return nil
-}
-
-// Convert_v1_SecretReference_To_core_SecretReference is an autogenerated conversion function.
-func Convert_v1_SecretReference_To_core_SecretReference(in *v1.SecretReference, out *core.SecretReference, s conversion.Scope) error {
- return autoConvert_v1_SecretReference_To_core_SecretReference(in, out, s)
-}
-
-func autoConvert_core_SecretReference_To_v1_SecretReference(in *core.SecretReference, out *v1.SecretReference, s conversion.Scope) error {
- out.Name = in.Name
- out.Namespace = in.Namespace
- return nil
-}
-
-// Convert_core_SecretReference_To_v1_SecretReference is an autogenerated conversion function.
-func Convert_core_SecretReference_To_v1_SecretReference(in *core.SecretReference, out *v1.SecretReference, s conversion.Scope) error {
- return autoConvert_core_SecretReference_To_v1_SecretReference(in, out, s)
-}
-
-func autoConvert_v1_SecretVolumeSource_To_core_SecretVolumeSource(in *v1.SecretVolumeSource, out *core.SecretVolumeSource, s conversion.Scope) error {
- out.SecretName = in.SecretName
- out.Items = *(*[]core.KeyToPath)(unsafe.Pointer(&in.Items))
- out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode))
- out.Optional = (*bool)(unsafe.Pointer(in.Optional))
- return nil
-}
-
-// Convert_v1_SecretVolumeSource_To_core_SecretVolumeSource is an autogenerated conversion function.
-func Convert_v1_SecretVolumeSource_To_core_SecretVolumeSource(in *v1.SecretVolumeSource, out *core.SecretVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_SecretVolumeSource_To_core_SecretVolumeSource(in, out, s)
-}
-
-func autoConvert_core_SecretVolumeSource_To_v1_SecretVolumeSource(in *core.SecretVolumeSource, out *v1.SecretVolumeSource, s conversion.Scope) error {
- out.SecretName = in.SecretName
- out.Items = *(*[]v1.KeyToPath)(unsafe.Pointer(&in.Items))
- out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode))
- out.Optional = (*bool)(unsafe.Pointer(in.Optional))
- return nil
-}
-
-// Convert_core_SecretVolumeSource_To_v1_SecretVolumeSource is an autogenerated conversion function.
-func Convert_core_SecretVolumeSource_To_v1_SecretVolumeSource(in *core.SecretVolumeSource, out *v1.SecretVolumeSource, s conversion.Scope) error {
- return autoConvert_core_SecretVolumeSource_To_v1_SecretVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_SecurityContext_To_core_SecurityContext(in *v1.SecurityContext, out *core.SecurityContext, s conversion.Scope) error {
- out.Capabilities = (*core.Capabilities)(unsafe.Pointer(in.Capabilities))
- out.Privileged = (*bool)(unsafe.Pointer(in.Privileged))
- out.SELinuxOptions = (*core.SELinuxOptions)(unsafe.Pointer(in.SELinuxOptions))
- out.RunAsUser = (*int64)(unsafe.Pointer(in.RunAsUser))
- out.RunAsNonRoot = (*bool)(unsafe.Pointer(in.RunAsNonRoot))
- out.ReadOnlyRootFilesystem = (*bool)(unsafe.Pointer(in.ReadOnlyRootFilesystem))
- out.AllowPrivilegeEscalation = (*bool)(unsafe.Pointer(in.AllowPrivilegeEscalation))
- return nil
-}
-
-// Convert_v1_SecurityContext_To_core_SecurityContext is an autogenerated conversion function.
-func Convert_v1_SecurityContext_To_core_SecurityContext(in *v1.SecurityContext, out *core.SecurityContext, s conversion.Scope) error {
- return autoConvert_v1_SecurityContext_To_core_SecurityContext(in, out, s)
-}
-
-func autoConvert_core_SecurityContext_To_v1_SecurityContext(in *core.SecurityContext, out *v1.SecurityContext, s conversion.Scope) error {
- out.Capabilities = (*v1.Capabilities)(unsafe.Pointer(in.Capabilities))
- out.Privileged = (*bool)(unsafe.Pointer(in.Privileged))
- out.SELinuxOptions = (*v1.SELinuxOptions)(unsafe.Pointer(in.SELinuxOptions))
- out.RunAsUser = (*int64)(unsafe.Pointer(in.RunAsUser))
- out.RunAsNonRoot = (*bool)(unsafe.Pointer(in.RunAsNonRoot))
- out.ReadOnlyRootFilesystem = (*bool)(unsafe.Pointer(in.ReadOnlyRootFilesystem))
- out.AllowPrivilegeEscalation = (*bool)(unsafe.Pointer(in.AllowPrivilegeEscalation))
- return nil
-}
-
-func autoConvert_v1_SerializedReference_To_core_SerializedReference(in *v1.SerializedReference, out *core.SerializedReference, s conversion.Scope) error {
- if err := Convert_v1_ObjectReference_To_core_ObjectReference(&in.Reference, &out.Reference, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_v1_SerializedReference_To_core_SerializedReference is an autogenerated conversion function.
-func Convert_v1_SerializedReference_To_core_SerializedReference(in *v1.SerializedReference, out *core.SerializedReference, s conversion.Scope) error {
- return autoConvert_v1_SerializedReference_To_core_SerializedReference(in, out, s)
-}
-
-func autoConvert_core_SerializedReference_To_v1_SerializedReference(in *core.SerializedReference, out *v1.SerializedReference, s conversion.Scope) error {
- if err := Convert_core_ObjectReference_To_v1_ObjectReference(&in.Reference, &out.Reference, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_core_SerializedReference_To_v1_SerializedReference is an autogenerated conversion function.
-func Convert_core_SerializedReference_To_v1_SerializedReference(in *core.SerializedReference, out *v1.SerializedReference, s conversion.Scope) error {
- return autoConvert_core_SerializedReference_To_v1_SerializedReference(in, out, s)
-}
-
-func autoConvert_v1_Service_To_core_Service(in *v1.Service, out *core.Service, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_v1_ServiceSpec_To_core_ServiceSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- if err := Convert_v1_ServiceStatus_To_core_ServiceStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_v1_Service_To_core_Service is an autogenerated conversion function.
-func Convert_v1_Service_To_core_Service(in *v1.Service, out *core.Service, s conversion.Scope) error {
- return autoConvert_v1_Service_To_core_Service(in, out, s)
-}
-
-func autoConvert_core_Service_To_v1_Service(in *core.Service, out *v1.Service, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- if err := Convert_core_ServiceSpec_To_v1_ServiceSpec(&in.Spec, &out.Spec, s); err != nil {
- return err
- }
- if err := Convert_core_ServiceStatus_To_v1_ServiceStatus(&in.Status, &out.Status, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_core_Service_To_v1_Service is an autogenerated conversion function.
-func Convert_core_Service_To_v1_Service(in *core.Service, out *v1.Service, s conversion.Scope) error {
- return autoConvert_core_Service_To_v1_Service(in, out, s)
-}
-
-func autoConvert_v1_ServiceAccount_To_core_ServiceAccount(in *v1.ServiceAccount, out *core.ServiceAccount, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- out.Secrets = *(*[]core.ObjectReference)(unsafe.Pointer(&in.Secrets))
- out.ImagePullSecrets = *(*[]core.LocalObjectReference)(unsafe.Pointer(&in.ImagePullSecrets))
- out.AutomountServiceAccountToken = (*bool)(unsafe.Pointer(in.AutomountServiceAccountToken))
- return nil
-}
-
-// Convert_v1_ServiceAccount_To_core_ServiceAccount is an autogenerated conversion function.
-func Convert_v1_ServiceAccount_To_core_ServiceAccount(in *v1.ServiceAccount, out *core.ServiceAccount, s conversion.Scope) error {
- return autoConvert_v1_ServiceAccount_To_core_ServiceAccount(in, out, s)
-}
-
-func autoConvert_core_ServiceAccount_To_v1_ServiceAccount(in *core.ServiceAccount, out *v1.ServiceAccount, s conversion.Scope) error {
- out.ObjectMeta = in.ObjectMeta
- out.Secrets = *(*[]v1.ObjectReference)(unsafe.Pointer(&in.Secrets))
- out.ImagePullSecrets = *(*[]v1.LocalObjectReference)(unsafe.Pointer(&in.ImagePullSecrets))
- out.AutomountServiceAccountToken = (*bool)(unsafe.Pointer(in.AutomountServiceAccountToken))
- return nil
-}
-
-// Convert_core_ServiceAccount_To_v1_ServiceAccount is an autogenerated conversion function.
-func Convert_core_ServiceAccount_To_v1_ServiceAccount(in *core.ServiceAccount, out *v1.ServiceAccount, s conversion.Scope) error {
- return autoConvert_core_ServiceAccount_To_v1_ServiceAccount(in, out, s)
-}
-
-func autoConvert_v1_ServiceAccountList_To_core_ServiceAccountList(in *v1.ServiceAccountList, out *core.ServiceAccountList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]core.ServiceAccount)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_v1_ServiceAccountList_To_core_ServiceAccountList is an autogenerated conversion function.
-func Convert_v1_ServiceAccountList_To_core_ServiceAccountList(in *v1.ServiceAccountList, out *core.ServiceAccountList, s conversion.Scope) error {
- return autoConvert_v1_ServiceAccountList_To_core_ServiceAccountList(in, out, s)
-}
-
-func autoConvert_core_ServiceAccountList_To_v1_ServiceAccountList(in *core.ServiceAccountList, out *v1.ServiceAccountList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- out.Items = *(*[]v1.ServiceAccount)(unsafe.Pointer(&in.Items))
- return nil
-}
-
-// Convert_core_ServiceAccountList_To_v1_ServiceAccountList is an autogenerated conversion function.
-func Convert_core_ServiceAccountList_To_v1_ServiceAccountList(in *core.ServiceAccountList, out *v1.ServiceAccountList, s conversion.Scope) error {
- return autoConvert_core_ServiceAccountList_To_v1_ServiceAccountList(in, out, s)
-}
-
-func autoConvert_v1_ServiceList_To_core_ServiceList(in *v1.ServiceList, out *core.ServiceList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]core.Service, len(*in))
- for i := range *in {
- if err := Convert_v1_Service_To_core_Service(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.Items = nil
- }
- return nil
-}
-
-// Convert_v1_ServiceList_To_core_ServiceList is an autogenerated conversion function.
-func Convert_v1_ServiceList_To_core_ServiceList(in *v1.ServiceList, out *core.ServiceList, s conversion.Scope) error {
- return autoConvert_v1_ServiceList_To_core_ServiceList(in, out, s)
-}
-
-func autoConvert_core_ServiceList_To_v1_ServiceList(in *core.ServiceList, out *v1.ServiceList, s conversion.Scope) error {
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]v1.Service, len(*in))
- for i := range *in {
- if err := Convert_core_Service_To_v1_Service(&(*in)[i], &(*out)[i], s); err != nil {
- return err
- }
- }
- } else {
- out.Items = nil
- }
- return nil
-}
-
-// Convert_core_ServiceList_To_v1_ServiceList is an autogenerated conversion function.
-func Convert_core_ServiceList_To_v1_ServiceList(in *core.ServiceList, out *v1.ServiceList, s conversion.Scope) error {
- return autoConvert_core_ServiceList_To_v1_ServiceList(in, out, s)
-}
-
-func autoConvert_v1_ServicePort_To_core_ServicePort(in *v1.ServicePort, out *core.ServicePort, s conversion.Scope) error {
- out.Name = in.Name
- out.Protocol = core.Protocol(in.Protocol)
- out.Port = in.Port
- out.TargetPort = in.TargetPort
- out.NodePort = in.NodePort
- return nil
-}
-
-// Convert_v1_ServicePort_To_core_ServicePort is an autogenerated conversion function.
-func Convert_v1_ServicePort_To_core_ServicePort(in *v1.ServicePort, out *core.ServicePort, s conversion.Scope) error {
- return autoConvert_v1_ServicePort_To_core_ServicePort(in, out, s)
-}
-
-func autoConvert_core_ServicePort_To_v1_ServicePort(in *core.ServicePort, out *v1.ServicePort, s conversion.Scope) error {
- out.Name = in.Name
- out.Protocol = v1.Protocol(in.Protocol)
- out.Port = in.Port
- out.TargetPort = in.TargetPort
- out.NodePort = in.NodePort
- return nil
-}
-
-// Convert_core_ServicePort_To_v1_ServicePort is an autogenerated conversion function.
-func Convert_core_ServicePort_To_v1_ServicePort(in *core.ServicePort, out *v1.ServicePort, s conversion.Scope) error {
- return autoConvert_core_ServicePort_To_v1_ServicePort(in, out, s)
-}
-
-func autoConvert_v1_ServiceProxyOptions_To_core_ServiceProxyOptions(in *v1.ServiceProxyOptions, out *core.ServiceProxyOptions, s conversion.Scope) error {
- out.Path = in.Path
- return nil
-}
-
-// Convert_v1_ServiceProxyOptions_To_core_ServiceProxyOptions is an autogenerated conversion function.
-func Convert_v1_ServiceProxyOptions_To_core_ServiceProxyOptions(in *v1.ServiceProxyOptions, out *core.ServiceProxyOptions, s conversion.Scope) error {
- return autoConvert_v1_ServiceProxyOptions_To_core_ServiceProxyOptions(in, out, s)
-}
-
-func autoConvert_core_ServiceProxyOptions_To_v1_ServiceProxyOptions(in *core.ServiceProxyOptions, out *v1.ServiceProxyOptions, s conversion.Scope) error {
- out.Path = in.Path
- return nil
-}
-
-// Convert_core_ServiceProxyOptions_To_v1_ServiceProxyOptions is an autogenerated conversion function.
-func Convert_core_ServiceProxyOptions_To_v1_ServiceProxyOptions(in *core.ServiceProxyOptions, out *v1.ServiceProxyOptions, s conversion.Scope) error {
- return autoConvert_core_ServiceProxyOptions_To_v1_ServiceProxyOptions(in, out, s)
-}
-
-func autoConvert_v1_ServiceSpec_To_core_ServiceSpec(in *v1.ServiceSpec, out *core.ServiceSpec, s conversion.Scope) error {
- out.Ports = *(*[]core.ServicePort)(unsafe.Pointer(&in.Ports))
- out.Selector = *(*map[string]string)(unsafe.Pointer(&in.Selector))
- out.ClusterIP = in.ClusterIP
- out.Type = core.ServiceType(in.Type)
- out.ExternalIPs = *(*[]string)(unsafe.Pointer(&in.ExternalIPs))
- out.SessionAffinity = core.ServiceAffinity(in.SessionAffinity)
- out.LoadBalancerIP = in.LoadBalancerIP
- out.LoadBalancerSourceRanges = *(*[]string)(unsafe.Pointer(&in.LoadBalancerSourceRanges))
- out.ExternalName = in.ExternalName
- out.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyType(in.ExternalTrafficPolicy)
- out.HealthCheckNodePort = in.HealthCheckNodePort
- out.PublishNotReadyAddresses = in.PublishNotReadyAddresses
- out.SessionAffinityConfig = (*core.SessionAffinityConfig)(unsafe.Pointer(in.SessionAffinityConfig))
- return nil
-}
-
-// Convert_v1_ServiceSpec_To_core_ServiceSpec is an autogenerated conversion function.
-func Convert_v1_ServiceSpec_To_core_ServiceSpec(in *v1.ServiceSpec, out *core.ServiceSpec, s conversion.Scope) error {
- return autoConvert_v1_ServiceSpec_To_core_ServiceSpec(in, out, s)
-}
-
-func autoConvert_core_ServiceSpec_To_v1_ServiceSpec(in *core.ServiceSpec, out *v1.ServiceSpec, s conversion.Scope) error {
- out.Type = v1.ServiceType(in.Type)
- out.Ports = *(*[]v1.ServicePort)(unsafe.Pointer(&in.Ports))
- out.Selector = *(*map[string]string)(unsafe.Pointer(&in.Selector))
- out.ClusterIP = in.ClusterIP
- out.ExternalName = in.ExternalName
- out.ExternalIPs = *(*[]string)(unsafe.Pointer(&in.ExternalIPs))
- out.LoadBalancerIP = in.LoadBalancerIP
- out.SessionAffinity = v1.ServiceAffinity(in.SessionAffinity)
- out.SessionAffinityConfig = (*v1.SessionAffinityConfig)(unsafe.Pointer(in.SessionAffinityConfig))
- out.LoadBalancerSourceRanges = *(*[]string)(unsafe.Pointer(&in.LoadBalancerSourceRanges))
- out.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyType(in.ExternalTrafficPolicy)
- out.HealthCheckNodePort = in.HealthCheckNodePort
- out.PublishNotReadyAddresses = in.PublishNotReadyAddresses
- return nil
-}
-
-// Convert_core_ServiceSpec_To_v1_ServiceSpec is an autogenerated conversion function.
-func Convert_core_ServiceSpec_To_v1_ServiceSpec(in *core.ServiceSpec, out *v1.ServiceSpec, s conversion.Scope) error {
- return autoConvert_core_ServiceSpec_To_v1_ServiceSpec(in, out, s)
-}
-
-func autoConvert_v1_ServiceStatus_To_core_ServiceStatus(in *v1.ServiceStatus, out *core.ServiceStatus, s conversion.Scope) error {
- if err := Convert_v1_LoadBalancerStatus_To_core_LoadBalancerStatus(&in.LoadBalancer, &out.LoadBalancer, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_v1_ServiceStatus_To_core_ServiceStatus is an autogenerated conversion function.
-func Convert_v1_ServiceStatus_To_core_ServiceStatus(in *v1.ServiceStatus, out *core.ServiceStatus, s conversion.Scope) error {
- return autoConvert_v1_ServiceStatus_To_core_ServiceStatus(in, out, s)
-}
-
-func autoConvert_core_ServiceStatus_To_v1_ServiceStatus(in *core.ServiceStatus, out *v1.ServiceStatus, s conversion.Scope) error {
- if err := Convert_core_LoadBalancerStatus_To_v1_LoadBalancerStatus(&in.LoadBalancer, &out.LoadBalancer, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_core_ServiceStatus_To_v1_ServiceStatus is an autogenerated conversion function.
-func Convert_core_ServiceStatus_To_v1_ServiceStatus(in *core.ServiceStatus, out *v1.ServiceStatus, s conversion.Scope) error {
- return autoConvert_core_ServiceStatus_To_v1_ServiceStatus(in, out, s)
-}
-
-func autoConvert_v1_SessionAffinityConfig_To_core_SessionAffinityConfig(in *v1.SessionAffinityConfig, out *core.SessionAffinityConfig, s conversion.Scope) error {
- out.ClientIP = (*core.ClientIPConfig)(unsafe.Pointer(in.ClientIP))
- return nil
-}
-
-// Convert_v1_SessionAffinityConfig_To_core_SessionAffinityConfig is an autogenerated conversion function.
-func Convert_v1_SessionAffinityConfig_To_core_SessionAffinityConfig(in *v1.SessionAffinityConfig, out *core.SessionAffinityConfig, s conversion.Scope) error {
- return autoConvert_v1_SessionAffinityConfig_To_core_SessionAffinityConfig(in, out, s)
-}
-
-func autoConvert_core_SessionAffinityConfig_To_v1_SessionAffinityConfig(in *core.SessionAffinityConfig, out *v1.SessionAffinityConfig, s conversion.Scope) error {
- out.ClientIP = (*v1.ClientIPConfig)(unsafe.Pointer(in.ClientIP))
- return nil
-}
-
-// Convert_core_SessionAffinityConfig_To_v1_SessionAffinityConfig is an autogenerated conversion function.
-func Convert_core_SessionAffinityConfig_To_v1_SessionAffinityConfig(in *core.SessionAffinityConfig, out *v1.SessionAffinityConfig, s conversion.Scope) error {
- return autoConvert_core_SessionAffinityConfig_To_v1_SessionAffinityConfig(in, out, s)
-}
-
-func autoConvert_v1_StorageOSPersistentVolumeSource_To_core_StorageOSPersistentVolumeSource(in *v1.StorageOSPersistentVolumeSource, out *core.StorageOSPersistentVolumeSource, s conversion.Scope) error {
- out.VolumeName = in.VolumeName
- out.VolumeNamespace = in.VolumeNamespace
- out.FSType = in.FSType
- out.ReadOnly = in.ReadOnly
- out.SecretRef = (*core.ObjectReference)(unsafe.Pointer(in.SecretRef))
- return nil
-}
-
-// Convert_v1_StorageOSPersistentVolumeSource_To_core_StorageOSPersistentVolumeSource is an autogenerated conversion function.
-func Convert_v1_StorageOSPersistentVolumeSource_To_core_StorageOSPersistentVolumeSource(in *v1.StorageOSPersistentVolumeSource, out *core.StorageOSPersistentVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_StorageOSPersistentVolumeSource_To_core_StorageOSPersistentVolumeSource(in, out, s)
-}
-
-func autoConvert_core_StorageOSPersistentVolumeSource_To_v1_StorageOSPersistentVolumeSource(in *core.StorageOSPersistentVolumeSource, out *v1.StorageOSPersistentVolumeSource, s conversion.Scope) error {
- out.VolumeName = in.VolumeName
- out.VolumeNamespace = in.VolumeNamespace
- out.FSType = in.FSType
- out.ReadOnly = in.ReadOnly
- out.SecretRef = (*v1.ObjectReference)(unsafe.Pointer(in.SecretRef))
- return nil
-}
-
-// Convert_core_StorageOSPersistentVolumeSource_To_v1_StorageOSPersistentVolumeSource is an autogenerated conversion function.
-func Convert_core_StorageOSPersistentVolumeSource_To_v1_StorageOSPersistentVolumeSource(in *core.StorageOSPersistentVolumeSource, out *v1.StorageOSPersistentVolumeSource, s conversion.Scope) error {
- return autoConvert_core_StorageOSPersistentVolumeSource_To_v1_StorageOSPersistentVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_StorageOSVolumeSource_To_core_StorageOSVolumeSource(in *v1.StorageOSVolumeSource, out *core.StorageOSVolumeSource, s conversion.Scope) error {
- out.VolumeName = in.VolumeName
- out.VolumeNamespace = in.VolumeNamespace
- out.FSType = in.FSType
- out.ReadOnly = in.ReadOnly
- out.SecretRef = (*core.LocalObjectReference)(unsafe.Pointer(in.SecretRef))
- return nil
-}
-
-// Convert_v1_StorageOSVolumeSource_To_core_StorageOSVolumeSource is an autogenerated conversion function.
-func Convert_v1_StorageOSVolumeSource_To_core_StorageOSVolumeSource(in *v1.StorageOSVolumeSource, out *core.StorageOSVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_StorageOSVolumeSource_To_core_StorageOSVolumeSource(in, out, s)
-}
-
-func autoConvert_core_StorageOSVolumeSource_To_v1_StorageOSVolumeSource(in *core.StorageOSVolumeSource, out *v1.StorageOSVolumeSource, s conversion.Scope) error {
- out.VolumeName = in.VolumeName
- out.VolumeNamespace = in.VolumeNamespace
- out.FSType = in.FSType
- out.ReadOnly = in.ReadOnly
- out.SecretRef = (*v1.LocalObjectReference)(unsafe.Pointer(in.SecretRef))
- return nil
-}
-
-// Convert_core_StorageOSVolumeSource_To_v1_StorageOSVolumeSource is an autogenerated conversion function.
-func Convert_core_StorageOSVolumeSource_To_v1_StorageOSVolumeSource(in *core.StorageOSVolumeSource, out *v1.StorageOSVolumeSource, s conversion.Scope) error {
- return autoConvert_core_StorageOSVolumeSource_To_v1_StorageOSVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_Sysctl_To_core_Sysctl(in *v1.Sysctl, out *core.Sysctl, s conversion.Scope) error {
- out.Name = in.Name
- out.Value = in.Value
- return nil
-}
-
-// Convert_v1_Sysctl_To_core_Sysctl is an autogenerated conversion function.
-func Convert_v1_Sysctl_To_core_Sysctl(in *v1.Sysctl, out *core.Sysctl, s conversion.Scope) error {
- return autoConvert_v1_Sysctl_To_core_Sysctl(in, out, s)
-}
-
-func autoConvert_core_Sysctl_To_v1_Sysctl(in *core.Sysctl, out *v1.Sysctl, s conversion.Scope) error {
- out.Name = in.Name
- out.Value = in.Value
- return nil
-}
-
-// Convert_core_Sysctl_To_v1_Sysctl is an autogenerated conversion function.
-func Convert_core_Sysctl_To_v1_Sysctl(in *core.Sysctl, out *v1.Sysctl, s conversion.Scope) error {
- return autoConvert_core_Sysctl_To_v1_Sysctl(in, out, s)
-}
-
-func autoConvert_v1_TCPSocketAction_To_core_TCPSocketAction(in *v1.TCPSocketAction, out *core.TCPSocketAction, s conversion.Scope) error {
- out.Port = in.Port
- out.Host = in.Host
- return nil
-}
-
-// Convert_v1_TCPSocketAction_To_core_TCPSocketAction is an autogenerated conversion function.
-func Convert_v1_TCPSocketAction_To_core_TCPSocketAction(in *v1.TCPSocketAction, out *core.TCPSocketAction, s conversion.Scope) error {
- return autoConvert_v1_TCPSocketAction_To_core_TCPSocketAction(in, out, s)
-}
-
-func autoConvert_core_TCPSocketAction_To_v1_TCPSocketAction(in *core.TCPSocketAction, out *v1.TCPSocketAction, s conversion.Scope) error {
- out.Port = in.Port
- out.Host = in.Host
- return nil
-}
-
-// Convert_core_TCPSocketAction_To_v1_TCPSocketAction is an autogenerated conversion function.
-func Convert_core_TCPSocketAction_To_v1_TCPSocketAction(in *core.TCPSocketAction, out *v1.TCPSocketAction, s conversion.Scope) error {
- return autoConvert_core_TCPSocketAction_To_v1_TCPSocketAction(in, out, s)
-}
-
-func autoConvert_v1_Taint_To_core_Taint(in *v1.Taint, out *core.Taint, s conversion.Scope) error {
- out.Key = in.Key
- out.Value = in.Value
- out.Effect = core.TaintEffect(in.Effect)
- out.TimeAdded = (*meta_v1.Time)(unsafe.Pointer(in.TimeAdded))
- return nil
-}
-
-// Convert_v1_Taint_To_core_Taint is an autogenerated conversion function.
-func Convert_v1_Taint_To_core_Taint(in *v1.Taint, out *core.Taint, s conversion.Scope) error {
- return autoConvert_v1_Taint_To_core_Taint(in, out, s)
-}
-
-func autoConvert_core_Taint_To_v1_Taint(in *core.Taint, out *v1.Taint, s conversion.Scope) error {
- out.Key = in.Key
- out.Value = in.Value
- out.Effect = v1.TaintEffect(in.Effect)
- out.TimeAdded = (*meta_v1.Time)(unsafe.Pointer(in.TimeAdded))
- return nil
-}
-
-// Convert_core_Taint_To_v1_Taint is an autogenerated conversion function.
-func Convert_core_Taint_To_v1_Taint(in *core.Taint, out *v1.Taint, s conversion.Scope) error {
- return autoConvert_core_Taint_To_v1_Taint(in, out, s)
-}
-
-func autoConvert_v1_Toleration_To_core_Toleration(in *v1.Toleration, out *core.Toleration, s conversion.Scope) error {
- out.Key = in.Key
- out.Operator = core.TolerationOperator(in.Operator)
- out.Value = in.Value
- out.Effect = core.TaintEffect(in.Effect)
- out.TolerationSeconds = (*int64)(unsafe.Pointer(in.TolerationSeconds))
- return nil
-}
-
-// Convert_v1_Toleration_To_core_Toleration is an autogenerated conversion function.
-func Convert_v1_Toleration_To_core_Toleration(in *v1.Toleration, out *core.Toleration, s conversion.Scope) error {
- return autoConvert_v1_Toleration_To_core_Toleration(in, out, s)
-}
-
-func autoConvert_core_Toleration_To_v1_Toleration(in *core.Toleration, out *v1.Toleration, s conversion.Scope) error {
- out.Key = in.Key
- out.Operator = v1.TolerationOperator(in.Operator)
- out.Value = in.Value
- out.Effect = v1.TaintEffect(in.Effect)
- out.TolerationSeconds = (*int64)(unsafe.Pointer(in.TolerationSeconds))
- return nil
-}
-
-// Convert_core_Toleration_To_v1_Toleration is an autogenerated conversion function.
-func Convert_core_Toleration_To_v1_Toleration(in *core.Toleration, out *v1.Toleration, s conversion.Scope) error {
- return autoConvert_core_Toleration_To_v1_Toleration(in, out, s)
-}
-
-func autoConvert_v1_Volume_To_core_Volume(in *v1.Volume, out *core.Volume, s conversion.Scope) error {
- out.Name = in.Name
- if err := Convert_v1_VolumeSource_To_core_VolumeSource(&in.VolumeSource, &out.VolumeSource, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_v1_Volume_To_core_Volume is an autogenerated conversion function.
-func Convert_v1_Volume_To_core_Volume(in *v1.Volume, out *core.Volume, s conversion.Scope) error {
- return autoConvert_v1_Volume_To_core_Volume(in, out, s)
-}
-
-func autoConvert_core_Volume_To_v1_Volume(in *core.Volume, out *v1.Volume, s conversion.Scope) error {
- out.Name = in.Name
- if err := Convert_core_VolumeSource_To_v1_VolumeSource(&in.VolumeSource, &out.VolumeSource, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_core_Volume_To_v1_Volume is an autogenerated conversion function.
-func Convert_core_Volume_To_v1_Volume(in *core.Volume, out *v1.Volume, s conversion.Scope) error {
- return autoConvert_core_Volume_To_v1_Volume(in, out, s)
-}
-
-func autoConvert_v1_VolumeDevice_To_core_VolumeDevice(in *v1.VolumeDevice, out *core.VolumeDevice, s conversion.Scope) error {
- out.Name = in.Name
- out.DevicePath = in.DevicePath
- return nil
-}
-
-// Convert_v1_VolumeDevice_To_core_VolumeDevice is an autogenerated conversion function.
-func Convert_v1_VolumeDevice_To_core_VolumeDevice(in *v1.VolumeDevice, out *core.VolumeDevice, s conversion.Scope) error {
- return autoConvert_v1_VolumeDevice_To_core_VolumeDevice(in, out, s)
-}
-
-func autoConvert_core_VolumeDevice_To_v1_VolumeDevice(in *core.VolumeDevice, out *v1.VolumeDevice, s conversion.Scope) error {
- out.Name = in.Name
- out.DevicePath = in.DevicePath
- return nil
-}
-
-// Convert_core_VolumeDevice_To_v1_VolumeDevice is an autogenerated conversion function.
-func Convert_core_VolumeDevice_To_v1_VolumeDevice(in *core.VolumeDevice, out *v1.VolumeDevice, s conversion.Scope) error {
- return autoConvert_core_VolumeDevice_To_v1_VolumeDevice(in, out, s)
-}
-
-func autoConvert_v1_VolumeMount_To_core_VolumeMount(in *v1.VolumeMount, out *core.VolumeMount, s conversion.Scope) error {
- out.Name = in.Name
- out.ReadOnly = in.ReadOnly
- out.MountPath = in.MountPath
- out.SubPath = in.SubPath
- out.MountPropagation = (*core.MountPropagationMode)(unsafe.Pointer(in.MountPropagation))
- return nil
-}
-
-// Convert_v1_VolumeMount_To_core_VolumeMount is an autogenerated conversion function.
-func Convert_v1_VolumeMount_To_core_VolumeMount(in *v1.VolumeMount, out *core.VolumeMount, s conversion.Scope) error {
- return autoConvert_v1_VolumeMount_To_core_VolumeMount(in, out, s)
-}
-
-func autoConvert_core_VolumeMount_To_v1_VolumeMount(in *core.VolumeMount, out *v1.VolumeMount, s conversion.Scope) error {
- out.Name = in.Name
- out.ReadOnly = in.ReadOnly
- out.MountPath = in.MountPath
- out.SubPath = in.SubPath
- out.MountPropagation = (*v1.MountPropagationMode)(unsafe.Pointer(in.MountPropagation))
- return nil
-}
-
-// Convert_core_VolumeMount_To_v1_VolumeMount is an autogenerated conversion function.
-func Convert_core_VolumeMount_To_v1_VolumeMount(in *core.VolumeMount, out *v1.VolumeMount, s conversion.Scope) error {
- return autoConvert_core_VolumeMount_To_v1_VolumeMount(in, out, s)
-}
-
-func autoConvert_v1_VolumeNodeAffinity_To_core_VolumeNodeAffinity(in *v1.VolumeNodeAffinity, out *core.VolumeNodeAffinity, s conversion.Scope) error {
- out.Required = (*core.NodeSelector)(unsafe.Pointer(in.Required))
- return nil
-}
-
-// Convert_v1_VolumeNodeAffinity_To_core_VolumeNodeAffinity is an autogenerated conversion function.
-func Convert_v1_VolumeNodeAffinity_To_core_VolumeNodeAffinity(in *v1.VolumeNodeAffinity, out *core.VolumeNodeAffinity, s conversion.Scope) error {
- return autoConvert_v1_VolumeNodeAffinity_To_core_VolumeNodeAffinity(in, out, s)
-}
-
-func autoConvert_core_VolumeNodeAffinity_To_v1_VolumeNodeAffinity(in *core.VolumeNodeAffinity, out *v1.VolumeNodeAffinity, s conversion.Scope) error {
- out.Required = (*v1.NodeSelector)(unsafe.Pointer(in.Required))
- return nil
-}
-
-// Convert_core_VolumeNodeAffinity_To_v1_VolumeNodeAffinity is an autogenerated conversion function.
-func Convert_core_VolumeNodeAffinity_To_v1_VolumeNodeAffinity(in *core.VolumeNodeAffinity, out *v1.VolumeNodeAffinity, s conversion.Scope) error {
- return autoConvert_core_VolumeNodeAffinity_To_v1_VolumeNodeAffinity(in, out, s)
-}
-
-func autoConvert_v1_VolumeProjection_To_core_VolumeProjection(in *v1.VolumeProjection, out *core.VolumeProjection, s conversion.Scope) error {
- out.Secret = (*core.SecretProjection)(unsafe.Pointer(in.Secret))
- out.DownwardAPI = (*core.DownwardAPIProjection)(unsafe.Pointer(in.DownwardAPI))
- out.ConfigMap = (*core.ConfigMapProjection)(unsafe.Pointer(in.ConfigMap))
- return nil
-}
-
-// Convert_v1_VolumeProjection_To_core_VolumeProjection is an autogenerated conversion function.
-func Convert_v1_VolumeProjection_To_core_VolumeProjection(in *v1.VolumeProjection, out *core.VolumeProjection, s conversion.Scope) error {
- return autoConvert_v1_VolumeProjection_To_core_VolumeProjection(in, out, s)
-}
-
-func autoConvert_core_VolumeProjection_To_v1_VolumeProjection(in *core.VolumeProjection, out *v1.VolumeProjection, s conversion.Scope) error {
- out.Secret = (*v1.SecretProjection)(unsafe.Pointer(in.Secret))
- out.DownwardAPI = (*v1.DownwardAPIProjection)(unsafe.Pointer(in.DownwardAPI))
- out.ConfigMap = (*v1.ConfigMapProjection)(unsafe.Pointer(in.ConfigMap))
- return nil
-}
-
-// Convert_core_VolumeProjection_To_v1_VolumeProjection is an autogenerated conversion function.
-func Convert_core_VolumeProjection_To_v1_VolumeProjection(in *core.VolumeProjection, out *v1.VolumeProjection, s conversion.Scope) error {
- return autoConvert_core_VolumeProjection_To_v1_VolumeProjection(in, out, s)
-}
-
-func autoConvert_v1_VolumeSource_To_core_VolumeSource(in *v1.VolumeSource, out *core.VolumeSource, s conversion.Scope) error {
- out.HostPath = (*core.HostPathVolumeSource)(unsafe.Pointer(in.HostPath))
- out.EmptyDir = (*core.EmptyDirVolumeSource)(unsafe.Pointer(in.EmptyDir))
- out.GCEPersistentDisk = (*core.GCEPersistentDiskVolumeSource)(unsafe.Pointer(in.GCEPersistentDisk))
- out.AWSElasticBlockStore = (*core.AWSElasticBlockStoreVolumeSource)(unsafe.Pointer(in.AWSElasticBlockStore))
- out.GitRepo = (*core.GitRepoVolumeSource)(unsafe.Pointer(in.GitRepo))
- out.Secret = (*core.SecretVolumeSource)(unsafe.Pointer(in.Secret))
- out.NFS = (*core.NFSVolumeSource)(unsafe.Pointer(in.NFS))
- out.ISCSI = (*core.ISCSIVolumeSource)(unsafe.Pointer(in.ISCSI))
- out.Glusterfs = (*core.GlusterfsVolumeSource)(unsafe.Pointer(in.Glusterfs))
- out.PersistentVolumeClaim = (*core.PersistentVolumeClaimVolumeSource)(unsafe.Pointer(in.PersistentVolumeClaim))
- out.RBD = (*core.RBDVolumeSource)(unsafe.Pointer(in.RBD))
- out.FlexVolume = (*core.FlexVolumeSource)(unsafe.Pointer(in.FlexVolume))
- out.Cinder = (*core.CinderVolumeSource)(unsafe.Pointer(in.Cinder))
- out.CephFS = (*core.CephFSVolumeSource)(unsafe.Pointer(in.CephFS))
- out.Flocker = (*core.FlockerVolumeSource)(unsafe.Pointer(in.Flocker))
- out.DownwardAPI = (*core.DownwardAPIVolumeSource)(unsafe.Pointer(in.DownwardAPI))
- out.FC = (*core.FCVolumeSource)(unsafe.Pointer(in.FC))
- out.AzureFile = (*core.AzureFileVolumeSource)(unsafe.Pointer(in.AzureFile))
- out.ConfigMap = (*core.ConfigMapVolumeSource)(unsafe.Pointer(in.ConfigMap))
- out.VsphereVolume = (*core.VsphereVirtualDiskVolumeSource)(unsafe.Pointer(in.VsphereVolume))
- out.Quobyte = (*core.QuobyteVolumeSource)(unsafe.Pointer(in.Quobyte))
- out.AzureDisk = (*core.AzureDiskVolumeSource)(unsafe.Pointer(in.AzureDisk))
- out.PhotonPersistentDisk = (*core.PhotonPersistentDiskVolumeSource)(unsafe.Pointer(in.PhotonPersistentDisk))
- out.Projected = (*core.ProjectedVolumeSource)(unsafe.Pointer(in.Projected))
- out.PortworxVolume = (*core.PortworxVolumeSource)(unsafe.Pointer(in.PortworxVolume))
- out.ScaleIO = (*core.ScaleIOVolumeSource)(unsafe.Pointer(in.ScaleIO))
- out.StorageOS = (*core.StorageOSVolumeSource)(unsafe.Pointer(in.StorageOS))
- return nil
-}
-
-// Convert_v1_VolumeSource_To_core_VolumeSource is an autogenerated conversion function.
-func Convert_v1_VolumeSource_To_core_VolumeSource(in *v1.VolumeSource, out *core.VolumeSource, s conversion.Scope) error {
- return autoConvert_v1_VolumeSource_To_core_VolumeSource(in, out, s)
-}
-
-func autoConvert_core_VolumeSource_To_v1_VolumeSource(in *core.VolumeSource, out *v1.VolumeSource, s conversion.Scope) error {
- out.HostPath = (*v1.HostPathVolumeSource)(unsafe.Pointer(in.HostPath))
- out.EmptyDir = (*v1.EmptyDirVolumeSource)(unsafe.Pointer(in.EmptyDir))
- out.GCEPersistentDisk = (*v1.GCEPersistentDiskVolumeSource)(unsafe.Pointer(in.GCEPersistentDisk))
- out.AWSElasticBlockStore = (*v1.AWSElasticBlockStoreVolumeSource)(unsafe.Pointer(in.AWSElasticBlockStore))
- out.GitRepo = (*v1.GitRepoVolumeSource)(unsafe.Pointer(in.GitRepo))
- out.Secret = (*v1.SecretVolumeSource)(unsafe.Pointer(in.Secret))
- out.NFS = (*v1.NFSVolumeSource)(unsafe.Pointer(in.NFS))
- out.ISCSI = (*v1.ISCSIVolumeSource)(unsafe.Pointer(in.ISCSI))
- out.Glusterfs = (*v1.GlusterfsVolumeSource)(unsafe.Pointer(in.Glusterfs))
- out.PersistentVolumeClaim = (*v1.PersistentVolumeClaimVolumeSource)(unsafe.Pointer(in.PersistentVolumeClaim))
- out.RBD = (*v1.RBDVolumeSource)(unsafe.Pointer(in.RBD))
- out.Quobyte = (*v1.QuobyteVolumeSource)(unsafe.Pointer(in.Quobyte))
- out.FlexVolume = (*v1.FlexVolumeSource)(unsafe.Pointer(in.FlexVolume))
- out.Cinder = (*v1.CinderVolumeSource)(unsafe.Pointer(in.Cinder))
- out.CephFS = (*v1.CephFSVolumeSource)(unsafe.Pointer(in.CephFS))
- out.Flocker = (*v1.FlockerVolumeSource)(unsafe.Pointer(in.Flocker))
- out.DownwardAPI = (*v1.DownwardAPIVolumeSource)(unsafe.Pointer(in.DownwardAPI))
- out.FC = (*v1.FCVolumeSource)(unsafe.Pointer(in.FC))
- out.AzureFile = (*v1.AzureFileVolumeSource)(unsafe.Pointer(in.AzureFile))
- out.ConfigMap = (*v1.ConfigMapVolumeSource)(unsafe.Pointer(in.ConfigMap))
- out.VsphereVolume = (*v1.VsphereVirtualDiskVolumeSource)(unsafe.Pointer(in.VsphereVolume))
- out.AzureDisk = (*v1.AzureDiskVolumeSource)(unsafe.Pointer(in.AzureDisk))
- out.PhotonPersistentDisk = (*v1.PhotonPersistentDiskVolumeSource)(unsafe.Pointer(in.PhotonPersistentDisk))
- out.Projected = (*v1.ProjectedVolumeSource)(unsafe.Pointer(in.Projected))
- out.PortworxVolume = (*v1.PortworxVolumeSource)(unsafe.Pointer(in.PortworxVolume))
- out.ScaleIO = (*v1.ScaleIOVolumeSource)(unsafe.Pointer(in.ScaleIO))
- out.StorageOS = (*v1.StorageOSVolumeSource)(unsafe.Pointer(in.StorageOS))
- return nil
-}
-
-// Convert_core_VolumeSource_To_v1_VolumeSource is an autogenerated conversion function.
-func Convert_core_VolumeSource_To_v1_VolumeSource(in *core.VolumeSource, out *v1.VolumeSource, s conversion.Scope) error {
- return autoConvert_core_VolumeSource_To_v1_VolumeSource(in, out, s)
-}
-
-func autoConvert_v1_VsphereVirtualDiskVolumeSource_To_core_VsphereVirtualDiskVolumeSource(in *v1.VsphereVirtualDiskVolumeSource, out *core.VsphereVirtualDiskVolumeSource, s conversion.Scope) error {
- out.VolumePath = in.VolumePath
- out.FSType = in.FSType
- out.StoragePolicyName = in.StoragePolicyName
- out.StoragePolicyID = in.StoragePolicyID
- return nil
-}
-
-// Convert_v1_VsphereVirtualDiskVolumeSource_To_core_VsphereVirtualDiskVolumeSource is an autogenerated conversion function.
-func Convert_v1_VsphereVirtualDiskVolumeSource_To_core_VsphereVirtualDiskVolumeSource(in *v1.VsphereVirtualDiskVolumeSource, out *core.VsphereVirtualDiskVolumeSource, s conversion.Scope) error {
- return autoConvert_v1_VsphereVirtualDiskVolumeSource_To_core_VsphereVirtualDiskVolumeSource(in, out, s)
-}
-
-func autoConvert_core_VsphereVirtualDiskVolumeSource_To_v1_VsphereVirtualDiskVolumeSource(in *core.VsphereVirtualDiskVolumeSource, out *v1.VsphereVirtualDiskVolumeSource, s conversion.Scope) error {
- out.VolumePath = in.VolumePath
- out.FSType = in.FSType
- out.StoragePolicyName = in.StoragePolicyName
- out.StoragePolicyID = in.StoragePolicyID
- return nil
-}
-
-// Convert_core_VsphereVirtualDiskVolumeSource_To_v1_VsphereVirtualDiskVolumeSource is an autogenerated conversion function.
-func Convert_core_VsphereVirtualDiskVolumeSource_To_v1_VsphereVirtualDiskVolumeSource(in *core.VsphereVirtualDiskVolumeSource, out *v1.VsphereVirtualDiskVolumeSource, s conversion.Scope) error {
- return autoConvert_core_VsphereVirtualDiskVolumeSource_To_v1_VsphereVirtualDiskVolumeSource(in, out, s)
-}
-
-func autoConvert_v1_WeightedPodAffinityTerm_To_core_WeightedPodAffinityTerm(in *v1.WeightedPodAffinityTerm, out *core.WeightedPodAffinityTerm, s conversion.Scope) error {
- out.Weight = in.Weight
- if err := Convert_v1_PodAffinityTerm_To_core_PodAffinityTerm(&in.PodAffinityTerm, &out.PodAffinityTerm, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_v1_WeightedPodAffinityTerm_To_core_WeightedPodAffinityTerm is an autogenerated conversion function.
-func Convert_v1_WeightedPodAffinityTerm_To_core_WeightedPodAffinityTerm(in *v1.WeightedPodAffinityTerm, out *core.WeightedPodAffinityTerm, s conversion.Scope) error {
- return autoConvert_v1_WeightedPodAffinityTerm_To_core_WeightedPodAffinityTerm(in, out, s)
-}
-
-func autoConvert_core_WeightedPodAffinityTerm_To_v1_WeightedPodAffinityTerm(in *core.WeightedPodAffinityTerm, out *v1.WeightedPodAffinityTerm, s conversion.Scope) error {
- out.Weight = in.Weight
- if err := Convert_core_PodAffinityTerm_To_v1_PodAffinityTerm(&in.PodAffinityTerm, &out.PodAffinityTerm, s); err != nil {
- return err
- }
- return nil
-}
-
-// Convert_core_WeightedPodAffinityTerm_To_v1_WeightedPodAffinityTerm is an autogenerated conversion function.
-func Convert_core_WeightedPodAffinityTerm_To_v1_WeightedPodAffinityTerm(in *core.WeightedPodAffinityTerm, out *v1.WeightedPodAffinityTerm, s conversion.Scope) error {
- return autoConvert_core_WeightedPodAffinityTerm_To_v1_WeightedPodAffinityTerm(in, out, s)
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/v1/zz_generated.defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/zz_generated.defaults.go
deleted file mode 100644
index 084c9516b..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/v1/zz_generated.defaults.go
+++ /dev/null
@@ -1,638 +0,0 @@
-// +build !ignore_autogenerated
-
-/*
-Copyright 2018 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.
-*/
-
-// Code generated by defaulter-gen. DO NOT EDIT.
-
-package v1
-
-import (
- v1 "k8s.io/api/core/v1"
- runtime "k8s.io/apimachinery/pkg/runtime"
-)
-
-// RegisterDefaults adds defaulters functions to the given scheme.
-// Public to allow building arbitrary schemes.
-// All generated defaulters are covering - they call all nested defaulters.
-func RegisterDefaults(scheme *runtime.Scheme) error {
- scheme.AddTypeDefaultingFunc(&v1.ConfigMap{}, func(obj interface{}) { SetObjectDefaults_ConfigMap(obj.(*v1.ConfigMap)) })
- scheme.AddTypeDefaultingFunc(&v1.ConfigMapList{}, func(obj interface{}) { SetObjectDefaults_ConfigMapList(obj.(*v1.ConfigMapList)) })
- scheme.AddTypeDefaultingFunc(&v1.Endpoints{}, func(obj interface{}) { SetObjectDefaults_Endpoints(obj.(*v1.Endpoints)) })
- scheme.AddTypeDefaultingFunc(&v1.EndpointsList{}, func(obj interface{}) { SetObjectDefaults_EndpointsList(obj.(*v1.EndpointsList)) })
- scheme.AddTypeDefaultingFunc(&v1.LimitRange{}, func(obj interface{}) { SetObjectDefaults_LimitRange(obj.(*v1.LimitRange)) })
- scheme.AddTypeDefaultingFunc(&v1.LimitRangeList{}, func(obj interface{}) { SetObjectDefaults_LimitRangeList(obj.(*v1.LimitRangeList)) })
- scheme.AddTypeDefaultingFunc(&v1.Namespace{}, func(obj interface{}) { SetObjectDefaults_Namespace(obj.(*v1.Namespace)) })
- scheme.AddTypeDefaultingFunc(&v1.NamespaceList{}, func(obj interface{}) { SetObjectDefaults_NamespaceList(obj.(*v1.NamespaceList)) })
- scheme.AddTypeDefaultingFunc(&v1.Node{}, func(obj interface{}) { SetObjectDefaults_Node(obj.(*v1.Node)) })
- scheme.AddTypeDefaultingFunc(&v1.NodeList{}, func(obj interface{}) { SetObjectDefaults_NodeList(obj.(*v1.NodeList)) })
- scheme.AddTypeDefaultingFunc(&v1.PersistentVolume{}, func(obj interface{}) { SetObjectDefaults_PersistentVolume(obj.(*v1.PersistentVolume)) })
- scheme.AddTypeDefaultingFunc(&v1.PersistentVolumeClaim{}, func(obj interface{}) { SetObjectDefaults_PersistentVolumeClaim(obj.(*v1.PersistentVolumeClaim)) })
- scheme.AddTypeDefaultingFunc(&v1.PersistentVolumeClaimList{}, func(obj interface{}) {
- SetObjectDefaults_PersistentVolumeClaimList(obj.(*v1.PersistentVolumeClaimList))
- })
- scheme.AddTypeDefaultingFunc(&v1.PersistentVolumeList{}, func(obj interface{}) { SetObjectDefaults_PersistentVolumeList(obj.(*v1.PersistentVolumeList)) })
- scheme.AddTypeDefaultingFunc(&v1.Pod{}, func(obj interface{}) { SetObjectDefaults_Pod(obj.(*v1.Pod)) })
- scheme.AddTypeDefaultingFunc(&v1.PodList{}, func(obj interface{}) { SetObjectDefaults_PodList(obj.(*v1.PodList)) })
- scheme.AddTypeDefaultingFunc(&v1.PodTemplate{}, func(obj interface{}) { SetObjectDefaults_PodTemplate(obj.(*v1.PodTemplate)) })
- scheme.AddTypeDefaultingFunc(&v1.PodTemplateList{}, func(obj interface{}) { SetObjectDefaults_PodTemplateList(obj.(*v1.PodTemplateList)) })
- scheme.AddTypeDefaultingFunc(&v1.ReplicationController{}, func(obj interface{}) { SetObjectDefaults_ReplicationController(obj.(*v1.ReplicationController)) })
- scheme.AddTypeDefaultingFunc(&v1.ReplicationControllerList{}, func(obj interface{}) {
- SetObjectDefaults_ReplicationControllerList(obj.(*v1.ReplicationControllerList))
- })
- scheme.AddTypeDefaultingFunc(&v1.ResourceQuota{}, func(obj interface{}) { SetObjectDefaults_ResourceQuota(obj.(*v1.ResourceQuota)) })
- scheme.AddTypeDefaultingFunc(&v1.ResourceQuotaList{}, func(obj interface{}) { SetObjectDefaults_ResourceQuotaList(obj.(*v1.ResourceQuotaList)) })
- scheme.AddTypeDefaultingFunc(&v1.Secret{}, func(obj interface{}) { SetObjectDefaults_Secret(obj.(*v1.Secret)) })
- scheme.AddTypeDefaultingFunc(&v1.SecretList{}, func(obj interface{}) { SetObjectDefaults_SecretList(obj.(*v1.SecretList)) })
- scheme.AddTypeDefaultingFunc(&v1.Service{}, func(obj interface{}) { SetObjectDefaults_Service(obj.(*v1.Service)) })
- scheme.AddTypeDefaultingFunc(&v1.ServiceList{}, func(obj interface{}) { SetObjectDefaults_ServiceList(obj.(*v1.ServiceList)) })
- return nil
-}
-
-func SetObjectDefaults_ConfigMap(in *v1.ConfigMap) {
- SetDefaults_ConfigMap(in)
-}
-
-func SetObjectDefaults_ConfigMapList(in *v1.ConfigMapList) {
- for i := range in.Items {
- a := &in.Items[i]
- SetObjectDefaults_ConfigMap(a)
- }
-}
-
-func SetObjectDefaults_Endpoints(in *v1.Endpoints) {
- SetDefaults_Endpoints(in)
-}
-
-func SetObjectDefaults_EndpointsList(in *v1.EndpointsList) {
- for i := range in.Items {
- a := &in.Items[i]
- SetObjectDefaults_Endpoints(a)
- }
-}
-
-func SetObjectDefaults_LimitRange(in *v1.LimitRange) {
- for i := range in.Spec.Limits {
- a := &in.Spec.Limits[i]
- SetDefaults_LimitRangeItem(a)
- SetDefaults_ResourceList(&a.Max)
- SetDefaults_ResourceList(&a.Min)
- SetDefaults_ResourceList(&a.Default)
- SetDefaults_ResourceList(&a.DefaultRequest)
- SetDefaults_ResourceList(&a.MaxLimitRequestRatio)
- }
-}
-
-func SetObjectDefaults_LimitRangeList(in *v1.LimitRangeList) {
- for i := range in.Items {
- a := &in.Items[i]
- SetObjectDefaults_LimitRange(a)
- }
-}
-
-func SetObjectDefaults_Namespace(in *v1.Namespace) {
- SetDefaults_NamespaceStatus(&in.Status)
-}
-
-func SetObjectDefaults_NamespaceList(in *v1.NamespaceList) {
- for i := range in.Items {
- a := &in.Items[i]
- SetObjectDefaults_Namespace(a)
- }
-}
-
-func SetObjectDefaults_Node(in *v1.Node) {
- SetDefaults_Node(in)
- SetDefaults_NodeStatus(&in.Status)
- SetDefaults_ResourceList(&in.Status.Capacity)
- SetDefaults_ResourceList(&in.Status.Allocatable)
-}
-
-func SetObjectDefaults_NodeList(in *v1.NodeList) {
- for i := range in.Items {
- a := &in.Items[i]
- SetObjectDefaults_Node(a)
- }
-}
-
-func SetObjectDefaults_PersistentVolume(in *v1.PersistentVolume) {
- SetDefaults_PersistentVolume(in)
- SetDefaults_ResourceList(&in.Spec.Capacity)
- if in.Spec.PersistentVolumeSource.HostPath != nil {
- SetDefaults_HostPathVolumeSource(in.Spec.PersistentVolumeSource.HostPath)
- }
- if in.Spec.PersistentVolumeSource.RBD != nil {
- SetDefaults_RBDPersistentVolumeSource(in.Spec.PersistentVolumeSource.RBD)
- }
- if in.Spec.PersistentVolumeSource.ISCSI != nil {
- SetDefaults_ISCSIPersistentVolumeSource(in.Spec.PersistentVolumeSource.ISCSI)
- }
- if in.Spec.PersistentVolumeSource.AzureDisk != nil {
- SetDefaults_AzureDiskVolumeSource(in.Spec.PersistentVolumeSource.AzureDisk)
- }
- if in.Spec.PersistentVolumeSource.ScaleIO != nil {
- SetDefaults_ScaleIOPersistentVolumeSource(in.Spec.PersistentVolumeSource.ScaleIO)
- }
-}
-
-func SetObjectDefaults_PersistentVolumeClaim(in *v1.PersistentVolumeClaim) {
- SetDefaults_PersistentVolumeClaim(in)
- SetDefaults_ResourceList(&in.Spec.Resources.Limits)
- SetDefaults_ResourceList(&in.Spec.Resources.Requests)
- SetDefaults_ResourceList(&in.Status.Capacity)
-}
-
-func SetObjectDefaults_PersistentVolumeClaimList(in *v1.PersistentVolumeClaimList) {
- for i := range in.Items {
- a := &in.Items[i]
- SetObjectDefaults_PersistentVolumeClaim(a)
- }
-}
-
-func SetObjectDefaults_PersistentVolumeList(in *v1.PersistentVolumeList) {
- for i := range in.Items {
- a := &in.Items[i]
- SetObjectDefaults_PersistentVolume(a)
- }
-}
-
-func SetObjectDefaults_Pod(in *v1.Pod) {
- SetDefaults_Pod(in)
- SetDefaults_PodSpec(&in.Spec)
- for i := range in.Spec.Volumes {
- a := &in.Spec.Volumes[i]
- SetDefaults_Volume(a)
- if a.VolumeSource.HostPath != nil {
- SetDefaults_HostPathVolumeSource(a.VolumeSource.HostPath)
- }
- if a.VolumeSource.Secret != nil {
- SetDefaults_SecretVolumeSource(a.VolumeSource.Secret)
- }
- if a.VolumeSource.ISCSI != nil {
- SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI)
- }
- if a.VolumeSource.RBD != nil {
- SetDefaults_RBDVolumeSource(a.VolumeSource.RBD)
- }
- if a.VolumeSource.DownwardAPI != nil {
- SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI)
- for j := range a.VolumeSource.DownwardAPI.Items {
- b := &a.VolumeSource.DownwardAPI.Items[j]
- if b.FieldRef != nil {
- SetDefaults_ObjectFieldSelector(b.FieldRef)
- }
- }
- }
- if a.VolumeSource.ConfigMap != nil {
- SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap)
- }
- if a.VolumeSource.AzureDisk != nil {
- SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk)
- }
- if a.VolumeSource.Projected != nil {
- SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected)
- for j := range a.VolumeSource.Projected.Sources {
- b := &a.VolumeSource.Projected.Sources[j]
- if b.DownwardAPI != nil {
- for k := range b.DownwardAPI.Items {
- c := &b.DownwardAPI.Items[k]
- if c.FieldRef != nil {
- SetDefaults_ObjectFieldSelector(c.FieldRef)
- }
- }
- }
- }
- }
- if a.VolumeSource.ScaleIO != nil {
- SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO)
- }
- }
- for i := range in.Spec.InitContainers {
- a := &in.Spec.InitContainers[i]
- SetDefaults_Container(a)
- for j := range a.Ports {
- b := &a.Ports[j]
- SetDefaults_ContainerPort(b)
- }
- for j := range a.Env {
- b := &a.Env[j]
- if b.ValueFrom != nil {
- if b.ValueFrom.FieldRef != nil {
- SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef)
- }
- }
- }
- SetDefaults_ResourceList(&a.Resources.Limits)
- SetDefaults_ResourceList(&a.Resources.Requests)
- if a.LivenessProbe != nil {
- SetDefaults_Probe(a.LivenessProbe)
- if a.LivenessProbe.Handler.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet)
- }
- }
- if a.ReadinessProbe != nil {
- SetDefaults_Probe(a.ReadinessProbe)
- if a.ReadinessProbe.Handler.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet)
- }
- }
- if a.Lifecycle != nil {
- if a.Lifecycle.PostStart != nil {
- if a.Lifecycle.PostStart.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet)
- }
- }
- if a.Lifecycle.PreStop != nil {
- if a.Lifecycle.PreStop.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet)
- }
- }
- }
- }
- for i := range in.Spec.Containers {
- a := &in.Spec.Containers[i]
- SetDefaults_Container(a)
- for j := range a.Ports {
- b := &a.Ports[j]
- SetDefaults_ContainerPort(b)
- }
- for j := range a.Env {
- b := &a.Env[j]
- if b.ValueFrom != nil {
- if b.ValueFrom.FieldRef != nil {
- SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef)
- }
- }
- }
- SetDefaults_ResourceList(&a.Resources.Limits)
- SetDefaults_ResourceList(&a.Resources.Requests)
- if a.LivenessProbe != nil {
- SetDefaults_Probe(a.LivenessProbe)
- if a.LivenessProbe.Handler.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet)
- }
- }
- if a.ReadinessProbe != nil {
- SetDefaults_Probe(a.ReadinessProbe)
- if a.ReadinessProbe.Handler.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet)
- }
- }
- if a.Lifecycle != nil {
- if a.Lifecycle.PostStart != nil {
- if a.Lifecycle.PostStart.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet)
- }
- }
- if a.Lifecycle.PreStop != nil {
- if a.Lifecycle.PreStop.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet)
- }
- }
- }
- }
-}
-
-func SetObjectDefaults_PodList(in *v1.PodList) {
- for i := range in.Items {
- a := &in.Items[i]
- SetObjectDefaults_Pod(a)
- }
-}
-
-func SetObjectDefaults_PodTemplate(in *v1.PodTemplate) {
- SetDefaults_PodSpec(&in.Template.Spec)
- for i := range in.Template.Spec.Volumes {
- a := &in.Template.Spec.Volumes[i]
- SetDefaults_Volume(a)
- if a.VolumeSource.HostPath != nil {
- SetDefaults_HostPathVolumeSource(a.VolumeSource.HostPath)
- }
- if a.VolumeSource.Secret != nil {
- SetDefaults_SecretVolumeSource(a.VolumeSource.Secret)
- }
- if a.VolumeSource.ISCSI != nil {
- SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI)
- }
- if a.VolumeSource.RBD != nil {
- SetDefaults_RBDVolumeSource(a.VolumeSource.RBD)
- }
- if a.VolumeSource.DownwardAPI != nil {
- SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI)
- for j := range a.VolumeSource.DownwardAPI.Items {
- b := &a.VolumeSource.DownwardAPI.Items[j]
- if b.FieldRef != nil {
- SetDefaults_ObjectFieldSelector(b.FieldRef)
- }
- }
- }
- if a.VolumeSource.ConfigMap != nil {
- SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap)
- }
- if a.VolumeSource.AzureDisk != nil {
- SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk)
- }
- if a.VolumeSource.Projected != nil {
- SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected)
- for j := range a.VolumeSource.Projected.Sources {
- b := &a.VolumeSource.Projected.Sources[j]
- if b.DownwardAPI != nil {
- for k := range b.DownwardAPI.Items {
- c := &b.DownwardAPI.Items[k]
- if c.FieldRef != nil {
- SetDefaults_ObjectFieldSelector(c.FieldRef)
- }
- }
- }
- }
- }
- if a.VolumeSource.ScaleIO != nil {
- SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO)
- }
- }
- for i := range in.Template.Spec.InitContainers {
- a := &in.Template.Spec.InitContainers[i]
- SetDefaults_Container(a)
- for j := range a.Ports {
- b := &a.Ports[j]
- SetDefaults_ContainerPort(b)
- }
- for j := range a.Env {
- b := &a.Env[j]
- if b.ValueFrom != nil {
- if b.ValueFrom.FieldRef != nil {
- SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef)
- }
- }
- }
- SetDefaults_ResourceList(&a.Resources.Limits)
- SetDefaults_ResourceList(&a.Resources.Requests)
- if a.LivenessProbe != nil {
- SetDefaults_Probe(a.LivenessProbe)
- if a.LivenessProbe.Handler.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet)
- }
- }
- if a.ReadinessProbe != nil {
- SetDefaults_Probe(a.ReadinessProbe)
- if a.ReadinessProbe.Handler.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet)
- }
- }
- if a.Lifecycle != nil {
- if a.Lifecycle.PostStart != nil {
- if a.Lifecycle.PostStart.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet)
- }
- }
- if a.Lifecycle.PreStop != nil {
- if a.Lifecycle.PreStop.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet)
- }
- }
- }
- }
- for i := range in.Template.Spec.Containers {
- a := &in.Template.Spec.Containers[i]
- SetDefaults_Container(a)
- for j := range a.Ports {
- b := &a.Ports[j]
- SetDefaults_ContainerPort(b)
- }
- for j := range a.Env {
- b := &a.Env[j]
- if b.ValueFrom != nil {
- if b.ValueFrom.FieldRef != nil {
- SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef)
- }
- }
- }
- SetDefaults_ResourceList(&a.Resources.Limits)
- SetDefaults_ResourceList(&a.Resources.Requests)
- if a.LivenessProbe != nil {
- SetDefaults_Probe(a.LivenessProbe)
- if a.LivenessProbe.Handler.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet)
- }
- }
- if a.ReadinessProbe != nil {
- SetDefaults_Probe(a.ReadinessProbe)
- if a.ReadinessProbe.Handler.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet)
- }
- }
- if a.Lifecycle != nil {
- if a.Lifecycle.PostStart != nil {
- if a.Lifecycle.PostStart.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet)
- }
- }
- if a.Lifecycle.PreStop != nil {
- if a.Lifecycle.PreStop.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet)
- }
- }
- }
- }
-}
-
-func SetObjectDefaults_PodTemplateList(in *v1.PodTemplateList) {
- for i := range in.Items {
- a := &in.Items[i]
- SetObjectDefaults_PodTemplate(a)
- }
-}
-
-func SetObjectDefaults_ReplicationController(in *v1.ReplicationController) {
- SetDefaults_ReplicationController(in)
- if in.Spec.Template != nil {
- SetDefaults_PodSpec(&in.Spec.Template.Spec)
- for i := range in.Spec.Template.Spec.Volumes {
- a := &in.Spec.Template.Spec.Volumes[i]
- SetDefaults_Volume(a)
- if a.VolumeSource.HostPath != nil {
- SetDefaults_HostPathVolumeSource(a.VolumeSource.HostPath)
- }
- if a.VolumeSource.Secret != nil {
- SetDefaults_SecretVolumeSource(a.VolumeSource.Secret)
- }
- if a.VolumeSource.ISCSI != nil {
- SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI)
- }
- if a.VolumeSource.RBD != nil {
- SetDefaults_RBDVolumeSource(a.VolumeSource.RBD)
- }
- if a.VolumeSource.DownwardAPI != nil {
- SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI)
- for j := range a.VolumeSource.DownwardAPI.Items {
- b := &a.VolumeSource.DownwardAPI.Items[j]
- if b.FieldRef != nil {
- SetDefaults_ObjectFieldSelector(b.FieldRef)
- }
- }
- }
- if a.VolumeSource.ConfigMap != nil {
- SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap)
- }
- if a.VolumeSource.AzureDisk != nil {
- SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk)
- }
- if a.VolumeSource.Projected != nil {
- SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected)
- for j := range a.VolumeSource.Projected.Sources {
- b := &a.VolumeSource.Projected.Sources[j]
- if b.DownwardAPI != nil {
- for k := range b.DownwardAPI.Items {
- c := &b.DownwardAPI.Items[k]
- if c.FieldRef != nil {
- SetDefaults_ObjectFieldSelector(c.FieldRef)
- }
- }
- }
- }
- }
- if a.VolumeSource.ScaleIO != nil {
- SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO)
- }
- }
- for i := range in.Spec.Template.Spec.InitContainers {
- a := &in.Spec.Template.Spec.InitContainers[i]
- SetDefaults_Container(a)
- for j := range a.Ports {
- b := &a.Ports[j]
- SetDefaults_ContainerPort(b)
- }
- for j := range a.Env {
- b := &a.Env[j]
- if b.ValueFrom != nil {
- if b.ValueFrom.FieldRef != nil {
- SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef)
- }
- }
- }
- SetDefaults_ResourceList(&a.Resources.Limits)
- SetDefaults_ResourceList(&a.Resources.Requests)
- if a.LivenessProbe != nil {
- SetDefaults_Probe(a.LivenessProbe)
- if a.LivenessProbe.Handler.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet)
- }
- }
- if a.ReadinessProbe != nil {
- SetDefaults_Probe(a.ReadinessProbe)
- if a.ReadinessProbe.Handler.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet)
- }
- }
- if a.Lifecycle != nil {
- if a.Lifecycle.PostStart != nil {
- if a.Lifecycle.PostStart.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet)
- }
- }
- if a.Lifecycle.PreStop != nil {
- if a.Lifecycle.PreStop.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet)
- }
- }
- }
- }
- for i := range in.Spec.Template.Spec.Containers {
- a := &in.Spec.Template.Spec.Containers[i]
- SetDefaults_Container(a)
- for j := range a.Ports {
- b := &a.Ports[j]
- SetDefaults_ContainerPort(b)
- }
- for j := range a.Env {
- b := &a.Env[j]
- if b.ValueFrom != nil {
- if b.ValueFrom.FieldRef != nil {
- SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef)
- }
- }
- }
- SetDefaults_ResourceList(&a.Resources.Limits)
- SetDefaults_ResourceList(&a.Resources.Requests)
- if a.LivenessProbe != nil {
- SetDefaults_Probe(a.LivenessProbe)
- if a.LivenessProbe.Handler.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet)
- }
- }
- if a.ReadinessProbe != nil {
- SetDefaults_Probe(a.ReadinessProbe)
- if a.ReadinessProbe.Handler.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet)
- }
- }
- if a.Lifecycle != nil {
- if a.Lifecycle.PostStart != nil {
- if a.Lifecycle.PostStart.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet)
- }
- }
- if a.Lifecycle.PreStop != nil {
- if a.Lifecycle.PreStop.HTTPGet != nil {
- SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet)
- }
- }
- }
- }
- }
-}
-
-func SetObjectDefaults_ReplicationControllerList(in *v1.ReplicationControllerList) {
- for i := range in.Items {
- a := &in.Items[i]
- SetObjectDefaults_ReplicationController(a)
- }
-}
-
-func SetObjectDefaults_ResourceQuota(in *v1.ResourceQuota) {
- SetDefaults_ResourceList(&in.Spec.Hard)
- SetDefaults_ResourceList(&in.Status.Hard)
- SetDefaults_ResourceList(&in.Status.Used)
-}
-
-func SetObjectDefaults_ResourceQuotaList(in *v1.ResourceQuotaList) {
- for i := range in.Items {
- a := &in.Items[i]
- SetObjectDefaults_ResourceQuota(a)
- }
-}
-
-func SetObjectDefaults_Secret(in *v1.Secret) {
- SetDefaults_Secret(in)
-}
-
-func SetObjectDefaults_SecretList(in *v1.SecretList) {
- for i := range in.Items {
- a := &in.Items[i]
- SetObjectDefaults_Secret(a)
- }
-}
-
-func SetObjectDefaults_Service(in *v1.Service) {
- SetDefaults_Service(in)
-}
-
-func SetObjectDefaults_ServiceList(in *v1.ServiceList) {
- for i := range in.Items {
- a := &in.Items[i]
- SetObjectDefaults_Service(a)
- }
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/validation/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/core/validation/doc.go
deleted file mode 100644
index 0c1cfaab5..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/validation/doc.go
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-Copyright 2014 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 validation has functions for validating the correctness of api
-// objects and explaining what is wrong with them when they aren't valid.
-package validation // import "k8s.io/kubernetes/pkg/apis/core/validation"
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/validation/events.go b/vendor/k8s.io/kubernetes/pkg/apis/core/validation/events.go
deleted file mode 100644
index ab265bd76..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/validation/events.go
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
-Copyright 2014 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 validation
-
-import (
- "fmt"
- "time"
-
- "k8s.io/apimachinery/pkg/api/meta"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/apimachinery/pkg/runtime/schema"
- "k8s.io/apimachinery/pkg/util/validation"
- "k8s.io/apimachinery/pkg/util/validation/field"
- "k8s.io/kubernetes/pkg/api/legacyscheme"
- "k8s.io/kubernetes/pkg/apis/core"
-)
-
-const (
- ReportingInstanceLengthLimit = 128
- ActionLengthLimit = 128
- ReasonLengthLimit = 128
- NoteLengthLimit = 1024
-)
-
-// ValidateEvent makes sure that the event makes sense.
-func ValidateEvent(event *core.Event) field.ErrorList {
- allErrs := field.ErrorList{}
- // Because go
- zeroTime := time.Time{}
-
- // "New" Events need to have EventTime set, so it's validating old object.
- if event.EventTime.Time == zeroTime {
- // Make sure event.Namespace and the involvedInvolvedObject.Namespace agree
- if len(event.InvolvedObject.Namespace) == 0 {
- // event.Namespace must also be empty (or "default", for compatibility with old clients)
- if event.Namespace != metav1.NamespaceNone && event.Namespace != metav1.NamespaceDefault {
- allErrs = append(allErrs, field.Invalid(field.NewPath("involvedObject", "namespace"), event.InvolvedObject.Namespace, "does not match event.namespace"))
- }
- } else {
- // event namespace must match
- if event.Namespace != event.InvolvedObject.Namespace {
- allErrs = append(allErrs, field.Invalid(field.NewPath("involvedObject", "namespace"), event.InvolvedObject.Namespace, "does not match event.namespace"))
- }
- }
-
- } else {
- if len(event.InvolvedObject.Namespace) == 0 && event.Namespace != metav1.NamespaceSystem {
- allErrs = append(allErrs, field.Invalid(field.NewPath("involvedObject", "namespace"), event.InvolvedObject.Namespace, "does not match event.namespace"))
- }
- if len(event.ReportingController) == 0 {
- allErrs = append(allErrs, field.Required(field.NewPath("reportingController"), ""))
- }
- for _, msg := range validation.IsQualifiedName(event.ReportingController) {
- allErrs = append(allErrs, field.Invalid(field.NewPath("reportingController"), event.ReportingController, msg))
- }
- if len(event.ReportingInstance) == 0 {
- allErrs = append(allErrs, field.Required(field.NewPath("reportingInstance"), ""))
- }
- if len(event.ReportingInstance) > ReportingInstanceLengthLimit {
- allErrs = append(allErrs, field.Invalid(field.NewPath("repotingIntance"), "", fmt.Sprintf("can have at most %v characters", ReportingInstanceLengthLimit)))
- }
- if len(event.Action) == 0 {
- allErrs = append(allErrs, field.Required(field.NewPath("action"), ""))
- }
- if len(event.Action) > ActionLengthLimit {
- allErrs = append(allErrs, field.Invalid(field.NewPath("action"), "", fmt.Sprintf("can have at most %v characters", ActionLengthLimit)))
- }
- if len(event.Reason) == 0 {
- allErrs = append(allErrs, field.Required(field.NewPath("reason"), ""))
- }
- if len(event.Reason) > ReasonLengthLimit {
- allErrs = append(allErrs, field.Invalid(field.NewPath("reason"), "", fmt.Sprintf("can have at most %v characters", ReasonLengthLimit)))
- }
- if len(event.Message) > NoteLengthLimit {
- allErrs = append(allErrs, field.Invalid(field.NewPath("message"), "", fmt.Sprintf("can have at most %v characters", NoteLengthLimit)))
- }
- }
-
- // For kinds we recognize, make sure InvolvedObject.Namespace is set for namespaced kinds
- if namespaced, err := isNamespacedKind(event.InvolvedObject.Kind, event.InvolvedObject.APIVersion); err == nil {
- if namespaced && len(event.InvolvedObject.Namespace) == 0 {
- allErrs = append(allErrs, field.Required(field.NewPath("involvedObject", "namespace"), fmt.Sprintf("required for kind %s", event.InvolvedObject.Kind)))
- }
- if !namespaced && len(event.InvolvedObject.Namespace) > 0 {
- allErrs = append(allErrs, field.Invalid(field.NewPath("involvedObject", "namespace"), event.InvolvedObject.Namespace, fmt.Sprintf("not allowed for kind %s", event.InvolvedObject.Kind)))
- }
- }
-
- for _, msg := range validation.IsDNS1123Subdomain(event.Namespace) {
- allErrs = append(allErrs, field.Invalid(field.NewPath("namespace"), event.Namespace, msg))
- }
- return allErrs
-}
-
-// Check whether the kind in groupVersion is scoped at the root of the api hierarchy
-func isNamespacedKind(kind, groupVersion string) (bool, error) {
- gv, err := schema.ParseGroupVersion(groupVersion)
- if err != nil {
- return false, err
- }
- g, err := legacyscheme.Registry.Group(gv.Group)
- if err != nil {
- return false, err
- }
-
- restMapping, err := g.RESTMapper.RESTMapping(schema.GroupKind{Group: gv.Group, Kind: kind}, gv.Version)
- if err != nil {
- return false, err
- }
- scopeName := restMapping.Scope.Name()
- if scopeName == meta.RESTScopeNameNamespace {
- return true, nil
- }
- return false, nil
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/validation/validation.go b/vendor/k8s.io/kubernetes/pkg/apis/core/validation/validation.go
deleted file mode 100644
index ec93a1968..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/validation/validation.go
+++ /dev/null
@@ -1,5066 +0,0 @@
-/*
-Copyright 2014 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 validation
-
-import (
- "encoding/json"
- "fmt"
- "math"
- "net"
- "path"
- "path/filepath"
- "reflect"
- "regexp"
- "strings"
-
- "github.com/golang/glog"
-
- "k8s.io/api/core/v1"
- apiequality "k8s.io/apimachinery/pkg/api/equality"
- "k8s.io/apimachinery/pkg/api/resource"
- apimachineryvalidation "k8s.io/apimachinery/pkg/api/validation"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- unversionedvalidation "k8s.io/apimachinery/pkg/apis/meta/v1/validation"
- "k8s.io/apimachinery/pkg/labels"
- "k8s.io/apimachinery/pkg/util/diff"
- "k8s.io/apimachinery/pkg/util/intstr"
- "k8s.io/apimachinery/pkg/util/sets"
- "k8s.io/apimachinery/pkg/util/validation"
- "k8s.io/apimachinery/pkg/util/validation/field"
- utilfeature "k8s.io/apiserver/pkg/util/feature"
- apiservice "k8s.io/kubernetes/pkg/api/service"
- "k8s.io/kubernetes/pkg/apis/core"
- "k8s.io/kubernetes/pkg/apis/core/helper"
- podshelper "k8s.io/kubernetes/pkg/apis/core/pods"
- corev1 "k8s.io/kubernetes/pkg/apis/core/v1"
- v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper"
- "k8s.io/kubernetes/pkg/capabilities"
- "k8s.io/kubernetes/pkg/features"
- "k8s.io/kubernetes/pkg/fieldpath"
- "k8s.io/kubernetes/pkg/master/ports"
- "k8s.io/kubernetes/pkg/security/apparmor"
-)
-
-// TODO: delete this global variable when we enable the validation of common
-// fields by default.
-var RepairMalformedUpdates bool = apimachineryvalidation.RepairMalformedUpdates
-
-const isNegativeErrorMsg string = apimachineryvalidation.IsNegativeErrorMsg
-const isInvalidQuotaResource string = `must be a standard resource for quota`
-const fieldImmutableErrorMsg string = apimachineryvalidation.FieldImmutableErrorMsg
-const isNotIntegerErrorMsg string = `must be an integer`
-const isNotPositiveErrorMsg string = `must be greater than zero`
-const csiDriverNameRexpErrMsg string = "must consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character"
-const csiDriverNameRexpFmt string = `^[a-zA-Z0-9][-a-zA-Z0-9_.]{0,61}[a-zA-Z-0-9]$`
-
-var pdPartitionErrorMsg string = validation.InclusiveRangeError(1, 255)
-var fileModeErrorMsg string = "must be a number between 0 and 0777 (octal), both inclusive"
-
-// BannedOwners is a black list of object that are not allowed to be owners.
-var BannedOwners = apimachineryvalidation.BannedOwners
-
-var iscsiInitiatorIqnRegex = regexp.MustCompile(`iqn\.\d{4}-\d{2}\.([[:alnum:]-.]+)(:[^,;*&$|\s]+)$`)
-var iscsiInitiatorEuiRegex = regexp.MustCompile(`^eui.[[:alnum:]]{16}$`)
-var iscsiInitiatorNaaRegex = regexp.MustCompile(`^naa.[[:alnum:]]{32}$`)
-
-var csiDriverNameRexp = regexp.MustCompile(csiDriverNameRexpFmt)
-
-// ValidateHasLabel requires that metav1.ObjectMeta has a Label with key and expectedValue
-func ValidateHasLabel(meta metav1.ObjectMeta, fldPath *field.Path, key, expectedValue string) field.ErrorList {
- allErrs := field.ErrorList{}
- actualValue, found := meta.Labels[key]
- if !found {
- allErrs = append(allErrs, field.Required(fldPath.Child("labels").Key(key),
- fmt.Sprintf("must be '%s'", expectedValue)))
- return allErrs
- }
- if actualValue != expectedValue {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("labels").Key(key), meta.Labels,
- fmt.Sprintf("must be '%s'", expectedValue)))
- }
- return allErrs
-}
-
-// ValidateAnnotations validates that a set of annotations are correctly defined.
-func ValidateAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList {
- return apimachineryvalidation.ValidateAnnotations(annotations, fldPath)
-}
-
-func ValidateDNS1123Label(value string, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- for _, msg := range validation.IsDNS1123Label(value) {
- allErrs = append(allErrs, field.Invalid(fldPath, value, msg))
- }
- return allErrs
-}
-
-// ValidateDNS1123Subdomain validates that a name is a proper DNS subdomain.
-func ValidateDNS1123Subdomain(value string, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- for _, msg := range validation.IsDNS1123Subdomain(value) {
- allErrs = append(allErrs, field.Invalid(fldPath, value, msg))
- }
- return allErrs
-}
-
-func ValidatePodSpecificAnnotations(annotations map[string]string, spec *core.PodSpec, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- if value, isMirror := annotations[core.MirrorPodAnnotationKey]; isMirror {
- if len(spec.NodeName) == 0 {
- allErrs = append(allErrs, field.Invalid(fldPath.Key(core.MirrorPodAnnotationKey), value, "must set spec.nodeName if mirror pod annotation is set"))
- }
- }
-
- if annotations[core.TolerationsAnnotationKey] != "" {
- allErrs = append(allErrs, ValidateTolerationsInPodAnnotations(annotations, fldPath)...)
- }
-
- allErrs = append(allErrs, ValidateSeccompPodAnnotations(annotations, fldPath)...)
- allErrs = append(allErrs, ValidateAppArmorPodAnnotations(annotations, spec, fldPath)...)
-
- sysctls, err := helper.SysctlsFromPodAnnotation(annotations[core.SysctlsPodAnnotationKey])
- if err != nil {
- allErrs = append(allErrs, field.Invalid(fldPath.Key(core.SysctlsPodAnnotationKey), annotations[core.SysctlsPodAnnotationKey], err.Error()))
- } else {
- allErrs = append(allErrs, validateSysctls(sysctls, fldPath.Key(core.SysctlsPodAnnotationKey))...)
- }
- unsafeSysctls, err := helper.SysctlsFromPodAnnotation(annotations[core.UnsafeSysctlsPodAnnotationKey])
- if err != nil {
- allErrs = append(allErrs, field.Invalid(fldPath.Key(core.UnsafeSysctlsPodAnnotationKey), annotations[core.UnsafeSysctlsPodAnnotationKey], err.Error()))
- } else {
- allErrs = append(allErrs, validateSysctls(unsafeSysctls, fldPath.Key(core.UnsafeSysctlsPodAnnotationKey))...)
- }
- inBoth := sysctlIntersection(sysctls, unsafeSysctls)
- if len(inBoth) > 0 {
- allErrs = append(allErrs, field.Invalid(fldPath.Key(core.UnsafeSysctlsPodAnnotationKey), strings.Join(inBoth, ", "), "can not be safe and unsafe"))
- }
-
- return allErrs
-}
-
-// ValidateTolerationsInPodAnnotations tests that the serialized tolerations in Pod.Annotations has valid data
-func ValidateTolerationsInPodAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- tolerations, err := helper.GetTolerationsFromPodAnnotations(annotations)
- if err != nil {
- allErrs = append(allErrs, field.Invalid(fldPath, core.TolerationsAnnotationKey, err.Error()))
- return allErrs
- }
-
- if len(tolerations) > 0 {
- allErrs = append(allErrs, ValidateTolerations(tolerations, fldPath.Child(core.TolerationsAnnotationKey))...)
- }
-
- return allErrs
-}
-
-func ValidatePodSpecificAnnotationUpdates(newPod, oldPod *core.Pod, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- newAnnotations := newPod.Annotations
- oldAnnotations := oldPod.Annotations
- for k, oldVal := range oldAnnotations {
- if newVal, exists := newAnnotations[k]; exists && newVal == oldVal {
- continue // No change.
- }
- if strings.HasPrefix(k, apparmor.ContainerAnnotationKeyPrefix) {
- allErrs = append(allErrs, field.Forbidden(fldPath.Key(k), "may not remove or update AppArmor annotations"))
- }
- if k == core.MirrorPodAnnotationKey {
- allErrs = append(allErrs, field.Forbidden(fldPath.Key(k), "may not remove or update mirror pod annotation"))
- }
- }
- // Check for additions
- for k := range newAnnotations {
- if _, ok := oldAnnotations[k]; ok {
- continue // No change.
- }
- if strings.HasPrefix(k, apparmor.ContainerAnnotationKeyPrefix) {
- allErrs = append(allErrs, field.Forbidden(fldPath.Key(k), "may not add AppArmor annotations"))
- }
- if k == core.MirrorPodAnnotationKey {
- allErrs = append(allErrs, field.Forbidden(fldPath.Key(k), "may not add mirror pod annotation"))
- }
- }
- allErrs = append(allErrs, ValidatePodSpecificAnnotations(newAnnotations, &newPod.Spec, fldPath)...)
- return allErrs
-}
-
-func ValidateEndpointsSpecificAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- return allErrs
-}
-
-// ValidateNameFunc validates that the provided name is valid for a given resource type.
-// Not all resources have the same validation rules for names. Prefix is true
-// if the name will have a value appended to it. If the name is not valid,
-// this returns a list of descriptions of individual characteristics of the
-// value that were not valid. Otherwise this returns an empty list or nil.
-type ValidateNameFunc apimachineryvalidation.ValidateNameFunc
-
-// ValidatePodName can be used to check whether the given pod name is valid.
-// Prefix indicates this name will be used as part of generation, in which case
-// trailing dashes are allowed.
-var ValidatePodName = NameIsDNSSubdomain
-
-// ValidateReplicationControllerName can be used to check whether the given replication
-// controller name is valid.
-// Prefix indicates this name will be used as part of generation, in which case
-// trailing dashes are allowed.
-var ValidateReplicationControllerName = NameIsDNSSubdomain
-
-// ValidateServiceName can be used to check whether the given service name is valid.
-// Prefix indicates this name will be used as part of generation, in which case
-// trailing dashes are allowed.
-var ValidateServiceName = NameIsDNS1035Label
-
-// ValidateNodeName can be used to check whether the given node name is valid.
-// Prefix indicates this name will be used as part of generation, in which case
-// trailing dashes are allowed.
-var ValidateNodeName = NameIsDNSSubdomain
-
-// ValidateNamespaceName can be used to check whether the given namespace name is valid.
-// Prefix indicates this name will be used as part of generation, in which case
-// trailing dashes are allowed.
-var ValidateNamespaceName = apimachineryvalidation.ValidateNamespaceName
-
-// ValidateLimitRangeName can be used to check whether the given limit range name is valid.
-// Prefix indicates this name will be used as part of generation, in which case
-// trailing dashes are allowed.
-var ValidateLimitRangeName = NameIsDNSSubdomain
-
-// ValidateResourceQuotaName can be used to check whether the given
-// resource quota name is valid.
-// Prefix indicates this name will be used as part of generation, in which case
-// trailing dashes are allowed.
-var ValidateResourceQuotaName = NameIsDNSSubdomain
-
-// ValidateSecretName can be used to check whether the given secret name is valid.
-// Prefix indicates this name will be used as part of generation, in which case
-// trailing dashes are allowed.
-var ValidateSecretName = NameIsDNSSubdomain
-
-// ValidateServiceAccountName can be used to check whether the given service account name is valid.
-// Prefix indicates this name will be used as part of generation, in which case
-// trailing dashes are allowed.
-var ValidateServiceAccountName = apimachineryvalidation.ValidateServiceAccountName
-
-// ValidateEndpointsName can be used to check whether the given endpoints name is valid.
-// Prefix indicates this name will be used as part of generation, in which case
-// trailing dashes are allowed.
-var ValidateEndpointsName = NameIsDNSSubdomain
-
-// ValidateClusterName can be used to check whether the given cluster name is valid.
-var ValidateClusterName = apimachineryvalidation.ValidateClusterName
-
-// ValidateClassName can be used to check whether the given class name is valid.
-// It is defined here to avoid import cycle between pkg/apis/storage/validation
-// (where it should be) and this file.
-var ValidateClassName = NameIsDNSSubdomain
-
-// ValidatePiorityClassName can be used to check whether the given priority
-// class name is valid.
-var ValidatePriorityClassName = NameIsDNSSubdomain
-
-// TODO update all references to these functions to point to the apimachineryvalidation ones
-// NameIsDNSSubdomain is a ValidateNameFunc for names that must be a DNS subdomain.
-func NameIsDNSSubdomain(name string, prefix bool) []string {
- return apimachineryvalidation.NameIsDNSSubdomain(name, prefix)
-}
-
-// NameIsDNS1035Label is a ValidateNameFunc for names that must be a DNS 952 label.
-func NameIsDNS1035Label(name string, prefix bool) []string {
- return apimachineryvalidation.NameIsDNS1035Label(name, prefix)
-}
-
-// Validates that given value is not negative.
-func ValidateNonnegativeField(value int64, fldPath *field.Path) field.ErrorList {
- return apimachineryvalidation.ValidateNonnegativeField(value, fldPath)
-}
-
-// Validates that a Quantity is not negative
-func ValidateNonnegativeQuantity(value resource.Quantity, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if value.Cmp(resource.Quantity{}) < 0 {
- allErrs = append(allErrs, field.Invalid(fldPath, value.String(), isNegativeErrorMsg))
- }
- return allErrs
-}
-
-// Validates that a Quantity is positive
-func ValidatePositiveQuantityValue(value resource.Quantity, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if value.Cmp(resource.Quantity{}) <= 0 {
- allErrs = append(allErrs, field.Invalid(fldPath, value.String(), isNotPositiveErrorMsg))
- }
- return allErrs
-}
-
-func ValidateImmutableField(newVal, oldVal interface{}, fldPath *field.Path) field.ErrorList {
- return apimachineryvalidation.ValidateImmutableField(newVal, oldVal, fldPath)
-}
-
-func ValidateImmutableAnnotation(newVal string, oldVal string, annotation string, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- if oldVal != newVal {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("annotations", annotation), newVal, fieldImmutableErrorMsg))
- }
- return allErrs
-}
-
-// ValidateObjectMeta validates an object's metadata on creation. It expects that name generation has already
-// been performed.
-// It doesn't return an error for rootscoped resources with namespace, because namespace should already be cleared before.
-// TODO: Remove calls to this method scattered in validations of specific resources, e.g., ValidatePodUpdate.
-func ValidateObjectMeta(meta *metav1.ObjectMeta, requiresNamespace bool, nameFn ValidateNameFunc, fldPath *field.Path) field.ErrorList {
- allErrs := apimachineryvalidation.ValidateObjectMeta(meta, requiresNamespace, apimachineryvalidation.ValidateNameFunc(nameFn), fldPath)
- // run additional checks for the finalizer name
- for i := range meta.Finalizers {
- allErrs = append(allErrs, validateKubeFinalizerName(string(meta.Finalizers[i]), fldPath.Child("finalizers").Index(i))...)
- }
- return allErrs
-}
-
-// ValidateObjectMetaUpdate validates an object's metadata when updated
-func ValidateObjectMetaUpdate(newMeta, oldMeta *metav1.ObjectMeta, fldPath *field.Path) field.ErrorList {
- allErrs := apimachineryvalidation.ValidateObjectMetaUpdate(newMeta, oldMeta, fldPath)
- // run additional checks for the finalizer name
- for i := range newMeta.Finalizers {
- allErrs = append(allErrs, validateKubeFinalizerName(string(newMeta.Finalizers[i]), fldPath.Child("finalizers").Index(i))...)
- }
-
- return allErrs
-}
-
-func ValidateVolumes(volumes []core.Volume, fldPath *field.Path) (map[string]core.VolumeSource, field.ErrorList) {
- allErrs := field.ErrorList{}
-
- allNames := sets.String{}
- vols := make(map[string]core.VolumeSource)
- for i, vol := range volumes {
- idxPath := fldPath.Index(i)
- namePath := idxPath.Child("name")
- el := validateVolumeSource(&vol.VolumeSource, idxPath, vol.Name)
- if len(vol.Name) == 0 {
- el = append(el, field.Required(namePath, ""))
- } else {
- el = append(el, ValidateDNS1123Label(vol.Name, namePath)...)
- }
- if allNames.Has(vol.Name) {
- el = append(el, field.Duplicate(namePath, vol.Name))
- }
- if len(el) == 0 {
- allNames.Insert(vol.Name)
- vols[vol.Name] = vol.VolumeSource
- } else {
- allErrs = append(allErrs, el...)
- }
-
- }
- return vols, allErrs
-}
-
-func IsMatchedVolume(name string, volumes map[string]core.VolumeSource) bool {
- if _, ok := volumes[name]; ok {
- return true
- } else {
- return false
- }
-}
-
-func isMatchedDevice(name string, volumes map[string]core.VolumeSource) (bool, bool) {
- if source, ok := volumes[name]; ok {
- if source.PersistentVolumeClaim != nil {
- return true, true
- } else {
- return true, false
- }
- } else {
- return false, false
- }
-}
-
-func mountNameAlreadyExists(name string, devices map[string]string) bool {
- if _, ok := devices[name]; ok {
- return true
- } else {
- return false
- }
-}
-
-func mountPathAlreadyExists(mountPath string, devices map[string]string) bool {
- for _, devPath := range devices {
- if mountPath == devPath {
- return true
- }
- }
-
- return false
-}
-
-func deviceNameAlreadyExists(name string, mounts map[string]string) bool {
- if _, ok := mounts[name]; ok {
- return true
- } else {
- return false
- }
-}
-
-func devicePathAlreadyExists(devicePath string, mounts map[string]string) bool {
- for _, mountPath := range mounts {
- if mountPath == devicePath {
- return true
- }
- }
-
- return false
-}
-
-func validateVolumeSource(source *core.VolumeSource, fldPath *field.Path, volName string) field.ErrorList {
- numVolumes := 0
- allErrs := field.ErrorList{}
- if source.EmptyDir != nil {
- numVolumes++
- if !utilfeature.DefaultFeatureGate.Enabled(features.LocalStorageCapacityIsolation) {
- if source.EmptyDir.SizeLimit != nil && source.EmptyDir.SizeLimit.Cmp(resource.Quantity{}) != 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("emptyDir").Child("sizeLimit"), "SizeLimit field disabled by feature-gate for EmptyDir volumes"))
- }
- } else {
- if source.EmptyDir.SizeLimit != nil && source.EmptyDir.SizeLimit.Cmp(resource.Quantity{}) < 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("emptyDir").Child("sizeLimit"), "SizeLimit field must be a valid resource quantity"))
- }
- }
- if !utilfeature.DefaultFeatureGate.Enabled(features.HugePages) && source.EmptyDir.Medium == core.StorageMediumHugePages {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("emptyDir").Child("medium"), "HugePages medium is disabled by feature-gate for EmptyDir volumes"))
- }
- }
- if source.HostPath != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("hostPath"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateHostPathVolumeSource(source.HostPath, fldPath.Child("hostPath"))...)
- }
- }
- if source.GitRepo != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("gitRepo"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateGitRepoVolumeSource(source.GitRepo, fldPath.Child("gitRepo"))...)
- }
- }
- if source.GCEPersistentDisk != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("gcePersistentDisk"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateGCEPersistentDiskVolumeSource(source.GCEPersistentDisk, fldPath.Child("persistentDisk"))...)
- }
- }
- if source.AWSElasticBlockStore != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("awsElasticBlockStore"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateAWSElasticBlockStoreVolumeSource(source.AWSElasticBlockStore, fldPath.Child("awsElasticBlockStore"))...)
- }
- }
- if source.Secret != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("secret"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateSecretVolumeSource(source.Secret, fldPath.Child("secret"))...)
- }
- }
- if source.NFS != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("nfs"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateNFSVolumeSource(source.NFS, fldPath.Child("nfs"))...)
- }
- }
- if source.ISCSI != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("iscsi"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateISCSIVolumeSource(source.ISCSI, fldPath.Child("iscsi"))...)
- }
- if source.ISCSI.InitiatorName != nil && len(volName+":"+source.ISCSI.TargetPortal) > 64 {
- tooLongErr := "Total length of <volume name>:<iscsi.targetPortal> must be under 64 characters if iscsi.initiatorName is specified."
- allErrs = append(allErrs, field.Invalid(fldPath.Child("name"), volName, tooLongErr))
- }
- }
- if source.Glusterfs != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("glusterfs"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateGlusterfsVolumeSource(source.Glusterfs, fldPath.Child("glusterfs"))...)
- }
- }
- if source.Flocker != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("flocker"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateFlockerVolumeSource(source.Flocker, fldPath.Child("flocker"))...)
- }
- }
- if source.PersistentVolumeClaim != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("persistentVolumeClaim"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validatePersistentClaimVolumeSource(source.PersistentVolumeClaim, fldPath.Child("persistentVolumeClaim"))...)
- }
- }
- if source.RBD != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("rbd"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateRBDVolumeSource(source.RBD, fldPath.Child("rbd"))...)
- }
- }
- if source.Cinder != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("cinder"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateCinderVolumeSource(source.Cinder, fldPath.Child("cinder"))...)
- }
- }
- if source.CephFS != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("cephFS"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateCephFSVolumeSource(source.CephFS, fldPath.Child("cephfs"))...)
- }
- }
- if source.Quobyte != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("quobyte"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateQuobyteVolumeSource(source.Quobyte, fldPath.Child("quobyte"))...)
- }
- }
- if source.DownwardAPI != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("downwarAPI"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateDownwardAPIVolumeSource(source.DownwardAPI, fldPath.Child("downwardAPI"))...)
- }
- }
- if source.FC != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("fc"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateFCVolumeSource(source.FC, fldPath.Child("fc"))...)
- }
- }
- if source.FlexVolume != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("flexVolume"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateFlexVolumeSource(source.FlexVolume, fldPath.Child("flexVolume"))...)
- }
- }
- if source.ConfigMap != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("configMap"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateConfigMapVolumeSource(source.ConfigMap, fldPath.Child("configMap"))...)
- }
- }
-
- if source.AzureFile != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("azureFile"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateAzureFile(source.AzureFile, fldPath.Child("azureFile"))...)
- }
- }
-
- if source.VsphereVolume != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("vsphereVolume"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateVsphereVolumeSource(source.VsphereVolume, fldPath.Child("vsphereVolume"))...)
- }
- }
- if source.PhotonPersistentDisk != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("photonPersistentDisk"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validatePhotonPersistentDiskVolumeSource(source.PhotonPersistentDisk, fldPath.Child("photonPersistentDisk"))...)
- }
- }
- if source.PortworxVolume != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("portworxVolume"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validatePortworxVolumeSource(source.PortworxVolume, fldPath.Child("portworxVolume"))...)
- }
- }
- if source.AzureDisk != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("azureDisk"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateAzureDisk(source.AzureDisk, fldPath.Child("azureDisk"))...)
- }
- }
- if source.StorageOS != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("storageos"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateStorageOSVolumeSource(source.StorageOS, fldPath.Child("storageos"))...)
- }
- }
- if source.Projected != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("projected"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateProjectedVolumeSource(source.Projected, fldPath.Child("projected"))...)
- }
- }
- if source.ScaleIO != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("scaleIO"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateScaleIOVolumeSource(source.ScaleIO, fldPath.Child("scaleIO"))...)
- }
- }
-
- if numVolumes == 0 {
- allErrs = append(allErrs, field.Required(fldPath, "must specify a volume type"))
- }
-
- return allErrs
-}
-
-func validateHostPathVolumeSource(hostPath *core.HostPathVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(hostPath.Path) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("path"), ""))
- return allErrs
- }
-
- allErrs = append(allErrs, validatePathNoBacksteps(hostPath.Path, fldPath.Child("path"))...)
- allErrs = append(allErrs, validateHostPathType(hostPath.Type, fldPath.Child("type"))...)
- return allErrs
-}
-
-func validateGitRepoVolumeSource(gitRepo *core.GitRepoVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(gitRepo.Repository) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("repository"), ""))
- }
-
- pathErrs := validateLocalDescendingPath(gitRepo.Directory, fldPath.Child("directory"))
- allErrs = append(allErrs, pathErrs...)
- return allErrs
-}
-
-func validateISCSIVolumeSource(iscsi *core.ISCSIVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(iscsi.TargetPortal) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("targetPortal"), ""))
- }
- if len(iscsi.IQN) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("iqn"), ""))
- } else {
- if !strings.HasPrefix(iscsi.IQN, "iqn") && !strings.HasPrefix(iscsi.IQN, "eui") && !strings.HasPrefix(iscsi.IQN, "naa") {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("iqn"), iscsi.IQN, "must be valid format starting with iqn, eui, or naa"))
- } else if strings.HasPrefix(iscsi.IQN, "iqn") && !iscsiInitiatorIqnRegex.MatchString(iscsi.IQN) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("iqn"), iscsi.IQN, "must be valid format"))
- } else if strings.HasPrefix(iscsi.IQN, "eui") && !iscsiInitiatorEuiRegex.MatchString(iscsi.IQN) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("iqn"), iscsi.IQN, "must be valid format"))
- } else if strings.HasPrefix(iscsi.IQN, "naa") && !iscsiInitiatorNaaRegex.MatchString(iscsi.IQN) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("iqn"), iscsi.IQN, "must be valid format"))
- }
- }
- if iscsi.Lun < 0 || iscsi.Lun > 255 {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("lun"), iscsi.Lun, validation.InclusiveRangeError(0, 255)))
- }
- if (iscsi.DiscoveryCHAPAuth || iscsi.SessionCHAPAuth) && iscsi.SecretRef == nil {
- allErrs = append(allErrs, field.Required(fldPath.Child("secretRef"), ""))
- }
- if iscsi.InitiatorName != nil {
- initiator := *iscsi.InitiatorName
- if !strings.HasPrefix(initiator, "iqn") && !strings.HasPrefix(initiator, "eui") && !strings.HasPrefix(initiator, "naa") {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("initiatorname"), initiator, "must be valid format starting with iqn, eui, or naa"))
- }
- if strings.HasPrefix(initiator, "iqn") && !iscsiInitiatorIqnRegex.MatchString(initiator) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("initiatorname"), initiator, "must be valid format"))
- } else if strings.HasPrefix(initiator, "eui") && !iscsiInitiatorEuiRegex.MatchString(initiator) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("initiatorname"), initiator, "must be valid format"))
- } else if strings.HasPrefix(initiator, "naa") && !iscsiInitiatorNaaRegex.MatchString(initiator) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("initiatorname"), initiator, "must be valid format"))
- }
- }
- return allErrs
-}
-
-func validateISCSIPersistentVolumeSource(iscsi *core.ISCSIPersistentVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(iscsi.TargetPortal) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("targetPortal"), ""))
- }
- if len(iscsi.IQN) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("iqn"), ""))
- } else {
- if !strings.HasPrefix(iscsi.IQN, "iqn") && !strings.HasPrefix(iscsi.IQN, "eui") && !strings.HasPrefix(iscsi.IQN, "naa") {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("iqn"), iscsi.IQN, "must be valid format"))
- } else if strings.HasPrefix(iscsi.IQN, "iqn") && !iscsiInitiatorIqnRegex.MatchString(iscsi.IQN) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("iqn"), iscsi.IQN, "must be valid format"))
- } else if strings.HasPrefix(iscsi.IQN, "eui") && !iscsiInitiatorEuiRegex.MatchString(iscsi.IQN) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("iqn"), iscsi.IQN, "must be valid format"))
- } else if strings.HasPrefix(iscsi.IQN, "naa") && !iscsiInitiatorNaaRegex.MatchString(iscsi.IQN) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("iqn"), iscsi.IQN, "must be valid format"))
- }
- }
- if iscsi.Lun < 0 || iscsi.Lun > 255 {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("lun"), iscsi.Lun, validation.InclusiveRangeError(0, 255)))
- }
- if (iscsi.DiscoveryCHAPAuth || iscsi.SessionCHAPAuth) && iscsi.SecretRef == nil {
- allErrs = append(allErrs, field.Required(fldPath.Child("secretRef"), ""))
- }
- if iscsi.SecretRef != nil {
- if len(iscsi.SecretRef.Name) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("secretRef", "name"), ""))
- }
- }
- if iscsi.InitiatorName != nil {
- initiator := *iscsi.InitiatorName
- if !strings.HasPrefix(initiator, "iqn") && !strings.HasPrefix(initiator, "eui") && !strings.HasPrefix(initiator, "naa") {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("initiatorname"), initiator, "must be valid format"))
- }
- if strings.HasPrefix(initiator, "iqn") && !iscsiInitiatorIqnRegex.MatchString(initiator) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("initiatorname"), initiator, "must be valid format"))
- } else if strings.HasPrefix(initiator, "eui") && !iscsiInitiatorEuiRegex.MatchString(initiator) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("initiatorname"), initiator, "must be valid format"))
- } else if strings.HasPrefix(initiator, "naa") && !iscsiInitiatorNaaRegex.MatchString(initiator) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("initiatorname"), initiator, "must be valid format"))
- }
- }
- return allErrs
-}
-
-func validateFCVolumeSource(fc *core.FCVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(fc.TargetWWNs) < 1 && len(fc.WWIDs) < 1 {
- allErrs = append(allErrs, field.Required(fldPath.Child("targetWWNs"), "must specify either targetWWNs or wwids, but not both"))
- }
-
- if len(fc.TargetWWNs) != 0 && len(fc.WWIDs) != 0 {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("targetWWNs"), fc.TargetWWNs, "targetWWNs and wwids can not be specified simultaneously"))
- }
-
- if len(fc.TargetWWNs) != 0 {
- if fc.Lun == nil {
- allErrs = append(allErrs, field.Required(fldPath.Child("lun"), "lun is required if targetWWNs is specified"))
- } else {
- if *fc.Lun < 0 || *fc.Lun > 255 {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("lun"), fc.Lun, validation.InclusiveRangeError(0, 255)))
- }
- }
- }
- return allErrs
-}
-
-func validateGCEPersistentDiskVolumeSource(pd *core.GCEPersistentDiskVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(pd.PDName) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("pdName"), ""))
- }
- if pd.Partition < 0 || pd.Partition > 255 {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("partition"), pd.Partition, pdPartitionErrorMsg))
- }
- return allErrs
-}
-
-func validateAWSElasticBlockStoreVolumeSource(PD *core.AWSElasticBlockStoreVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(PD.VolumeID) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("volumeID"), ""))
- }
- if PD.Partition < 0 || PD.Partition > 255 {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("partition"), PD.Partition, pdPartitionErrorMsg))
- }
- return allErrs
-}
-
-func validateSecretVolumeSource(secretSource *core.SecretVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(secretSource.SecretName) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("secretName"), ""))
- }
-
- secretMode := secretSource.DefaultMode
- if secretMode != nil && (*secretMode > 0777 || *secretMode < 0) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("defaultMode"), *secretMode, fileModeErrorMsg))
- }
-
- itemsPath := fldPath.Child("items")
- for i, kp := range secretSource.Items {
- itemPath := itemsPath.Index(i)
- allErrs = append(allErrs, validateKeyToPath(&kp, itemPath)...)
- }
- return allErrs
-}
-
-func validateConfigMapVolumeSource(configMapSource *core.ConfigMapVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(configMapSource.Name) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("name"), ""))
- }
-
- configMapMode := configMapSource.DefaultMode
- if configMapMode != nil && (*configMapMode > 0777 || *configMapMode < 0) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("defaultMode"), *configMapMode, fileModeErrorMsg))
- }
-
- itemsPath := fldPath.Child("items")
- for i, kp := range configMapSource.Items {
- itemPath := itemsPath.Index(i)
- allErrs = append(allErrs, validateKeyToPath(&kp, itemPath)...)
- }
- return allErrs
-}
-
-func validateKeyToPath(kp *core.KeyToPath, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(kp.Key) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("key"), ""))
- }
- if len(kp.Path) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("path"), ""))
- }
- allErrs = append(allErrs, validateLocalNonReservedPath(kp.Path, fldPath.Child("path"))...)
- if kp.Mode != nil && (*kp.Mode > 0777 || *kp.Mode < 0) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("mode"), *kp.Mode, fileModeErrorMsg))
- }
-
- return allErrs
-}
-
-func validatePersistentClaimVolumeSource(claim *core.PersistentVolumeClaimVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(claim.ClaimName) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("claimName"), ""))
- }
- return allErrs
-}
-
-func validateNFSVolumeSource(nfs *core.NFSVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(nfs.Server) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("server"), ""))
- }
- if len(nfs.Path) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("path"), ""))
- }
- if !path.IsAbs(nfs.Path) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("path"), nfs.Path, "must be an absolute path"))
- }
- return allErrs
-}
-
-func validateQuobyteVolumeSource(quobyte *core.QuobyteVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(quobyte.Registry) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("registry"), "must be a host:port pair or multiple pairs separated by commas"))
- } else {
- for _, hostPortPair := range strings.Split(quobyte.Registry, ",") {
- if _, _, err := net.SplitHostPort(hostPortPair); err != nil {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("registry"), quobyte.Registry, "must be a host:port pair or multiple pairs separated by commas"))
- }
- }
- }
-
- if len(quobyte.Volume) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("volume"), ""))
- }
- return allErrs
-}
-
-func validateGlusterfsVolumeSource(glusterfs *core.GlusterfsVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(glusterfs.EndpointsName) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("endpoints"), ""))
- }
- if len(glusterfs.Path) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("path"), ""))
- }
- return allErrs
-}
-
-func validateFlockerVolumeSource(flocker *core.FlockerVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(flocker.DatasetName) == 0 && len(flocker.DatasetUUID) == 0 {
- //TODO: consider adding a RequiredOneOf() error for this and similar cases
- allErrs = append(allErrs, field.Required(fldPath, "one of datasetName and datasetUUID is required"))
- }
- if len(flocker.DatasetName) != 0 && len(flocker.DatasetUUID) != 0 {
- allErrs = append(allErrs, field.Invalid(fldPath, "resource", "datasetName and datasetUUID can not be specified simultaneously"))
- }
- if strings.Contains(flocker.DatasetName, "/") {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("datasetName"), flocker.DatasetName, "must not contain '/'"))
- }
- return allErrs
-}
-
-var validVolumeDownwardAPIFieldPathExpressions = sets.NewString(
- "metadata.name",
- "metadata.namespace",
- "metadata.labels",
- "metadata.annotations",
- "metadata.uid")
-
-func validateDownwardAPIVolumeFile(file *core.DownwardAPIVolumeFile, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- if len(file.Path) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("path"), ""))
- }
- allErrs = append(allErrs, validateLocalNonReservedPath(file.Path, fldPath.Child("path"))...)
- if file.FieldRef != nil {
- allErrs = append(allErrs, validateObjectFieldSelector(file.FieldRef, &validVolumeDownwardAPIFieldPathExpressions, fldPath.Child("fieldRef"))...)
- if file.ResourceFieldRef != nil {
- allErrs = append(allErrs, field.Invalid(fldPath, "resource", "fieldRef and resourceFieldRef can not be specified simultaneously"))
- }
- } else if file.ResourceFieldRef != nil {
- allErrs = append(allErrs, validateContainerResourceFieldSelector(file.ResourceFieldRef, &validContainerResourceFieldPathExpressions, fldPath.Child("resourceFieldRef"), true)...)
- } else {
- allErrs = append(allErrs, field.Required(fldPath, "one of fieldRef and resourceFieldRef is required"))
- }
- if file.Mode != nil && (*file.Mode > 0777 || *file.Mode < 0) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("mode"), *file.Mode, fileModeErrorMsg))
- }
-
- return allErrs
-}
-
-func validateDownwardAPIVolumeSource(downwardAPIVolume *core.DownwardAPIVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- downwardAPIMode := downwardAPIVolume.DefaultMode
- if downwardAPIMode != nil && (*downwardAPIMode > 0777 || *downwardAPIMode < 0) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("defaultMode"), *downwardAPIMode, fileModeErrorMsg))
- }
-
- for _, file := range downwardAPIVolume.Items {
- allErrs = append(allErrs, validateDownwardAPIVolumeFile(&file, fldPath)...)
- }
- return allErrs
-}
-
-func validateProjectionSources(projection *core.ProjectedVolumeSource, projectionMode *int32, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- allPaths := sets.String{}
-
- for _, source := range projection.Sources {
- numSources := 0
- if source.Secret != nil {
- if numSources > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("secret"), "may not specify more than 1 volume type"))
- } else {
- numSources++
- if len(source.Secret.Name) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("name"), ""))
- }
- itemsPath := fldPath.Child("items")
- for i, kp := range source.Secret.Items {
- itemPath := itemsPath.Index(i)
- allErrs = append(allErrs, validateKeyToPath(&kp, itemPath)...)
- if len(kp.Path) > 0 {
- curPath := kp.Path
- if !allPaths.Has(curPath) {
- allPaths.Insert(curPath)
- } else {
- allErrs = append(allErrs, field.Invalid(fldPath, source.Secret.Name, "conflicting duplicate paths"))
- }
- }
- }
- }
- }
- if source.ConfigMap != nil {
- if numSources > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("configMap"), "may not specify more than 1 volume type"))
- } else {
- numSources++
- if len(source.ConfigMap.Name) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("name"), ""))
- }
- itemsPath := fldPath.Child("items")
- for i, kp := range source.ConfigMap.Items {
- itemPath := itemsPath.Index(i)
- allErrs = append(allErrs, validateKeyToPath(&kp, itemPath)...)
- if len(kp.Path) > 0 {
- curPath := kp.Path
- if !allPaths.Has(curPath) {
- allPaths.Insert(curPath)
- } else {
- allErrs = append(allErrs, field.Invalid(fldPath, source.ConfigMap.Name, "conflicting duplicate paths"))
- }
-
- }
- }
- }
- }
- if source.DownwardAPI != nil {
- if numSources > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("downwardAPI"), "may not specify more than 1 volume type"))
- } else {
- numSources++
- for _, file := range source.DownwardAPI.Items {
- allErrs = append(allErrs, validateDownwardAPIVolumeFile(&file, fldPath.Child("downwardAPI"))...)
- if len(file.Path) > 0 {
- curPath := file.Path
- if !allPaths.Has(curPath) {
- allPaths.Insert(curPath)
- } else {
- allErrs = append(allErrs, field.Invalid(fldPath, curPath, "conflicting duplicate paths"))
- }
-
- }
- }
- }
- }
- }
- return allErrs
-}
-
-func validateProjectedVolumeSource(projection *core.ProjectedVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- projectionMode := projection.DefaultMode
- if projectionMode != nil && (*projectionMode > 0777 || *projectionMode < 0) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("defaultMode"), *projectionMode, fileModeErrorMsg))
- }
-
- allErrs = append(allErrs, validateProjectionSources(projection, projectionMode, fldPath)...)
- return allErrs
-}
-
-var supportedHostPathTypes = sets.NewString(
- string(core.HostPathUnset),
- string(core.HostPathDirectoryOrCreate),
- string(core.HostPathDirectory),
- string(core.HostPathFileOrCreate),
- string(core.HostPathFile),
- string(core.HostPathSocket),
- string(core.HostPathCharDev),
- string(core.HostPathBlockDev))
-
-func validateHostPathType(hostPathType *core.HostPathType, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- if hostPathType != nil && !supportedHostPathTypes.Has(string(*hostPathType)) {
- allErrs = append(allErrs, field.NotSupported(fldPath, hostPathType, supportedHostPathTypes.List()))
- }
-
- return allErrs
-}
-
-// This validate will make sure targetPath:
-// 1. is not abs path
-// 2. does not have any element which is ".."
-func validateLocalDescendingPath(targetPath string, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if path.IsAbs(targetPath) {
- allErrs = append(allErrs, field.Invalid(fldPath, targetPath, "must be a relative path"))
- }
-
- allErrs = append(allErrs, validatePathNoBacksteps(targetPath, fldPath)...)
-
- return allErrs
-}
-
-// validatePathNoBacksteps makes sure the targetPath does not have any `..` path elements when split
-//
-// This assumes the OS of the apiserver and the nodes are the same. The same check should be done
-// on the node to ensure there are no backsteps.
-func validatePathNoBacksteps(targetPath string, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- parts := strings.Split(filepath.ToSlash(targetPath), "/")
- for _, item := range parts {
- if item == ".." {
- allErrs = append(allErrs, field.Invalid(fldPath, targetPath, "must not contain '..'"))
- break // even for `../../..`, one error is sufficient to make the point
- }
- }
- return allErrs
-}
-
-// validateMountPropagation verifies that MountPropagation field is valid and
-// allowed for given container.
-func validateMountPropagation(mountPropagation *core.MountPropagationMode, container *core.Container, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- if mountPropagation == nil {
- return allErrs
- }
- if !utilfeature.DefaultFeatureGate.Enabled(features.MountPropagation) {
- allErrs = append(allErrs, field.Forbidden(fldPath, "mount propagation is disabled by feature-gate"))
- return allErrs
- }
-
- supportedMountPropagations := sets.NewString(string(core.MountPropagationBidirectional), string(core.MountPropagationHostToContainer))
- if !supportedMountPropagations.Has(string(*mountPropagation)) {
- allErrs = append(allErrs, field.NotSupported(fldPath, *mountPropagation, supportedMountPropagations.List()))
- }
-
- if container == nil {
- // The container is not available yet, e.g. during validation of
- // PodPreset. Stop validation now, Pod validation will refuse final
- // Pods with Bidirectional propagation in non-privileged containers.
- return allErrs
- }
-
- privileged := container.SecurityContext != nil && container.SecurityContext.Privileged != nil && *container.SecurityContext.Privileged
- if *mountPropagation == core.MountPropagationBidirectional && !privileged {
- allErrs = append(allErrs, field.Forbidden(fldPath, "Bidirectional mount propagation is available only to privileged containers"))
- }
- return allErrs
-}
-
-// This validate will make sure targetPath:
-// 1. is not abs path
-// 2. does not contain any '..' elements
-// 3. does not start with '..'
-func validateLocalNonReservedPath(targetPath string, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- allErrs = append(allErrs, validateLocalDescendingPath(targetPath, fldPath)...)
- // Don't report this error if the check for .. elements already caught it.
- if strings.HasPrefix(targetPath, "..") && !strings.HasPrefix(targetPath, "../") {
- allErrs = append(allErrs, field.Invalid(fldPath, targetPath, "must not start with '..'"))
- }
- return allErrs
-}
-
-func validateRBDVolumeSource(rbd *core.RBDVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(rbd.CephMonitors) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("monitors"), ""))
- }
- if len(rbd.RBDImage) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("image"), ""))
- }
- return allErrs
-}
-
-func validateRBDPersistentVolumeSource(rbd *core.RBDPersistentVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(rbd.CephMonitors) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("monitors"), ""))
- }
- if len(rbd.RBDImage) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("image"), ""))
- }
- return allErrs
-}
-
-func validateCinderVolumeSource(cd *core.CinderVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(cd.VolumeID) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("volumeID"), ""))
- }
- return allErrs
-}
-
-func validateCephFSVolumeSource(cephfs *core.CephFSVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(cephfs.Monitors) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("monitors"), ""))
- }
- return allErrs
-}
-
-func validateCephFSPersistentVolumeSource(cephfs *core.CephFSPersistentVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(cephfs.Monitors) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("monitors"), ""))
- }
- return allErrs
-}
-
-func validateFlexVolumeSource(fv *core.FlexVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(fv.Driver) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("driver"), ""))
- }
-
- // Make sure user-specified options don't use kubernetes namespaces
- for k := range fv.Options {
- namespace := k
- if parts := strings.SplitN(k, "/", 2); len(parts) == 2 {
- namespace = parts[0]
- }
- normalized := "." + strings.ToLower(namespace)
- if strings.HasSuffix(normalized, ".kubernetes.io") || strings.HasSuffix(normalized, ".k8s.io") {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("options").Key(k), k, "kubernetes.io and k8s.io namespaces are reserved"))
- }
- }
-
- return allErrs
-}
-
-func validateFlexPersistentVolumeSource(fv *core.FlexPersistentVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(fv.Driver) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("driver"), ""))
- }
-
- // Make sure user-specified options don't use kubernetes namespaces
- for k := range fv.Options {
- namespace := k
- if parts := strings.SplitN(k, "/", 2); len(parts) == 2 {
- namespace = parts[0]
- }
- normalized := "." + strings.ToLower(namespace)
- if strings.HasSuffix(normalized, ".kubernetes.io") || strings.HasSuffix(normalized, ".k8s.io") {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("options").Key(k), k, "kubernetes.io and k8s.io namespaces are reserved"))
- }
- }
-
- return allErrs
-}
-
-func validateAzureFile(azure *core.AzureFileVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if azure.SecretName == "" {
- allErrs = append(allErrs, field.Required(fldPath.Child("secretName"), ""))
- }
- if azure.ShareName == "" {
- allErrs = append(allErrs, field.Required(fldPath.Child("shareName"), ""))
- }
- return allErrs
-}
-
-func validateAzureFilePV(azure *core.AzureFilePersistentVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if azure.SecretName == "" {
- allErrs = append(allErrs, field.Required(fldPath.Child("secretName"), ""))
- }
- if azure.ShareName == "" {
- allErrs = append(allErrs, field.Required(fldPath.Child("shareName"), ""))
- }
- if azure.SecretNamespace != nil {
- if len(*azure.SecretNamespace) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("secretNamespace"), ""))
- }
- }
- return allErrs
-}
-
-func validateAzureDisk(azure *core.AzureDiskVolumeSource, fldPath *field.Path) field.ErrorList {
- var supportedCachingModes = sets.NewString(string(core.AzureDataDiskCachingNone), string(core.AzureDataDiskCachingReadOnly), string(core.AzureDataDiskCachingReadWrite))
- var supportedDiskKinds = sets.NewString(string(core.AzureSharedBlobDisk), string(core.AzureDedicatedBlobDisk), string(core.AzureManagedDisk))
-
- diskUriSupportedManaged := []string{"/subscriptions/{sub-id}/resourcegroups/{group-name}/providers/microsoft.compute/disks/{disk-id}"}
- diskUriSupportedblob := []string{"https://{account-name}.blob.core.windows.net/{container-name}/{disk-name}.vhd"}
-
- allErrs := field.ErrorList{}
- if azure.DiskName == "" {
- allErrs = append(allErrs, field.Required(fldPath.Child("diskName"), ""))
- }
-
- if azure.DataDiskURI == "" {
- allErrs = append(allErrs, field.Required(fldPath.Child("diskURI"), ""))
- }
-
- if azure.CachingMode != nil && !supportedCachingModes.Has(string(*azure.CachingMode)) {
- allErrs = append(allErrs, field.NotSupported(fldPath.Child("cachingMode"), *azure.CachingMode, supportedCachingModes.List()))
- }
-
- if azure.Kind != nil && !supportedDiskKinds.Has(string(*azure.Kind)) {
- allErrs = append(allErrs, field.NotSupported(fldPath.Child("kind"), *azure.Kind, supportedDiskKinds.List()))
- }
-
- // validate that DiskUri is the correct format
- if azure.Kind != nil && *azure.Kind == core.AzureManagedDisk && strings.Index(azure.DataDiskURI, "/subscriptions/") != 0 {
- allErrs = append(allErrs, field.NotSupported(fldPath.Child("diskURI"), azure.DataDiskURI, diskUriSupportedManaged))
- }
-
- if azure.Kind != nil && *azure.Kind != core.AzureManagedDisk && strings.Index(azure.DataDiskURI, "https://") != 0 {
- allErrs = append(allErrs, field.NotSupported(fldPath.Child("diskURI"), azure.DataDiskURI, diskUriSupportedblob))
- }
-
- return allErrs
-}
-
-func validateVsphereVolumeSource(cd *core.VsphereVirtualDiskVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(cd.VolumePath) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("volumePath"), ""))
- }
- return allErrs
-}
-
-func validatePhotonPersistentDiskVolumeSource(cd *core.PhotonPersistentDiskVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(cd.PdID) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("pdID"), ""))
- }
- return allErrs
-}
-
-func validatePortworxVolumeSource(pwx *core.PortworxVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(pwx.VolumeID) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("volumeID"), ""))
- }
- return allErrs
-}
-
-func validateScaleIOVolumeSource(sio *core.ScaleIOVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if sio.Gateway == "" {
- allErrs = append(allErrs, field.Required(fldPath.Child("gateway"), ""))
- }
- if sio.System == "" {
- allErrs = append(allErrs, field.Required(fldPath.Child("system"), ""))
- }
- if sio.VolumeName == "" {
- allErrs = append(allErrs, field.Required(fldPath.Child("volumeName"), ""))
- }
- return allErrs
-}
-
-func validateScaleIOPersistentVolumeSource(sio *core.ScaleIOPersistentVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if sio.Gateway == "" {
- allErrs = append(allErrs, field.Required(fldPath.Child("gateway"), ""))
- }
- if sio.System == "" {
- allErrs = append(allErrs, field.Required(fldPath.Child("system"), ""))
- }
- if sio.VolumeName == "" {
- allErrs = append(allErrs, field.Required(fldPath.Child("volumeName"), ""))
- }
- return allErrs
-}
-
-func validateLocalVolumeSource(ls *core.LocalVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if ls.Path == "" {
- allErrs = append(allErrs, field.Required(fldPath.Child("path"), ""))
- return allErrs
- }
-
- if !path.IsAbs(ls.Path) {
- allErrs = append(allErrs, field.Invalid(fldPath, ls.Path, "must be an absolute path"))
- }
- allErrs = append(allErrs, validatePathNoBacksteps(ls.Path, fldPath.Child("path"))...)
- return allErrs
-}
-
-func validateStorageOSVolumeSource(storageos *core.StorageOSVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(storageos.VolumeName) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("volumeName"), ""))
- } else {
- allErrs = append(allErrs, ValidateDNS1123Label(storageos.VolumeName, fldPath.Child("volumeName"))...)
- }
- if len(storageos.VolumeNamespace) > 0 {
- allErrs = append(allErrs, ValidateDNS1123Label(storageos.VolumeNamespace, fldPath.Child("volumeNamespace"))...)
- }
- if storageos.SecretRef != nil {
- if len(storageos.SecretRef.Name) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("secretRef", "name"), ""))
- }
- }
- return allErrs
-}
-
-func validateStorageOSPersistentVolumeSource(storageos *core.StorageOSPersistentVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(storageos.VolumeName) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("volumeName"), ""))
- } else {
- allErrs = append(allErrs, ValidateDNS1123Label(storageos.VolumeName, fldPath.Child("volumeName"))...)
- }
- if len(storageos.VolumeNamespace) > 0 {
- allErrs = append(allErrs, ValidateDNS1123Label(storageos.VolumeNamespace, fldPath.Child("volumeNamespace"))...)
- }
- if storageos.SecretRef != nil {
- if len(storageos.SecretRef.Name) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("secretRef", "name"), ""))
- }
- if len(storageos.SecretRef.Namespace) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("secretRef", "namespace"), ""))
- }
- }
- return allErrs
-}
-
-func validateCSIPersistentVolumeSource(csi *core.CSIPersistentVolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- if !utilfeature.DefaultFeatureGate.Enabled(features.CSIPersistentVolume) {
- allErrs = append(allErrs, field.Forbidden(fldPath, "CSIPersistentVolume disabled by feature-gate"))
- }
-
- if len(csi.Driver) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("driver"), ""))
- }
-
- if len(csi.Driver) > 63 {
- allErrs = append(allErrs, field.TooLong(fldPath.Child("driver"), csi.Driver, 63))
- }
-
- if !csiDriverNameRexp.MatchString(csi.Driver) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("driver"), csi.Driver, validation.RegexError(csiDriverNameRexpErrMsg, csiDriverNameRexpFmt, "csi-hostpath")))
- }
-
- if len(csi.VolumeHandle) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("volumeHandle"), ""))
- }
-
- if csi.ControllerPublishSecretRef != nil {
- if len(csi.ControllerPublishSecretRef.Name) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("controllerPublishSecretRef", "name"), ""))
- } else {
- allErrs = append(allErrs, ValidateDNS1123Label(csi.ControllerPublishSecretRef.Name, fldPath.Child("name"))...)
- }
- if len(csi.ControllerPublishSecretRef.Namespace) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("controllerPublishSecretRef", "namespace"), ""))
- } else {
- allErrs = append(allErrs, ValidateDNS1123Label(csi.ControllerPublishSecretRef.Namespace, fldPath.Child("namespace"))...)
- }
- }
-
- if csi.NodePublishSecretRef != nil {
- if len(csi.NodePublishSecretRef.Name) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("nodePublishSecretRef ", "name"), ""))
- } else {
- allErrs = append(allErrs, ValidateDNS1123Label(csi.NodePublishSecretRef.Name, fldPath.Child("name"))...)
- }
- if len(csi.NodePublishSecretRef.Namespace) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("nodePublishSecretRef ", "namespace"), ""))
- } else {
- allErrs = append(allErrs, ValidateDNS1123Label(csi.NodePublishSecretRef.Namespace, fldPath.Child("namespace"))...)
- }
- }
-
- if csi.NodeStageSecretRef != nil {
- if len(csi.NodeStageSecretRef.Name) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("nodeStageSecretRef", "name"), ""))
- } else {
- allErrs = append(allErrs, ValidateDNS1123Label(csi.NodeStageSecretRef.Name, fldPath.Child("name"))...)
- }
- if len(csi.NodeStageSecretRef.Namespace) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("nodeStageSecretRef", "namespace"), ""))
- } else {
- allErrs = append(allErrs, ValidateDNS1123Label(csi.NodeStageSecretRef.Namespace, fldPath.Child("namespace"))...)
- }
- }
-
- return allErrs
-}
-
-// ValidatePersistentVolumeName checks that a name is appropriate for a
-// PersistentVolumeName object.
-var ValidatePersistentVolumeName = NameIsDNSSubdomain
-
-var supportedAccessModes = sets.NewString(string(core.ReadWriteOnce), string(core.ReadOnlyMany), string(core.ReadWriteMany))
-
-var supportedReclaimPolicy = sets.NewString(string(core.PersistentVolumeReclaimDelete), string(core.PersistentVolumeReclaimRecycle), string(core.PersistentVolumeReclaimRetain))
-
-var supportedVolumeModes = sets.NewString(string(core.PersistentVolumeBlock), string(core.PersistentVolumeFilesystem))
-
-func ValidatePersistentVolume(pv *core.PersistentVolume) field.ErrorList {
- metaPath := field.NewPath("metadata")
- allErrs := ValidateObjectMeta(&pv.ObjectMeta, false, ValidatePersistentVolumeName, metaPath)
-
- specPath := field.NewPath("spec")
- if len(pv.Spec.AccessModes) == 0 {
- allErrs = append(allErrs, field.Required(specPath.Child("accessModes"), ""))
- }
- for _, mode := range pv.Spec.AccessModes {
- if !supportedAccessModes.Has(string(mode)) {
- allErrs = append(allErrs, field.NotSupported(specPath.Child("accessModes"), mode, supportedAccessModes.List()))
- }
- }
-
- if len(pv.Spec.Capacity) == 0 {
- allErrs = append(allErrs, field.Required(specPath.Child("capacity"), ""))
- }
-
- if _, ok := pv.Spec.Capacity[core.ResourceStorage]; !ok || len(pv.Spec.Capacity) > 1 {
- allErrs = append(allErrs, field.NotSupported(specPath.Child("capacity"), pv.Spec.Capacity, []string{string(core.ResourceStorage)}))
- }
- capPath := specPath.Child("capacity")
- for r, qty := range pv.Spec.Capacity {
- allErrs = append(allErrs, validateBasicResource(qty, capPath.Key(string(r)))...)
- allErrs = append(allErrs, ValidatePositiveQuantityValue(qty, capPath.Key(string(r)))...)
- }
- if len(string(pv.Spec.PersistentVolumeReclaimPolicy)) > 0 {
- if !supportedReclaimPolicy.Has(string(pv.Spec.PersistentVolumeReclaimPolicy)) {
- allErrs = append(allErrs, field.NotSupported(specPath.Child("persistentVolumeReclaimPolicy"), pv.Spec.PersistentVolumeReclaimPolicy, supportedReclaimPolicy.List()))
- }
- }
-
- nodeAffinitySpecified, errs := validateStorageNodeAffinityAnnotation(pv.ObjectMeta.Annotations, metaPath.Child("annotations"))
- allErrs = append(allErrs, errs...)
-
- volumeNodeAffinitySpecified, errs := validateVolumeNodeAffinity(pv.Spec.NodeAffinity, specPath.Child("nodeAffinity"))
- allErrs = append(allErrs, errs...)
-
- if nodeAffinitySpecified && volumeNodeAffinitySpecified {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("nodeAffinity"), "may not specify both alpha nodeAffinity annotation and nodeAffinity field"))
- }
-
- nodeAffinitySpecified = nodeAffinitySpecified || volumeNodeAffinitySpecified
-
- numVolumes := 0
- if pv.Spec.HostPath != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("hostPath"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateHostPathVolumeSource(pv.Spec.HostPath, specPath.Child("hostPath"))...)
- }
- }
- if pv.Spec.GCEPersistentDisk != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("gcePersistentDisk"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateGCEPersistentDiskVolumeSource(pv.Spec.GCEPersistentDisk, specPath.Child("persistentDisk"))...)
- }
- }
- if pv.Spec.AWSElasticBlockStore != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("awsElasticBlockStore"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateAWSElasticBlockStoreVolumeSource(pv.Spec.AWSElasticBlockStore, specPath.Child("awsElasticBlockStore"))...)
- }
- }
- if pv.Spec.Glusterfs != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("glusterfs"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateGlusterfsVolumeSource(pv.Spec.Glusterfs, specPath.Child("glusterfs"))...)
- }
- }
- if pv.Spec.Flocker != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("flocker"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateFlockerVolumeSource(pv.Spec.Flocker, specPath.Child("flocker"))...)
- }
- }
- if pv.Spec.NFS != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("nfs"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateNFSVolumeSource(pv.Spec.NFS, specPath.Child("nfs"))...)
- }
- }
- if pv.Spec.RBD != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("rbd"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateRBDPersistentVolumeSource(pv.Spec.RBD, specPath.Child("rbd"))...)
- }
- }
- if pv.Spec.Quobyte != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("quobyte"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateQuobyteVolumeSource(pv.Spec.Quobyte, specPath.Child("quobyte"))...)
- }
- }
- if pv.Spec.CephFS != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("cephFS"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateCephFSPersistentVolumeSource(pv.Spec.CephFS, specPath.Child("cephfs"))...)
- }
- }
- if pv.Spec.ISCSI != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("iscsi"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateISCSIPersistentVolumeSource(pv.Spec.ISCSI, specPath.Child("iscsi"))...)
- }
- if pv.Spec.ISCSI.InitiatorName != nil && len(pv.ObjectMeta.Name+":"+pv.Spec.ISCSI.TargetPortal) > 64 {
- tooLongErr := "Total length of <volume name>:<iscsi.targetPortal> must be under 64 characters if iscsi.initiatorName is specified."
- allErrs = append(allErrs, field.Invalid(metaPath.Child("name"), pv.ObjectMeta.Name, tooLongErr))
- }
- }
- if pv.Spec.Cinder != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("cinder"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateCinderVolumeSource(pv.Spec.Cinder, specPath.Child("cinder"))...)
- }
- }
- if pv.Spec.FC != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("fc"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateFCVolumeSource(pv.Spec.FC, specPath.Child("fc"))...)
- }
- }
- if pv.Spec.FlexVolume != nil {
- numVolumes++
- allErrs = append(allErrs, validateFlexPersistentVolumeSource(pv.Spec.FlexVolume, specPath.Child("flexVolume"))...)
- }
- if pv.Spec.AzureFile != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("azureFile"), "may not specify more than 1 volume type"))
-
- } else {
- numVolumes++
- allErrs = append(allErrs, validateAzureFilePV(pv.Spec.AzureFile, specPath.Child("azureFile"))...)
- }
- }
-
- if pv.Spec.VsphereVolume != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("vsphereVolume"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateVsphereVolumeSource(pv.Spec.VsphereVolume, specPath.Child("vsphereVolume"))...)
- }
- }
- if pv.Spec.PhotonPersistentDisk != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("photonPersistentDisk"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validatePhotonPersistentDiskVolumeSource(pv.Spec.PhotonPersistentDisk, specPath.Child("photonPersistentDisk"))...)
- }
- }
- if pv.Spec.PortworxVolume != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("portworxVolume"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validatePortworxVolumeSource(pv.Spec.PortworxVolume, specPath.Child("portworxVolume"))...)
- }
- }
- if pv.Spec.AzureDisk != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("azureDisk"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateAzureDisk(pv.Spec.AzureDisk, specPath.Child("azureDisk"))...)
- }
- }
- if pv.Spec.ScaleIO != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("scaleIO"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateScaleIOPersistentVolumeSource(pv.Spec.ScaleIO, specPath.Child("scaleIO"))...)
- }
- }
- if pv.Spec.Local != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("local"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- if !utilfeature.DefaultFeatureGate.Enabled(features.PersistentLocalVolumes) {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("local"), "Local volumes are disabled by feature-gate"))
- }
- allErrs = append(allErrs, validateLocalVolumeSource(pv.Spec.Local, specPath.Child("local"))...)
-
- // NodeAffinity is required
- if !nodeAffinitySpecified {
- allErrs = append(allErrs, field.Required(metaPath.Child("annotations"), "Local volume requires node affinity"))
- }
- }
- }
- if pv.Spec.StorageOS != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("storageos"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateStorageOSPersistentVolumeSource(pv.Spec.StorageOS, specPath.Child("storageos"))...)
- }
- }
-
- if pv.Spec.CSI != nil {
- if numVolumes > 0 {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("csi"), "may not specify more than 1 volume type"))
- } else {
- numVolumes++
- allErrs = append(allErrs, validateCSIPersistentVolumeSource(pv.Spec.CSI, specPath.Child("csi"))...)
- }
- }
-
- if numVolumes == 0 {
- allErrs = append(allErrs, field.Required(specPath, "must specify a volume type"))
- }
-
- // do not allow hostPath mounts of '/' to have a 'recycle' reclaim policy
- if pv.Spec.HostPath != nil && path.Clean(pv.Spec.HostPath.Path) == "/" && pv.Spec.PersistentVolumeReclaimPolicy == core.PersistentVolumeReclaimRecycle {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("persistentVolumeReclaimPolicy"), "may not be 'recycle' for a hostPath mount of '/'"))
- }
-
- if len(pv.Spec.StorageClassName) > 0 {
- for _, msg := range ValidateClassName(pv.Spec.StorageClassName, false) {
- allErrs = append(allErrs, field.Invalid(specPath.Child("storageClassName"), pv.Spec.StorageClassName, msg))
- }
- }
- if pv.Spec.VolumeMode != nil && !utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("volumeMode"), "PersistentVolume volumeMode is disabled by feature-gate"))
- } else if pv.Spec.VolumeMode != nil && !supportedVolumeModes.Has(string(*pv.Spec.VolumeMode)) {
- allErrs = append(allErrs, field.NotSupported(specPath.Child("volumeMode"), *pv.Spec.VolumeMode, supportedVolumeModes.List()))
- }
- return allErrs
-}
-
-// ValidatePersistentVolumeUpdate tests to see if the update is legal for an end user to make.
-// newPv is updated with fields that cannot be changed.
-func ValidatePersistentVolumeUpdate(newPv, oldPv *core.PersistentVolume) field.ErrorList {
- allErrs := field.ErrorList{}
- allErrs = ValidatePersistentVolume(newPv)
-
- // PersistentVolumeSource should be immutable after creation.
- if !apiequality.Semantic.DeepEqual(newPv.Spec.PersistentVolumeSource, oldPv.Spec.PersistentVolumeSource) {
- allErrs = append(allErrs, field.Forbidden(field.NewPath("spec", "persistentvolumesource"), "is immutable after creation"))
- }
-
- newPv.Status = oldPv.Status
-
- if utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
- allErrs = append(allErrs, ValidateImmutableField(newPv.Spec.VolumeMode, oldPv.Spec.VolumeMode, field.NewPath("volumeMode"))...)
- }
-
- if utilfeature.DefaultFeatureGate.Enabled(features.VolumeScheduling) {
- // Allow setting NodeAffinity if oldPv NodeAffinity was not set
- if oldPv.Spec.NodeAffinity != nil {
- allErrs = append(allErrs, ValidateImmutableField(newPv.Spec.NodeAffinity, oldPv.Spec.NodeAffinity, field.NewPath("nodeAffinity"))...)
- }
- }
-
- return allErrs
-}
-
-// ValidatePersistentVolumeStatusUpdate tests to see if the status update is legal for an end user to make.
-// newPv is updated with fields that cannot be changed.
-func ValidatePersistentVolumeStatusUpdate(newPv, oldPv *core.PersistentVolume) field.ErrorList {
- allErrs := ValidateObjectMetaUpdate(&newPv.ObjectMeta, &oldPv.ObjectMeta, field.NewPath("metadata"))
- if len(newPv.ResourceVersion) == 0 {
- allErrs = append(allErrs, field.Required(field.NewPath("resourceVersion"), ""))
- }
- newPv.Spec = oldPv.Spec
- return allErrs
-}
-
-// ValidatePersistentVolumeClaim validates a PersistentVolumeClaim
-func ValidatePersistentVolumeClaim(pvc *core.PersistentVolumeClaim) field.ErrorList {
- allErrs := ValidateObjectMeta(&pvc.ObjectMeta, true, ValidatePersistentVolumeName, field.NewPath("metadata"))
- allErrs = append(allErrs, ValidatePersistentVolumeClaimSpec(&pvc.Spec, field.NewPath("spec"))...)
- return allErrs
-}
-
-// ValidatePersistentVolumeClaimSpec validates a PersistentVolumeClaimSpec
-func ValidatePersistentVolumeClaimSpec(spec *core.PersistentVolumeClaimSpec, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(spec.AccessModes) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("accessModes"), "at least 1 access mode is required"))
- }
- if spec.Selector != nil {
- allErrs = append(allErrs, unversionedvalidation.ValidateLabelSelector(spec.Selector, fldPath.Child("selector"))...)
- }
- for _, mode := range spec.AccessModes {
- if mode != core.ReadWriteOnce && mode != core.ReadOnlyMany && mode != core.ReadWriteMany {
- allErrs = append(allErrs, field.NotSupported(fldPath.Child("accessModes"), mode, supportedAccessModes.List()))
- }
- }
- storageValue, ok := spec.Resources.Requests[core.ResourceStorage]
- if !ok {
- allErrs = append(allErrs, field.Required(fldPath.Child("resources").Key(string(core.ResourceStorage)), ""))
- } else {
- allErrs = append(allErrs, ValidateResourceQuantityValue(string(core.ResourceStorage), storageValue, fldPath.Child("resources").Key(string(core.ResourceStorage)))...)
- allErrs = append(allErrs, ValidatePositiveQuantityValue(storageValue, fldPath.Child("resources").Key(string(core.ResourceStorage)))...)
- }
-
- if spec.StorageClassName != nil && len(*spec.StorageClassName) > 0 {
- for _, msg := range ValidateClassName(*spec.StorageClassName, false) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("storageClassName"), *spec.StorageClassName, msg))
- }
- }
- if spec.VolumeMode != nil && !utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("volumeMode"), "PersistentVolumeClaim volumeMode is disabled by feature-gate"))
- } else if spec.VolumeMode != nil && !supportedVolumeModes.Has(string(*spec.VolumeMode)) {
- allErrs = append(allErrs, field.NotSupported(fldPath.Child("volumeMode"), *spec.VolumeMode, supportedVolumeModes.List()))
- }
- return allErrs
-}
-
-// ValidatePersistentVolumeClaimUpdate validates an update to a PersistentVolumeClaim
-func ValidatePersistentVolumeClaimUpdate(newPvc, oldPvc *core.PersistentVolumeClaim) field.ErrorList {
- allErrs := ValidateObjectMetaUpdate(&newPvc.ObjectMeta, &oldPvc.ObjectMeta, field.NewPath("metadata"))
- allErrs = append(allErrs, ValidatePersistentVolumeClaim(newPvc)...)
- newPvcClone := newPvc.DeepCopy()
- oldPvcClone := oldPvc.DeepCopy()
-
- // PVController needs to update PVC.Spec w/ VolumeName.
- // Claims are immutable in order to enforce quota, range limits, etc. without gaming the system.
- if len(oldPvc.Spec.VolumeName) == 0 {
- // volumeName changes are allowed once.
- oldPvcClone.Spec.VolumeName = newPvcClone.Spec.VolumeName
- }
-
- if validateStorageClassUpgrade(oldPvcClone.Annotations, newPvcClone.Annotations,
- oldPvcClone.Spec.StorageClassName, newPvcClone.Spec.StorageClassName) {
- newPvcClone.Spec.StorageClassName = nil
- metav1.SetMetaDataAnnotation(&newPvcClone.ObjectMeta, core.BetaStorageClassAnnotation, oldPvcClone.Annotations[core.BetaStorageClassAnnotation])
- } else {
- // storageclass annotation should be immutable after creation
- // TODO: remove Beta when no longer needed
- allErrs = append(allErrs, ValidateImmutableAnnotation(newPvc.ObjectMeta.Annotations[v1.BetaStorageClassAnnotation], oldPvc.ObjectMeta.Annotations[v1.BetaStorageClassAnnotation], v1.BetaStorageClassAnnotation, field.NewPath("metadata"))...)
- }
-
- if utilfeature.DefaultFeatureGate.Enabled(features.ExpandPersistentVolumes) {
- // lets make sure storage values are same.
- if newPvc.Status.Phase == core.ClaimBound && newPvcClone.Spec.Resources.Requests != nil {
- newPvcClone.Spec.Resources.Requests["storage"] = oldPvc.Spec.Resources.Requests["storage"]
- }
-
- oldSize := oldPvc.Spec.Resources.Requests["storage"]
- newSize := newPvc.Spec.Resources.Requests["storage"]
-
- if !apiequality.Semantic.DeepEqual(newPvcClone.Spec, oldPvcClone.Spec) {
- allErrs = append(allErrs, field.Forbidden(field.NewPath("spec"), "is immutable after creation except resources.requests for bound claims"))
- }
- if newSize.Cmp(oldSize) < 0 {
- allErrs = append(allErrs, field.Forbidden(field.NewPath("spec", "resources", "requests", "storage"), "field can not be less than previous value"))
- }
-
- } else {
- // changes to Spec are not allowed, but updates to label/and some annotations are OK.
- // no-op updates pass validation.
- if !apiequality.Semantic.DeepEqual(newPvcClone.Spec, oldPvcClone.Spec) {
- allErrs = append(allErrs, field.Forbidden(field.NewPath("spec"), "field is immutable after creation"))
- }
- }
-
- if utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
- allErrs = append(allErrs, ValidateImmutableField(newPvc.Spec.VolumeMode, oldPvc.Spec.VolumeMode, field.NewPath("volumeMode"))...)
- }
- return allErrs
-}
-
-// Provide an upgrade path from PVC with storage class specified in beta
-// annotation to storage class specified in attribute. We allow update of
-// StorageClassName only if following four conditions are met at the same time:
-// 1. The old pvc's StorageClassAnnotation is set
-// 2. The old pvc's StorageClassName is not set
-// 3. The new pvc's StorageClassName is set and equal to the old value in annotation
-// 4. If the new pvc's StorageClassAnnotation is set,it must be equal to the old pv/pvc's StorageClassAnnotation
-func validateStorageClassUpgrade(oldAnnotations, newAnnotations map[string]string, oldScName, newScName *string) bool {
- oldSc, oldAnnotationExist := oldAnnotations[core.BetaStorageClassAnnotation]
- newScInAnnotation, newAnnotationExist := newAnnotations[core.BetaStorageClassAnnotation]
- return oldAnnotationExist /* condition 1 */ &&
- oldScName == nil /* condition 2*/ &&
- (newScName != nil && *newScName == oldSc) /* condition 3 */ &&
- (!newAnnotationExist || newScInAnnotation == oldSc) /* condition 4 */
-}
-
-// ValidatePersistentVolumeClaimStatusUpdate validates an update to status of a PersistentVolumeClaim
-func ValidatePersistentVolumeClaimStatusUpdate(newPvc, oldPvc *core.PersistentVolumeClaim) field.ErrorList {
- allErrs := ValidateObjectMetaUpdate(&newPvc.ObjectMeta, &oldPvc.ObjectMeta, field.NewPath("metadata"))
- if len(newPvc.ResourceVersion) == 0 {
- allErrs = append(allErrs, field.Required(field.NewPath("resourceVersion"), ""))
- }
- if len(newPvc.Spec.AccessModes) == 0 {
- allErrs = append(allErrs, field.Required(field.NewPath("Spec", "accessModes"), ""))
- }
- if !utilfeature.DefaultFeatureGate.Enabled(features.ExpandPersistentVolumes) && len(newPvc.Status.Conditions) > 0 {
- conditionPath := field.NewPath("status", "conditions")
- allErrs = append(allErrs, field.Forbidden(conditionPath, "invalid field"))
- }
- capPath := field.NewPath("status", "capacity")
- for r, qty := range newPvc.Status.Capacity {
- allErrs = append(allErrs, validateBasicResource(qty, capPath.Key(string(r)))...)
- }
- newPvc.Spec = oldPvc.Spec
- return allErrs
-}
-
-var supportedPortProtocols = sets.NewString(string(core.ProtocolTCP), string(core.ProtocolUDP))
-
-func validateContainerPorts(ports []core.ContainerPort, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- allNames := sets.String{}
- for i, port := range ports {
- idxPath := fldPath.Index(i)
- if len(port.Name) > 0 {
- if msgs := validation.IsValidPortName(port.Name); len(msgs) != 0 {
- for i = range msgs {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("name"), port.Name, msgs[i]))
- }
- } else if allNames.Has(port.Name) {
- allErrs = append(allErrs, field.Duplicate(idxPath.Child("name"), port.Name))
- } else {
- allNames.Insert(port.Name)
- }
- }
- if port.ContainerPort == 0 {
- allErrs = append(allErrs, field.Required(idxPath.Child("containerPort"), ""))
- } else {
- for _, msg := range validation.IsValidPortNum(int(port.ContainerPort)) {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("containerPort"), port.ContainerPort, msg))
- }
- }
- if port.HostPort != 0 {
- for _, msg := range validation.IsValidPortNum(int(port.HostPort)) {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("hostPort"), port.HostPort, msg))
- }
- }
- if len(port.Protocol) == 0 {
- allErrs = append(allErrs, field.Required(idxPath.Child("protocol"), ""))
- } else if !supportedPortProtocols.Has(string(port.Protocol)) {
- allErrs = append(allErrs, field.NotSupported(idxPath.Child("protocol"), port.Protocol, supportedPortProtocols.List()))
- }
- }
- return allErrs
-}
-
-// ValidateEnv validates env vars
-func ValidateEnv(vars []core.EnvVar, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- for i, ev := range vars {
- idxPath := fldPath.Index(i)
- if len(ev.Name) == 0 {
- allErrs = append(allErrs, field.Required(idxPath.Child("name"), ""))
- } else {
- for _, msg := range validation.IsEnvVarName(ev.Name) {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("name"), ev.Name, msg))
- }
- }
- allErrs = append(allErrs, validateEnvVarValueFrom(ev, idxPath.Child("valueFrom"))...)
- }
- return allErrs
-}
-
-var validEnvDownwardAPIFieldPathExpressions = sets.NewString(
- "metadata.name",
- "metadata.namespace",
- "metadata.uid",
- "spec.nodeName",
- "spec.serviceAccountName",
- "status.hostIP",
- "status.podIP")
-var validContainerResourceFieldPathExpressions = sets.NewString("limits.cpu", "limits.memory", "limits.ephemeral-storage", "requests.cpu", "requests.memory", "requests.ephemeral-storage")
-
-func validateEnvVarValueFrom(ev core.EnvVar, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- if ev.ValueFrom == nil {
- return allErrs
- }
-
- numSources := 0
-
- if ev.ValueFrom.FieldRef != nil {
- numSources++
- allErrs = append(allErrs, validateObjectFieldSelector(ev.ValueFrom.FieldRef, &validEnvDownwardAPIFieldPathExpressions, fldPath.Child("fieldRef"))...)
- }
- if ev.ValueFrom.ResourceFieldRef != nil {
- numSources++
- allErrs = append(allErrs, validateContainerResourceFieldSelector(ev.ValueFrom.ResourceFieldRef, &validContainerResourceFieldPathExpressions, fldPath.Child("resourceFieldRef"), false)...)
- }
- if ev.ValueFrom.ConfigMapKeyRef != nil {
- numSources++
- allErrs = append(allErrs, validateConfigMapKeySelector(ev.ValueFrom.ConfigMapKeyRef, fldPath.Child("configMapKeyRef"))...)
- }
- if ev.ValueFrom.SecretKeyRef != nil {
- numSources++
- allErrs = append(allErrs, validateSecretKeySelector(ev.ValueFrom.SecretKeyRef, fldPath.Child("secretKeyRef"))...)
- }
-
- if numSources == 0 {
- allErrs = append(allErrs, field.Invalid(fldPath, "", "must specify one of: `fieldRef`, `resourceFieldRef`, `configMapKeyRef` or `secretKeyRef`"))
- } else if len(ev.Value) != 0 {
- if numSources != 0 {
- allErrs = append(allErrs, field.Invalid(fldPath, "", "may not be specified when `value` is not empty"))
- }
- } else if numSources > 1 {
- allErrs = append(allErrs, field.Invalid(fldPath, "", "may not have more than one field specified at a time"))
- }
-
- return allErrs
-}
-
-func validateObjectFieldSelector(fs *core.ObjectFieldSelector, expressions *sets.String, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- if len(fs.APIVersion) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("apiVersion"), ""))
- return allErrs
- }
- if len(fs.FieldPath) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("fieldPath"), ""))
- return allErrs
- }
-
- internalFieldPath, _, err := podshelper.ConvertDownwardAPIFieldLabel(fs.APIVersion, fs.FieldPath, "")
- if err != nil {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("fieldPath"), fs.FieldPath, fmt.Sprintf("error converting fieldPath: %v", err)))
- return allErrs
- }
-
- if path, subscript, ok := fieldpath.SplitMaybeSubscriptedPath(internalFieldPath); ok {
- switch path {
- case "metadata.annotations":
- for _, msg := range validation.IsQualifiedName(strings.ToLower(subscript)) {
- allErrs = append(allErrs, field.Invalid(fldPath, subscript, msg))
- }
- case "metadata.labels":
- for _, msg := range validation.IsQualifiedName(subscript) {
- allErrs = append(allErrs, field.Invalid(fldPath, subscript, msg))
- }
- default:
- allErrs = append(allErrs, field.Invalid(fldPath, path, "does not support subscript"))
- }
- } else if !expressions.Has(path) {
- allErrs = append(allErrs, field.NotSupported(fldPath.Child("fieldPath"), path, expressions.List()))
- return allErrs
- }
-
- return allErrs
-}
-
-func fsResourceIsEphemeralStorage(resource string) bool {
- if resource == "limits.ephemeral-storage" || resource == "requests.ephemeral-storage" {
- return true
- }
- return false
-}
-
-func validateContainerResourceFieldSelector(fs *core.ResourceFieldSelector, expressions *sets.String, fldPath *field.Path, volume bool) field.ErrorList {
- allErrs := field.ErrorList{}
-
- if volume && len(fs.ContainerName) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("containerName"), ""))
- } else if len(fs.Resource) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("resource"), ""))
- } else if !expressions.Has(fs.Resource) {
- allErrs = append(allErrs, field.NotSupported(fldPath.Child("resource"), fs.Resource, expressions.List()))
- } else if fsResourceIsEphemeralStorage(fs.Resource) && !utilfeature.DefaultFeatureGate.Enabled(features.LocalStorageCapacityIsolation) {
- allErrs = append(allErrs, field.Forbidden(fldPath, "Containers' ephemeral storage requests/limits disabled by feature-gate for Downward API"))
- }
- allErrs = append(allErrs, validateContainerResourceDivisor(fs.Resource, fs.Divisor, fldPath)...)
- return allErrs
-}
-
-func ValidateEnvFrom(vars []core.EnvFromSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- for i, ev := range vars {
- idxPath := fldPath.Index(i)
- if len(ev.Prefix) > 0 {
- for _, msg := range validation.IsEnvVarName(ev.Prefix) {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("prefix"), ev.Prefix, msg))
- }
- }
-
- numSources := 0
- if ev.ConfigMapRef != nil {
- numSources++
- allErrs = append(allErrs, validateConfigMapEnvSource(ev.ConfigMapRef, idxPath.Child("configMapRef"))...)
- }
- if ev.SecretRef != nil {
- numSources++
- allErrs = append(allErrs, validateSecretEnvSource(ev.SecretRef, idxPath.Child("secretRef"))...)
- }
-
- if numSources == 0 {
- allErrs = append(allErrs, field.Invalid(fldPath, "", "must specify one of: `configMapRef` or `secretRef`"))
- } else if numSources > 1 {
- allErrs = append(allErrs, field.Invalid(fldPath, "", "may not have more than one field specified at a time"))
- }
- }
- return allErrs
-}
-
-func validateConfigMapEnvSource(configMapSource *core.ConfigMapEnvSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(configMapSource.Name) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("name"), ""))
- } else {
- for _, msg := range ValidateConfigMapName(configMapSource.Name, true) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("name"), configMapSource.Name, msg))
- }
- }
- return allErrs
-}
-
-func validateSecretEnvSource(secretSource *core.SecretEnvSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(secretSource.Name) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("name"), ""))
- } else {
- for _, msg := range ValidateSecretName(secretSource.Name, true) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("name"), secretSource.Name, msg))
- }
- }
- return allErrs
-}
-
-var validContainerResourceDivisorForCPU = sets.NewString("1m", "1")
-var validContainerResourceDivisorForMemory = sets.NewString("1", "1k", "1M", "1G", "1T", "1P", "1E", "1Ki", "1Mi", "1Gi", "1Ti", "1Pi", "1Ei")
-var validContainerResourceDivisorForEphemeralStorage = sets.NewString("1", "1k", "1M", "1G", "1T", "1P", "1E", "1Ki", "1Mi", "1Gi", "1Ti", "1Pi", "1Ei")
-
-func validateContainerResourceDivisor(rName string, divisor resource.Quantity, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- unsetDivisor := resource.Quantity{}
- if unsetDivisor.Cmp(divisor) == 0 {
- return allErrs
- }
- switch rName {
- case "limits.cpu", "requests.cpu":
- if !validContainerResourceDivisorForCPU.Has(divisor.String()) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("divisor"), rName, "only divisor's values 1m and 1 are supported with the cpu resource"))
- }
- case "limits.memory", "requests.memory":
- if !validContainerResourceDivisorForMemory.Has(divisor.String()) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("divisor"), rName, "only divisor's values 1, 1k, 1M, 1G, 1T, 1P, 1E, 1Ki, 1Mi, 1Gi, 1Ti, 1Pi, 1Ei are supported with the memory resource"))
- }
- case "limits.ephemeral-storage", "requests.ephemeral-storage":
- if !validContainerResourceDivisorForEphemeralStorage.Has(divisor.String()) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("divisor"), rName, "only divisor's values 1, 1k, 1M, 1G, 1T, 1P, 1E, 1Ki, 1Mi, 1Gi, 1Ti, 1Pi, 1Ei are supported with the local ephemeral storage resource"))
- }
- }
- return allErrs
-}
-
-func validateConfigMapKeySelector(s *core.ConfigMapKeySelector, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- nameFn := ValidateNameFunc(ValidateSecretName)
- for _, msg := range nameFn(s.Name, false) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("name"), s.Name, msg))
- }
- if len(s.Key) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("key"), ""))
- } else {
- for _, msg := range validation.IsConfigMapKey(s.Key) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("key"), s.Key, msg))
- }
- }
-
- return allErrs
-}
-
-func validateSecretKeySelector(s *core.SecretKeySelector, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- nameFn := ValidateNameFunc(ValidateSecretName)
- for _, msg := range nameFn(s.Name, false) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("name"), s.Name, msg))
- }
- if len(s.Key) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("key"), ""))
- } else {
- for _, msg := range validation.IsConfigMapKey(s.Key) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("key"), s.Key, msg))
- }
- }
-
- return allErrs
-}
-
-func GetVolumeMountMap(mounts []core.VolumeMount) map[string]string {
- volmounts := make(map[string]string)
-
- for _, mnt := range mounts {
- volmounts[mnt.Name] = mnt.MountPath
- }
-
- return volmounts
-}
-
-func GetVolumeDeviceMap(devices []core.VolumeDevice) map[string]string {
- voldevices := make(map[string]string)
-
- for _, dev := range devices {
- voldevices[dev.Name] = dev.DevicePath
- }
-
- return voldevices
-}
-
-func ValidateVolumeMounts(mounts []core.VolumeMount, voldevices map[string]string, volumes map[string]core.VolumeSource, container *core.Container, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- mountpoints := sets.NewString()
-
- for i, mnt := range mounts {
- idxPath := fldPath.Index(i)
- if len(mnt.Name) == 0 {
- allErrs = append(allErrs, field.Required(idxPath.Child("name"), ""))
- }
- if !IsMatchedVolume(mnt.Name, volumes) {
- allErrs = append(allErrs, field.NotFound(idxPath.Child("name"), mnt.Name))
- }
- if len(mnt.MountPath) == 0 {
- allErrs = append(allErrs, field.Required(idxPath.Child("mountPath"), ""))
- }
- if mountpoints.Has(mnt.MountPath) {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("mountPath"), mnt.MountPath, "must be unique"))
- }
- mountpoints.Insert(mnt.MountPath)
-
- // check for overlap with VolumeDevice
- if mountNameAlreadyExists(mnt.Name, voldevices) {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("name"), mnt.Name, "must not already exist in volumeDevices"))
- }
- if mountPathAlreadyExists(mnt.MountPath, voldevices) {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("mountPath"), mnt.MountPath, "must not already exist as a path in volumeDevices"))
- }
-
- if len(mnt.SubPath) > 0 {
- allErrs = append(allErrs, validateLocalDescendingPath(mnt.SubPath, fldPath.Child("subPath"))...)
- }
-
- if mnt.MountPropagation != nil {
- allErrs = append(allErrs, validateMountPropagation(mnt.MountPropagation, container, fldPath.Child("mountPropagation"))...)
- }
- }
- return allErrs
-}
-
-func ValidateVolumeDevices(devices []core.VolumeDevice, volmounts map[string]string, volumes map[string]core.VolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- devicepath := sets.NewString()
- devicename := sets.NewString()
-
- if devices != nil && !utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("volumeDevices"), "Container volumeDevices is disabled by feature-gate"))
- return allErrs
- }
- if devices != nil {
- for i, dev := range devices {
- idxPath := fldPath.Index(i)
- devName := dev.Name
- devPath := dev.DevicePath
- didMatch, isPVC := isMatchedDevice(devName, volumes)
- if len(devName) == 0 {
- allErrs = append(allErrs, field.Required(idxPath.Child("name"), ""))
- }
- if devicename.Has(devName) {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("name"), devName, "must be unique"))
- }
- // Must be PersistentVolumeClaim volume source
- if didMatch && !isPVC {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("name"), devName, "can only use volume source type of PersistentVolumeClaim for block mode"))
- }
- if !didMatch {
- allErrs = append(allErrs, field.NotFound(idxPath.Child("name"), devName))
- }
- if len(devPath) == 0 {
- allErrs = append(allErrs, field.Required(idxPath.Child("devicePath"), ""))
- }
- if devicepath.Has(devPath) {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("devicePath"), devPath, "must be unique"))
- }
- if len(devPath) > 0 && len(validatePathNoBacksteps(devPath, fldPath.Child("devicePath"))) > 0 {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("devicePath"), devPath, "can not contain backsteps ('..')"))
- } else {
- devicepath.Insert(devPath)
- }
- // check for overlap with VolumeMount
- if deviceNameAlreadyExists(devName, volmounts) {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("name"), devName, "must not already exist in volumeMounts"))
- }
- if devicePathAlreadyExists(devPath, volmounts) {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("devicePath"), devPath, "must not already exist as a path in volumeMounts"))
- }
- if len(devName) > 0 {
- devicename.Insert(devName)
- }
- }
- }
- return allErrs
-}
-
-func validateProbe(probe *core.Probe, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- if probe == nil {
- return allErrs
- }
- allErrs = append(allErrs, validateHandler(&probe.Handler, fldPath)...)
-
- allErrs = append(allErrs, ValidateNonnegativeField(int64(probe.InitialDelaySeconds), fldPath.Child("initialDelaySeconds"))...)
- allErrs = append(allErrs, ValidateNonnegativeField(int64(probe.TimeoutSeconds), fldPath.Child("timeoutSeconds"))...)
- allErrs = append(allErrs, ValidateNonnegativeField(int64(probe.PeriodSeconds), fldPath.Child("periodSeconds"))...)
- allErrs = append(allErrs, ValidateNonnegativeField(int64(probe.SuccessThreshold), fldPath.Child("successThreshold"))...)
- allErrs = append(allErrs, ValidateNonnegativeField(int64(probe.FailureThreshold), fldPath.Child("failureThreshold"))...)
- return allErrs
-}
-
-func validateClientIPAffinityConfig(config *core.SessionAffinityConfig, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if config == nil {
- allErrs = append(allErrs, field.Required(fldPath, fmt.Sprintf("when session affinity type is %s", core.ServiceAffinityClientIP)))
- return allErrs
- }
- if config.ClientIP == nil {
- allErrs = append(allErrs, field.Required(fldPath.Child("clientIP"), fmt.Sprintf("when session affinity type is %s", core.ServiceAffinityClientIP)))
- return allErrs
- }
- if config.ClientIP.TimeoutSeconds == nil {
- allErrs = append(allErrs, field.Required(fldPath.Child("clientIP").Child("timeoutSeconds"), fmt.Sprintf("when session affinity type is %s", core.ServiceAffinityClientIP)))
- return allErrs
- }
- allErrs = append(allErrs, validateAffinityTimeout(config.ClientIP.TimeoutSeconds, fldPath.Child("clientIP").Child("timeoutSeconds"))...)
-
- return allErrs
-}
-
-func validateAffinityTimeout(timeout *int32, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if *timeout <= 0 || *timeout > core.MaxClientIPServiceAffinitySeconds {
- allErrs = append(allErrs, field.Invalid(fldPath, timeout, fmt.Sprintf("must be greater than 0 and less than %d", core.MaxClientIPServiceAffinitySeconds)))
- }
- return allErrs
-}
-
-// AccumulateUniqueHostPorts extracts each HostPort of each Container,
-// accumulating the results and returning an error if any ports conflict.
-func AccumulateUniqueHostPorts(containers []core.Container, accumulator *sets.String, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- for ci, ctr := range containers {
- idxPath := fldPath.Index(ci)
- portsPath := idxPath.Child("ports")
- for pi := range ctr.Ports {
- idxPath := portsPath.Index(pi)
- port := ctr.Ports[pi].HostPort
- if port == 0 {
- continue
- }
- str := fmt.Sprintf("%s/%s/%d", ctr.Ports[pi].Protocol, ctr.Ports[pi].HostIP, port)
- if accumulator.Has(str) {
- allErrs = append(allErrs, field.Duplicate(idxPath.Child("hostPort"), str))
- } else {
- accumulator.Insert(str)
- }
- }
- }
- return allErrs
-}
-
-// checkHostPortConflicts checks for colliding Port.HostPort values across
-// a slice of containers.
-func checkHostPortConflicts(containers []core.Container, fldPath *field.Path) field.ErrorList {
- allPorts := sets.String{}
- return AccumulateUniqueHostPorts(containers, &allPorts, fldPath)
-}
-
-func validateExecAction(exec *core.ExecAction, fldPath *field.Path) field.ErrorList {
- allErrors := field.ErrorList{}
- if len(exec.Command) == 0 {
- allErrors = append(allErrors, field.Required(fldPath.Child("command"), ""))
- }
- return allErrors
-}
-
-var supportedHTTPSchemes = sets.NewString(string(core.URISchemeHTTP), string(core.URISchemeHTTPS))
-
-func validateHTTPGetAction(http *core.HTTPGetAction, fldPath *field.Path) field.ErrorList {
- allErrors := field.ErrorList{}
- if len(http.Path) == 0 {
- allErrors = append(allErrors, field.Required(fldPath.Child("path"), ""))
- }
- allErrors = append(allErrors, ValidatePortNumOrName(http.Port, fldPath.Child("port"))...)
- if !supportedHTTPSchemes.Has(string(http.Scheme)) {
- allErrors = append(allErrors, field.NotSupported(fldPath.Child("scheme"), http.Scheme, supportedHTTPSchemes.List()))
- }
- for _, header := range http.HTTPHeaders {
- for _, msg := range validation.IsHTTPHeaderName(header.Name) {
- allErrors = append(allErrors, field.Invalid(fldPath.Child("httpHeaders"), header.Name, msg))
- }
- }
- return allErrors
-}
-
-func ValidatePortNumOrName(port intstr.IntOrString, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if port.Type == intstr.Int {
- for _, msg := range validation.IsValidPortNum(port.IntValue()) {
- allErrs = append(allErrs, field.Invalid(fldPath, port.IntValue(), msg))
- }
- } else if port.Type == intstr.String {
- for _, msg := range validation.IsValidPortName(port.StrVal) {
- allErrs = append(allErrs, field.Invalid(fldPath, port.StrVal, msg))
- }
- } else {
- allErrs = append(allErrs, field.InternalError(fldPath, fmt.Errorf("unknown type: %v", port.Type)))
- }
- return allErrs
-}
-
-func validateTCPSocketAction(tcp *core.TCPSocketAction, fldPath *field.Path) field.ErrorList {
- return ValidatePortNumOrName(tcp.Port, fldPath.Child("port"))
-}
-
-func validateHandler(handler *core.Handler, fldPath *field.Path) field.ErrorList {
- numHandlers := 0
- allErrors := field.ErrorList{}
- if handler.Exec != nil {
- if numHandlers > 0 {
- allErrors = append(allErrors, field.Forbidden(fldPath.Child("exec"), "may not specify more than 1 handler type"))
- } else {
- numHandlers++
- allErrors = append(allErrors, validateExecAction(handler.Exec, fldPath.Child("exec"))...)
- }
- }
- if handler.HTTPGet != nil {
- if numHandlers > 0 {
- allErrors = append(allErrors, field.Forbidden(fldPath.Child("httpGet"), "may not specify more than 1 handler type"))
- } else {
- numHandlers++
- allErrors = append(allErrors, validateHTTPGetAction(handler.HTTPGet, fldPath.Child("httpGet"))...)
- }
- }
- if handler.TCPSocket != nil {
- if numHandlers > 0 {
- allErrors = append(allErrors, field.Forbidden(fldPath.Child("tcpSocket"), "may not specify more than 1 handler type"))
- } else {
- numHandlers++
- allErrors = append(allErrors, validateTCPSocketAction(handler.TCPSocket, fldPath.Child("tcpSocket"))...)
- }
- }
- if numHandlers == 0 {
- allErrors = append(allErrors, field.Required(fldPath, "must specify a handler type"))
- }
- return allErrors
-}
-
-func validateLifecycle(lifecycle *core.Lifecycle, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if lifecycle.PostStart != nil {
- allErrs = append(allErrs, validateHandler(lifecycle.PostStart, fldPath.Child("postStart"))...)
- }
- if lifecycle.PreStop != nil {
- allErrs = append(allErrs, validateHandler(lifecycle.PreStop, fldPath.Child("preStop"))...)
- }
- return allErrs
-}
-
-var supportedPullPolicies = sets.NewString(string(core.PullAlways), string(core.PullIfNotPresent), string(core.PullNever))
-
-func validatePullPolicy(policy core.PullPolicy, fldPath *field.Path) field.ErrorList {
- allErrors := field.ErrorList{}
-
- switch policy {
- case core.PullAlways, core.PullIfNotPresent, core.PullNever:
- break
- case "":
- allErrors = append(allErrors, field.Required(fldPath, ""))
- default:
- allErrors = append(allErrors, field.NotSupported(fldPath, policy, supportedPullPolicies.List()))
- }
-
- return allErrors
-}
-
-func validateInitContainers(containers, otherContainers []core.Container, deviceVolumes map[string]core.VolumeSource, fldPath *field.Path) field.ErrorList {
- var allErrs field.ErrorList
- if len(containers) > 0 {
- allErrs = append(allErrs, validateContainers(containers, deviceVolumes, fldPath)...)
- }
-
- allNames := sets.String{}
- for _, ctr := range otherContainers {
- allNames.Insert(ctr.Name)
- }
- for i, ctr := range containers {
- idxPath := fldPath.Index(i)
- if allNames.Has(ctr.Name) {
- allErrs = append(allErrs, field.Duplicate(idxPath.Child("name"), ctr.Name))
- }
- if len(ctr.Name) > 0 {
- allNames.Insert(ctr.Name)
- }
- if ctr.Lifecycle != nil {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("lifecycle"), ctr.Lifecycle, "must not be set for init containers"))
- }
- if ctr.LivenessProbe != nil {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("livenessProbe"), ctr.LivenessProbe, "must not be set for init containers"))
- }
- if ctr.ReadinessProbe != nil {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("readinessProbe"), ctr.ReadinessProbe, "must not be set for init containers"))
- }
- }
- return allErrs
-}
-
-func validateContainers(containers []core.Container, volumes map[string]core.VolumeSource, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- if len(containers) == 0 {
- return append(allErrs, field.Required(fldPath, ""))
- }
-
- allNames := sets.String{}
- for i, ctr := range containers {
- idxPath := fldPath.Index(i)
- namePath := idxPath.Child("name")
- volMounts := GetVolumeMountMap(ctr.VolumeMounts)
- volDevices := GetVolumeDeviceMap(ctr.VolumeDevices)
-
- if len(ctr.Name) == 0 {
- allErrs = append(allErrs, field.Required(namePath, ""))
- } else {
- allErrs = append(allErrs, ValidateDNS1123Label(ctr.Name, namePath)...)
- }
- if allNames.Has(ctr.Name) {
- allErrs = append(allErrs, field.Duplicate(namePath, ctr.Name))
- } else {
- allNames.Insert(ctr.Name)
- }
- // TODO: do not validate leading and trailing whitespace to preserve backward compatibility.
- // for example: https://github.com/openshift/origin/issues/14659 image = " " is special token in pod template
- // others may have done similar
- if len(ctr.Image) == 0 {
- allErrs = append(allErrs, field.Required(idxPath.Child("image"), ""))
- }
- if ctr.Lifecycle != nil {
- allErrs = append(allErrs, validateLifecycle(ctr.Lifecycle, idxPath.Child("lifecycle"))...)
- }
- allErrs = append(allErrs, validateProbe(ctr.LivenessProbe, idxPath.Child("livenessProbe"))...)
- // Liveness-specific validation
- if ctr.LivenessProbe != nil && ctr.LivenessProbe.SuccessThreshold != 1 {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("livenessProbe", "successThreshold"), ctr.LivenessProbe.SuccessThreshold, "must be 1"))
- }
-
- switch ctr.TerminationMessagePolicy {
- case core.TerminationMessageReadFile, core.TerminationMessageFallbackToLogsOnError:
- case "":
- allErrs = append(allErrs, field.Required(idxPath.Child("terminationMessagePolicy"), "must be 'File' or 'FallbackToLogsOnError'"))
- default:
- allErrs = append(allErrs, field.Invalid(idxPath.Child("terminationMessagePolicy"), ctr.TerminationMessagePolicy, "must be 'File' or 'FallbackToLogsOnError'"))
- }
-
- allErrs = append(allErrs, validateProbe(ctr.ReadinessProbe, idxPath.Child("readinessProbe"))...)
- allErrs = append(allErrs, validateContainerPorts(ctr.Ports, idxPath.Child("ports"))...)
- allErrs = append(allErrs, ValidateEnv(ctr.Env, idxPath.Child("env"))...)
- allErrs = append(allErrs, ValidateEnvFrom(ctr.EnvFrom, idxPath.Child("envFrom"))...)
- allErrs = append(allErrs, ValidateVolumeMounts(ctr.VolumeMounts, volDevices, volumes, &ctr, idxPath.Child("volumeMounts"))...)
- allErrs = append(allErrs, ValidateVolumeDevices(ctr.VolumeDevices, volMounts, volumes, idxPath.Child("volumeDevices"))...)
- allErrs = append(allErrs, validatePullPolicy(ctr.ImagePullPolicy, idxPath.Child("imagePullPolicy"))...)
- allErrs = append(allErrs, ValidateResourceRequirements(&ctr.Resources, idxPath.Child("resources"))...)
- allErrs = append(allErrs, ValidateSecurityContext(ctr.SecurityContext, idxPath.Child("securityContext"))...)
- }
- // Check for colliding ports across all containers.
- allErrs = append(allErrs, checkHostPortConflicts(containers, fldPath)...)
-
- return allErrs
-}
-
-func validateRestartPolicy(restartPolicy *core.RestartPolicy, fldPath *field.Path) field.ErrorList {
- allErrors := field.ErrorList{}
- switch *restartPolicy {
- case core.RestartPolicyAlways, core.RestartPolicyOnFailure, core.RestartPolicyNever:
- break
- case "":
- allErrors = append(allErrors, field.Required(fldPath, ""))
- default:
- validValues := []string{string(core.RestartPolicyAlways), string(core.RestartPolicyOnFailure), string(core.RestartPolicyNever)}
- allErrors = append(allErrors, field.NotSupported(fldPath, *restartPolicy, validValues))
- }
-
- return allErrors
-}
-
-func validateDNSPolicy(dnsPolicy *core.DNSPolicy, fldPath *field.Path) field.ErrorList {
- allErrors := field.ErrorList{}
- switch *dnsPolicy {
- case core.DNSClusterFirstWithHostNet, core.DNSClusterFirst, core.DNSDefault:
- case core.DNSNone:
- if !utilfeature.DefaultFeatureGate.Enabled(features.CustomPodDNS) {
- allErrors = append(allErrors, field.Invalid(fldPath, dnsPolicy, "DNSPolicy: can not use 'None', custom pod DNS is disabled by feature gate"))
- }
- case "":
- allErrors = append(allErrors, field.Required(fldPath, ""))
- default:
- validValues := []string{string(core.DNSClusterFirstWithHostNet), string(core.DNSClusterFirst), string(core.DNSDefault)}
- if utilfeature.DefaultFeatureGate.Enabled(features.CustomPodDNS) {
- validValues = append(validValues, string(core.DNSNone))
- }
- allErrors = append(allErrors, field.NotSupported(fldPath, dnsPolicy, validValues))
- }
- return allErrors
-}
-
-const (
- // Limits on various DNS parameters. These are derived from
- // restrictions in Linux libc name resolution handling.
- // Max number of DNS name servers.
- MaxDNSNameservers = 3
- // Max number of domains in search path.
- MaxDNSSearchPaths = 6
- // Max number of characters in search path.
- MaxDNSSearchListChars = 256
-)
-
-func validatePodDNSConfig(dnsConfig *core.PodDNSConfig, dnsPolicy *core.DNSPolicy, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- // Validate DNSNone case. Must provide at least one DNS name server.
- if utilfeature.DefaultFeatureGate.Enabled(features.CustomPodDNS) && dnsPolicy != nil && *dnsPolicy == core.DNSNone {
- if dnsConfig == nil {
- return append(allErrs, field.Required(fldPath, fmt.Sprintf("must provide `dnsConfig` when `dnsPolicy` is %s", core.DNSNone)))
- }
- if len(dnsConfig.Nameservers) == 0 {
- return append(allErrs, field.Required(fldPath.Child("nameservers"), fmt.Sprintf("must provide at least one DNS nameserver when `dnsPolicy` is %s", core.DNSNone)))
- }
- }
-
- if dnsConfig != nil {
- if !utilfeature.DefaultFeatureGate.Enabled(features.CustomPodDNS) {
- return append(allErrs, field.Forbidden(fldPath, "DNSConfig: custom pod DNS is disabled by feature gate"))
- }
-
- // Validate nameservers.
- if len(dnsConfig.Nameservers) > MaxDNSNameservers {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("nameservers"), dnsConfig.Nameservers, fmt.Sprintf("must not have more than %v nameservers", MaxDNSNameservers)))
- }
- for i, ns := range dnsConfig.Nameservers {
- if ip := net.ParseIP(ns); ip == nil {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("nameservers").Index(i), ns, "must be valid IP address"))
- }
- }
- // Validate searches.
- if len(dnsConfig.Searches) > MaxDNSSearchPaths {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("searches"), dnsConfig.Searches, fmt.Sprintf("must not have more than %v search paths", MaxDNSSearchPaths)))
- }
- // Include the space between search paths.
- if len(strings.Join(dnsConfig.Searches, " ")) > MaxDNSSearchListChars {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("searches"), dnsConfig.Searches, "must not have more than 256 characters (including spaces) in the search list"))
- }
- for i, search := range dnsConfig.Searches {
- allErrs = append(allErrs, ValidateDNS1123Subdomain(search, fldPath.Child("searches").Index(i))...)
- }
- // Validate options.
- for i, option := range dnsConfig.Options {
- if len(option.Name) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("options").Index(i), "must not be empty"))
- }
- }
- }
- return allErrs
-}
-
-func validateHostNetwork(hostNetwork bool, containers []core.Container, fldPath *field.Path) field.ErrorList {
- allErrors := field.ErrorList{}
- if hostNetwork {
- for i, container := range containers {
- portsPath := fldPath.Index(i).Child("ports")
- for i, port := range container.Ports {
- idxPath := portsPath.Index(i)
- if port.HostPort != port.ContainerPort {
- allErrors = append(allErrors, field.Invalid(idxPath.Child("containerPort"), port.ContainerPort, "must match `hostPort` when `hostNetwork` is true"))
- }
- }
- }
- }
- return allErrors
-}
-
-// validateImagePullSecrets checks to make sure the pull secrets are well
-// formed. Right now, we only expect name to be set (it's the only field). If
-// this ever changes and someone decides to set those fields, we'd like to
-// know.
-func validateImagePullSecrets(imagePullSecrets []core.LocalObjectReference, fldPath *field.Path) field.ErrorList {
- allErrors := field.ErrorList{}
- for i, currPullSecret := range imagePullSecrets {
- idxPath := fldPath.Index(i)
- strippedRef := core.LocalObjectReference{Name: currPullSecret.Name}
- if !reflect.DeepEqual(strippedRef, currPullSecret) {
- allErrors = append(allErrors, field.Invalid(idxPath, currPullSecret, "only name may be set"))
- }
- }
- return allErrors
-}
-
-// validateAffinity checks if given affinities are valid
-func validateAffinity(affinity *core.Affinity, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- if affinity != nil {
- if affinity.NodeAffinity != nil {
- allErrs = append(allErrs, validateNodeAffinity(affinity.NodeAffinity, fldPath.Child("nodeAffinity"))...)
- }
- if affinity.PodAffinity != nil {
- allErrs = append(allErrs, validatePodAffinity(affinity.PodAffinity, fldPath.Child("podAffinity"))...)
- }
- if affinity.PodAntiAffinity != nil {
- allErrs = append(allErrs, validatePodAntiAffinity(affinity.PodAntiAffinity, fldPath.Child("podAntiAffinity"))...)
- }
- }
-
- return allErrs
-}
-
-func validateTaintEffect(effect *core.TaintEffect, allowEmpty bool, fldPath *field.Path) field.ErrorList {
- if !allowEmpty && len(*effect) == 0 {
- return field.ErrorList{field.Required(fldPath, "")}
- }
-
- allErrors := field.ErrorList{}
- switch *effect {
- // TODO: Replace next line with subsequent commented-out line when implement TaintEffectNoScheduleNoAdmit.
- case core.TaintEffectNoSchedule, core.TaintEffectPreferNoSchedule, core.TaintEffectNoExecute:
- // case core.TaintEffectNoSchedule, core.TaintEffectPreferNoSchedule, core.TaintEffectNoScheduleNoAdmit, core.TaintEffectNoExecute:
- default:
- validValues := []string{
- string(core.TaintEffectNoSchedule),
- string(core.TaintEffectPreferNoSchedule),
- string(core.TaintEffectNoExecute),
- // TODO: Uncomment this block when implement TaintEffectNoScheduleNoAdmit.
- // string(core.TaintEffectNoScheduleNoAdmit),
- }
- allErrors = append(allErrors, field.NotSupported(fldPath, effect, validValues))
- }
- return allErrors
-}
-
-// validateOnlyAddedTolerations validates updated pod tolerations.
-func validateOnlyAddedTolerations(newTolerations []core.Toleration, oldTolerations []core.Toleration, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- for _, old := range oldTolerations {
- found := false
- old.TolerationSeconds = nil
- for _, new := range newTolerations {
- new.TolerationSeconds = nil
- if reflect.DeepEqual(old, new) {
- found = true
- break
- }
- }
- if !found {
- allErrs = append(allErrs, field.Forbidden(fldPath, "existing toleration can not be modified except its tolerationSeconds"))
- return allErrs
- }
- }
-
- allErrs = append(allErrs, ValidateTolerations(newTolerations, fldPath)...)
- return allErrs
-}
-
-func ValidateHostAliases(hostAliases []core.HostAlias, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- for _, hostAlias := range hostAliases {
- if ip := net.ParseIP(hostAlias.IP); ip == nil {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("ip"), hostAlias.IP, "must be valid IP address"))
- }
- for _, hostname := range hostAlias.Hostnames {
- allErrs = append(allErrs, ValidateDNS1123Subdomain(hostname, fldPath.Child("hostnames"))...)
- }
- }
- return allErrs
-}
-
-// ValidateTolerations tests if given tolerations have valid data.
-func ValidateTolerations(tolerations []core.Toleration, fldPath *field.Path) field.ErrorList {
- allErrors := field.ErrorList{}
- for i, toleration := range tolerations {
- idxPath := fldPath.Index(i)
- // validate the toleration key
- if len(toleration.Key) > 0 {
- allErrors = append(allErrors, unversionedvalidation.ValidateLabelName(toleration.Key, idxPath.Child("key"))...)
- }
-
- // empty toleration key with Exists operator and empty value means match all taints
- if len(toleration.Key) == 0 && toleration.Operator != core.TolerationOpExists {
- allErrors = append(allErrors, field.Invalid(idxPath.Child("operator"), toleration.Operator,
- "operator must be Exists when `key` is empty, which means \"match all values and all keys\""))
- }
-
- if toleration.TolerationSeconds != nil && toleration.Effect != core.TaintEffectNoExecute {
- allErrors = append(allErrors, field.Invalid(idxPath.Child("effect"), toleration.Effect,
- "effect must be 'NoExecute' when `tolerationSeconds` is set"))
- }
-
- // validate toleration operator and value
- switch toleration.Operator {
- // empty operator means Equal
- case core.TolerationOpEqual, "":
- if errs := validation.IsValidLabelValue(toleration.Value); len(errs) != 0 {
- allErrors = append(allErrors, field.Invalid(idxPath.Child("operator"), toleration.Value, strings.Join(errs, ";")))
- }
- case core.TolerationOpExists:
- if len(toleration.Value) > 0 {
- allErrors = append(allErrors, field.Invalid(idxPath.Child("operator"), toleration, "value must be empty when `operator` is 'Exists'"))
- }
- default:
- validValues := []string{string(core.TolerationOpEqual), string(core.TolerationOpExists)}
- allErrors = append(allErrors, field.NotSupported(idxPath.Child("operator"), toleration.Operator, validValues))
- }
-
- // validate toleration effect, empty toleration effect means match all taint effects
- if len(toleration.Effect) > 0 {
- allErrors = append(allErrors, validateTaintEffect(&toleration.Effect, true, idxPath.Child("effect"))...)
- }
- }
- return allErrors
-}
-
-func toResourceNames(resources core.ResourceList) []core.ResourceName {
- result := []core.ResourceName{}
- for resourceName := range resources {
- result = append(result, resourceName)
- }
- return result
-}
-
-func toSet(resourceNames []core.ResourceName) sets.String {
- result := sets.NewString()
- for _, resourceName := range resourceNames {
- result.Insert(string(resourceName))
- }
- return result
-}
-
-func toContainerResourcesSet(ctr *core.Container) sets.String {
- resourceNames := toResourceNames(ctr.Resources.Requests)
- resourceNames = append(resourceNames, toResourceNames(ctr.Resources.Limits)...)
- return toSet(resourceNames)
-}
-
-// validateContainersOnlyForPod does additional validation for containers on a pod versus a pod template
-// it only does additive validation of fields not covered in validateContainers
-func validateContainersOnlyForPod(containers []core.Container, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- for i, ctr := range containers {
- idxPath := fldPath.Index(i)
- if len(ctr.Image) != len(strings.TrimSpace(ctr.Image)) {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("image"), ctr.Image, "must not have leading or trailing whitespace"))
- }
- }
- return allErrs
-}
-
-// ValidatePod tests if required fields in the pod are set.
-func ValidatePod(pod *core.Pod) field.ErrorList {
- fldPath := field.NewPath("metadata")
- allErrs := ValidateObjectMeta(&pod.ObjectMeta, true, ValidatePodName, fldPath)
- allErrs = append(allErrs, ValidatePodSpecificAnnotations(pod.ObjectMeta.Annotations, &pod.Spec, fldPath.Child("annotations"))...)
- allErrs = append(allErrs, ValidatePodSpec(&pod.Spec, field.NewPath("spec"))...)
-
- // we do additional validation only pertinent for pods and not pod templates
- // this was done to preserve backwards compatibility
- specPath := field.NewPath("spec")
-
- allErrs = append(allErrs, validateContainersOnlyForPod(pod.Spec.Containers, specPath.Child("containers"))...)
- allErrs = append(allErrs, validateContainersOnlyForPod(pod.Spec.InitContainers, specPath.Child("initContainers"))...)
-
- if utilfeature.DefaultFeatureGate.Enabled(features.HugePages) {
- hugePageResources := sets.NewString()
- for i := range pod.Spec.Containers {
- resourceSet := toContainerResourcesSet(&pod.Spec.Containers[i])
- for resourceStr := range resourceSet {
- if v1helper.IsHugePageResourceName(v1.ResourceName(resourceStr)) {
- hugePageResources.Insert(resourceStr)
- }
- }
- }
- if len(hugePageResources) > 1 {
- allErrs = append(allErrs, field.Invalid(specPath, hugePageResources, "must use a single hugepage size in a pod spec"))
- }
- }
-
- return allErrs
-}
-
-// ValidatePodSpec tests that the specified PodSpec has valid data.
-// This includes checking formatting and uniqueness. It also canonicalizes the
-// structure by setting default values and implementing any backwards-compatibility
-// tricks.
-func ValidatePodSpec(spec *core.PodSpec, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- vols, vErrs := ValidateVolumes(spec.Volumes, fldPath.Child("volumes"))
- allErrs = append(allErrs, vErrs...)
- allErrs = append(allErrs, validateContainers(spec.Containers, vols, fldPath.Child("containers"))...)
- allErrs = append(allErrs, validateInitContainers(spec.InitContainers, spec.Containers, vols, fldPath.Child("initContainers"))...)
- allErrs = append(allErrs, validateRestartPolicy(&spec.RestartPolicy, fldPath.Child("restartPolicy"))...)
- allErrs = append(allErrs, validateDNSPolicy(&spec.DNSPolicy, fldPath.Child("dnsPolicy"))...)
- allErrs = append(allErrs, unversionedvalidation.ValidateLabels(spec.NodeSelector, fldPath.Child("nodeSelector"))...)
- allErrs = append(allErrs, ValidatePodSecurityContext(spec.SecurityContext, spec, fldPath, fldPath.Child("securityContext"))...)
- allErrs = append(allErrs, validateImagePullSecrets(spec.ImagePullSecrets, fldPath.Child("imagePullSecrets"))...)
- allErrs = append(allErrs, validateAffinity(spec.Affinity, fldPath.Child("affinity"))...)
- allErrs = append(allErrs, validatePodDNSConfig(spec.DNSConfig, &spec.DNSPolicy, fldPath.Child("dnsConfig"))...)
- if len(spec.ServiceAccountName) > 0 {
- for _, msg := range ValidateServiceAccountName(spec.ServiceAccountName, false) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("serviceAccountName"), spec.ServiceAccountName, msg))
- }
- }
-
- if len(spec.NodeName) > 0 {
- for _, msg := range ValidateNodeName(spec.NodeName, false) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("nodeName"), spec.NodeName, msg))
- }
- }
-
- if spec.ActiveDeadlineSeconds != nil {
- value := *spec.ActiveDeadlineSeconds
- if value < 1 || value > math.MaxInt32 {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("activeDeadlineSeconds"), value, validation.InclusiveRangeError(1, math.MaxInt32)))
- }
- }
-
- if len(spec.Hostname) > 0 {
- allErrs = append(allErrs, ValidateDNS1123Label(spec.Hostname, fldPath.Child("hostname"))...)
- }
-
- if len(spec.Subdomain) > 0 {
- allErrs = append(allErrs, ValidateDNS1123Label(spec.Subdomain, fldPath.Child("subdomain"))...)
- }
-
- if len(spec.Tolerations) > 0 {
- allErrs = append(allErrs, ValidateTolerations(spec.Tolerations, fldPath.Child("tolerations"))...)
- }
-
- if len(spec.HostAliases) > 0 {
- allErrs = append(allErrs, ValidateHostAliases(spec.HostAliases, fldPath.Child("hostAliases"))...)
- }
-
- if len(spec.PriorityClassName) > 0 {
- if utilfeature.DefaultFeatureGate.Enabled(features.PodPriority) {
- for _, msg := range ValidatePriorityClassName(spec.PriorityClassName, false) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("priorityClassName"), spec.PriorityClassName, msg))
- }
- }
- }
-
- return allErrs
-}
-
-// ValidateNodeSelectorRequirement tests that the specified NodeSelectorRequirement fields has valid data
-func ValidateNodeSelectorRequirement(rq core.NodeSelectorRequirement, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- switch rq.Operator {
- case core.NodeSelectorOpIn, core.NodeSelectorOpNotIn:
- if len(rq.Values) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("values"), "must be specified when `operator` is 'In' or 'NotIn'"))
- }
- case core.NodeSelectorOpExists, core.NodeSelectorOpDoesNotExist:
- if len(rq.Values) > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("values"), "may not be specified when `operator` is 'Exists' or 'DoesNotExist'"))
- }
-
- case core.NodeSelectorOpGt, core.NodeSelectorOpLt:
- if len(rq.Values) != 1 {
- allErrs = append(allErrs, field.Required(fldPath.Child("values"), "must be specified single value when `operator` is 'Lt' or 'Gt'"))
- }
- default:
- allErrs = append(allErrs, field.Invalid(fldPath.Child("operator"), rq.Operator, "not a valid selector operator"))
- }
- allErrs = append(allErrs, unversionedvalidation.ValidateLabelName(rq.Key, fldPath.Child("key"))...)
- return allErrs
-}
-
-// ValidateNodeSelectorTerm tests that the specified node selector term has valid data
-func ValidateNodeSelectorTerm(term core.NodeSelectorTerm, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- if len(term.MatchExpressions) == 0 {
- return append(allErrs, field.Required(fldPath.Child("matchExpressions"), "must have at least one node selector requirement"))
- }
- for j, req := range term.MatchExpressions {
- allErrs = append(allErrs, ValidateNodeSelectorRequirement(req, fldPath.Child("matchExpressions").Index(j))...)
- }
- return allErrs
-}
-
-// ValidateNodeSelector tests that the specified nodeSelector fields has valid data
-func ValidateNodeSelector(nodeSelector *core.NodeSelector, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- termFldPath := fldPath.Child("nodeSelectorTerms")
- if len(nodeSelector.NodeSelectorTerms) == 0 {
- return append(allErrs, field.Required(termFldPath, "must have at least one node selector term"))
- }
-
- for i, term := range nodeSelector.NodeSelectorTerms {
- allErrs = append(allErrs, ValidateNodeSelectorTerm(term, termFldPath.Index(i))...)
- }
-
- return allErrs
-}
-
-// ValidateAvoidPodsInNodeAnnotations tests that the serialized AvoidPods in Node.Annotations has valid data
-func ValidateAvoidPodsInNodeAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- v1Avoids, err := v1helper.GetAvoidPodsFromNodeAnnotations(annotations)
- if err != nil {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("AvoidPods"), core.PreferAvoidPodsAnnotationKey, err.Error()))
- return allErrs
- }
- var avoids core.AvoidPods
- if err := corev1.Convert_v1_AvoidPods_To_core_AvoidPods(&v1Avoids, &avoids, nil); err != nil {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("AvoidPods"), core.PreferAvoidPodsAnnotationKey, err.Error()))
- return allErrs
- }
-
- if len(avoids.PreferAvoidPods) != 0 {
- for i, pa := range avoids.PreferAvoidPods {
- idxPath := fldPath.Child(core.PreferAvoidPodsAnnotationKey).Index(i)
- allErrs = append(allErrs, validatePreferAvoidPodsEntry(pa, idxPath)...)
- }
- }
-
- return allErrs
-}
-
-// validatePreferAvoidPodsEntry tests if given PreferAvoidPodsEntry has valid data.
-func validatePreferAvoidPodsEntry(avoidPodEntry core.PreferAvoidPodsEntry, fldPath *field.Path) field.ErrorList {
- allErrors := field.ErrorList{}
- if avoidPodEntry.PodSignature.PodController == nil {
- allErrors = append(allErrors, field.Required(fldPath.Child("PodSignature"), ""))
- } else {
- if *(avoidPodEntry.PodSignature.PodController.Controller) != true {
- allErrors = append(allErrors,
- field.Invalid(fldPath.Child("PodSignature").Child("PodController").Child("Controller"),
- *(avoidPodEntry.PodSignature.PodController.Controller), "must point to a controller"))
- }
- }
- return allErrors
-}
-
-// ValidatePreferredSchedulingTerms tests that the specified SoftNodeAffinity fields has valid data
-func ValidatePreferredSchedulingTerms(terms []core.PreferredSchedulingTerm, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- for i, term := range terms {
- if term.Weight <= 0 || term.Weight > 100 {
- allErrs = append(allErrs, field.Invalid(fldPath.Index(i).Child("weight"), term.Weight, "must be in the range 1-100"))
- }
-
- allErrs = append(allErrs, ValidateNodeSelectorTerm(term.Preference, fldPath.Index(i).Child("preference"))...)
- }
- return allErrs
-}
-
-// validatePodAffinityTerm tests that the specified podAffinityTerm fields have valid data
-func validatePodAffinityTerm(podAffinityTerm core.PodAffinityTerm, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- allErrs = append(allErrs, unversionedvalidation.ValidateLabelSelector(podAffinityTerm.LabelSelector, fldPath.Child("matchExpressions"))...)
- for _, name := range podAffinityTerm.Namespaces {
- for _, msg := range ValidateNamespaceName(name, false) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("namespace"), name, msg))
- }
- }
- if len(podAffinityTerm.TopologyKey) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("topologyKey"), "can not be empty"))
- }
- return append(allErrs, unversionedvalidation.ValidateLabelName(podAffinityTerm.TopologyKey, fldPath.Child("topologyKey"))...)
-}
-
-// validatePodAffinityTerms tests that the specified podAffinityTerms fields have valid data
-func validatePodAffinityTerms(podAffinityTerms []core.PodAffinityTerm, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- for i, podAffinityTerm := range podAffinityTerms {
- allErrs = append(allErrs, validatePodAffinityTerm(podAffinityTerm, fldPath.Index(i))...)
- }
- return allErrs
-}
-
-// validateWeightedPodAffinityTerms tests that the specified weightedPodAffinityTerms fields have valid data
-func validateWeightedPodAffinityTerms(weightedPodAffinityTerms []core.WeightedPodAffinityTerm, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- for j, weightedTerm := range weightedPodAffinityTerms {
- if weightedTerm.Weight <= 0 || weightedTerm.Weight > 100 {
- allErrs = append(allErrs, field.Invalid(fldPath.Index(j).Child("weight"), weightedTerm.Weight, "must be in the range 1-100"))
- }
- allErrs = append(allErrs, validatePodAffinityTerm(weightedTerm.PodAffinityTerm, fldPath.Index(j).Child("podAffinityTerm"))...)
- }
- return allErrs
-}
-
-// validatePodAntiAffinity tests that the specified podAntiAffinity fields have valid data
-func validatePodAntiAffinity(podAntiAffinity *core.PodAntiAffinity, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- // TODO:Uncomment below code once RequiredDuringSchedulingRequiredDuringExecution is implemented.
- // if podAntiAffinity.RequiredDuringSchedulingRequiredDuringExecution != nil {
- // allErrs = append(allErrs, validatePodAffinityTerms(podAntiAffinity.RequiredDuringSchedulingRequiredDuringExecution, false,
- // fldPath.Child("requiredDuringSchedulingRequiredDuringExecution"))...)
- //}
- if podAntiAffinity.RequiredDuringSchedulingIgnoredDuringExecution != nil {
- allErrs = append(allErrs, validatePodAffinityTerms(podAntiAffinity.RequiredDuringSchedulingIgnoredDuringExecution,
- fldPath.Child("requiredDuringSchedulingIgnoredDuringExecution"))...)
- }
- if podAntiAffinity.PreferredDuringSchedulingIgnoredDuringExecution != nil {
- allErrs = append(allErrs, validateWeightedPodAffinityTerms(podAntiAffinity.PreferredDuringSchedulingIgnoredDuringExecution,
- fldPath.Child("preferredDuringSchedulingIgnoredDuringExecution"))...)
- }
- return allErrs
-}
-
-// validateNodeAffinity tests that the specified nodeAffinity fields have valid data
-func validateNodeAffinity(na *core.NodeAffinity, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- // TODO: Uncomment the next three lines once RequiredDuringSchedulingRequiredDuringExecution is implemented.
- // if na.RequiredDuringSchedulingRequiredDuringExecution != nil {
- // allErrs = append(allErrs, ValidateNodeSelector(na.RequiredDuringSchedulingRequiredDuringExecution, fldPath.Child("requiredDuringSchedulingRequiredDuringExecution"))...)
- // }
- if na.RequiredDuringSchedulingIgnoredDuringExecution != nil {
- allErrs = append(allErrs, ValidateNodeSelector(na.RequiredDuringSchedulingIgnoredDuringExecution, fldPath.Child("requiredDuringSchedulingIgnoredDuringExecution"))...)
- }
- if len(na.PreferredDuringSchedulingIgnoredDuringExecution) > 0 {
- allErrs = append(allErrs, ValidatePreferredSchedulingTerms(na.PreferredDuringSchedulingIgnoredDuringExecution, fldPath.Child("preferredDuringSchedulingIgnoredDuringExecution"))...)
- }
- return allErrs
-}
-
-// validatePodAffinity tests that the specified podAffinity fields have valid data
-func validatePodAffinity(podAffinity *core.PodAffinity, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- // TODO:Uncomment below code once RequiredDuringSchedulingRequiredDuringExecution is implemented.
- // if podAffinity.RequiredDuringSchedulingRequiredDuringExecution != nil {
- // allErrs = append(allErrs, validatePodAffinityTerms(podAffinity.RequiredDuringSchedulingRequiredDuringExecution, false,
- // fldPath.Child("requiredDuringSchedulingRequiredDuringExecution"))...)
- //}
- if podAffinity.RequiredDuringSchedulingIgnoredDuringExecution != nil {
- allErrs = append(allErrs, validatePodAffinityTerms(podAffinity.RequiredDuringSchedulingIgnoredDuringExecution,
- fldPath.Child("requiredDuringSchedulingIgnoredDuringExecution"))...)
- }
- if podAffinity.PreferredDuringSchedulingIgnoredDuringExecution != nil {
- allErrs = append(allErrs, validateWeightedPodAffinityTerms(podAffinity.PreferredDuringSchedulingIgnoredDuringExecution,
- fldPath.Child("preferredDuringSchedulingIgnoredDuringExecution"))...)
- }
- return allErrs
-}
-
-func ValidateSeccompProfile(p string, fldPath *field.Path) field.ErrorList {
- if p == "docker/default" {
- return nil
- }
- if p == "unconfined" {
- return nil
- }
- if strings.HasPrefix(p, "localhost/") {
- return validateLocalDescendingPath(strings.TrimPrefix(p, "localhost/"), fldPath)
- }
- return field.ErrorList{field.Invalid(fldPath, p, "must be a valid seccomp profile")}
-}
-
-func ValidateSeccompPodAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if p, exists := annotations[core.SeccompPodAnnotationKey]; exists {
- allErrs = append(allErrs, ValidateSeccompProfile(p, fldPath.Child(core.SeccompPodAnnotationKey))...)
- }
- for k, p := range annotations {
- if strings.HasPrefix(k, core.SeccompContainerAnnotationKeyPrefix) {
- allErrs = append(allErrs, ValidateSeccompProfile(p, fldPath.Child(k))...)
- }
- }
-
- return allErrs
-}
-
-func ValidateAppArmorPodAnnotations(annotations map[string]string, spec *core.PodSpec, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- for k, p := range annotations {
- if !strings.HasPrefix(k, apparmor.ContainerAnnotationKeyPrefix) {
- continue
- }
- // TODO: this belongs to admission, not general pod validation:
- if !utilfeature.DefaultFeatureGate.Enabled(features.AppArmor) {
- allErrs = append(allErrs, field.Forbidden(fldPath.Key(k), "AppArmor is disabled by feature-gate"))
- continue
- }
- containerName := strings.TrimPrefix(k, apparmor.ContainerAnnotationKeyPrefix)
- if !podSpecHasContainer(spec, containerName) {
- allErrs = append(allErrs, field.Invalid(fldPath.Key(k), containerName, "container not found"))
- }
-
- if err := apparmor.ValidateProfileFormat(p); err != nil {
- allErrs = append(allErrs, field.Invalid(fldPath.Key(k), p, err.Error()))
- }
- }
-
- return allErrs
-}
-
-func podSpecHasContainer(spec *core.PodSpec, containerName string) bool {
- for _, c := range spec.InitContainers {
- if c.Name == containerName {
- return true
- }
- }
- for _, c := range spec.Containers {
- if c.Name == containerName {
- return true
- }
- }
- return false
-}
-
-const (
- // a sysctl segment regex, concatenated with dots to form a sysctl name
- SysctlSegmentFmt string = "[a-z0-9]([-_a-z0-9]*[a-z0-9])?"
-
- // a sysctl name regex
- SysctlFmt string = "(" + SysctlSegmentFmt + "\\.)*" + SysctlSegmentFmt
-
- // the maximal length of a sysctl name
- SysctlMaxLength int = 253
-)
-
-var sysctlRegexp = regexp.MustCompile("^" + SysctlFmt + "$")
-
-// IsValidSysctlName checks that the given string is a valid sysctl name,
-// i.e. matches SysctlFmt.
-func IsValidSysctlName(name string) bool {
- if len(name) > SysctlMaxLength {
- return false
- }
- return sysctlRegexp.MatchString(name)
-}
-
-func validateSysctls(sysctls []core.Sysctl, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- for i, s := range sysctls {
- if len(s.Name) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Index(i).Child("name"), ""))
- } else if !IsValidSysctlName(s.Name) {
- allErrs = append(allErrs, field.Invalid(fldPath.Index(i).Child("name"), s.Name, fmt.Sprintf("must have at most %d characters and match regex %s", SysctlMaxLength, SysctlFmt)))
- }
- }
- return allErrs
-}
-
-// ValidatePodSecurityContext test that the specified PodSecurityContext has valid data.
-func ValidatePodSecurityContext(securityContext *core.PodSecurityContext, spec *core.PodSpec, specPath, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- if securityContext != nil {
- allErrs = append(allErrs, validateHostNetwork(securityContext.HostNetwork, spec.Containers, specPath.Child("containers"))...)
- if securityContext.FSGroup != nil {
- for _, msg := range validation.IsValidGroupID(*securityContext.FSGroup) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("fsGroup"), *(securityContext.FSGroup), msg))
- }
- }
- if securityContext.RunAsUser != nil {
- for _, msg := range validation.IsValidUserID(*securityContext.RunAsUser) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("runAsUser"), *(securityContext.RunAsUser), msg))
- }
- }
- for g, gid := range securityContext.SupplementalGroups {
- for _, msg := range validation.IsValidGroupID(gid) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("supplementalGroups").Index(g), gid, msg))
- }
- }
- if securityContext.ShareProcessNamespace != nil {
- if !utilfeature.DefaultFeatureGate.Enabled(features.PodShareProcessNamespace) {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("shareProcessNamespace"), "Process Namespace Sharing is disabled by PodShareProcessNamespace feature-gate"))
- } else if securityContext.HostPID && *securityContext.ShareProcessNamespace {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("shareProcessNamespace"), *securityContext.ShareProcessNamespace, "ShareProcessNamespace and HostPID cannot both be enabled"))
- }
- }
- }
-
- return allErrs
-}
-
-func ValidateContainerUpdates(newContainers, oldContainers []core.Container, fldPath *field.Path) (allErrs field.ErrorList, stop bool) {
- allErrs = field.ErrorList{}
- if len(newContainers) != len(oldContainers) {
- //TODO: Pinpoint the specific container that causes the invalid error after we have strategic merge diff
- allErrs = append(allErrs, field.Forbidden(fldPath, "pod updates may not add or remove containers"))
- return allErrs, true
- }
-
- // validate updated container images
- for i, ctr := range newContainers {
- if len(ctr.Image) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Index(i).Child("image"), ""))
- }
- // this is only called from ValidatePodUpdate so its safe to check leading/trailing whitespace.
- if len(strings.TrimSpace(ctr.Image)) != len(ctr.Image) {
- allErrs = append(allErrs, field.Invalid(fldPath.Index(i).Child("image"), ctr.Image, "must not have leading or trailing whitespace"))
- }
- }
- return allErrs, false
-}
-
-// ValidatePodUpdate tests to see if the update is legal for an end user to make. newPod is updated with fields
-// that cannot be changed.
-func ValidatePodUpdate(newPod, oldPod *core.Pod) field.ErrorList {
- fldPath := field.NewPath("metadata")
- allErrs := ValidateObjectMetaUpdate(&newPod.ObjectMeta, &oldPod.ObjectMeta, fldPath)
- allErrs = append(allErrs, ValidatePodSpecificAnnotationUpdates(newPod, oldPod, fldPath.Child("annotations"))...)
- specPath := field.NewPath("spec")
-
- // validate updateable fields:
- // 1. spec.containers[*].image
- // 2. spec.initContainers[*].image
- // 3. spec.activeDeadlineSeconds
-
- containerErrs, stop := ValidateContainerUpdates(newPod.Spec.Containers, oldPod.Spec.Containers, specPath.Child("containers"))
- allErrs = append(allErrs, containerErrs...)
- if stop {
- return allErrs
- }
- containerErrs, stop = ValidateContainerUpdates(newPod.Spec.InitContainers, oldPod.Spec.InitContainers, specPath.Child("initContainers"))
- allErrs = append(allErrs, containerErrs...)
- if stop {
- return allErrs
- }
-
- // validate updated spec.activeDeadlineSeconds. two types of updates are allowed:
- // 1. from nil to a positive value
- // 2. from a positive value to a lesser, non-negative value
- if newPod.Spec.ActiveDeadlineSeconds != nil {
- newActiveDeadlineSeconds := *newPod.Spec.ActiveDeadlineSeconds
- if newActiveDeadlineSeconds < 0 || newActiveDeadlineSeconds > math.MaxInt32 {
- allErrs = append(allErrs, field.Invalid(specPath.Child("activeDeadlineSeconds"), newActiveDeadlineSeconds, validation.InclusiveRangeError(0, math.MaxInt32)))
- return allErrs
- }
- if oldPod.Spec.ActiveDeadlineSeconds != nil {
- oldActiveDeadlineSeconds := *oldPod.Spec.ActiveDeadlineSeconds
- if oldActiveDeadlineSeconds < newActiveDeadlineSeconds {
- allErrs = append(allErrs, field.Invalid(specPath.Child("activeDeadlineSeconds"), newActiveDeadlineSeconds, "must be less than or equal to previous value"))
- return allErrs
- }
- }
- } else if oldPod.Spec.ActiveDeadlineSeconds != nil {
- allErrs = append(allErrs, field.Invalid(specPath.Child("activeDeadlineSeconds"), newPod.Spec.ActiveDeadlineSeconds, "must not update from a positive integer to nil value"))
- }
-
- // handle updateable fields by munging those fields prior to deep equal comparison.
- mungedPod := *newPod
- // munge spec.containers[*].image
- var newContainers []core.Container
- for ix, container := range mungedPod.Spec.Containers {
- container.Image = oldPod.Spec.Containers[ix].Image
- newContainers = append(newContainers, container)
- }
- mungedPod.Spec.Containers = newContainers
- // munge spec.initContainers[*].image
- var newInitContainers []core.Container
- for ix, container := range mungedPod.Spec.InitContainers {
- container.Image = oldPod.Spec.InitContainers[ix].Image
- newInitContainers = append(newInitContainers, container)
- }
- mungedPod.Spec.InitContainers = newInitContainers
- // munge spec.activeDeadlineSeconds
- mungedPod.Spec.ActiveDeadlineSeconds = nil
- if oldPod.Spec.ActiveDeadlineSeconds != nil {
- activeDeadlineSeconds := *oldPod.Spec.ActiveDeadlineSeconds
- mungedPod.Spec.ActiveDeadlineSeconds = &activeDeadlineSeconds
- }
-
- // Allow only additions to tolerations updates.
- mungedPod.Spec.Tolerations = oldPod.Spec.Tolerations
- allErrs = append(allErrs, validateOnlyAddedTolerations(newPod.Spec.Tolerations, oldPod.Spec.Tolerations, specPath.Child("tolerations"))...)
-
- if !apiequality.Semantic.DeepEqual(mungedPod.Spec, oldPod.Spec) {
- // This diff isn't perfect, but it's a helluva lot better an "I'm not going to tell you what the difference is".
- //TODO: Pinpoint the specific field that causes the invalid error after we have strategic merge diff
- specDiff := diff.ObjectDiff(mungedPod.Spec, oldPod.Spec)
- allErrs = append(allErrs, field.Forbidden(specPath, fmt.Sprintf("pod updates may not change fields other than `spec.containers[*].image`, `spec.initContainers[*].image`, `spec.activeDeadlineSeconds` or `spec.tolerations` (only additions to existing tolerations)\n%v", specDiff)))
- }
-
- return allErrs
-}
-
-// ValidateContainerStateTransition test to if any illegal container state transitions are being attempted
-func ValidateContainerStateTransition(newStatuses, oldStatuses []core.ContainerStatus, fldpath *field.Path, restartPolicy core.RestartPolicy) field.ErrorList {
- allErrs := field.ErrorList{}
- // If we should always restart, containers are allowed to leave the terminated state
- if restartPolicy == core.RestartPolicyAlways {
- return allErrs
- }
- for i, oldStatus := range oldStatuses {
- // Skip any container that is not terminated
- if oldStatus.State.Terminated == nil {
- continue
- }
- // Skip any container that failed but is allowed to restart
- if oldStatus.State.Terminated.ExitCode != 0 && restartPolicy == core.RestartPolicyOnFailure {
- continue
- }
- for _, newStatus := range newStatuses {
- if oldStatus.Name == newStatus.Name && newStatus.State.Terminated == nil {
- allErrs = append(allErrs, field.Forbidden(fldpath.Index(i).Child("state"), "may not be transitioned to non-terminated state"))
- }
- }
- }
- return allErrs
-}
-
-// ValidatePodStatusUpdate tests to see if the update is legal for an end user to make. newPod is updated with fields
-// that cannot be changed.
-func ValidatePodStatusUpdate(newPod, oldPod *core.Pod) field.ErrorList {
- fldPath := field.NewPath("metadata")
- allErrs := ValidateObjectMetaUpdate(&newPod.ObjectMeta, &oldPod.ObjectMeta, fldPath)
- allErrs = append(allErrs, ValidatePodSpecificAnnotationUpdates(newPod, oldPod, fldPath.Child("annotations"))...)
-
- fldPath = field.NewPath("status")
- if newPod.Spec.NodeName != oldPod.Spec.NodeName {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("nodeName"), "may not be changed directly"))
- }
-
- if newPod.Status.NominatedNodeName != oldPod.Status.NominatedNodeName && len(newPod.Status.NominatedNodeName) > 0 {
- for _, msg := range ValidateNodeName(newPod.Status.NominatedNodeName, false) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("nominatedNodeName"), newPod.Status.NominatedNodeName, msg))
- }
- }
-
- // If pod should not restart, make sure the status update does not transition
- // any terminated containers to a non-terminated state.
- allErrs = append(allErrs, ValidateContainerStateTransition(newPod.Status.ContainerStatuses, oldPod.Status.ContainerStatuses, fldPath.Child("containerStatuses"), oldPod.Spec.RestartPolicy)...)
- allErrs = append(allErrs, ValidateContainerStateTransition(newPod.Status.InitContainerStatuses, oldPod.Status.InitContainerStatuses, fldPath.Child("initContainerStatuses"), oldPod.Spec.RestartPolicy)...)
-
- // For status update we ignore changes to pod spec.
- newPod.Spec = oldPod.Spec
-
- return allErrs
-}
-
-// ValidatePodBinding tests if required fields in the pod binding are legal.
-func ValidatePodBinding(binding *core.Binding) field.ErrorList {
- allErrs := field.ErrorList{}
-
- if len(binding.Target.Kind) != 0 && binding.Target.Kind != "Node" {
- // TODO: When validation becomes versioned, this gets more complicated.
- allErrs = append(allErrs, field.NotSupported(field.NewPath("target", "kind"), binding.Target.Kind, []string{"Node", "<empty>"}))
- }
- if len(binding.Target.Name) == 0 {
- // TODO: When validation becomes versioned, this gets more complicated.
- allErrs = append(allErrs, field.Required(field.NewPath("target", "name"), ""))
- }
-
- return allErrs
-}
-
-// ValidatePodTemplate tests if required fields in the pod template are set.
-func ValidatePodTemplate(pod *core.PodTemplate) field.ErrorList {
- allErrs := ValidateObjectMeta(&pod.ObjectMeta, true, ValidatePodName, field.NewPath("metadata"))
- allErrs = append(allErrs, ValidatePodTemplateSpec(&pod.Template, field.NewPath("template"))...)
- return allErrs
-}
-
-// ValidatePodTemplateUpdate tests to see if the update is legal for an end user to make. newPod is updated with fields
-// that cannot be changed.
-func ValidatePodTemplateUpdate(newPod, oldPod *core.PodTemplate) field.ErrorList {
- allErrs := ValidateObjectMetaUpdate(&oldPod.ObjectMeta, &newPod.ObjectMeta, field.NewPath("metadata"))
- allErrs = append(allErrs, ValidatePodTemplateSpec(&newPod.Template, field.NewPath("template"))...)
- return allErrs
-}
-
-var supportedSessionAffinityType = sets.NewString(string(core.ServiceAffinityClientIP), string(core.ServiceAffinityNone))
-var supportedServiceType = sets.NewString(string(core.ServiceTypeClusterIP), string(core.ServiceTypeNodePort),
- string(core.ServiceTypeLoadBalancer), string(core.ServiceTypeExternalName))
-
-// ValidateService tests if required fields/annotations of a Service are valid.
-func ValidateService(service *core.Service) field.ErrorList {
- allErrs := ValidateObjectMeta(&service.ObjectMeta, true, ValidateServiceName, field.NewPath("metadata"))
-
- specPath := field.NewPath("spec")
- isHeadlessService := service.Spec.ClusterIP == core.ClusterIPNone
- if len(service.Spec.Ports) == 0 && !isHeadlessService && service.Spec.Type != core.ServiceTypeExternalName {
- allErrs = append(allErrs, field.Required(specPath.Child("ports"), ""))
- }
- switch service.Spec.Type {
- case core.ServiceTypeLoadBalancer:
- for ix := range service.Spec.Ports {
- port := &service.Spec.Ports[ix]
- // This is a workaround for broken cloud environments that
- // over-open firewalls. Hopefully it can go away when more clouds
- // understand containers better.
- if port.Port == ports.KubeletPort {
- portPath := specPath.Child("ports").Index(ix)
- allErrs = append(allErrs, field.Invalid(portPath, port.Port, fmt.Sprintf("may not expose port %v externally since it is used by kubelet", ports.KubeletPort)))
- }
- }
- if service.Spec.ClusterIP == "None" {
- allErrs = append(allErrs, field.Invalid(specPath.Child("clusterIP"), service.Spec.ClusterIP, "may not be set to 'None' for LoadBalancer services"))
- }
- case core.ServiceTypeNodePort:
- if service.Spec.ClusterIP == "None" {
- allErrs = append(allErrs, field.Invalid(specPath.Child("clusterIP"), service.Spec.ClusterIP, "may not be set to 'None' for NodePort services"))
- }
- case core.ServiceTypeExternalName:
- if service.Spec.ClusterIP != "" {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("clusterIP"), "must be empty for ExternalName services"))
- }
- if len(service.Spec.ExternalName) > 0 {
- allErrs = append(allErrs, ValidateDNS1123Subdomain(service.Spec.ExternalName, specPath.Child("externalName"))...)
- } else {
- allErrs = append(allErrs, field.Required(specPath.Child("externalName"), ""))
- }
- }
-
- allPortNames := sets.String{}
- portsPath := specPath.Child("ports")
- for i := range service.Spec.Ports {
- portPath := portsPath.Index(i)
- allErrs = append(allErrs, validateServicePort(&service.Spec.Ports[i], len(service.Spec.Ports) > 1, isHeadlessService, &allPortNames, portPath)...)
- }
-
- if service.Spec.Selector != nil {
- allErrs = append(allErrs, unversionedvalidation.ValidateLabels(service.Spec.Selector, specPath.Child("selector"))...)
- }
-
- if len(service.Spec.SessionAffinity) == 0 {
- allErrs = append(allErrs, field.Required(specPath.Child("sessionAffinity"), ""))
- } else if !supportedSessionAffinityType.Has(string(service.Spec.SessionAffinity)) {
- allErrs = append(allErrs, field.NotSupported(specPath.Child("sessionAffinity"), service.Spec.SessionAffinity, supportedSessionAffinityType.List()))
- }
-
- if service.Spec.SessionAffinity == core.ServiceAffinityClientIP {
- allErrs = append(allErrs, validateClientIPAffinityConfig(service.Spec.SessionAffinityConfig, specPath.Child("sessionAffinityConfig"))...)
- } else if service.Spec.SessionAffinity == core.ServiceAffinityNone {
- if service.Spec.SessionAffinityConfig != nil {
- allErrs = append(allErrs, field.Forbidden(specPath.Child("sessionAffinityConfig"), fmt.Sprintf("must not be set when session affinity is %s", string(core.ServiceAffinityNone))))
- }
- }
-
- if helper.IsServiceIPSet(service) {
- if ip := net.ParseIP(service.Spec.ClusterIP); ip == nil {
- allErrs = append(allErrs, field.Invalid(specPath.Child("clusterIP"), service.Spec.ClusterIP, "must be empty, 'None', or a valid IP address"))
- }
- }
-
- ipPath := specPath.Child("externalIPs")
- for i, ip := range service.Spec.ExternalIPs {
- idxPath := ipPath.Index(i)
- if msgs := validation.IsValidIP(ip); len(msgs) != 0 {
- for i := range msgs {
- allErrs = append(allErrs, field.Invalid(idxPath, ip, msgs[i]))
- }
- } else {
- allErrs = append(allErrs, validateNonSpecialIP(ip, idxPath)...)
- }
- }
-
- if len(service.Spec.Type) == 0 {
- allErrs = append(allErrs, field.Required(specPath.Child("type"), ""))
- } else if !supportedServiceType.Has(string(service.Spec.Type)) {
- allErrs = append(allErrs, field.NotSupported(specPath.Child("type"), service.Spec.Type, supportedServiceType.List()))
- }
-
- if service.Spec.Type == core.ServiceTypeLoadBalancer {
- portsPath := specPath.Child("ports")
- includeProtocols := sets.NewString()
- for i := range service.Spec.Ports {
- portPath := portsPath.Index(i)
- if !supportedPortProtocols.Has(string(service.Spec.Ports[i].Protocol)) {
- allErrs = append(allErrs, field.Invalid(portPath.Child("protocol"), service.Spec.Ports[i].Protocol, "cannot create an external load balancer with non-TCP/UDP ports"))
- } else {
- includeProtocols.Insert(string(service.Spec.Ports[i].Protocol))
- }
- }
- if includeProtocols.Len() > 1 {
- allErrs = append(allErrs, field.Invalid(portsPath, service.Spec.Ports, "cannot create an external load balancer with mix protocols"))
- }
- }
-
- if service.Spec.Type == core.ServiceTypeClusterIP {
- portsPath := specPath.Child("ports")
- for i := range service.Spec.Ports {
- portPath := portsPath.Index(i)
- if service.Spec.Ports[i].NodePort != 0 {
- allErrs = append(allErrs, field.Forbidden(portPath.Child("nodePort"), "may not be used when `type` is 'ClusterIP'"))
- }
- }
- }
-
- // Check for duplicate NodePorts, considering (protocol,port) pairs
- portsPath = specPath.Child("ports")
- nodePorts := make(map[core.ServicePort]bool)
- for i := range service.Spec.Ports {
- port := &service.Spec.Ports[i]
- if port.NodePort == 0 {
- continue
- }
- portPath := portsPath.Index(i)
- var key core.ServicePort
- key.Protocol = port.Protocol
- key.NodePort = port.NodePort
- _, found := nodePorts[key]
- if found {
- allErrs = append(allErrs, field.Duplicate(portPath.Child("nodePort"), port.NodePort))
- }
- nodePorts[key] = true
- }
-
- // Check for duplicate Ports, considering (protocol,port) pairs
- portsPath = specPath.Child("ports")
- ports := make(map[core.ServicePort]bool)
- for i, port := range service.Spec.Ports {
- portPath := portsPath.Index(i)
- key := core.ServicePort{Protocol: port.Protocol, Port: port.Port}
- _, found := ports[key]
- if found {
- allErrs = append(allErrs, field.Duplicate(portPath, key))
- }
- ports[key] = true
- }
-
- // Validate SourceRange field and annotation
- _, ok := service.Annotations[core.AnnotationLoadBalancerSourceRangesKey]
- if len(service.Spec.LoadBalancerSourceRanges) > 0 || ok {
- var fieldPath *field.Path
- var val string
- if len(service.Spec.LoadBalancerSourceRanges) > 0 {
- fieldPath = specPath.Child("LoadBalancerSourceRanges")
- val = fmt.Sprintf("%v", service.Spec.LoadBalancerSourceRanges)
- } else {
- fieldPath = field.NewPath("metadata", "annotations").Key(core.AnnotationLoadBalancerSourceRangesKey)
- val = service.Annotations[core.AnnotationLoadBalancerSourceRangesKey]
- }
- if service.Spec.Type != core.ServiceTypeLoadBalancer {
- allErrs = append(allErrs, field.Forbidden(fieldPath, "may only be used when `type` is 'LoadBalancer'"))
- }
- _, err := apiservice.GetLoadBalancerSourceRanges(service)
- if err != nil {
- allErrs = append(allErrs, field.Invalid(fieldPath, val, "must be a list of IP ranges. For example, 10.240.0.0/24,10.250.0.0/24 "))
- }
- }
-
- allErrs = append(allErrs, validateServiceExternalTrafficFieldsValue(service)...)
-
- return allErrs
-}
-
-func validateServicePort(sp *core.ServicePort, requireName, isHeadlessService bool, allNames *sets.String, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- if requireName && len(sp.Name) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("name"), ""))
- } else if len(sp.Name) != 0 {
- allErrs = append(allErrs, ValidateDNS1123Label(sp.Name, fldPath.Child("name"))...)
- if allNames.Has(sp.Name) {
- allErrs = append(allErrs, field.Duplicate(fldPath.Child("name"), sp.Name))
- } else {
- allNames.Insert(sp.Name)
- }
- }
-
- for _, msg := range validation.IsValidPortNum(int(sp.Port)) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("port"), sp.Port, msg))
- }
-
- if len(sp.Protocol) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("protocol"), ""))
- } else if !supportedPortProtocols.Has(string(sp.Protocol)) {
- allErrs = append(allErrs, field.NotSupported(fldPath.Child("protocol"), sp.Protocol, supportedPortProtocols.List()))
- }
-
- allErrs = append(allErrs, ValidatePortNumOrName(sp.TargetPort, fldPath.Child("targetPort"))...)
-
- // in the v1 API, targetPorts on headless services were tolerated.
- // once we have version-specific validation, we can reject this on newer API versions, but until then, we have to tolerate it for compatibility.
- //
- // if isHeadlessService {
- // if sp.TargetPort.Type == intstr.String || (sp.TargetPort.Type == intstr.Int && sp.Port != sp.TargetPort.IntValue()) {
- // allErrs = append(allErrs, field.Invalid(fldPath.Child("targetPort"), sp.TargetPort, "must be equal to the value of 'port' when clusterIP = None"))
- // }
- // }
-
- return allErrs
-}
-
-// validateServiceExternalTrafficFieldsValue validates ExternalTraffic related annotations
-// have legal value.
-func validateServiceExternalTrafficFieldsValue(service *core.Service) field.ErrorList {
- allErrs := field.ErrorList{}
-
- // Check first class fields.
- if service.Spec.ExternalTrafficPolicy != "" &&
- service.Spec.ExternalTrafficPolicy != core.ServiceExternalTrafficPolicyTypeCluster &&
- service.Spec.ExternalTrafficPolicy != core.ServiceExternalTrafficPolicyTypeLocal {
- allErrs = append(allErrs, field.Invalid(field.NewPath("spec").Child("externalTrafficPolicy"), service.Spec.ExternalTrafficPolicy,
- fmt.Sprintf("ExternalTrafficPolicy must be empty, %v or %v", core.ServiceExternalTrafficPolicyTypeCluster, core.ServiceExternalTrafficPolicyTypeLocal)))
- }
- if service.Spec.HealthCheckNodePort < 0 {
- allErrs = append(allErrs, field.Invalid(field.NewPath("spec").Child("healthCheckNodePort"), service.Spec.HealthCheckNodePort,
- "HealthCheckNodePort must be not less than 0"))
- }
-
- return allErrs
-}
-
-// ValidateServiceExternalTrafficFieldsCombination validates if ExternalTrafficPolicy,
-// HealthCheckNodePort and Type combination are legal. For update, it should be called
-// after clearing externalTraffic related fields for the ease of transitioning between
-// different service types.
-func ValidateServiceExternalTrafficFieldsCombination(service *core.Service) field.ErrorList {
- allErrs := field.ErrorList{}
-
- if service.Spec.Type != core.ServiceTypeLoadBalancer &&
- service.Spec.Type != core.ServiceTypeNodePort &&
- service.Spec.ExternalTrafficPolicy != "" {
- allErrs = append(allErrs, field.Invalid(field.NewPath("spec", "externalTrafficPolicy"), service.Spec.ExternalTrafficPolicy,
- "ExternalTrafficPolicy can only be set on NodePort and LoadBalancer service"))
- }
-
- if !apiservice.NeedsHealthCheck(service) &&
- service.Spec.HealthCheckNodePort != 0 {
- allErrs = append(allErrs, field.Invalid(field.NewPath("spec", "healthCheckNodePort"), service.Spec.HealthCheckNodePort,
- "HealthCheckNodePort can only be set on LoadBalancer service with ExternalTrafficPolicy=Local"))
- }
-
- return allErrs
-}
-
-// ValidateServiceUpdate tests if required fields in the service are set during an update
-func ValidateServiceUpdate(service, oldService *core.Service) field.ErrorList {
- allErrs := ValidateObjectMetaUpdate(&service.ObjectMeta, &oldService.ObjectMeta, field.NewPath("metadata"))
-
- // ClusterIP should be immutable for services using it (every type other than ExternalName)
- // which do not have ClusterIP assigned yet (empty string value)
- if service.Spec.Type != core.ServiceTypeExternalName {
- if oldService.Spec.Type != core.ServiceTypeExternalName && oldService.Spec.ClusterIP != "" {
- allErrs = append(allErrs, ValidateImmutableField(service.Spec.ClusterIP, oldService.Spec.ClusterIP, field.NewPath("spec", "clusterIP"))...)
- }
- }
-
- allErrs = append(allErrs, ValidateService(service)...)
- return allErrs
-}
-
-// ValidateServiceStatusUpdate tests if required fields in the Service are set when updating status.
-func ValidateServiceStatusUpdate(service, oldService *core.Service) field.ErrorList {
- allErrs := ValidateObjectMetaUpdate(&service.ObjectMeta, &oldService.ObjectMeta, field.NewPath("metadata"))
- allErrs = append(allErrs, ValidateLoadBalancerStatus(&service.Status.LoadBalancer, field.NewPath("status", "loadBalancer"))...)
- return allErrs
-}
-
-// ValidateReplicationController tests if required fields in the replication controller are set.
-func ValidateReplicationController(controller *core.ReplicationController) field.ErrorList {
- allErrs := ValidateObjectMeta(&controller.ObjectMeta, true, ValidateReplicationControllerName, field.NewPath("metadata"))
- allErrs = append(allErrs, ValidateReplicationControllerSpec(&controller.Spec, field.NewPath("spec"))...)
- return allErrs
-}
-
-// ValidateReplicationControllerUpdate tests if required fields in the replication controller are set.
-func ValidateReplicationControllerUpdate(controller, oldController *core.ReplicationController) field.ErrorList {
- allErrs := ValidateObjectMetaUpdate(&controller.ObjectMeta, &oldController.ObjectMeta, field.NewPath("metadata"))
- allErrs = append(allErrs, ValidateReplicationControllerSpec(&controller.Spec, field.NewPath("spec"))...)
- return allErrs
-}
-
-// ValidateReplicationControllerStatusUpdate tests if required fields in the replication controller are set.
-func ValidateReplicationControllerStatusUpdate(controller, oldController *core.ReplicationController) field.ErrorList {
- allErrs := ValidateObjectMetaUpdate(&controller.ObjectMeta, &oldController.ObjectMeta, field.NewPath("metadata"))
- allErrs = append(allErrs, ValidateReplicationControllerStatus(controller.Status, field.NewPath("status"))...)
- return allErrs
-}
-
-func ValidateReplicationControllerStatus(status core.ReplicationControllerStatus, statusPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- allErrs = append(allErrs, ValidateNonnegativeField(int64(status.Replicas), statusPath.Child("replicas"))...)
- allErrs = append(allErrs, ValidateNonnegativeField(int64(status.FullyLabeledReplicas), statusPath.Child("fullyLabeledReplicas"))...)
- allErrs = append(allErrs, ValidateNonnegativeField(int64(status.ReadyReplicas), statusPath.Child("readyReplicas"))...)
- allErrs = append(allErrs, ValidateNonnegativeField(int64(status.AvailableReplicas), statusPath.Child("availableReplicas"))...)
- allErrs = append(allErrs, ValidateNonnegativeField(int64(status.ObservedGeneration), statusPath.Child("observedGeneration"))...)
- msg := "cannot be greater than status.replicas"
- if status.FullyLabeledReplicas > status.Replicas {
- allErrs = append(allErrs, field.Invalid(statusPath.Child("fullyLabeledReplicas"), status.FullyLabeledReplicas, msg))
- }
- if status.ReadyReplicas > status.Replicas {
- allErrs = append(allErrs, field.Invalid(statusPath.Child("readyReplicas"), status.ReadyReplicas, msg))
- }
- if status.AvailableReplicas > status.Replicas {
- allErrs = append(allErrs, field.Invalid(statusPath.Child("availableReplicas"), status.AvailableReplicas, msg))
- }
- if status.AvailableReplicas > status.ReadyReplicas {
- allErrs = append(allErrs, field.Invalid(statusPath.Child("availableReplicas"), status.AvailableReplicas, "cannot be greater than readyReplicas"))
- }
- return allErrs
-}
-
-// Validates that the given selector is non-empty.
-func ValidateNonEmptySelector(selectorMap map[string]string, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- selector := labels.Set(selectorMap).AsSelector()
- if selector.Empty() {
- allErrs = append(allErrs, field.Required(fldPath, ""))
- }
- return allErrs
-}
-
-// Validates the given template and ensures that it is in accordance with the desired selector and replicas.
-func ValidatePodTemplateSpecForRC(template *core.PodTemplateSpec, selectorMap map[string]string, replicas int32, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if template == nil {
- allErrs = append(allErrs, field.Required(fldPath, ""))
- } else {
- selector := labels.Set(selectorMap).AsSelector()
- if !selector.Empty() {
- // Verify that the RC selector matches the labels in template.
- labels := labels.Set(template.Labels)
- if !selector.Matches(labels) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("metadata", "labels"), template.Labels, "`selector` does not match template `labels`"))
- }
- }
- allErrs = append(allErrs, ValidatePodTemplateSpec(template, fldPath)...)
- if replicas > 1 {
- allErrs = append(allErrs, ValidateReadOnlyPersistentDisks(template.Spec.Volumes, fldPath.Child("spec", "volumes"))...)
- }
- // RestartPolicy has already been first-order validated as per ValidatePodTemplateSpec().
- if template.Spec.RestartPolicy != core.RestartPolicyAlways {
- allErrs = append(allErrs, field.NotSupported(fldPath.Child("spec", "restartPolicy"), template.Spec.RestartPolicy, []string{string(core.RestartPolicyAlways)}))
- }
- if template.Spec.ActiveDeadlineSeconds != nil {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("spec", "activeDeadlineSeconds"), template.Spec.ActiveDeadlineSeconds, "must not be specified"))
- }
- }
- return allErrs
-}
-
-// ValidateReplicationControllerSpec tests if required fields in the replication controller spec are set.
-func ValidateReplicationControllerSpec(spec *core.ReplicationControllerSpec, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- allErrs = append(allErrs, ValidateNonnegativeField(int64(spec.MinReadySeconds), fldPath.Child("minReadySeconds"))...)
- allErrs = append(allErrs, ValidateNonEmptySelector(spec.Selector, fldPath.Child("selector"))...)
- allErrs = append(allErrs, ValidateNonnegativeField(int64(spec.Replicas), fldPath.Child("replicas"))...)
- allErrs = append(allErrs, ValidatePodTemplateSpecForRC(spec.Template, spec.Selector, spec.Replicas, fldPath.Child("template"))...)
- return allErrs
-}
-
-// ValidatePodTemplateSpec validates the spec of a pod template
-func ValidatePodTemplateSpec(spec *core.PodTemplateSpec, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- allErrs = append(allErrs, unversionedvalidation.ValidateLabels(spec.Labels, fldPath.Child("labels"))...)
- allErrs = append(allErrs, ValidateAnnotations(spec.Annotations, fldPath.Child("annotations"))...)
- allErrs = append(allErrs, ValidatePodSpecificAnnotations(spec.Annotations, &spec.Spec, fldPath.Child("annotations"))...)
- allErrs = append(allErrs, ValidatePodSpec(&spec.Spec, fldPath.Child("spec"))...)
- return allErrs
-}
-
-func ValidateReadOnlyPersistentDisks(volumes []core.Volume, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- for i := range volumes {
- vol := &volumes[i]
- idxPath := fldPath.Index(i)
- if vol.GCEPersistentDisk != nil {
- if vol.GCEPersistentDisk.ReadOnly == false {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("gcePersistentDisk", "readOnly"), false, "must be true for replicated pods > 1; GCE PD can only be mounted on multiple machines if it is read-only"))
- }
- }
- // TODO: What to do for AWS? It doesn't support replicas
- }
- return allErrs
-}
-
-// ValidateTaintsInNodeAnnotations tests that the serialized taints in Node.Annotations has valid data
-func ValidateTaintsInNodeAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- taints, err := helper.GetTaintsFromNodeAnnotations(annotations)
- if err != nil {
- allErrs = append(allErrs, field.Invalid(fldPath, core.TaintsAnnotationKey, err.Error()))
- return allErrs
- }
-
- if len(taints) > 0 {
- allErrs = append(allErrs, validateNodeTaints(taints, fldPath.Child(core.TaintsAnnotationKey))...)
- }
-
- return allErrs
-}
-
-// validateNodeTaints tests if given taints have valid data.
-func validateNodeTaints(taints []core.Taint, fldPath *field.Path) field.ErrorList {
- allErrors := field.ErrorList{}
-
- uniqueTaints := map[core.TaintEffect]sets.String{}
-
- for i, currTaint := range taints {
- idxPath := fldPath.Index(i)
- // validate the taint key
- allErrors = append(allErrors, unversionedvalidation.ValidateLabelName(currTaint.Key, idxPath.Child("key"))...)
- // validate the taint value
- if errs := validation.IsValidLabelValue(currTaint.Value); len(errs) != 0 {
- allErrors = append(allErrors, field.Invalid(idxPath.Child("value"), currTaint.Value, strings.Join(errs, ";")))
- }
- // validate the taint effect
- allErrors = append(allErrors, validateTaintEffect(&currTaint.Effect, false, idxPath.Child("effect"))...)
-
- // validate if taint is unique by <key, effect>
- if len(uniqueTaints[currTaint.Effect]) > 0 && uniqueTaints[currTaint.Effect].Has(currTaint.Key) {
- duplicatedError := field.Duplicate(idxPath, currTaint)
- duplicatedError.Detail = "taints must be unique by key and effect pair"
- allErrors = append(allErrors, duplicatedError)
- continue
- }
-
- // add taint to existingTaints for uniqueness check
- if len(uniqueTaints[currTaint.Effect]) == 0 {
- uniqueTaints[currTaint.Effect] = sets.String{}
- }
- uniqueTaints[currTaint.Effect].Insert(currTaint.Key)
- }
- return allErrors
-}
-
-func ValidateNodeSpecificAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- if annotations[core.TaintsAnnotationKey] != "" {
- allErrs = append(allErrs, ValidateTaintsInNodeAnnotations(annotations, fldPath)...)
- }
-
- if annotations[core.PreferAvoidPodsAnnotationKey] != "" {
- allErrs = append(allErrs, ValidateAvoidPodsInNodeAnnotations(annotations, fldPath)...)
- }
- return allErrs
-}
-
-// ValidateNode tests if required fields in the node are set.
-func ValidateNode(node *core.Node) field.ErrorList {
- fldPath := field.NewPath("metadata")
- allErrs := ValidateObjectMeta(&node.ObjectMeta, false, ValidateNodeName, fldPath)
- allErrs = append(allErrs, ValidateNodeSpecificAnnotations(node.ObjectMeta.Annotations, fldPath.Child("annotations"))...)
- if len(node.Spec.Taints) > 0 {
- allErrs = append(allErrs, validateNodeTaints(node.Spec.Taints, fldPath.Child("taints"))...)
- }
-
- // Only validate spec.
- // All status fields are optional and can be updated later.
- // That said, if specified, we need to ensure they are valid.
- allErrs = append(allErrs, ValidateNodeResources(node)...)
-
- // external ID is required.
- if len(node.Spec.ExternalID) == 0 {
- allErrs = append(allErrs, field.Required(field.NewPath("spec", "externalID"), ""))
- }
-
- // Only allow Node.Spec.ConfigSource to be set if the DynamicKubeletConfig feature gate is enabled
- if node.Spec.ConfigSource != nil && !utilfeature.DefaultFeatureGate.Enabled(features.DynamicKubeletConfig) {
- allErrs = append(allErrs, field.Forbidden(field.NewPath("spec", "configSource"), "configSource may only be set if the DynamicKubeletConfig feature gate is enabled)"))
- }
-
- if len(node.Spec.PodCIDR) != 0 {
- _, err := ValidateCIDR(node.Spec.PodCIDR)
- if err != nil {
- allErrs = append(allErrs, field.Invalid(field.NewPath("spec", "podCIDR"), node.Spec.PodCIDR, "not a valid CIDR"))
- }
- }
- return allErrs
-}
-
-// ValidateNodeResources is used to make sure a node has valid capacity and allocatable values.
-func ValidateNodeResources(node *core.Node) field.ErrorList {
- allErrs := field.ErrorList{}
- // Validate resource quantities in capacity.
- hugePageSizes := sets.NewString()
- for k, v := range node.Status.Capacity {
- resPath := field.NewPath("status", "capacity", string(k))
- allErrs = append(allErrs, ValidateResourceQuantityValue(string(k), v, resPath)...)
- // track any huge page size that has a positive value
- if helper.IsHugePageResourceName(k) && v.Value() > int64(0) {
- hugePageSizes.Insert(string(k))
- }
- if len(hugePageSizes) > 1 {
- allErrs = append(allErrs, field.Invalid(resPath, v, "may not have pre-allocated hugepages for multiple page sizes"))
- }
- }
- // Validate resource quantities in allocatable.
- hugePageSizes = sets.NewString()
- for k, v := range node.Status.Allocatable {
- resPath := field.NewPath("status", "allocatable", string(k))
- allErrs = append(allErrs, ValidateResourceQuantityValue(string(k), v, resPath)...)
- // track any huge page size that has a positive value
- if helper.IsHugePageResourceName(k) && v.Value() > int64(0) {
- hugePageSizes.Insert(string(k))
- }
- if len(hugePageSizes) > 1 {
- allErrs = append(allErrs, field.Invalid(resPath, v, "may not have pre-allocated hugepages for multiple page sizes"))
- }
- }
- return allErrs
-}
-
-// ValidateNodeUpdate tests to make sure a node update can be applied. Modifies oldNode.
-func ValidateNodeUpdate(node, oldNode *core.Node) field.ErrorList {
- fldPath := field.NewPath("metadata")
- allErrs := ValidateObjectMetaUpdate(&node.ObjectMeta, &oldNode.ObjectMeta, fldPath)
- allErrs = append(allErrs, ValidateNodeSpecificAnnotations(node.ObjectMeta.Annotations, fldPath.Child("annotations"))...)
-
- // TODO: Enable the code once we have better core object.status update model. Currently,
- // anyone can update node status.
- // if !apiequality.Semantic.DeepEqual(node.Status, core.NodeStatus{}) {
- // allErrs = append(allErrs, field.Invalid("status", node.Status, "must be empty"))
- // }
-
- allErrs = append(allErrs, ValidateNodeResources(node)...)
-
- // Validate no duplicate addresses in node status.
- addresses := make(map[core.NodeAddress]bool)
- for i, address := range node.Status.Addresses {
- if _, ok := addresses[address]; ok {
- allErrs = append(allErrs, field.Duplicate(field.NewPath("status", "addresses").Index(i), address))
- }
- addresses[address] = true
- }
-
- if len(oldNode.Spec.PodCIDR) == 0 {
- // Allow the controller manager to assign a CIDR to a node if it doesn't have one.
- oldNode.Spec.PodCIDR = node.Spec.PodCIDR
- } else {
- if oldNode.Spec.PodCIDR != node.Spec.PodCIDR {
- allErrs = append(allErrs, field.Forbidden(field.NewPath("spec", "podCIDR"), "node updates may not change podCIDR except from \"\" to valid"))
- }
- }
-
- // Allow controller manager updating provider ID when not set
- if len(oldNode.Spec.ProviderID) == 0 {
- oldNode.Spec.ProviderID = node.Spec.ProviderID
- } else {
- if oldNode.Spec.ProviderID != node.Spec.ProviderID {
- allErrs = append(allErrs, field.Forbidden(field.NewPath("spec", "providerID"), "node updates may not change providerID except from \"\" to valid"))
- }
- }
-
- // TODO: move reset function to its own location
- // Ignore metadata changes now that they have been tested
- oldNode.ObjectMeta = node.ObjectMeta
- // Allow users to update capacity
- oldNode.Status.Capacity = node.Status.Capacity
- // Allow users to unschedule node
- oldNode.Spec.Unschedulable = node.Spec.Unschedulable
- // Clear status
- oldNode.Status = node.Status
-
- // update taints
- if len(node.Spec.Taints) > 0 {
- allErrs = append(allErrs, validateNodeTaints(node.Spec.Taints, fldPath.Child("taints"))...)
- }
- oldNode.Spec.Taints = node.Spec.Taints
-
- // Allow updates to Node.Spec.ConfigSource if DynamicKubeletConfig feature gate is enabled
- if utilfeature.DefaultFeatureGate.Enabled(features.DynamicKubeletConfig) {
- oldNode.Spec.ConfigSource = node.Spec.ConfigSource
- }
-
- // We made allowed changes to oldNode, and now we compare oldNode to node. Any remaining differences indicate changes to protected fields.
- // TODO: Add a 'real' error type for this error and provide print actual diffs.
- if !apiequality.Semantic.DeepEqual(oldNode, node) {
- glog.V(4).Infof("Update failed validation %#v vs %#v", oldNode, node)
- allErrs = append(allErrs, field.Forbidden(field.NewPath(""), "node updates may only change labels, taints, or capacity (or configSource, if the DynamicKubeletConfig feature gate is enabled)"))
- }
-
- return allErrs
-}
-
-// Validate compute resource typename.
-// Refer to docs/design/resources.md for more details.
-func validateResourceName(value string, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- for _, msg := range validation.IsQualifiedName(value) {
- allErrs = append(allErrs, field.Invalid(fldPath, value, msg))
- }
- if len(allErrs) != 0 {
- return allErrs
- }
-
- if len(strings.Split(value, "/")) == 1 {
- if !helper.IsStandardResourceName(value) {
- return append(allErrs, field.Invalid(fldPath, value, "must be a standard resource type or fully qualified"))
- }
- }
-
- return allErrs
-}
-
-// Validate container resource name
-// Refer to docs/design/resources.md for more details.
-func validateContainerResourceName(value string, fldPath *field.Path) field.ErrorList {
- allErrs := validateResourceName(value, fldPath)
-
- if len(strings.Split(value, "/")) == 1 {
- if !helper.IsStandardContainerResourceName(value) {
- return append(allErrs, field.Invalid(fldPath, value, "must be a standard resource for containers"))
- }
- } else if !helper.IsDefaultNamespaceResource(core.ResourceName(value)) {
- if !helper.IsExtendedResourceName(core.ResourceName(value)) {
- return append(allErrs, field.Invalid(fldPath, value, "doesn't follow extended resource name standard"))
- }
- }
- return allErrs
-}
-
-// isLocalStorageResource checks whether the resource is local ephemeral storage
-func isLocalStorageResource(name string) bool {
- if name == string(core.ResourceEphemeralStorage) || name == string(core.ResourceRequestsEphemeralStorage) ||
- name == string(core.ResourceLimitsEphemeralStorage) {
- return true
- } else {
- return false
- }
-}
-
-// Validate resource names that can go in a resource quota
-// Refer to docs/design/resources.md for more details.
-func ValidateResourceQuotaResourceName(value string, fldPath *field.Path) field.ErrorList {
- allErrs := validateResourceName(value, fldPath)
- if isLocalStorageResource(value) && !utilfeature.DefaultFeatureGate.Enabled(features.LocalStorageCapacityIsolation) {
- return append(allErrs, field.Forbidden(fldPath, "ResourceEphemeralStorage field disabled by feature-gate for ResourceQuota"))
- }
- if len(strings.Split(value, "/")) == 1 {
- if !helper.IsStandardQuotaResourceName(value) {
- return append(allErrs, field.Invalid(fldPath, value, isInvalidQuotaResource))
- }
- }
- return allErrs
-}
-
-// Validate limit range types
-func validateLimitRangeTypeName(value string, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- for _, msg := range validation.IsQualifiedName(value) {
- allErrs = append(allErrs, field.Invalid(fldPath, value, msg))
- }
- if len(allErrs) != 0 {
- return allErrs
- }
-
- if len(strings.Split(value, "/")) == 1 {
- if !helper.IsStandardLimitRangeType(value) {
- return append(allErrs, field.Invalid(fldPath, value, "must be a standard limit type or fully qualified"))
- }
- }
-
- return allErrs
-}
-
-// Validate limit range resource name
-// limit types (other than Pod/Container) could contain storage not just cpu or memory
-func validateLimitRangeResourceName(limitType core.LimitType, value string, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if value == string(core.ResourceEphemeralStorage) && !utilfeature.DefaultFeatureGate.Enabled(features.LocalStorageCapacityIsolation) {
- return append(allErrs, field.Forbidden(fldPath, "ResourceEphemeralStorage field disabled by feature-gate for Resource LimitRange"))
- }
- switch limitType {
- case core.LimitTypePod, core.LimitTypeContainer:
- return validateContainerResourceName(value, fldPath)
- default:
- return validateResourceName(value, fldPath)
- }
-}
-
-// ValidateLimitRange tests if required fields in the LimitRange are set.
-func ValidateLimitRange(limitRange *core.LimitRange) field.ErrorList {
- allErrs := ValidateObjectMeta(&limitRange.ObjectMeta, true, ValidateLimitRangeName, field.NewPath("metadata"))
-
- // ensure resource names are properly qualified per docs/design/resources.md
- limitTypeSet := map[core.LimitType]bool{}
- fldPath := field.NewPath("spec", "limits")
- for i := range limitRange.Spec.Limits {
- idxPath := fldPath.Index(i)
- limit := &limitRange.Spec.Limits[i]
- allErrs = append(allErrs, validateLimitRangeTypeName(string(limit.Type), idxPath.Child("type"))...)
-
- _, found := limitTypeSet[limit.Type]
- if found {
- allErrs = append(allErrs, field.Duplicate(idxPath.Child("type"), limit.Type))
- }
- limitTypeSet[limit.Type] = true
-
- keys := sets.String{}
- min := map[string]resource.Quantity{}
- max := map[string]resource.Quantity{}
- defaults := map[string]resource.Quantity{}
- defaultRequests := map[string]resource.Quantity{}
- maxLimitRequestRatios := map[string]resource.Quantity{}
-
- for k, q := range limit.Max {
- allErrs = append(allErrs, validateLimitRangeResourceName(limit.Type, string(k), idxPath.Child("max").Key(string(k)))...)
- keys.Insert(string(k))
- max[string(k)] = q
- }
- for k, q := range limit.Min {
- allErrs = append(allErrs, validateLimitRangeResourceName(limit.Type, string(k), idxPath.Child("min").Key(string(k)))...)
- keys.Insert(string(k))
- min[string(k)] = q
- }
-
- if limit.Type == core.LimitTypePod {
- if len(limit.Default) > 0 {
- allErrs = append(allErrs, field.Forbidden(idxPath.Child("default"), "may not be specified when `type` is 'Pod'"))
- }
- if len(limit.DefaultRequest) > 0 {
- allErrs = append(allErrs, field.Forbidden(idxPath.Child("defaultRequest"), "may not be specified when `type` is 'Pod'"))
- }
- } else {
- for k, q := range limit.Default {
- allErrs = append(allErrs, validateLimitRangeResourceName(limit.Type, string(k), idxPath.Child("default").Key(string(k)))...)
- keys.Insert(string(k))
- defaults[string(k)] = q
- }
- for k, q := range limit.DefaultRequest {
- allErrs = append(allErrs, validateLimitRangeResourceName(limit.Type, string(k), idxPath.Child("defaultRequest").Key(string(k)))...)
- keys.Insert(string(k))
- defaultRequests[string(k)] = q
- }
- }
-
- if limit.Type == core.LimitTypePersistentVolumeClaim {
- _, minQuantityFound := limit.Min[core.ResourceStorage]
- _, maxQuantityFound := limit.Max[core.ResourceStorage]
- if !minQuantityFound && !maxQuantityFound {
- allErrs = append(allErrs, field.Required(idxPath.Child("limits"), "either minimum or maximum storage value is required, but neither was provided"))
- }
- }
-
- for k, q := range limit.MaxLimitRequestRatio {
- allErrs = append(allErrs, validateLimitRangeResourceName(limit.Type, string(k), idxPath.Child("maxLimitRequestRatio").Key(string(k)))...)
- keys.Insert(string(k))
- maxLimitRequestRatios[string(k)] = q
- }
-
- for k := range keys {
- minQuantity, minQuantityFound := min[k]
- maxQuantity, maxQuantityFound := max[k]
- defaultQuantity, defaultQuantityFound := defaults[k]
- defaultRequestQuantity, defaultRequestQuantityFound := defaultRequests[k]
- maxRatio, maxRatioFound := maxLimitRequestRatios[k]
-
- if minQuantityFound && maxQuantityFound && minQuantity.Cmp(maxQuantity) > 0 {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("min").Key(string(k)), minQuantity, fmt.Sprintf("min value %s is greater than max value %s", minQuantity.String(), maxQuantity.String())))
- }
-
- if defaultRequestQuantityFound && minQuantityFound && minQuantity.Cmp(defaultRequestQuantity) > 0 {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("defaultRequest").Key(string(k)), defaultRequestQuantity, fmt.Sprintf("min value %s is greater than default request value %s", minQuantity.String(), defaultRequestQuantity.String())))
- }
-
- if defaultRequestQuantityFound && maxQuantityFound && defaultRequestQuantity.Cmp(maxQuantity) > 0 {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("defaultRequest").Key(string(k)), defaultRequestQuantity, fmt.Sprintf("default request value %s is greater than max value %s", defaultRequestQuantity.String(), maxQuantity.String())))
- }
-
- if defaultRequestQuantityFound && defaultQuantityFound && defaultRequestQuantity.Cmp(defaultQuantity) > 0 {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("defaultRequest").Key(string(k)), defaultRequestQuantity, fmt.Sprintf("default request value %s is greater than default limit value %s", defaultRequestQuantity.String(), defaultQuantity.String())))
- }
-
- if defaultQuantityFound && minQuantityFound && minQuantity.Cmp(defaultQuantity) > 0 {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("default").Key(string(k)), minQuantity, fmt.Sprintf("min value %s is greater than default value %s", minQuantity.String(), defaultQuantity.String())))
- }
-
- if defaultQuantityFound && maxQuantityFound && defaultQuantity.Cmp(maxQuantity) > 0 {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("default").Key(string(k)), maxQuantity, fmt.Sprintf("default value %s is greater than max value %s", defaultQuantity.String(), maxQuantity.String())))
- }
- if maxRatioFound && maxRatio.Cmp(*resource.NewQuantity(1, resource.DecimalSI)) < 0 {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("maxLimitRequestRatio").Key(string(k)), maxRatio, fmt.Sprintf("ratio %s is less than 1", maxRatio.String())))
- }
- if maxRatioFound && minQuantityFound && maxQuantityFound {
- maxRatioValue := float64(maxRatio.Value())
- minQuantityValue := minQuantity.Value()
- maxQuantityValue := maxQuantity.Value()
- if maxRatio.Value() < resource.MaxMilliValue && minQuantityValue < resource.MaxMilliValue && maxQuantityValue < resource.MaxMilliValue {
- maxRatioValue = float64(maxRatio.MilliValue()) / 1000
- minQuantityValue = minQuantity.MilliValue()
- maxQuantityValue = maxQuantity.MilliValue()
- }
- maxRatioLimit := float64(maxQuantityValue) / float64(minQuantityValue)
- if maxRatioValue > maxRatioLimit {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("maxLimitRequestRatio").Key(string(k)), maxRatio, fmt.Sprintf("ratio %s is greater than max/min = %f", maxRatio.String(), maxRatioLimit)))
- }
- }
-
- // for GPU, hugepages and other resources that are not allowed to overcommit,
- // the default value and defaultRequest value must match if both are specified
- if !helper.IsOvercommitAllowed(core.ResourceName(k)) && defaultQuantityFound && defaultRequestQuantityFound && defaultQuantity.Cmp(defaultRequestQuantity) != 0 {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("defaultRequest").Key(string(k)), defaultRequestQuantity, fmt.Sprintf("default value %s must equal to defaultRequest value %s in %s", defaultQuantity.String(), defaultRequestQuantity.String(), k)))
- }
- }
- }
-
- return allErrs
-}
-
-// ValidateServiceAccount tests if required fields in the ServiceAccount are set.
-func ValidateServiceAccount(serviceAccount *core.ServiceAccount) field.ErrorList {
- allErrs := ValidateObjectMeta(&serviceAccount.ObjectMeta, true, ValidateServiceAccountName, field.NewPath("metadata"))
- return allErrs
-}
-
-// ValidateServiceAccountUpdate tests if required fields in the ServiceAccount are set.
-func ValidateServiceAccountUpdate(newServiceAccount, oldServiceAccount *core.ServiceAccount) field.ErrorList {
- allErrs := ValidateObjectMetaUpdate(&newServiceAccount.ObjectMeta, &oldServiceAccount.ObjectMeta, field.NewPath("metadata"))
- allErrs = append(allErrs, ValidateServiceAccount(newServiceAccount)...)
- return allErrs
-}
-
-// ValidateSecret tests if required fields in the Secret are set.
-func ValidateSecret(secret *core.Secret) field.ErrorList {
- allErrs := ValidateObjectMeta(&secret.ObjectMeta, true, ValidateSecretName, field.NewPath("metadata"))
-
- dataPath := field.NewPath("data")
- totalSize := 0
- for key, value := range secret.Data {
- for _, msg := range validation.IsConfigMapKey(key) {
- allErrs = append(allErrs, field.Invalid(dataPath.Key(key), key, msg))
- }
- totalSize += len(value)
- }
- if totalSize > core.MaxSecretSize {
- allErrs = append(allErrs, field.TooLong(dataPath, "", core.MaxSecretSize))
- }
-
- switch secret.Type {
- case core.SecretTypeServiceAccountToken:
- // Only require Annotations[kubernetes.io/service-account.name]
- // Additional fields (like Annotations[kubernetes.io/service-account.uid] and Data[token]) might be contributed later by a controller loop
- if value := secret.Annotations[core.ServiceAccountNameKey]; len(value) == 0 {
- allErrs = append(allErrs, field.Required(field.NewPath("metadata", "annotations").Key(core.ServiceAccountNameKey), ""))
- }
- case core.SecretTypeOpaque, "":
- // no-op
- case core.SecretTypeDockercfg:
- dockercfgBytes, exists := secret.Data[core.DockerConfigKey]
- if !exists {
- allErrs = append(allErrs, field.Required(dataPath.Key(core.DockerConfigKey), ""))
- break
- }
-
- // make sure that the content is well-formed json.
- if err := json.Unmarshal(dockercfgBytes, &map[string]interface{}{}); err != nil {
- allErrs = append(allErrs, field.Invalid(dataPath.Key(core.DockerConfigKey), "<secret contents redacted>", err.Error()))
- }
- case core.SecretTypeDockerConfigJson:
- dockerConfigJsonBytes, exists := secret.Data[core.DockerConfigJsonKey]
- if !exists {
- allErrs = append(allErrs, field.Required(dataPath.Key(core.DockerConfigJsonKey), ""))
- break
- }
-
- // make sure that the content is well-formed json.
- if err := json.Unmarshal(dockerConfigJsonBytes, &map[string]interface{}{}); err != nil {
- allErrs = append(allErrs, field.Invalid(dataPath.Key(core.DockerConfigJsonKey), "<secret contents redacted>", err.Error()))
- }
- case core.SecretTypeBasicAuth:
- _, usernameFieldExists := secret.Data[core.BasicAuthUsernameKey]
- _, passwordFieldExists := secret.Data[core.BasicAuthPasswordKey]
-
- // username or password might be empty, but the field must be present
- if !usernameFieldExists && !passwordFieldExists {
- allErrs = append(allErrs, field.Required(field.NewPath("data[%s]").Key(core.BasicAuthUsernameKey), ""))
- allErrs = append(allErrs, field.Required(field.NewPath("data[%s]").Key(core.BasicAuthPasswordKey), ""))
- break
- }
- case core.SecretTypeSSHAuth:
- if len(secret.Data[core.SSHAuthPrivateKey]) == 0 {
- allErrs = append(allErrs, field.Required(field.NewPath("data[%s]").Key(core.SSHAuthPrivateKey), ""))
- break
- }
-
- case core.SecretTypeTLS:
- if _, exists := secret.Data[core.TLSCertKey]; !exists {
- allErrs = append(allErrs, field.Required(dataPath.Key(core.TLSCertKey), ""))
- }
- if _, exists := secret.Data[core.TLSPrivateKeyKey]; !exists {
- allErrs = append(allErrs, field.Required(dataPath.Key(core.TLSPrivateKeyKey), ""))
- }
- // TODO: Verify that the key matches the cert.
- default:
- // no-op
- }
-
- return allErrs
-}
-
-// ValidateSecretUpdate tests if required fields in the Secret are set.
-func ValidateSecretUpdate(newSecret, oldSecret *core.Secret) field.ErrorList {
- allErrs := ValidateObjectMetaUpdate(&newSecret.ObjectMeta, &oldSecret.ObjectMeta, field.NewPath("metadata"))
-
- if len(newSecret.Type) == 0 {
- newSecret.Type = oldSecret.Type
- }
-
- allErrs = append(allErrs, ValidateImmutableField(newSecret.Type, oldSecret.Type, field.NewPath("type"))...)
-
- allErrs = append(allErrs, ValidateSecret(newSecret)...)
- return allErrs
-}
-
-// ValidateConfigMapName can be used to check whether the given ConfigMap name is valid.
-// Prefix indicates this name will be used as part of generation, in which case
-// trailing dashes are allowed.
-var ValidateConfigMapName = NameIsDNSSubdomain
-
-// ValidateConfigMap tests whether required fields in the ConfigMap are set.
-func ValidateConfigMap(cfg *core.ConfigMap) field.ErrorList {
- allErrs := field.ErrorList{}
- allErrs = append(allErrs, ValidateObjectMeta(&cfg.ObjectMeta, true, ValidateConfigMapName, field.NewPath("metadata"))...)
-
- totalSize := 0
-
- for key, value := range cfg.Data {
- for _, msg := range validation.IsConfigMapKey(key) {
- allErrs = append(allErrs, field.Invalid(field.NewPath("data").Key(key), key, msg))
- }
- // check if we have a duplicate key in the other bag
- if _, isValue := cfg.BinaryData[key]; isValue {
- msg := "duplicate of key present in binaryData"
- allErrs = append(allErrs, field.Invalid(field.NewPath("data").Key(key), key, msg))
- }
- totalSize += len(value)
- }
- for key, value := range cfg.BinaryData {
- for _, msg := range validation.IsConfigMapKey(key) {
- allErrs = append(allErrs, field.Invalid(field.NewPath("binaryData").Key(key), key, msg))
- }
- totalSize += len(value)
- }
- if totalSize > core.MaxSecretSize {
- // pass back "" to indicate that the error refers to the whole object.
- allErrs = append(allErrs, field.TooLong(field.NewPath(""), cfg, core.MaxSecretSize))
- }
-
- return allErrs
-}
-
-// ValidateConfigMapUpdate tests if required fields in the ConfigMap are set.
-func ValidateConfigMapUpdate(newCfg, oldCfg *core.ConfigMap) field.ErrorList {
- allErrs := field.ErrorList{}
- allErrs = append(allErrs, ValidateObjectMetaUpdate(&newCfg.ObjectMeta, &oldCfg.ObjectMeta, field.NewPath("metadata"))...)
- allErrs = append(allErrs, ValidateConfigMap(newCfg)...)
-
- return allErrs
-}
-
-func validateBasicResource(quantity resource.Quantity, fldPath *field.Path) field.ErrorList {
- if quantity.Value() < 0 {
- return field.ErrorList{field.Invalid(fldPath, quantity.Value(), "must be a valid resource quantity")}
- }
- return field.ErrorList{}
-}
-
-// Validates resource requirement spec.
-func ValidateResourceRequirements(requirements *core.ResourceRequirements, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- limPath := fldPath.Child("limits")
- reqPath := fldPath.Child("requests")
- limContainsCpuOrMemory := false
- reqContainsCpuOrMemory := false
- limContainsHugePages := false
- reqContainsHugePages := false
- supportedQoSComputeResources := sets.NewString(string(core.ResourceCPU), string(core.ResourceMemory))
- for resourceName, quantity := range requirements.Limits {
-
- fldPath := limPath.Key(string(resourceName))
- // Validate resource name.
- allErrs = append(allErrs, validateContainerResourceName(string(resourceName), fldPath)...)
-
- // Validate resource quantity.
- allErrs = append(allErrs, ValidateResourceQuantityValue(string(resourceName), quantity, fldPath)...)
-
- if resourceName == core.ResourceEphemeralStorage && !utilfeature.DefaultFeatureGate.Enabled(features.LocalStorageCapacityIsolation) {
- allErrs = append(allErrs, field.Forbidden(limPath, "ResourceEphemeralStorage field disabled by feature-gate for ResourceRequirements"))
- }
- if helper.IsHugePageResourceName(resourceName) {
- if !utilfeature.DefaultFeatureGate.Enabled(features.HugePages) {
- allErrs = append(allErrs, field.Forbidden(limPath, fmt.Sprintf("%s field disabled by feature-gate for ResourceRequirements", resourceName)))
- } else {
- limContainsHugePages = true
- }
- }
-
- if supportedQoSComputeResources.Has(string(resourceName)) {
- limContainsCpuOrMemory = true
- }
- }
- for resourceName, quantity := range requirements.Requests {
- fldPath := reqPath.Key(string(resourceName))
- // Validate resource name.
- allErrs = append(allErrs, validateContainerResourceName(string(resourceName), fldPath)...)
- // Validate resource quantity.
- allErrs = append(allErrs, ValidateResourceQuantityValue(string(resourceName), quantity, fldPath)...)
-
- // Check that request <= limit.
- limitQuantity, exists := requirements.Limits[resourceName]
- if exists {
- // For non overcommitable resources, not only requests can't exceed limits, they also can't be lower, i.e. must be equal.
- if quantity.Cmp(limitQuantity) != 0 && !helper.IsOvercommitAllowed(resourceName) {
- allErrs = append(allErrs, field.Invalid(reqPath, quantity.String(), fmt.Sprintf("must be equal to %s limit", resourceName)))
- } else if quantity.Cmp(limitQuantity) > 0 {
- allErrs = append(allErrs, field.Invalid(reqPath, quantity.String(), fmt.Sprintf("must be less than or equal to %s limit", resourceName)))
- }
- } else if !helper.IsOvercommitAllowed(resourceName) {
- allErrs = append(allErrs, field.Required(limPath, "Limit must be set for non overcommitable resources"))
- }
- if helper.IsHugePageResourceName(resourceName) {
- reqContainsHugePages = true
- }
- if supportedQoSComputeResources.Has(string(resourceName)) {
- reqContainsCpuOrMemory = true
- }
-
- }
- if !limContainsCpuOrMemory && !reqContainsCpuOrMemory && (reqContainsHugePages || limContainsHugePages) {
- allErrs = append(allErrs, field.Forbidden(fldPath, fmt.Sprintf("HugePages require cpu or memory")))
- }
-
- return allErrs
-}
-
-// validateResourceQuotaScopes ensures that each enumerated hard resource constraint is valid for set of scopes
-func validateResourceQuotaScopes(resourceQuotaSpec *core.ResourceQuotaSpec, fld *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(resourceQuotaSpec.Scopes) == 0 {
- return allErrs
- }
- hardLimits := sets.NewString()
- for k := range resourceQuotaSpec.Hard {
- hardLimits.Insert(string(k))
- }
- fldPath := fld.Child("scopes")
- scopeSet := sets.NewString()
- for _, scope := range resourceQuotaSpec.Scopes {
- if !helper.IsStandardResourceQuotaScope(string(scope)) {
- allErrs = append(allErrs, field.Invalid(fldPath, resourceQuotaSpec.Scopes, "unsupported scope"))
- }
- for _, k := range hardLimits.List() {
- if helper.IsStandardQuotaResourceName(k) && !helper.IsResourceQuotaScopeValidForResource(scope, k) {
- allErrs = append(allErrs, field.Invalid(fldPath, resourceQuotaSpec.Scopes, "unsupported scope applied to resource"))
- }
- }
- scopeSet.Insert(string(scope))
- }
- invalidScopePairs := []sets.String{
- sets.NewString(string(core.ResourceQuotaScopeBestEffort), string(core.ResourceQuotaScopeNotBestEffort)),
- sets.NewString(string(core.ResourceQuotaScopeTerminating), string(core.ResourceQuotaScopeNotTerminating)),
- }
- for _, invalidScopePair := range invalidScopePairs {
- if scopeSet.HasAll(invalidScopePair.List()...) {
- allErrs = append(allErrs, field.Invalid(fldPath, resourceQuotaSpec.Scopes, "conflicting scopes"))
- }
- }
- return allErrs
-}
-
-// ValidateResourceQuota tests if required fields in the ResourceQuota are set.
-func ValidateResourceQuota(resourceQuota *core.ResourceQuota) field.ErrorList {
- allErrs := ValidateObjectMeta(&resourceQuota.ObjectMeta, true, ValidateResourceQuotaName, field.NewPath("metadata"))
-
- allErrs = append(allErrs, ValidateResourceQuotaSpec(&resourceQuota.Spec, field.NewPath("spec"))...)
- allErrs = append(allErrs, ValidateResourceQuotaStatus(&resourceQuota.Status, field.NewPath("status"))...)
-
- return allErrs
-}
-
-func ValidateResourceQuotaStatus(status *core.ResourceQuotaStatus, fld *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- fldPath := fld.Child("hard")
- for k, v := range status.Hard {
- resPath := fldPath.Key(string(k))
- allErrs = append(allErrs, ValidateResourceQuotaResourceName(string(k), resPath)...)
- allErrs = append(allErrs, ValidateResourceQuantityValue(string(k), v, resPath)...)
- }
- fldPath = fld.Child("used")
- for k, v := range status.Used {
- resPath := fldPath.Key(string(k))
- allErrs = append(allErrs, ValidateResourceQuotaResourceName(string(k), resPath)...)
- allErrs = append(allErrs, ValidateResourceQuantityValue(string(k), v, resPath)...)
- }
-
- return allErrs
-}
-
-func ValidateResourceQuotaSpec(resourceQuotaSpec *core.ResourceQuotaSpec, fld *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
-
- fldPath := fld.Child("hard")
- for k, v := range resourceQuotaSpec.Hard {
- resPath := fldPath.Key(string(k))
- allErrs = append(allErrs, ValidateResourceQuotaResourceName(string(k), resPath)...)
- allErrs = append(allErrs, ValidateResourceQuantityValue(string(k), v, resPath)...)
- }
- allErrs = append(allErrs, validateResourceQuotaScopes(resourceQuotaSpec, fld)...)
-
- return allErrs
-}
-
-// ValidateResourceQuantityValue enforces that specified quantity is valid for specified resource
-func ValidateResourceQuantityValue(resource string, value resource.Quantity, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- allErrs = append(allErrs, ValidateNonnegativeQuantity(value, fldPath)...)
- if helper.IsIntegerResourceName(resource) {
- if value.MilliValue()%int64(1000) != int64(0) {
- allErrs = append(allErrs, field.Invalid(fldPath, value, isNotIntegerErrorMsg))
- }
- }
- return allErrs
-}
-
-// ValidateResourceQuotaUpdate tests to see if the update is legal for an end user to make.
-// newResourceQuota is updated with fields that cannot be changed.
-func ValidateResourceQuotaUpdate(newResourceQuota, oldResourceQuota *core.ResourceQuota) field.ErrorList {
- allErrs := ValidateObjectMetaUpdate(&newResourceQuota.ObjectMeta, &oldResourceQuota.ObjectMeta, field.NewPath("metadata"))
- allErrs = append(allErrs, ValidateResourceQuotaSpec(&newResourceQuota.Spec, field.NewPath("spec"))...)
-
- // ensure scopes cannot change, and that resources are still valid for scope
- fldPath := field.NewPath("spec", "scopes")
- oldScopes := sets.NewString()
- newScopes := sets.NewString()
- for _, scope := range newResourceQuota.Spec.Scopes {
- newScopes.Insert(string(scope))
- }
- for _, scope := range oldResourceQuota.Spec.Scopes {
- oldScopes.Insert(string(scope))
- }
- if !oldScopes.Equal(newScopes) {
- allErrs = append(allErrs, field.Invalid(fldPath, newResourceQuota.Spec.Scopes, fieldImmutableErrorMsg))
- }
-
- newResourceQuota.Status = oldResourceQuota.Status
- return allErrs
-}
-
-// ValidateResourceQuotaStatusUpdate tests to see if the status update is legal for an end user to make.
-// newResourceQuota is updated with fields that cannot be changed.
-func ValidateResourceQuotaStatusUpdate(newResourceQuota, oldResourceQuota *core.ResourceQuota) field.ErrorList {
- allErrs := ValidateObjectMetaUpdate(&newResourceQuota.ObjectMeta, &oldResourceQuota.ObjectMeta, field.NewPath("metadata"))
- if len(newResourceQuota.ResourceVersion) == 0 {
- allErrs = append(allErrs, field.Required(field.NewPath("resourceVersion"), ""))
- }
- fldPath := field.NewPath("status", "hard")
- for k, v := range newResourceQuota.Status.Hard {
- resPath := fldPath.Key(string(k))
- allErrs = append(allErrs, ValidateResourceQuotaResourceName(string(k), resPath)...)
- allErrs = append(allErrs, ValidateResourceQuantityValue(string(k), v, resPath)...)
- }
- fldPath = field.NewPath("status", "used")
- for k, v := range newResourceQuota.Status.Used {
- resPath := fldPath.Key(string(k))
- allErrs = append(allErrs, ValidateResourceQuotaResourceName(string(k), resPath)...)
- allErrs = append(allErrs, ValidateResourceQuantityValue(string(k), v, resPath)...)
- }
- newResourceQuota.Spec = oldResourceQuota.Spec
- return allErrs
-}
-
-// ValidateNamespace tests if required fields are set.
-func ValidateNamespace(namespace *core.Namespace) field.ErrorList {
- allErrs := ValidateObjectMeta(&namespace.ObjectMeta, false, ValidateNamespaceName, field.NewPath("metadata"))
- for i := range namespace.Spec.Finalizers {
- allErrs = append(allErrs, validateFinalizerName(string(namespace.Spec.Finalizers[i]), field.NewPath("spec", "finalizers"))...)
- }
- return allErrs
-}
-
-// Validate finalizer names
-func validateFinalizerName(stringValue string, fldPath *field.Path) field.ErrorList {
- allErrs := apimachineryvalidation.ValidateFinalizerName(stringValue, fldPath)
- for _, err := range validateKubeFinalizerName(stringValue, fldPath) {
- allErrs = append(allErrs, err)
- }
-
- return allErrs
-}
-
-// validateKubeFinalizerName checks for "standard" names of legacy finalizer
-func validateKubeFinalizerName(stringValue string, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if len(strings.Split(stringValue, "/")) == 1 {
- if !helper.IsStandardFinalizerName(stringValue) {
- return append(allErrs, field.Invalid(fldPath, stringValue, "name is neither a standard finalizer name nor is it fully qualified"))
- }
- }
-
- return allErrs
-}
-
-// ValidateNamespaceUpdate tests to make sure a namespace update can be applied.
-// newNamespace is updated with fields that cannot be changed
-func ValidateNamespaceUpdate(newNamespace *core.Namespace, oldNamespace *core.Namespace) field.ErrorList {
- allErrs := ValidateObjectMetaUpdate(&newNamespace.ObjectMeta, &oldNamespace.ObjectMeta, field.NewPath("metadata"))
- newNamespace.Spec.Finalizers = oldNamespace.Spec.Finalizers
- newNamespace.Status = oldNamespace.Status
- return allErrs
-}
-
-// ValidateNamespaceStatusUpdate tests to see if the update is legal for an end user to make. newNamespace is updated with fields
-// that cannot be changed.
-func ValidateNamespaceStatusUpdate(newNamespace, oldNamespace *core.Namespace) field.ErrorList {
- allErrs := ValidateObjectMetaUpdate(&newNamespace.ObjectMeta, &oldNamespace.ObjectMeta, field.NewPath("metadata"))
- newNamespace.Spec = oldNamespace.Spec
- if newNamespace.DeletionTimestamp.IsZero() {
- if newNamespace.Status.Phase != core.NamespaceActive {
- allErrs = append(allErrs, field.Invalid(field.NewPath("status", "Phase"), newNamespace.Status.Phase, "may only be 'Active' if `deletionTimestamp` is empty"))
- }
- } else {
- if newNamespace.Status.Phase != core.NamespaceTerminating {
- allErrs = append(allErrs, field.Invalid(field.NewPath("status", "Phase"), newNamespace.Status.Phase, "may only be 'Terminating' if `deletionTimestamp` is not empty"))
- }
- }
- return allErrs
-}
-
-// ValidateNamespaceFinalizeUpdate tests to see if the update is legal for an end user to make.
-// newNamespace is updated with fields that cannot be changed.
-func ValidateNamespaceFinalizeUpdate(newNamespace, oldNamespace *core.Namespace) field.ErrorList {
- allErrs := ValidateObjectMetaUpdate(&newNamespace.ObjectMeta, &oldNamespace.ObjectMeta, field.NewPath("metadata"))
-
- fldPath := field.NewPath("spec", "finalizers")
- for i := range newNamespace.Spec.Finalizers {
- idxPath := fldPath.Index(i)
- allErrs = append(allErrs, validateFinalizerName(string(newNamespace.Spec.Finalizers[i]), idxPath)...)
- }
- newNamespace.Status = oldNamespace.Status
- return allErrs
-}
-
-// Construct lookup map of old subset IPs to NodeNames.
-func updateEpAddrToNodeNameMap(ipToNodeName map[string]string, addresses []core.EndpointAddress) {
- for n := range addresses {
- if addresses[n].NodeName == nil {
- continue
- }
- ipToNodeName[addresses[n].IP] = *addresses[n].NodeName
- }
-}
-
-// Build a map across all subsets of IP -> NodeName
-func buildEndpointAddressNodeNameMap(subsets []core.EndpointSubset) map[string]string {
- ipToNodeName := make(map[string]string)
- for i := range subsets {
- updateEpAddrToNodeNameMap(ipToNodeName, subsets[i].Addresses)
- updateEpAddrToNodeNameMap(ipToNodeName, subsets[i].NotReadyAddresses)
- }
- return ipToNodeName
-}
-
-func validateEpAddrNodeNameTransition(addr *core.EndpointAddress, ipToNodeName map[string]string, fldPath *field.Path) field.ErrorList {
- errList := field.ErrorList{}
- existingNodeName, found := ipToNodeName[addr.IP]
- if !found {
- return errList
- }
- if addr.NodeName == nil || *addr.NodeName == existingNodeName {
- return errList
- }
- // NodeName entry found for this endpoint IP, but user is attempting to change NodeName
- return append(errList, field.Forbidden(fldPath, fmt.Sprintf("Cannot change NodeName for %s to %s", addr.IP, *addr.NodeName)))
-}
-
-// ValidateEndpoints tests if required fields are set.
-func ValidateEndpoints(endpoints *core.Endpoints) field.ErrorList {
- allErrs := ValidateObjectMeta(&endpoints.ObjectMeta, true, ValidateEndpointsName, field.NewPath("metadata"))
- allErrs = append(allErrs, ValidateEndpointsSpecificAnnotations(endpoints.Annotations, field.NewPath("annotations"))...)
- allErrs = append(allErrs, validateEndpointSubsets(endpoints.Subsets, []core.EndpointSubset{}, field.NewPath("subsets"))...)
- return allErrs
-}
-
-func validateEndpointSubsets(subsets []core.EndpointSubset, oldSubsets []core.EndpointSubset, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- ipToNodeName := buildEndpointAddressNodeNameMap(oldSubsets)
- for i := range subsets {
- ss := &subsets[i]
- idxPath := fldPath.Index(i)
-
- // EndpointSubsets must include endpoint address. For headless service, we allow its endpoints not to have ports.
- if len(ss.Addresses) == 0 && len(ss.NotReadyAddresses) == 0 {
- //TODO: consider adding a RequiredOneOf() error for this and similar cases
- allErrs = append(allErrs, field.Required(idxPath, "must specify `addresses` or `notReadyAddresses`"))
- }
- for addr := range ss.Addresses {
- allErrs = append(allErrs, validateEndpointAddress(&ss.Addresses[addr], idxPath.Child("addresses").Index(addr), ipToNodeName)...)
- }
- for addr := range ss.NotReadyAddresses {
- allErrs = append(allErrs, validateEndpointAddress(&ss.NotReadyAddresses[addr], idxPath.Child("notReadyAddresses").Index(addr), ipToNodeName)...)
- }
- for port := range ss.Ports {
- allErrs = append(allErrs, validateEndpointPort(&ss.Ports[port], len(ss.Ports) > 1, idxPath.Child("ports").Index(port))...)
- }
- }
-
- return allErrs
-}
-
-func validateEndpointAddress(address *core.EndpointAddress, fldPath *field.Path, ipToNodeName map[string]string) field.ErrorList {
- allErrs := field.ErrorList{}
- for _, msg := range validation.IsValidIP(address.IP) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("ip"), address.IP, msg))
- }
- if len(address.Hostname) > 0 {
- allErrs = append(allErrs, ValidateDNS1123Label(address.Hostname, fldPath.Child("hostname"))...)
- }
- // During endpoint update, verify that NodeName is a DNS subdomain and transition rules allow the update
- if address.NodeName != nil {
- for _, msg := range ValidateNodeName(*address.NodeName, false) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("nodeName"), *address.NodeName, msg))
- }
- }
- allErrs = append(allErrs, validateEpAddrNodeNameTransition(address, ipToNodeName, fldPath.Child("nodeName"))...)
- if len(allErrs) > 0 {
- return allErrs
- }
- allErrs = append(allErrs, validateNonSpecialIP(address.IP, fldPath.Child("ip"))...)
- return allErrs
-}
-
-func validateNonSpecialIP(ipAddress string, fldPath *field.Path) field.ErrorList {
- // We disallow some IPs as endpoints or external-ips. Specifically,
- // unspecified and loopback addresses are nonsensical and link-local
- // addresses tend to be used for node-centric purposes (e.g. metadata
- // service).
- allErrs := field.ErrorList{}
- ip := net.ParseIP(ipAddress)
- if ip == nil {
- allErrs = append(allErrs, field.Invalid(fldPath, ipAddress, "must be a valid IP address"))
- return allErrs
- }
- if ip.IsUnspecified() {
- allErrs = append(allErrs, field.Invalid(fldPath, ipAddress, "may not be unspecified (0.0.0.0)"))
- }
- if ip.IsLoopback() {
- allErrs = append(allErrs, field.Invalid(fldPath, ipAddress, "may not be in the loopback range (127.0.0.0/8)"))
- }
- if ip.IsLinkLocalUnicast() {
- allErrs = append(allErrs, field.Invalid(fldPath, ipAddress, "may not be in the link-local range (169.254.0.0/16)"))
- }
- if ip.IsLinkLocalMulticast() {
- allErrs = append(allErrs, field.Invalid(fldPath, ipAddress, "may not be in the link-local multicast range (224.0.0.0/24)"))
- }
- return allErrs
-}
-
-func validateEndpointPort(port *core.EndpointPort, requireName bool, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- if requireName && len(port.Name) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("name"), ""))
- } else if len(port.Name) != 0 {
- allErrs = append(allErrs, ValidateDNS1123Label(port.Name, fldPath.Child("name"))...)
- }
- for _, msg := range validation.IsValidPortNum(int(port.Port)) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("port"), port.Port, msg))
- }
- if len(port.Protocol) == 0 {
- allErrs = append(allErrs, field.Required(fldPath.Child("protocol"), ""))
- } else if !supportedPortProtocols.Has(string(port.Protocol)) {
- allErrs = append(allErrs, field.NotSupported(fldPath.Child("protocol"), port.Protocol, supportedPortProtocols.List()))
- }
- return allErrs
-}
-
-// ValidateEndpointsUpdate tests to make sure an endpoints update can be applied.
-func ValidateEndpointsUpdate(newEndpoints, oldEndpoints *core.Endpoints) field.ErrorList {
- allErrs := ValidateObjectMetaUpdate(&newEndpoints.ObjectMeta, &oldEndpoints.ObjectMeta, field.NewPath("metadata"))
- allErrs = append(allErrs, validateEndpointSubsets(newEndpoints.Subsets, oldEndpoints.Subsets, field.NewPath("subsets"))...)
- allErrs = append(allErrs, ValidateEndpointsSpecificAnnotations(newEndpoints.Annotations, field.NewPath("annotations"))...)
- return allErrs
-}
-
-// ValidateSecurityContext ensure the security context contains valid settings
-func ValidateSecurityContext(sc *core.SecurityContext, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- //this should only be true for testing since SecurityContext is defaulted by the core
- if sc == nil {
- return allErrs
- }
-
- if sc.Privileged != nil {
- if *sc.Privileged && !capabilities.Get().AllowPrivileged {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("privileged"), "disallowed by cluster policy"))
- }
- }
-
- if sc.RunAsUser != nil {
- for _, msg := range validation.IsValidUserID(*sc.RunAsUser) {
- allErrs = append(allErrs, field.Invalid(fldPath.Child("runAsUser"), *sc.RunAsUser, msg))
- }
- }
-
- if sc.AllowPrivilegeEscalation != nil && !*sc.AllowPrivilegeEscalation {
- if sc.Privileged != nil && *sc.Privileged {
- allErrs = append(allErrs, field.Invalid(fldPath, sc, "cannot set `allowPrivilegeEscalation` to false and `privileged` to true"))
- }
-
- if sc.Capabilities != nil {
- for _, cap := range sc.Capabilities.Add {
- if string(cap) == "CAP_SYS_ADMIN" {
- allErrs = append(allErrs, field.Invalid(fldPath, sc, "cannot set `allowPrivilegeEscalation` to false and `capabilities.Add` CAP_SYS_ADMIN"))
- }
- }
- }
- }
-
- return allErrs
-}
-
-func ValidatePodLogOptions(opts *core.PodLogOptions) field.ErrorList {
- allErrs := field.ErrorList{}
- if opts.TailLines != nil && *opts.TailLines < 0 {
- allErrs = append(allErrs, field.Invalid(field.NewPath("tailLines"), *opts.TailLines, isNegativeErrorMsg))
- }
- if opts.LimitBytes != nil && *opts.LimitBytes < 1 {
- allErrs = append(allErrs, field.Invalid(field.NewPath("limitBytes"), *opts.LimitBytes, "must be greater than 0"))
- }
- switch {
- case opts.SinceSeconds != nil && opts.SinceTime != nil:
- allErrs = append(allErrs, field.Forbidden(field.NewPath(""), "at most one of `sinceTime` or `sinceSeconds` may be specified"))
- case opts.SinceSeconds != nil:
- if *opts.SinceSeconds < 1 {
- allErrs = append(allErrs, field.Invalid(field.NewPath("sinceSeconds"), *opts.SinceSeconds, "must be greater than 0"))
- }
- }
- return allErrs
-}
-
-// ValidateLoadBalancerStatus validates required fields on a LoadBalancerStatus
-func ValidateLoadBalancerStatus(status *core.LoadBalancerStatus, fldPath *field.Path) field.ErrorList {
- allErrs := field.ErrorList{}
- for i, ingress := range status.Ingress {
- idxPath := fldPath.Child("ingress").Index(i)
- if len(ingress.IP) > 0 {
- if isIP := (net.ParseIP(ingress.IP) != nil); !isIP {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("ip"), ingress.IP, "must be a valid IP address"))
- }
- }
- if len(ingress.Hostname) > 0 {
- for _, msg := range validation.IsDNS1123Subdomain(ingress.Hostname) {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("hostname"), ingress.Hostname, msg))
- }
- if isIP := (net.ParseIP(ingress.Hostname) != nil); isIP {
- allErrs = append(allErrs, field.Invalid(idxPath.Child("hostname"), ingress.Hostname, "must be a DNS name, not an IP address"))
- }
- }
- }
- return allErrs
-}
-
-func sysctlIntersection(a []core.Sysctl, b []core.Sysctl) []string {
- lookup := make(map[string]struct{}, len(a))
- result := []string{}
- for i := range a {
- lookup[a[i].Name] = struct{}{}
- }
- for i := range b {
- if _, found := lookup[b[i].Name]; found {
- result = append(result, b[i].Name)
- }
- }
- return result
-}
-
-// validateStorageNodeAffinityAnnotation tests that the serialized TopologyConstraints in PersistentVolume.Annotations has valid data
-func validateStorageNodeAffinityAnnotation(annotations map[string]string, fldPath *field.Path) (bool, field.ErrorList) {
- allErrs := field.ErrorList{}
-
- na, err := helper.GetStorageNodeAffinityFromAnnotation(annotations)
- if err != nil {
- allErrs = append(allErrs, field.Invalid(fldPath, core.AlphaStorageNodeAffinityAnnotation, err.Error()))
- return false, allErrs
- }
- if na == nil {
- return false, allErrs
- }
-
- if !utilfeature.DefaultFeatureGate.Enabled(features.VolumeScheduling) {
- allErrs = append(allErrs, field.Forbidden(fldPath, "Storage node affinity is disabled by feature-gate"))
- }
-
- policySpecified := false
- if na.RequiredDuringSchedulingIgnoredDuringExecution != nil {
- allErrs = append(allErrs, ValidateNodeSelector(na.RequiredDuringSchedulingIgnoredDuringExecution, fldPath.Child("requiredDuringSchedulingIgnoredDuringExecution"))...)
- policySpecified = true
- }
-
- if len(na.PreferredDuringSchedulingIgnoredDuringExecution) > 0 {
- allErrs = append(allErrs, field.Forbidden(fldPath.Child("preferredDuringSchedulingIgnoredDuringExection"), "Storage node affinity does not support preferredDuringSchedulingIgnoredDuringExecution"))
- }
- return policySpecified, allErrs
-}
-
-// validateVolumeNodeAffinity tests that the PersistentVolume.NodeAffinity has valid data
-// returns:
-// - true if volumeNodeAffinity is set
-// - errorList if there are validation errors
-func validateVolumeNodeAffinity(nodeAffinity *core.VolumeNodeAffinity, fldPath *field.Path) (bool, field.ErrorList) {
- allErrs := field.ErrorList{}
-
- if nodeAffinity == nil {
- return false, allErrs
- }
-
- if !utilfeature.DefaultFeatureGate.Enabled(features.VolumeScheduling) {
- allErrs = append(allErrs, field.Forbidden(fldPath, "Volume node affinity is disabled by feature-gate"))
- }
-
- if nodeAffinity.Required != nil {
- allErrs = append(allErrs, ValidateNodeSelector(nodeAffinity.Required, fldPath.Child("required"))...)
- } else {
- allErrs = append(allErrs, field.Required(fldPath.Child("required"), "must specify required node constraints"))
- }
-
- return true, allErrs
-}
-
-// ValidateCIDR validates whether a CIDR matches the conventions expected by net.ParseCIDR
-func ValidateCIDR(cidr string) (*net.IPNet, error) {
- _, net, err := net.ParseCIDR(cidr)
- if err != nil {
- return nil, err
- }
- return net, nil
-}
-
-func IsDecremented(update, old *int32) bool {
- if update == nil && old != nil {
- return true
- }
- if update == nil || old == nil {
- return false
- }
- return *update < *old
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/core/zz_generated.deepcopy.go
deleted file mode 100644
index f0aa3b426..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/core/zz_generated.deepcopy.go
+++ /dev/null
@@ -1,5952 +0,0 @@
-// +build !ignore_autogenerated
-
-/*
-Copyright 2018 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.
-*/
-
-// Code generated by deepcopy-gen. DO NOT EDIT.
-
-package core
-
-import (
- v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- runtime "k8s.io/apimachinery/pkg/runtime"
- types "k8s.io/apimachinery/pkg/types"
-)
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *AWSElasticBlockStoreVolumeSource) DeepCopyInto(out *AWSElasticBlockStoreVolumeSource) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSElasticBlockStoreVolumeSource.
-func (in *AWSElasticBlockStoreVolumeSource) DeepCopy() *AWSElasticBlockStoreVolumeSource {
- if in == nil {
- return nil
- }
- out := new(AWSElasticBlockStoreVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Affinity) DeepCopyInto(out *Affinity) {
- *out = *in
- if in.NodeAffinity != nil {
- in, out := &in.NodeAffinity, &out.NodeAffinity
- if *in == nil {
- *out = nil
- } else {
- *out = new(NodeAffinity)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.PodAffinity != nil {
- in, out := &in.PodAffinity, &out.PodAffinity
- if *in == nil {
- *out = nil
- } else {
- *out = new(PodAffinity)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.PodAntiAffinity != nil {
- in, out := &in.PodAntiAffinity, &out.PodAntiAffinity
- if *in == nil {
- *out = nil
- } else {
- *out = new(PodAntiAffinity)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Affinity.
-func (in *Affinity) DeepCopy() *Affinity {
- if in == nil {
- return nil
- }
- out := new(Affinity)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *AttachedVolume) DeepCopyInto(out *AttachedVolume) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AttachedVolume.
-func (in *AttachedVolume) DeepCopy() *AttachedVolume {
- if in == nil {
- return nil
- }
- out := new(AttachedVolume)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *AvoidPods) DeepCopyInto(out *AvoidPods) {
- *out = *in
- if in.PreferAvoidPods != nil {
- in, out := &in.PreferAvoidPods, &out.PreferAvoidPods
- *out = make([]PreferAvoidPodsEntry, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AvoidPods.
-func (in *AvoidPods) DeepCopy() *AvoidPods {
- if in == nil {
- return nil
- }
- out := new(AvoidPods)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *AzureDiskVolumeSource) DeepCopyInto(out *AzureDiskVolumeSource) {
- *out = *in
- if in.CachingMode != nil {
- in, out := &in.CachingMode, &out.CachingMode
- if *in == nil {
- *out = nil
- } else {
- *out = new(AzureDataDiskCachingMode)
- **out = **in
- }
- }
- if in.FSType != nil {
- in, out := &in.FSType, &out.FSType
- if *in == nil {
- *out = nil
- } else {
- *out = new(string)
- **out = **in
- }
- }
- if in.ReadOnly != nil {
- in, out := &in.ReadOnly, &out.ReadOnly
- if *in == nil {
- *out = nil
- } else {
- *out = new(bool)
- **out = **in
- }
- }
- if in.Kind != nil {
- in, out := &in.Kind, &out.Kind
- if *in == nil {
- *out = nil
- } else {
- *out = new(AzureDataDiskKind)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureDiskVolumeSource.
-func (in *AzureDiskVolumeSource) DeepCopy() *AzureDiskVolumeSource {
- if in == nil {
- return nil
- }
- out := new(AzureDiskVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *AzureFilePersistentVolumeSource) DeepCopyInto(out *AzureFilePersistentVolumeSource) {
- *out = *in
- if in.SecretNamespace != nil {
- in, out := &in.SecretNamespace, &out.SecretNamespace
- if *in == nil {
- *out = nil
- } else {
- *out = new(string)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureFilePersistentVolumeSource.
-func (in *AzureFilePersistentVolumeSource) DeepCopy() *AzureFilePersistentVolumeSource {
- if in == nil {
- return nil
- }
- out := new(AzureFilePersistentVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *AzureFileVolumeSource) DeepCopyInto(out *AzureFileVolumeSource) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureFileVolumeSource.
-func (in *AzureFileVolumeSource) DeepCopy() *AzureFileVolumeSource {
- if in == nil {
- return nil
- }
- out := new(AzureFileVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Binding) DeepCopyInto(out *Binding) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- out.Target = in.Target
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Binding.
-func (in *Binding) DeepCopy() *Binding {
- if in == nil {
- return nil
- }
- out := new(Binding)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *Binding) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CSIPersistentVolumeSource) DeepCopyInto(out *CSIPersistentVolumeSource) {
- *out = *in
- if in.VolumeAttributes != nil {
- in, out := &in.VolumeAttributes, &out.VolumeAttributes
- *out = make(map[string]string, len(*in))
- for key, val := range *in {
- (*out)[key] = val
- }
- }
- if in.ControllerPublishSecretRef != nil {
- in, out := &in.ControllerPublishSecretRef, &out.ControllerPublishSecretRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(SecretReference)
- **out = **in
- }
- }
- if in.NodeStageSecretRef != nil {
- in, out := &in.NodeStageSecretRef, &out.NodeStageSecretRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(SecretReference)
- **out = **in
- }
- }
- if in.NodePublishSecretRef != nil {
- in, out := &in.NodePublishSecretRef, &out.NodePublishSecretRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(SecretReference)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIPersistentVolumeSource.
-func (in *CSIPersistentVolumeSource) DeepCopy() *CSIPersistentVolumeSource {
- if in == nil {
- return nil
- }
- out := new(CSIPersistentVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Capabilities) DeepCopyInto(out *Capabilities) {
- *out = *in
- if in.Add != nil {
- in, out := &in.Add, &out.Add
- *out = make([]Capability, len(*in))
- copy(*out, *in)
- }
- if in.Drop != nil {
- in, out := &in.Drop, &out.Drop
- *out = make([]Capability, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Capabilities.
-func (in *Capabilities) DeepCopy() *Capabilities {
- if in == nil {
- return nil
- }
- out := new(Capabilities)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CephFSPersistentVolumeSource) DeepCopyInto(out *CephFSPersistentVolumeSource) {
- *out = *in
- if in.Monitors != nil {
- in, out := &in.Monitors, &out.Monitors
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- if in.SecretRef != nil {
- in, out := &in.SecretRef, &out.SecretRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(SecretReference)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CephFSPersistentVolumeSource.
-func (in *CephFSPersistentVolumeSource) DeepCopy() *CephFSPersistentVolumeSource {
- if in == nil {
- return nil
- }
- out := new(CephFSPersistentVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CephFSVolumeSource) DeepCopyInto(out *CephFSVolumeSource) {
- *out = *in
- if in.Monitors != nil {
- in, out := &in.Monitors, &out.Monitors
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- if in.SecretRef != nil {
- in, out := &in.SecretRef, &out.SecretRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(LocalObjectReference)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CephFSVolumeSource.
-func (in *CephFSVolumeSource) DeepCopy() *CephFSVolumeSource {
- if in == nil {
- return nil
- }
- out := new(CephFSVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CinderVolumeSource) DeepCopyInto(out *CinderVolumeSource) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CinderVolumeSource.
-func (in *CinderVolumeSource) DeepCopy() *CinderVolumeSource {
- if in == nil {
- return nil
- }
- out := new(CinderVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ClientIPConfig) DeepCopyInto(out *ClientIPConfig) {
- *out = *in
- if in.TimeoutSeconds != nil {
- in, out := &in.TimeoutSeconds, &out.TimeoutSeconds
- if *in == nil {
- *out = nil
- } else {
- *out = new(int32)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientIPConfig.
-func (in *ClientIPConfig) DeepCopy() *ClientIPConfig {
- if in == nil {
- return nil
- }
- out := new(ClientIPConfig)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ComponentCondition) DeepCopyInto(out *ComponentCondition) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentCondition.
-func (in *ComponentCondition) DeepCopy() *ComponentCondition {
- if in == nil {
- return nil
- }
- out := new(ComponentCondition)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ComponentStatus) DeepCopyInto(out *ComponentStatus) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- if in.Conditions != nil {
- in, out := &in.Conditions, &out.Conditions
- *out = make([]ComponentCondition, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentStatus.
-func (in *ComponentStatus) DeepCopy() *ComponentStatus {
- if in == nil {
- return nil
- }
- out := new(ComponentStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *ComponentStatus) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ComponentStatusList) DeepCopyInto(out *ComponentStatusList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]ComponentStatus, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentStatusList.
-func (in *ComponentStatusList) DeepCopy() *ComponentStatusList {
- if in == nil {
- return nil
- }
- out := new(ComponentStatusList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *ComponentStatusList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ConfigMap) DeepCopyInto(out *ConfigMap) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- if in.Data != nil {
- in, out := &in.Data, &out.Data
- *out = make(map[string]string, len(*in))
- for key, val := range *in {
- (*out)[key] = val
- }
- }
- if in.BinaryData != nil {
- in, out := &in.BinaryData, &out.BinaryData
- *out = make(map[string][]byte, len(*in))
- for key, val := range *in {
- if val == nil {
- (*out)[key] = nil
- } else {
- (*out)[key] = make([]byte, len(val))
- copy((*out)[key], val)
- }
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMap.
-func (in *ConfigMap) DeepCopy() *ConfigMap {
- if in == nil {
- return nil
- }
- out := new(ConfigMap)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *ConfigMap) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ConfigMapEnvSource) DeepCopyInto(out *ConfigMapEnvSource) {
- *out = *in
- out.LocalObjectReference = in.LocalObjectReference
- if in.Optional != nil {
- in, out := &in.Optional, &out.Optional
- if *in == nil {
- *out = nil
- } else {
- *out = new(bool)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapEnvSource.
-func (in *ConfigMapEnvSource) DeepCopy() *ConfigMapEnvSource {
- if in == nil {
- return nil
- }
- out := new(ConfigMapEnvSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ConfigMapKeySelector) DeepCopyInto(out *ConfigMapKeySelector) {
- *out = *in
- out.LocalObjectReference = in.LocalObjectReference
- if in.Optional != nil {
- in, out := &in.Optional, &out.Optional
- if *in == nil {
- *out = nil
- } else {
- *out = new(bool)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapKeySelector.
-func (in *ConfigMapKeySelector) DeepCopy() *ConfigMapKeySelector {
- if in == nil {
- return nil
- }
- out := new(ConfigMapKeySelector)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ConfigMapList) DeepCopyInto(out *ConfigMapList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]ConfigMap, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapList.
-func (in *ConfigMapList) DeepCopy() *ConfigMapList {
- if in == nil {
- return nil
- }
- out := new(ConfigMapList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *ConfigMapList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ConfigMapProjection) DeepCopyInto(out *ConfigMapProjection) {
- *out = *in
- out.LocalObjectReference = in.LocalObjectReference
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]KeyToPath, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.Optional != nil {
- in, out := &in.Optional, &out.Optional
- if *in == nil {
- *out = nil
- } else {
- *out = new(bool)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapProjection.
-func (in *ConfigMapProjection) DeepCopy() *ConfigMapProjection {
- if in == nil {
- return nil
- }
- out := new(ConfigMapProjection)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ConfigMapVolumeSource) DeepCopyInto(out *ConfigMapVolumeSource) {
- *out = *in
- out.LocalObjectReference = in.LocalObjectReference
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]KeyToPath, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.DefaultMode != nil {
- in, out := &in.DefaultMode, &out.DefaultMode
- if *in == nil {
- *out = nil
- } else {
- *out = new(int32)
- **out = **in
- }
- }
- if in.Optional != nil {
- in, out := &in.Optional, &out.Optional
- if *in == nil {
- *out = nil
- } else {
- *out = new(bool)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapVolumeSource.
-func (in *ConfigMapVolumeSource) DeepCopy() *ConfigMapVolumeSource {
- if in == nil {
- return nil
- }
- out := new(ConfigMapVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Container) DeepCopyInto(out *Container) {
- *out = *in
- if in.Command != nil {
- in, out := &in.Command, &out.Command
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- if in.Args != nil {
- in, out := &in.Args, &out.Args
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- if in.Ports != nil {
- in, out := &in.Ports, &out.Ports
- *out = make([]ContainerPort, len(*in))
- copy(*out, *in)
- }
- if in.EnvFrom != nil {
- in, out := &in.EnvFrom, &out.EnvFrom
- *out = make([]EnvFromSource, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.Env != nil {
- in, out := &in.Env, &out.Env
- *out = make([]EnvVar, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- in.Resources.DeepCopyInto(&out.Resources)
- if in.VolumeMounts != nil {
- in, out := &in.VolumeMounts, &out.VolumeMounts
- *out = make([]VolumeMount, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.VolumeDevices != nil {
- in, out := &in.VolumeDevices, &out.VolumeDevices
- *out = make([]VolumeDevice, len(*in))
- copy(*out, *in)
- }
- if in.LivenessProbe != nil {
- in, out := &in.LivenessProbe, &out.LivenessProbe
- if *in == nil {
- *out = nil
- } else {
- *out = new(Probe)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.ReadinessProbe != nil {
- in, out := &in.ReadinessProbe, &out.ReadinessProbe
- if *in == nil {
- *out = nil
- } else {
- *out = new(Probe)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Lifecycle != nil {
- in, out := &in.Lifecycle, &out.Lifecycle
- if *in == nil {
- *out = nil
- } else {
- *out = new(Lifecycle)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.SecurityContext != nil {
- in, out := &in.SecurityContext, &out.SecurityContext
- if *in == nil {
- *out = nil
- } else {
- *out = new(SecurityContext)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Container.
-func (in *Container) DeepCopy() *Container {
- if in == nil {
- return nil
- }
- out := new(Container)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ContainerImage) DeepCopyInto(out *ContainerImage) {
- *out = *in
- if in.Names != nil {
- in, out := &in.Names, &out.Names
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerImage.
-func (in *ContainerImage) DeepCopy() *ContainerImage {
- if in == nil {
- return nil
- }
- out := new(ContainerImage)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ContainerPort) DeepCopyInto(out *ContainerPort) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerPort.
-func (in *ContainerPort) DeepCopy() *ContainerPort {
- if in == nil {
- return nil
- }
- out := new(ContainerPort)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ContainerState) DeepCopyInto(out *ContainerState) {
- *out = *in
- if in.Waiting != nil {
- in, out := &in.Waiting, &out.Waiting
- if *in == nil {
- *out = nil
- } else {
- *out = new(ContainerStateWaiting)
- **out = **in
- }
- }
- if in.Running != nil {
- in, out := &in.Running, &out.Running
- if *in == nil {
- *out = nil
- } else {
- *out = new(ContainerStateRunning)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Terminated != nil {
- in, out := &in.Terminated, &out.Terminated
- if *in == nil {
- *out = nil
- } else {
- *out = new(ContainerStateTerminated)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerState.
-func (in *ContainerState) DeepCopy() *ContainerState {
- if in == nil {
- return nil
- }
- out := new(ContainerState)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ContainerStateRunning) DeepCopyInto(out *ContainerStateRunning) {
- *out = *in
- in.StartedAt.DeepCopyInto(&out.StartedAt)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerStateRunning.
-func (in *ContainerStateRunning) DeepCopy() *ContainerStateRunning {
- if in == nil {
- return nil
- }
- out := new(ContainerStateRunning)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ContainerStateTerminated) DeepCopyInto(out *ContainerStateTerminated) {
- *out = *in
- in.StartedAt.DeepCopyInto(&out.StartedAt)
- in.FinishedAt.DeepCopyInto(&out.FinishedAt)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerStateTerminated.
-func (in *ContainerStateTerminated) DeepCopy() *ContainerStateTerminated {
- if in == nil {
- return nil
- }
- out := new(ContainerStateTerminated)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ContainerStateWaiting) DeepCopyInto(out *ContainerStateWaiting) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerStateWaiting.
-func (in *ContainerStateWaiting) DeepCopy() *ContainerStateWaiting {
- if in == nil {
- return nil
- }
- out := new(ContainerStateWaiting)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ContainerStatus) DeepCopyInto(out *ContainerStatus) {
- *out = *in
- in.State.DeepCopyInto(&out.State)
- in.LastTerminationState.DeepCopyInto(&out.LastTerminationState)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerStatus.
-func (in *ContainerStatus) DeepCopy() *ContainerStatus {
- if in == nil {
- return nil
- }
- out := new(ContainerStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *DaemonEndpoint) DeepCopyInto(out *DaemonEndpoint) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonEndpoint.
-func (in *DaemonEndpoint) DeepCopy() *DaemonEndpoint {
- if in == nil {
- return nil
- }
- out := new(DaemonEndpoint)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *DeleteOptions) DeepCopyInto(out *DeleteOptions) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- if in.GracePeriodSeconds != nil {
- in, out := &in.GracePeriodSeconds, &out.GracePeriodSeconds
- if *in == nil {
- *out = nil
- } else {
- *out = new(int64)
- **out = **in
- }
- }
- if in.Preconditions != nil {
- in, out := &in.Preconditions, &out.Preconditions
- if *in == nil {
- *out = nil
- } else {
- *out = new(Preconditions)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.OrphanDependents != nil {
- in, out := &in.OrphanDependents, &out.OrphanDependents
- if *in == nil {
- *out = nil
- } else {
- *out = new(bool)
- **out = **in
- }
- }
- if in.PropagationPolicy != nil {
- in, out := &in.PropagationPolicy, &out.PropagationPolicy
- if *in == nil {
- *out = nil
- } else {
- *out = new(DeletionPropagation)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeleteOptions.
-func (in *DeleteOptions) DeepCopy() *DeleteOptions {
- if in == nil {
- return nil
- }
- out := new(DeleteOptions)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *DeleteOptions) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *DownwardAPIProjection) DeepCopyInto(out *DownwardAPIProjection) {
- *out = *in
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]DownwardAPIVolumeFile, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownwardAPIProjection.
-func (in *DownwardAPIProjection) DeepCopy() *DownwardAPIProjection {
- if in == nil {
- return nil
- }
- out := new(DownwardAPIProjection)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *DownwardAPIVolumeFile) DeepCopyInto(out *DownwardAPIVolumeFile) {
- *out = *in
- if in.FieldRef != nil {
- in, out := &in.FieldRef, &out.FieldRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(ObjectFieldSelector)
- **out = **in
- }
- }
- if in.ResourceFieldRef != nil {
- in, out := &in.ResourceFieldRef, &out.ResourceFieldRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(ResourceFieldSelector)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Mode != nil {
- in, out := &in.Mode, &out.Mode
- if *in == nil {
- *out = nil
- } else {
- *out = new(int32)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownwardAPIVolumeFile.
-func (in *DownwardAPIVolumeFile) DeepCopy() *DownwardAPIVolumeFile {
- if in == nil {
- return nil
- }
- out := new(DownwardAPIVolumeFile)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *DownwardAPIVolumeSource) DeepCopyInto(out *DownwardAPIVolumeSource) {
- *out = *in
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]DownwardAPIVolumeFile, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.DefaultMode != nil {
- in, out := &in.DefaultMode, &out.DefaultMode
- if *in == nil {
- *out = nil
- } else {
- *out = new(int32)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownwardAPIVolumeSource.
-func (in *DownwardAPIVolumeSource) DeepCopy() *DownwardAPIVolumeSource {
- if in == nil {
- return nil
- }
- out := new(DownwardAPIVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *EmptyDirVolumeSource) DeepCopyInto(out *EmptyDirVolumeSource) {
- *out = *in
- if in.SizeLimit != nil {
- in, out := &in.SizeLimit, &out.SizeLimit
- if *in == nil {
- *out = nil
- } else {
- x := (*in).DeepCopy()
- *out = &x
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmptyDirVolumeSource.
-func (in *EmptyDirVolumeSource) DeepCopy() *EmptyDirVolumeSource {
- if in == nil {
- return nil
- }
- out := new(EmptyDirVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *EndpointAddress) DeepCopyInto(out *EndpointAddress) {
- *out = *in
- if in.NodeName != nil {
- in, out := &in.NodeName, &out.NodeName
- if *in == nil {
- *out = nil
- } else {
- *out = new(string)
- **out = **in
- }
- }
- if in.TargetRef != nil {
- in, out := &in.TargetRef, &out.TargetRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(ObjectReference)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointAddress.
-func (in *EndpointAddress) DeepCopy() *EndpointAddress {
- if in == nil {
- return nil
- }
- out := new(EndpointAddress)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *EndpointPort) DeepCopyInto(out *EndpointPort) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointPort.
-func (in *EndpointPort) DeepCopy() *EndpointPort {
- if in == nil {
- return nil
- }
- out := new(EndpointPort)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *EndpointSubset) DeepCopyInto(out *EndpointSubset) {
- *out = *in
- if in.Addresses != nil {
- in, out := &in.Addresses, &out.Addresses
- *out = make([]EndpointAddress, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.NotReadyAddresses != nil {
- in, out := &in.NotReadyAddresses, &out.NotReadyAddresses
- *out = make([]EndpointAddress, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.Ports != nil {
- in, out := &in.Ports, &out.Ports
- *out = make([]EndpointPort, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSubset.
-func (in *EndpointSubset) DeepCopy() *EndpointSubset {
- if in == nil {
- return nil
- }
- out := new(EndpointSubset)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Endpoints) DeepCopyInto(out *Endpoints) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- if in.Subsets != nil {
- in, out := &in.Subsets, &out.Subsets
- *out = make([]EndpointSubset, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoints.
-func (in *Endpoints) DeepCopy() *Endpoints {
- if in == nil {
- return nil
- }
- out := new(Endpoints)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *Endpoints) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *EndpointsList) DeepCopyInto(out *EndpointsList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]Endpoints, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointsList.
-func (in *EndpointsList) DeepCopy() *EndpointsList {
- if in == nil {
- return nil
- }
- out := new(EndpointsList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *EndpointsList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *EnvFromSource) DeepCopyInto(out *EnvFromSource) {
- *out = *in
- if in.ConfigMapRef != nil {
- in, out := &in.ConfigMapRef, &out.ConfigMapRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(ConfigMapEnvSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.SecretRef != nil {
- in, out := &in.SecretRef, &out.SecretRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(SecretEnvSource)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvFromSource.
-func (in *EnvFromSource) DeepCopy() *EnvFromSource {
- if in == nil {
- return nil
- }
- out := new(EnvFromSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *EnvVar) DeepCopyInto(out *EnvVar) {
- *out = *in
- if in.ValueFrom != nil {
- in, out := &in.ValueFrom, &out.ValueFrom
- if *in == nil {
- *out = nil
- } else {
- *out = new(EnvVarSource)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVar.
-func (in *EnvVar) DeepCopy() *EnvVar {
- if in == nil {
- return nil
- }
- out := new(EnvVar)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *EnvVarSource) DeepCopyInto(out *EnvVarSource) {
- *out = *in
- if in.FieldRef != nil {
- in, out := &in.FieldRef, &out.FieldRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(ObjectFieldSelector)
- **out = **in
- }
- }
- if in.ResourceFieldRef != nil {
- in, out := &in.ResourceFieldRef, &out.ResourceFieldRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(ResourceFieldSelector)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.ConfigMapKeyRef != nil {
- in, out := &in.ConfigMapKeyRef, &out.ConfigMapKeyRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(ConfigMapKeySelector)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.SecretKeyRef != nil {
- in, out := &in.SecretKeyRef, &out.SecretKeyRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(SecretKeySelector)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVarSource.
-func (in *EnvVarSource) DeepCopy() *EnvVarSource {
- if in == nil {
- return nil
- }
- out := new(EnvVarSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Event) DeepCopyInto(out *Event) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- out.InvolvedObject = in.InvolvedObject
- out.Source = in.Source
- in.FirstTimestamp.DeepCopyInto(&out.FirstTimestamp)
- in.LastTimestamp.DeepCopyInto(&out.LastTimestamp)
- in.EventTime.DeepCopyInto(&out.EventTime)
- if in.Series != nil {
- in, out := &in.Series, &out.Series
- if *in == nil {
- *out = nil
- } else {
- *out = new(EventSeries)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Related != nil {
- in, out := &in.Related, &out.Related
- if *in == nil {
- *out = nil
- } else {
- *out = new(ObjectReference)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Event.
-func (in *Event) DeepCopy() *Event {
- if in == nil {
- return nil
- }
- out := new(Event)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *Event) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *EventList) DeepCopyInto(out *EventList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]Event, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventList.
-func (in *EventList) DeepCopy() *EventList {
- if in == nil {
- return nil
- }
- out := new(EventList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *EventList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *EventSeries) DeepCopyInto(out *EventSeries) {
- *out = *in
- in.LastObservedTime.DeepCopyInto(&out.LastObservedTime)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventSeries.
-func (in *EventSeries) DeepCopy() *EventSeries {
- if in == nil {
- return nil
- }
- out := new(EventSeries)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *EventSource) DeepCopyInto(out *EventSource) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventSource.
-func (in *EventSource) DeepCopy() *EventSource {
- if in == nil {
- return nil
- }
- out := new(EventSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ExecAction) DeepCopyInto(out *ExecAction) {
- *out = *in
- if in.Command != nil {
- in, out := &in.Command, &out.Command
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecAction.
-func (in *ExecAction) DeepCopy() *ExecAction {
- if in == nil {
- return nil
- }
- out := new(ExecAction)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *FCVolumeSource) DeepCopyInto(out *FCVolumeSource) {
- *out = *in
- if in.TargetWWNs != nil {
- in, out := &in.TargetWWNs, &out.TargetWWNs
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- if in.Lun != nil {
- in, out := &in.Lun, &out.Lun
- if *in == nil {
- *out = nil
- } else {
- *out = new(int32)
- **out = **in
- }
- }
- if in.WWIDs != nil {
- in, out := &in.WWIDs, &out.WWIDs
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FCVolumeSource.
-func (in *FCVolumeSource) DeepCopy() *FCVolumeSource {
- if in == nil {
- return nil
- }
- out := new(FCVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *FlexPersistentVolumeSource) DeepCopyInto(out *FlexPersistentVolumeSource) {
- *out = *in
- if in.SecretRef != nil {
- in, out := &in.SecretRef, &out.SecretRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(SecretReference)
- **out = **in
- }
- }
- if in.Options != nil {
- in, out := &in.Options, &out.Options
- *out = make(map[string]string, len(*in))
- for key, val := range *in {
- (*out)[key] = val
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlexPersistentVolumeSource.
-func (in *FlexPersistentVolumeSource) DeepCopy() *FlexPersistentVolumeSource {
- if in == nil {
- return nil
- }
- out := new(FlexPersistentVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *FlexVolumeSource) DeepCopyInto(out *FlexVolumeSource) {
- *out = *in
- if in.SecretRef != nil {
- in, out := &in.SecretRef, &out.SecretRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(LocalObjectReference)
- **out = **in
- }
- }
- if in.Options != nil {
- in, out := &in.Options, &out.Options
- *out = make(map[string]string, len(*in))
- for key, val := range *in {
- (*out)[key] = val
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlexVolumeSource.
-func (in *FlexVolumeSource) DeepCopy() *FlexVolumeSource {
- if in == nil {
- return nil
- }
- out := new(FlexVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *FlockerVolumeSource) DeepCopyInto(out *FlockerVolumeSource) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlockerVolumeSource.
-func (in *FlockerVolumeSource) DeepCopy() *FlockerVolumeSource {
- if in == nil {
- return nil
- }
- out := new(FlockerVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *GCEPersistentDiskVolumeSource) DeepCopyInto(out *GCEPersistentDiskVolumeSource) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCEPersistentDiskVolumeSource.
-func (in *GCEPersistentDiskVolumeSource) DeepCopy() *GCEPersistentDiskVolumeSource {
- if in == nil {
- return nil
- }
- out := new(GCEPersistentDiskVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *GitRepoVolumeSource) DeepCopyInto(out *GitRepoVolumeSource) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepoVolumeSource.
-func (in *GitRepoVolumeSource) DeepCopy() *GitRepoVolumeSource {
- if in == nil {
- return nil
- }
- out := new(GitRepoVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *GlusterfsVolumeSource) DeepCopyInto(out *GlusterfsVolumeSource) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GlusterfsVolumeSource.
-func (in *GlusterfsVolumeSource) DeepCopy() *GlusterfsVolumeSource {
- if in == nil {
- return nil
- }
- out := new(GlusterfsVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *HTTPGetAction) DeepCopyInto(out *HTTPGetAction) {
- *out = *in
- out.Port = in.Port
- if in.HTTPHeaders != nil {
- in, out := &in.HTTPHeaders, &out.HTTPHeaders
- *out = make([]HTTPHeader, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPGetAction.
-func (in *HTTPGetAction) DeepCopy() *HTTPGetAction {
- if in == nil {
- return nil
- }
- out := new(HTTPGetAction)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *HTTPHeader) DeepCopyInto(out *HTTPHeader) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPHeader.
-func (in *HTTPHeader) DeepCopy() *HTTPHeader {
- if in == nil {
- return nil
- }
- out := new(HTTPHeader)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Handler) DeepCopyInto(out *Handler) {
- *out = *in
- if in.Exec != nil {
- in, out := &in.Exec, &out.Exec
- if *in == nil {
- *out = nil
- } else {
- *out = new(ExecAction)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.HTTPGet != nil {
- in, out := &in.HTTPGet, &out.HTTPGet
- if *in == nil {
- *out = nil
- } else {
- *out = new(HTTPGetAction)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.TCPSocket != nil {
- in, out := &in.TCPSocket, &out.TCPSocket
- if *in == nil {
- *out = nil
- } else {
- *out = new(TCPSocketAction)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Handler.
-func (in *Handler) DeepCopy() *Handler {
- if in == nil {
- return nil
- }
- out := new(Handler)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *HostAlias) DeepCopyInto(out *HostAlias) {
- *out = *in
- if in.Hostnames != nil {
- in, out := &in.Hostnames, &out.Hostnames
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostAlias.
-func (in *HostAlias) DeepCopy() *HostAlias {
- if in == nil {
- return nil
- }
- out := new(HostAlias)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *HostPathVolumeSource) DeepCopyInto(out *HostPathVolumeSource) {
- *out = *in
- if in.Type != nil {
- in, out := &in.Type, &out.Type
- if *in == nil {
- *out = nil
- } else {
- *out = new(HostPathType)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostPathVolumeSource.
-func (in *HostPathVolumeSource) DeepCopy() *HostPathVolumeSource {
- if in == nil {
- return nil
- }
- out := new(HostPathVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ISCSIPersistentVolumeSource) DeepCopyInto(out *ISCSIPersistentVolumeSource) {
- *out = *in
- if in.Portals != nil {
- in, out := &in.Portals, &out.Portals
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- if in.SecretRef != nil {
- in, out := &in.SecretRef, &out.SecretRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(SecretReference)
- **out = **in
- }
- }
- if in.InitiatorName != nil {
- in, out := &in.InitiatorName, &out.InitiatorName
- if *in == nil {
- *out = nil
- } else {
- *out = new(string)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ISCSIPersistentVolumeSource.
-func (in *ISCSIPersistentVolumeSource) DeepCopy() *ISCSIPersistentVolumeSource {
- if in == nil {
- return nil
- }
- out := new(ISCSIPersistentVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ISCSIVolumeSource) DeepCopyInto(out *ISCSIVolumeSource) {
- *out = *in
- if in.Portals != nil {
- in, out := &in.Portals, &out.Portals
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- if in.SecretRef != nil {
- in, out := &in.SecretRef, &out.SecretRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(LocalObjectReference)
- **out = **in
- }
- }
- if in.InitiatorName != nil {
- in, out := &in.InitiatorName, &out.InitiatorName
- if *in == nil {
- *out = nil
- } else {
- *out = new(string)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ISCSIVolumeSource.
-func (in *ISCSIVolumeSource) DeepCopy() *ISCSIVolumeSource {
- if in == nil {
- return nil
- }
- out := new(ISCSIVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *KeyToPath) DeepCopyInto(out *KeyToPath) {
- *out = *in
- if in.Mode != nil {
- in, out := &in.Mode, &out.Mode
- if *in == nil {
- *out = nil
- } else {
- *out = new(int32)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeyToPath.
-func (in *KeyToPath) DeepCopy() *KeyToPath {
- if in == nil {
- return nil
- }
- out := new(KeyToPath)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Lifecycle) DeepCopyInto(out *Lifecycle) {
- *out = *in
- if in.PostStart != nil {
- in, out := &in.PostStart, &out.PostStart
- if *in == nil {
- *out = nil
- } else {
- *out = new(Handler)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.PreStop != nil {
- in, out := &in.PreStop, &out.PreStop
- if *in == nil {
- *out = nil
- } else {
- *out = new(Handler)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Lifecycle.
-func (in *Lifecycle) DeepCopy() *Lifecycle {
- if in == nil {
- return nil
- }
- out := new(Lifecycle)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *LimitRange) DeepCopyInto(out *LimitRange) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- in.Spec.DeepCopyInto(&out.Spec)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitRange.
-func (in *LimitRange) DeepCopy() *LimitRange {
- if in == nil {
- return nil
- }
- out := new(LimitRange)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *LimitRange) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *LimitRangeItem) DeepCopyInto(out *LimitRangeItem) {
- *out = *in
- if in.Max != nil {
- in, out := &in.Max, &out.Max
- *out = make(ResourceList, len(*in))
- for key, val := range *in {
- (*out)[key] = val.DeepCopy()
- }
- }
- if in.Min != nil {
- in, out := &in.Min, &out.Min
- *out = make(ResourceList, len(*in))
- for key, val := range *in {
- (*out)[key] = val.DeepCopy()
- }
- }
- if in.Default != nil {
- in, out := &in.Default, &out.Default
- *out = make(ResourceList, len(*in))
- for key, val := range *in {
- (*out)[key] = val.DeepCopy()
- }
- }
- if in.DefaultRequest != nil {
- in, out := &in.DefaultRequest, &out.DefaultRequest
- *out = make(ResourceList, len(*in))
- for key, val := range *in {
- (*out)[key] = val.DeepCopy()
- }
- }
- if in.MaxLimitRequestRatio != nil {
- in, out := &in.MaxLimitRequestRatio, &out.MaxLimitRequestRatio
- *out = make(ResourceList, len(*in))
- for key, val := range *in {
- (*out)[key] = val.DeepCopy()
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitRangeItem.
-func (in *LimitRangeItem) DeepCopy() *LimitRangeItem {
- if in == nil {
- return nil
- }
- out := new(LimitRangeItem)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *LimitRangeList) DeepCopyInto(out *LimitRangeList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]LimitRange, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitRangeList.
-func (in *LimitRangeList) DeepCopy() *LimitRangeList {
- if in == nil {
- return nil
- }
- out := new(LimitRangeList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *LimitRangeList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *LimitRangeSpec) DeepCopyInto(out *LimitRangeSpec) {
- *out = *in
- if in.Limits != nil {
- in, out := &in.Limits, &out.Limits
- *out = make([]LimitRangeItem, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitRangeSpec.
-func (in *LimitRangeSpec) DeepCopy() *LimitRangeSpec {
- if in == nil {
- return nil
- }
- out := new(LimitRangeSpec)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *List) DeepCopyInto(out *List) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]runtime.Object, len(*in))
- for i := range *in {
- if (*in)[i] == nil {
- (*out)[i] = nil
- } else {
- (*out)[i] = (*in)[i].DeepCopyObject()
- }
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new List.
-func (in *List) DeepCopy() *List {
- if in == nil {
- return nil
- }
- out := new(List)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *List) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ListOptions) DeepCopyInto(out *ListOptions) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- if in.LabelSelector == nil {
- out.LabelSelector = nil
- } else {
- out.LabelSelector = in.LabelSelector.DeepCopySelector()
- }
- if in.FieldSelector == nil {
- out.FieldSelector = nil
- } else {
- out.FieldSelector = in.FieldSelector.DeepCopySelector()
- }
- if in.TimeoutSeconds != nil {
- in, out := &in.TimeoutSeconds, &out.TimeoutSeconds
- if *in == nil {
- *out = nil
- } else {
- *out = new(int64)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListOptions.
-func (in *ListOptions) DeepCopy() *ListOptions {
- if in == nil {
- return nil
- }
- out := new(ListOptions)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *ListOptions) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *LoadBalancerIngress) DeepCopyInto(out *LoadBalancerIngress) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerIngress.
-func (in *LoadBalancerIngress) DeepCopy() *LoadBalancerIngress {
- if in == nil {
- return nil
- }
- out := new(LoadBalancerIngress)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *LoadBalancerStatus) DeepCopyInto(out *LoadBalancerStatus) {
- *out = *in
- if in.Ingress != nil {
- in, out := &in.Ingress, &out.Ingress
- *out = make([]LoadBalancerIngress, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerStatus.
-func (in *LoadBalancerStatus) DeepCopy() *LoadBalancerStatus {
- if in == nil {
- return nil
- }
- out := new(LoadBalancerStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *LocalObjectReference) DeepCopyInto(out *LocalObjectReference) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalObjectReference.
-func (in *LocalObjectReference) DeepCopy() *LocalObjectReference {
- if in == nil {
- return nil
- }
- out := new(LocalObjectReference)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *LocalVolumeSource) DeepCopyInto(out *LocalVolumeSource) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalVolumeSource.
-func (in *LocalVolumeSource) DeepCopy() *LocalVolumeSource {
- if in == nil {
- return nil
- }
- out := new(LocalVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NFSVolumeSource) DeepCopyInto(out *NFSVolumeSource) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NFSVolumeSource.
-func (in *NFSVolumeSource) DeepCopy() *NFSVolumeSource {
- if in == nil {
- return nil
- }
- out := new(NFSVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Namespace) DeepCopyInto(out *Namespace) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- in.Spec.DeepCopyInto(&out.Spec)
- out.Status = in.Status
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Namespace.
-func (in *Namespace) DeepCopy() *Namespace {
- if in == nil {
- return nil
- }
- out := new(Namespace)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *Namespace) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NamespaceList) DeepCopyInto(out *NamespaceList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]Namespace, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceList.
-func (in *NamespaceList) DeepCopy() *NamespaceList {
- if in == nil {
- return nil
- }
- out := new(NamespaceList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *NamespaceList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NamespaceSpec) DeepCopyInto(out *NamespaceSpec) {
- *out = *in
- if in.Finalizers != nil {
- in, out := &in.Finalizers, &out.Finalizers
- *out = make([]FinalizerName, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceSpec.
-func (in *NamespaceSpec) DeepCopy() *NamespaceSpec {
- if in == nil {
- return nil
- }
- out := new(NamespaceSpec)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NamespaceStatus) DeepCopyInto(out *NamespaceStatus) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceStatus.
-func (in *NamespaceStatus) DeepCopy() *NamespaceStatus {
- if in == nil {
- return nil
- }
- out := new(NamespaceStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Node) DeepCopyInto(out *Node) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- in.Spec.DeepCopyInto(&out.Spec)
- in.Status.DeepCopyInto(&out.Status)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Node.
-func (in *Node) DeepCopy() *Node {
- if in == nil {
- return nil
- }
- out := new(Node)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *Node) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NodeAddress) DeepCopyInto(out *NodeAddress) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeAddress.
-func (in *NodeAddress) DeepCopy() *NodeAddress {
- if in == nil {
- return nil
- }
- out := new(NodeAddress)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NodeAffinity) DeepCopyInto(out *NodeAffinity) {
- *out = *in
- if in.RequiredDuringSchedulingIgnoredDuringExecution != nil {
- in, out := &in.RequiredDuringSchedulingIgnoredDuringExecution, &out.RequiredDuringSchedulingIgnoredDuringExecution
- if *in == nil {
- *out = nil
- } else {
- *out = new(NodeSelector)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.PreferredDuringSchedulingIgnoredDuringExecution != nil {
- in, out := &in.PreferredDuringSchedulingIgnoredDuringExecution, &out.PreferredDuringSchedulingIgnoredDuringExecution
- *out = make([]PreferredSchedulingTerm, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeAffinity.
-func (in *NodeAffinity) DeepCopy() *NodeAffinity {
- if in == nil {
- return nil
- }
- out := new(NodeAffinity)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NodeCondition) DeepCopyInto(out *NodeCondition) {
- *out = *in
- in.LastHeartbeatTime.DeepCopyInto(&out.LastHeartbeatTime)
- in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeCondition.
-func (in *NodeCondition) DeepCopy() *NodeCondition {
- if in == nil {
- return nil
- }
- out := new(NodeCondition)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NodeConfigSource) DeepCopyInto(out *NodeConfigSource) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- if in.ConfigMapRef != nil {
- in, out := &in.ConfigMapRef, &out.ConfigMapRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(ObjectReference)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigSource.
-func (in *NodeConfigSource) DeepCopy() *NodeConfigSource {
- if in == nil {
- return nil
- }
- out := new(NodeConfigSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *NodeConfigSource) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NodeDaemonEndpoints) DeepCopyInto(out *NodeDaemonEndpoints) {
- *out = *in
- out.KubeletEndpoint = in.KubeletEndpoint
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeDaemonEndpoints.
-func (in *NodeDaemonEndpoints) DeepCopy() *NodeDaemonEndpoints {
- if in == nil {
- return nil
- }
- out := new(NodeDaemonEndpoints)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NodeList) DeepCopyInto(out *NodeList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]Node, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeList.
-func (in *NodeList) DeepCopy() *NodeList {
- if in == nil {
- return nil
- }
- out := new(NodeList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *NodeList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NodeProxyOptions) DeepCopyInto(out *NodeProxyOptions) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeProxyOptions.
-func (in *NodeProxyOptions) DeepCopy() *NodeProxyOptions {
- if in == nil {
- return nil
- }
- out := new(NodeProxyOptions)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *NodeProxyOptions) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NodeResources) DeepCopyInto(out *NodeResources) {
- *out = *in
- if in.Capacity != nil {
- in, out := &in.Capacity, &out.Capacity
- *out = make(ResourceList, len(*in))
- for key, val := range *in {
- (*out)[key] = val.DeepCopy()
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeResources.
-func (in *NodeResources) DeepCopy() *NodeResources {
- if in == nil {
- return nil
- }
- out := new(NodeResources)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NodeSelector) DeepCopyInto(out *NodeSelector) {
- *out = *in
- if in.NodeSelectorTerms != nil {
- in, out := &in.NodeSelectorTerms, &out.NodeSelectorTerms
- *out = make([]NodeSelectorTerm, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSelector.
-func (in *NodeSelector) DeepCopy() *NodeSelector {
- if in == nil {
- return nil
- }
- out := new(NodeSelector)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NodeSelectorRequirement) DeepCopyInto(out *NodeSelectorRequirement) {
- *out = *in
- if in.Values != nil {
- in, out := &in.Values, &out.Values
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSelectorRequirement.
-func (in *NodeSelectorRequirement) DeepCopy() *NodeSelectorRequirement {
- if in == nil {
- return nil
- }
- out := new(NodeSelectorRequirement)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NodeSelectorTerm) DeepCopyInto(out *NodeSelectorTerm) {
- *out = *in
- if in.MatchExpressions != nil {
- in, out := &in.MatchExpressions, &out.MatchExpressions
- *out = make([]NodeSelectorRequirement, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSelectorTerm.
-func (in *NodeSelectorTerm) DeepCopy() *NodeSelectorTerm {
- if in == nil {
- return nil
- }
- out := new(NodeSelectorTerm)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NodeSpec) DeepCopyInto(out *NodeSpec) {
- *out = *in
- if in.Taints != nil {
- in, out := &in.Taints, &out.Taints
- *out = make([]Taint, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.ConfigSource != nil {
- in, out := &in.ConfigSource, &out.ConfigSource
- if *in == nil {
- *out = nil
- } else {
- *out = new(NodeConfigSource)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSpec.
-func (in *NodeSpec) DeepCopy() *NodeSpec {
- if in == nil {
- return nil
- }
- out := new(NodeSpec)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NodeStatus) DeepCopyInto(out *NodeStatus) {
- *out = *in
- if in.Capacity != nil {
- in, out := &in.Capacity, &out.Capacity
- *out = make(ResourceList, len(*in))
- for key, val := range *in {
- (*out)[key] = val.DeepCopy()
- }
- }
- if in.Allocatable != nil {
- in, out := &in.Allocatable, &out.Allocatable
- *out = make(ResourceList, len(*in))
- for key, val := range *in {
- (*out)[key] = val.DeepCopy()
- }
- }
- if in.Conditions != nil {
- in, out := &in.Conditions, &out.Conditions
- *out = make([]NodeCondition, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.Addresses != nil {
- in, out := &in.Addresses, &out.Addresses
- *out = make([]NodeAddress, len(*in))
- copy(*out, *in)
- }
- out.DaemonEndpoints = in.DaemonEndpoints
- out.NodeInfo = in.NodeInfo
- if in.Images != nil {
- in, out := &in.Images, &out.Images
- *out = make([]ContainerImage, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.VolumesInUse != nil {
- in, out := &in.VolumesInUse, &out.VolumesInUse
- *out = make([]UniqueVolumeName, len(*in))
- copy(*out, *in)
- }
- if in.VolumesAttached != nil {
- in, out := &in.VolumesAttached, &out.VolumesAttached
- *out = make([]AttachedVolume, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeStatus.
-func (in *NodeStatus) DeepCopy() *NodeStatus {
- if in == nil {
- return nil
- }
- out := new(NodeStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NodeSystemInfo) DeepCopyInto(out *NodeSystemInfo) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSystemInfo.
-func (in *NodeSystemInfo) DeepCopy() *NodeSystemInfo {
- if in == nil {
- return nil
- }
- out := new(NodeSystemInfo)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ObjectFieldSelector) DeepCopyInto(out *ObjectFieldSelector) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectFieldSelector.
-func (in *ObjectFieldSelector) DeepCopy() *ObjectFieldSelector {
- if in == nil {
- return nil
- }
- out := new(ObjectFieldSelector)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ObjectMeta) DeepCopyInto(out *ObjectMeta) {
- *out = *in
- in.CreationTimestamp.DeepCopyInto(&out.CreationTimestamp)
- if in.DeletionTimestamp != nil {
- in, out := &in.DeletionTimestamp, &out.DeletionTimestamp
- if *in == nil {
- *out = nil
- } else {
- *out = (*in).DeepCopy()
- }
- }
- if in.DeletionGracePeriodSeconds != nil {
- in, out := &in.DeletionGracePeriodSeconds, &out.DeletionGracePeriodSeconds
- if *in == nil {
- *out = nil
- } else {
- *out = new(int64)
- **out = **in
- }
- }
- if in.Labels != nil {
- in, out := &in.Labels, &out.Labels
- *out = make(map[string]string, len(*in))
- for key, val := range *in {
- (*out)[key] = val
- }
- }
- if in.Annotations != nil {
- in, out := &in.Annotations, &out.Annotations
- *out = make(map[string]string, len(*in))
- for key, val := range *in {
- (*out)[key] = val
- }
- }
- if in.OwnerReferences != nil {
- in, out := &in.OwnerReferences, &out.OwnerReferences
- *out = make([]v1.OwnerReference, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.Initializers != nil {
- in, out := &in.Initializers, &out.Initializers
- if *in == nil {
- *out = nil
- } else {
- *out = new(v1.Initializers)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Finalizers != nil {
- in, out := &in.Finalizers, &out.Finalizers
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMeta.
-func (in *ObjectMeta) DeepCopy() *ObjectMeta {
- if in == nil {
- return nil
- }
- out := new(ObjectMeta)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ObjectReference) DeepCopyInto(out *ObjectReference) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectReference.
-func (in *ObjectReference) DeepCopy() *ObjectReference {
- if in == nil {
- return nil
- }
- out := new(ObjectReference)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *ObjectReference) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PersistentVolume) DeepCopyInto(out *PersistentVolume) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- in.Spec.DeepCopyInto(&out.Spec)
- out.Status = in.Status
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolume.
-func (in *PersistentVolume) DeepCopy() *PersistentVolume {
- if in == nil {
- return nil
- }
- out := new(PersistentVolume)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *PersistentVolume) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PersistentVolumeClaim) DeepCopyInto(out *PersistentVolumeClaim) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- in.Spec.DeepCopyInto(&out.Spec)
- in.Status.DeepCopyInto(&out.Status)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaim.
-func (in *PersistentVolumeClaim) DeepCopy() *PersistentVolumeClaim {
- if in == nil {
- return nil
- }
- out := new(PersistentVolumeClaim)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *PersistentVolumeClaim) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PersistentVolumeClaimCondition) DeepCopyInto(out *PersistentVolumeClaimCondition) {
- *out = *in
- in.LastProbeTime.DeepCopyInto(&out.LastProbeTime)
- in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimCondition.
-func (in *PersistentVolumeClaimCondition) DeepCopy() *PersistentVolumeClaimCondition {
- if in == nil {
- return nil
- }
- out := new(PersistentVolumeClaimCondition)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PersistentVolumeClaimList) DeepCopyInto(out *PersistentVolumeClaimList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]PersistentVolumeClaim, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimList.
-func (in *PersistentVolumeClaimList) DeepCopy() *PersistentVolumeClaimList {
- if in == nil {
- return nil
- }
- out := new(PersistentVolumeClaimList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *PersistentVolumeClaimList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PersistentVolumeClaimSpec) DeepCopyInto(out *PersistentVolumeClaimSpec) {
- *out = *in
- if in.AccessModes != nil {
- in, out := &in.AccessModes, &out.AccessModes
- *out = make([]PersistentVolumeAccessMode, len(*in))
- copy(*out, *in)
- }
- if in.Selector != nil {
- in, out := &in.Selector, &out.Selector
- if *in == nil {
- *out = nil
- } else {
- *out = new(v1.LabelSelector)
- (*in).DeepCopyInto(*out)
- }
- }
- in.Resources.DeepCopyInto(&out.Resources)
- if in.StorageClassName != nil {
- in, out := &in.StorageClassName, &out.StorageClassName
- if *in == nil {
- *out = nil
- } else {
- *out = new(string)
- **out = **in
- }
- }
- if in.VolumeMode != nil {
- in, out := &in.VolumeMode, &out.VolumeMode
- if *in == nil {
- *out = nil
- } else {
- *out = new(PersistentVolumeMode)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimSpec.
-func (in *PersistentVolumeClaimSpec) DeepCopy() *PersistentVolumeClaimSpec {
- if in == nil {
- return nil
- }
- out := new(PersistentVolumeClaimSpec)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PersistentVolumeClaimStatus) DeepCopyInto(out *PersistentVolumeClaimStatus) {
- *out = *in
- if in.AccessModes != nil {
- in, out := &in.AccessModes, &out.AccessModes
- *out = make([]PersistentVolumeAccessMode, len(*in))
- copy(*out, *in)
- }
- if in.Capacity != nil {
- in, out := &in.Capacity, &out.Capacity
- *out = make(ResourceList, len(*in))
- for key, val := range *in {
- (*out)[key] = val.DeepCopy()
- }
- }
- if in.Conditions != nil {
- in, out := &in.Conditions, &out.Conditions
- *out = make([]PersistentVolumeClaimCondition, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimStatus.
-func (in *PersistentVolumeClaimStatus) DeepCopy() *PersistentVolumeClaimStatus {
- if in == nil {
- return nil
- }
- out := new(PersistentVolumeClaimStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PersistentVolumeClaimVolumeSource) DeepCopyInto(out *PersistentVolumeClaimVolumeSource) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimVolumeSource.
-func (in *PersistentVolumeClaimVolumeSource) DeepCopy() *PersistentVolumeClaimVolumeSource {
- if in == nil {
- return nil
- }
- out := new(PersistentVolumeClaimVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PersistentVolumeList) DeepCopyInto(out *PersistentVolumeList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]PersistentVolume, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeList.
-func (in *PersistentVolumeList) DeepCopy() *PersistentVolumeList {
- if in == nil {
- return nil
- }
- out := new(PersistentVolumeList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *PersistentVolumeList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PersistentVolumeSource) DeepCopyInto(out *PersistentVolumeSource) {
- *out = *in
- if in.GCEPersistentDisk != nil {
- in, out := &in.GCEPersistentDisk, &out.GCEPersistentDisk
- if *in == nil {
- *out = nil
- } else {
- *out = new(GCEPersistentDiskVolumeSource)
- **out = **in
- }
- }
- if in.AWSElasticBlockStore != nil {
- in, out := &in.AWSElasticBlockStore, &out.AWSElasticBlockStore
- if *in == nil {
- *out = nil
- } else {
- *out = new(AWSElasticBlockStoreVolumeSource)
- **out = **in
- }
- }
- if in.HostPath != nil {
- in, out := &in.HostPath, &out.HostPath
- if *in == nil {
- *out = nil
- } else {
- *out = new(HostPathVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Glusterfs != nil {
- in, out := &in.Glusterfs, &out.Glusterfs
- if *in == nil {
- *out = nil
- } else {
- *out = new(GlusterfsVolumeSource)
- **out = **in
- }
- }
- if in.NFS != nil {
- in, out := &in.NFS, &out.NFS
- if *in == nil {
- *out = nil
- } else {
- *out = new(NFSVolumeSource)
- **out = **in
- }
- }
- if in.RBD != nil {
- in, out := &in.RBD, &out.RBD
- if *in == nil {
- *out = nil
- } else {
- *out = new(RBDPersistentVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Quobyte != nil {
- in, out := &in.Quobyte, &out.Quobyte
- if *in == nil {
- *out = nil
- } else {
- *out = new(QuobyteVolumeSource)
- **out = **in
- }
- }
- if in.ISCSI != nil {
- in, out := &in.ISCSI, &out.ISCSI
- if *in == nil {
- *out = nil
- } else {
- *out = new(ISCSIPersistentVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.FlexVolume != nil {
- in, out := &in.FlexVolume, &out.FlexVolume
- if *in == nil {
- *out = nil
- } else {
- *out = new(FlexPersistentVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Cinder != nil {
- in, out := &in.Cinder, &out.Cinder
- if *in == nil {
- *out = nil
- } else {
- *out = new(CinderVolumeSource)
- **out = **in
- }
- }
- if in.CephFS != nil {
- in, out := &in.CephFS, &out.CephFS
- if *in == nil {
- *out = nil
- } else {
- *out = new(CephFSPersistentVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.FC != nil {
- in, out := &in.FC, &out.FC
- if *in == nil {
- *out = nil
- } else {
- *out = new(FCVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Flocker != nil {
- in, out := &in.Flocker, &out.Flocker
- if *in == nil {
- *out = nil
- } else {
- *out = new(FlockerVolumeSource)
- **out = **in
- }
- }
- if in.AzureFile != nil {
- in, out := &in.AzureFile, &out.AzureFile
- if *in == nil {
- *out = nil
- } else {
- *out = new(AzureFilePersistentVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.VsphereVolume != nil {
- in, out := &in.VsphereVolume, &out.VsphereVolume
- if *in == nil {
- *out = nil
- } else {
- *out = new(VsphereVirtualDiskVolumeSource)
- **out = **in
- }
- }
- if in.AzureDisk != nil {
- in, out := &in.AzureDisk, &out.AzureDisk
- if *in == nil {
- *out = nil
- } else {
- *out = new(AzureDiskVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.PhotonPersistentDisk != nil {
- in, out := &in.PhotonPersistentDisk, &out.PhotonPersistentDisk
- if *in == nil {
- *out = nil
- } else {
- *out = new(PhotonPersistentDiskVolumeSource)
- **out = **in
- }
- }
- if in.PortworxVolume != nil {
- in, out := &in.PortworxVolume, &out.PortworxVolume
- if *in == nil {
- *out = nil
- } else {
- *out = new(PortworxVolumeSource)
- **out = **in
- }
- }
- if in.ScaleIO != nil {
- in, out := &in.ScaleIO, &out.ScaleIO
- if *in == nil {
- *out = nil
- } else {
- *out = new(ScaleIOPersistentVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Local != nil {
- in, out := &in.Local, &out.Local
- if *in == nil {
- *out = nil
- } else {
- *out = new(LocalVolumeSource)
- **out = **in
- }
- }
- if in.StorageOS != nil {
- in, out := &in.StorageOS, &out.StorageOS
- if *in == nil {
- *out = nil
- } else {
- *out = new(StorageOSPersistentVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.CSI != nil {
- in, out := &in.CSI, &out.CSI
- if *in == nil {
- *out = nil
- } else {
- *out = new(CSIPersistentVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeSource.
-func (in *PersistentVolumeSource) DeepCopy() *PersistentVolumeSource {
- if in == nil {
- return nil
- }
- out := new(PersistentVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PersistentVolumeSpec) DeepCopyInto(out *PersistentVolumeSpec) {
- *out = *in
- if in.Capacity != nil {
- in, out := &in.Capacity, &out.Capacity
- *out = make(ResourceList, len(*in))
- for key, val := range *in {
- (*out)[key] = val.DeepCopy()
- }
- }
- in.PersistentVolumeSource.DeepCopyInto(&out.PersistentVolumeSource)
- if in.AccessModes != nil {
- in, out := &in.AccessModes, &out.AccessModes
- *out = make([]PersistentVolumeAccessMode, len(*in))
- copy(*out, *in)
- }
- if in.ClaimRef != nil {
- in, out := &in.ClaimRef, &out.ClaimRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(ObjectReference)
- **out = **in
- }
- }
- if in.MountOptions != nil {
- in, out := &in.MountOptions, &out.MountOptions
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- if in.VolumeMode != nil {
- in, out := &in.VolumeMode, &out.VolumeMode
- if *in == nil {
- *out = nil
- } else {
- *out = new(PersistentVolumeMode)
- **out = **in
- }
- }
- if in.NodeAffinity != nil {
- in, out := &in.NodeAffinity, &out.NodeAffinity
- if *in == nil {
- *out = nil
- } else {
- *out = new(VolumeNodeAffinity)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeSpec.
-func (in *PersistentVolumeSpec) DeepCopy() *PersistentVolumeSpec {
- if in == nil {
- return nil
- }
- out := new(PersistentVolumeSpec)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PersistentVolumeStatus) DeepCopyInto(out *PersistentVolumeStatus) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeStatus.
-func (in *PersistentVolumeStatus) DeepCopy() *PersistentVolumeStatus {
- if in == nil {
- return nil
- }
- out := new(PersistentVolumeStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PhotonPersistentDiskVolumeSource) DeepCopyInto(out *PhotonPersistentDiskVolumeSource) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PhotonPersistentDiskVolumeSource.
-func (in *PhotonPersistentDiskVolumeSource) DeepCopy() *PhotonPersistentDiskVolumeSource {
- if in == nil {
- return nil
- }
- out := new(PhotonPersistentDiskVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Pod) DeepCopyInto(out *Pod) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- in.Spec.DeepCopyInto(&out.Spec)
- in.Status.DeepCopyInto(&out.Status)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Pod.
-func (in *Pod) DeepCopy() *Pod {
- if in == nil {
- return nil
- }
- out := new(Pod)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *Pod) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodAffinity) DeepCopyInto(out *PodAffinity) {
- *out = *in
- if in.RequiredDuringSchedulingIgnoredDuringExecution != nil {
- in, out := &in.RequiredDuringSchedulingIgnoredDuringExecution, &out.RequiredDuringSchedulingIgnoredDuringExecution
- *out = make([]PodAffinityTerm, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.PreferredDuringSchedulingIgnoredDuringExecution != nil {
- in, out := &in.PreferredDuringSchedulingIgnoredDuringExecution, &out.PreferredDuringSchedulingIgnoredDuringExecution
- *out = make([]WeightedPodAffinityTerm, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodAffinity.
-func (in *PodAffinity) DeepCopy() *PodAffinity {
- if in == nil {
- return nil
- }
- out := new(PodAffinity)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodAffinityTerm) DeepCopyInto(out *PodAffinityTerm) {
- *out = *in
- if in.LabelSelector != nil {
- in, out := &in.LabelSelector, &out.LabelSelector
- if *in == nil {
- *out = nil
- } else {
- *out = new(v1.LabelSelector)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Namespaces != nil {
- in, out := &in.Namespaces, &out.Namespaces
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodAffinityTerm.
-func (in *PodAffinityTerm) DeepCopy() *PodAffinityTerm {
- if in == nil {
- return nil
- }
- out := new(PodAffinityTerm)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodAntiAffinity) DeepCopyInto(out *PodAntiAffinity) {
- *out = *in
- if in.RequiredDuringSchedulingIgnoredDuringExecution != nil {
- in, out := &in.RequiredDuringSchedulingIgnoredDuringExecution, &out.RequiredDuringSchedulingIgnoredDuringExecution
- *out = make([]PodAffinityTerm, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.PreferredDuringSchedulingIgnoredDuringExecution != nil {
- in, out := &in.PreferredDuringSchedulingIgnoredDuringExecution, &out.PreferredDuringSchedulingIgnoredDuringExecution
- *out = make([]WeightedPodAffinityTerm, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodAntiAffinity.
-func (in *PodAntiAffinity) DeepCopy() *PodAntiAffinity {
- if in == nil {
- return nil
- }
- out := new(PodAntiAffinity)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodAttachOptions) DeepCopyInto(out *PodAttachOptions) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodAttachOptions.
-func (in *PodAttachOptions) DeepCopy() *PodAttachOptions {
- if in == nil {
- return nil
- }
- out := new(PodAttachOptions)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *PodAttachOptions) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodCondition) DeepCopyInto(out *PodCondition) {
- *out = *in
- in.LastProbeTime.DeepCopyInto(&out.LastProbeTime)
- in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodCondition.
-func (in *PodCondition) DeepCopy() *PodCondition {
- if in == nil {
- return nil
- }
- out := new(PodCondition)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodDNSConfig) DeepCopyInto(out *PodDNSConfig) {
- *out = *in
- if in.Nameservers != nil {
- in, out := &in.Nameservers, &out.Nameservers
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- if in.Searches != nil {
- in, out := &in.Searches, &out.Searches
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- if in.Options != nil {
- in, out := &in.Options, &out.Options
- *out = make([]PodDNSConfigOption, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDNSConfig.
-func (in *PodDNSConfig) DeepCopy() *PodDNSConfig {
- if in == nil {
- return nil
- }
- out := new(PodDNSConfig)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodDNSConfigOption) DeepCopyInto(out *PodDNSConfigOption) {
- *out = *in
- if in.Value != nil {
- in, out := &in.Value, &out.Value
- if *in == nil {
- *out = nil
- } else {
- *out = new(string)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDNSConfigOption.
-func (in *PodDNSConfigOption) DeepCopy() *PodDNSConfigOption {
- if in == nil {
- return nil
- }
- out := new(PodDNSConfigOption)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodExecOptions) DeepCopyInto(out *PodExecOptions) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- if in.Command != nil {
- in, out := &in.Command, &out.Command
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodExecOptions.
-func (in *PodExecOptions) DeepCopy() *PodExecOptions {
- if in == nil {
- return nil
- }
- out := new(PodExecOptions)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *PodExecOptions) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodList) DeepCopyInto(out *PodList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]Pod, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodList.
-func (in *PodList) DeepCopy() *PodList {
- if in == nil {
- return nil
- }
- out := new(PodList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *PodList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodLogOptions) DeepCopyInto(out *PodLogOptions) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- if in.SinceSeconds != nil {
- in, out := &in.SinceSeconds, &out.SinceSeconds
- if *in == nil {
- *out = nil
- } else {
- *out = new(int64)
- **out = **in
- }
- }
- if in.SinceTime != nil {
- in, out := &in.SinceTime, &out.SinceTime
- if *in == nil {
- *out = nil
- } else {
- *out = (*in).DeepCopy()
- }
- }
- if in.TailLines != nil {
- in, out := &in.TailLines, &out.TailLines
- if *in == nil {
- *out = nil
- } else {
- *out = new(int64)
- **out = **in
- }
- }
- if in.LimitBytes != nil {
- in, out := &in.LimitBytes, &out.LimitBytes
- if *in == nil {
- *out = nil
- } else {
- *out = new(int64)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodLogOptions.
-func (in *PodLogOptions) DeepCopy() *PodLogOptions {
- if in == nil {
- return nil
- }
- out := new(PodLogOptions)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *PodLogOptions) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodPortForwardOptions) DeepCopyInto(out *PodPortForwardOptions) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- if in.Ports != nil {
- in, out := &in.Ports, &out.Ports
- *out = make([]int32, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodPortForwardOptions.
-func (in *PodPortForwardOptions) DeepCopy() *PodPortForwardOptions {
- if in == nil {
- return nil
- }
- out := new(PodPortForwardOptions)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *PodPortForwardOptions) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodProxyOptions) DeepCopyInto(out *PodProxyOptions) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodProxyOptions.
-func (in *PodProxyOptions) DeepCopy() *PodProxyOptions {
- if in == nil {
- return nil
- }
- out := new(PodProxyOptions)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *PodProxyOptions) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodSecurityContext) DeepCopyInto(out *PodSecurityContext) {
- *out = *in
- if in.ShareProcessNamespace != nil {
- in, out := &in.ShareProcessNamespace, &out.ShareProcessNamespace
- if *in == nil {
- *out = nil
- } else {
- *out = new(bool)
- **out = **in
- }
- }
- if in.SELinuxOptions != nil {
- in, out := &in.SELinuxOptions, &out.SELinuxOptions
- if *in == nil {
- *out = nil
- } else {
- *out = new(SELinuxOptions)
- **out = **in
- }
- }
- if in.RunAsUser != nil {
- in, out := &in.RunAsUser, &out.RunAsUser
- if *in == nil {
- *out = nil
- } else {
- *out = new(int64)
- **out = **in
- }
- }
- if in.RunAsNonRoot != nil {
- in, out := &in.RunAsNonRoot, &out.RunAsNonRoot
- if *in == nil {
- *out = nil
- } else {
- *out = new(bool)
- **out = **in
- }
- }
- if in.SupplementalGroups != nil {
- in, out := &in.SupplementalGroups, &out.SupplementalGroups
- *out = make([]int64, len(*in))
- copy(*out, *in)
- }
- if in.FSGroup != nil {
- in, out := &in.FSGroup, &out.FSGroup
- if *in == nil {
- *out = nil
- } else {
- *out = new(int64)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityContext.
-func (in *PodSecurityContext) DeepCopy() *PodSecurityContext {
- if in == nil {
- return nil
- }
- out := new(PodSecurityContext)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodSignature) DeepCopyInto(out *PodSignature) {
- *out = *in
- if in.PodController != nil {
- in, out := &in.PodController, &out.PodController
- if *in == nil {
- *out = nil
- } else {
- *out = new(v1.OwnerReference)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSignature.
-func (in *PodSignature) DeepCopy() *PodSignature {
- if in == nil {
- return nil
- }
- out := new(PodSignature)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodSpec) DeepCopyInto(out *PodSpec) {
- *out = *in
- if in.Volumes != nil {
- in, out := &in.Volumes, &out.Volumes
- *out = make([]Volume, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.InitContainers != nil {
- in, out := &in.InitContainers, &out.InitContainers
- *out = make([]Container, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.Containers != nil {
- in, out := &in.Containers, &out.Containers
- *out = make([]Container, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.TerminationGracePeriodSeconds != nil {
- in, out := &in.TerminationGracePeriodSeconds, &out.TerminationGracePeriodSeconds
- if *in == nil {
- *out = nil
- } else {
- *out = new(int64)
- **out = **in
- }
- }
- if in.ActiveDeadlineSeconds != nil {
- in, out := &in.ActiveDeadlineSeconds, &out.ActiveDeadlineSeconds
- if *in == nil {
- *out = nil
- } else {
- *out = new(int64)
- **out = **in
- }
- }
- if in.NodeSelector != nil {
- in, out := &in.NodeSelector, &out.NodeSelector
- *out = make(map[string]string, len(*in))
- for key, val := range *in {
- (*out)[key] = val
- }
- }
- if in.AutomountServiceAccountToken != nil {
- in, out := &in.AutomountServiceAccountToken, &out.AutomountServiceAccountToken
- if *in == nil {
- *out = nil
- } else {
- *out = new(bool)
- **out = **in
- }
- }
- if in.SecurityContext != nil {
- in, out := &in.SecurityContext, &out.SecurityContext
- if *in == nil {
- *out = nil
- } else {
- *out = new(PodSecurityContext)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.ImagePullSecrets != nil {
- in, out := &in.ImagePullSecrets, &out.ImagePullSecrets
- *out = make([]LocalObjectReference, len(*in))
- copy(*out, *in)
- }
- if in.Affinity != nil {
- in, out := &in.Affinity, &out.Affinity
- if *in == nil {
- *out = nil
- } else {
- *out = new(Affinity)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Tolerations != nil {
- in, out := &in.Tolerations, &out.Tolerations
- *out = make([]Toleration, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.HostAliases != nil {
- in, out := &in.HostAliases, &out.HostAliases
- *out = make([]HostAlias, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.Priority != nil {
- in, out := &in.Priority, &out.Priority
- if *in == nil {
- *out = nil
- } else {
- *out = new(int32)
- **out = **in
- }
- }
- if in.DNSConfig != nil {
- in, out := &in.DNSConfig, &out.DNSConfig
- if *in == nil {
- *out = nil
- } else {
- *out = new(PodDNSConfig)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSpec.
-func (in *PodSpec) DeepCopy() *PodSpec {
- if in == nil {
- return nil
- }
- out := new(PodSpec)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodStatus) DeepCopyInto(out *PodStatus) {
- *out = *in
- if in.Conditions != nil {
- in, out := &in.Conditions, &out.Conditions
- *out = make([]PodCondition, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.StartTime != nil {
- in, out := &in.StartTime, &out.StartTime
- if *in == nil {
- *out = nil
- } else {
- *out = (*in).DeepCopy()
- }
- }
- if in.InitContainerStatuses != nil {
- in, out := &in.InitContainerStatuses, &out.InitContainerStatuses
- *out = make([]ContainerStatus, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.ContainerStatuses != nil {
- in, out := &in.ContainerStatuses, &out.ContainerStatuses
- *out = make([]ContainerStatus, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodStatus.
-func (in *PodStatus) DeepCopy() *PodStatus {
- if in == nil {
- return nil
- }
- out := new(PodStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodStatusResult) DeepCopyInto(out *PodStatusResult) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- in.Status.DeepCopyInto(&out.Status)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodStatusResult.
-func (in *PodStatusResult) DeepCopy() *PodStatusResult {
- if in == nil {
- return nil
- }
- out := new(PodStatusResult)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *PodStatusResult) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodTemplate) DeepCopyInto(out *PodTemplate) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- in.Template.DeepCopyInto(&out.Template)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplate.
-func (in *PodTemplate) DeepCopy() *PodTemplate {
- if in == nil {
- return nil
- }
- out := new(PodTemplate)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *PodTemplate) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodTemplateList) DeepCopyInto(out *PodTemplateList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]PodTemplate, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplateList.
-func (in *PodTemplateList) DeepCopy() *PodTemplateList {
- if in == nil {
- return nil
- }
- out := new(PodTemplateList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *PodTemplateList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodTemplateSpec) DeepCopyInto(out *PodTemplateSpec) {
- *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 PodTemplateSpec.
-func (in *PodTemplateSpec) DeepCopy() *PodTemplateSpec {
- if in == nil {
- return nil
- }
- out := new(PodTemplateSpec)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PortworxVolumeSource) DeepCopyInto(out *PortworxVolumeSource) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortworxVolumeSource.
-func (in *PortworxVolumeSource) DeepCopy() *PortworxVolumeSource {
- if in == nil {
- return nil
- }
- out := new(PortworxVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Preconditions) DeepCopyInto(out *Preconditions) {
- *out = *in
- if in.UID != nil {
- in, out := &in.UID, &out.UID
- if *in == nil {
- *out = nil
- } else {
- *out = new(types.UID)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Preconditions.
-func (in *Preconditions) DeepCopy() *Preconditions {
- if in == nil {
- return nil
- }
- out := new(Preconditions)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PreferAvoidPodsEntry) DeepCopyInto(out *PreferAvoidPodsEntry) {
- *out = *in
- in.PodSignature.DeepCopyInto(&out.PodSignature)
- in.EvictionTime.DeepCopyInto(&out.EvictionTime)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreferAvoidPodsEntry.
-func (in *PreferAvoidPodsEntry) DeepCopy() *PreferAvoidPodsEntry {
- if in == nil {
- return nil
- }
- out := new(PreferAvoidPodsEntry)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PreferredSchedulingTerm) DeepCopyInto(out *PreferredSchedulingTerm) {
- *out = *in
- in.Preference.DeepCopyInto(&out.Preference)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreferredSchedulingTerm.
-func (in *PreferredSchedulingTerm) DeepCopy() *PreferredSchedulingTerm {
- if in == nil {
- return nil
- }
- out := new(PreferredSchedulingTerm)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Probe) DeepCopyInto(out *Probe) {
- *out = *in
- in.Handler.DeepCopyInto(&out.Handler)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Probe.
-func (in *Probe) DeepCopy() *Probe {
- if in == nil {
- return nil
- }
- out := new(Probe)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ProjectedVolumeSource) DeepCopyInto(out *ProjectedVolumeSource) {
- *out = *in
- if in.Sources != nil {
- in, out := &in.Sources, &out.Sources
- *out = make([]VolumeProjection, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.DefaultMode != nil {
- in, out := &in.DefaultMode, &out.DefaultMode
- if *in == nil {
- *out = nil
- } else {
- *out = new(int32)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectedVolumeSource.
-func (in *ProjectedVolumeSource) DeepCopy() *ProjectedVolumeSource {
- if in == nil {
- return nil
- }
- out := new(ProjectedVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *QuobyteVolumeSource) DeepCopyInto(out *QuobyteVolumeSource) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QuobyteVolumeSource.
-func (in *QuobyteVolumeSource) DeepCopy() *QuobyteVolumeSource {
- if in == nil {
- return nil
- }
- out := new(QuobyteVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *RBDPersistentVolumeSource) DeepCopyInto(out *RBDPersistentVolumeSource) {
- *out = *in
- if in.CephMonitors != nil {
- in, out := &in.CephMonitors, &out.CephMonitors
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- if in.SecretRef != nil {
- in, out := &in.SecretRef, &out.SecretRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(SecretReference)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RBDPersistentVolumeSource.
-func (in *RBDPersistentVolumeSource) DeepCopy() *RBDPersistentVolumeSource {
- if in == nil {
- return nil
- }
- out := new(RBDPersistentVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *RBDVolumeSource) DeepCopyInto(out *RBDVolumeSource) {
- *out = *in
- if in.CephMonitors != nil {
- in, out := &in.CephMonitors, &out.CephMonitors
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- if in.SecretRef != nil {
- in, out := &in.SecretRef, &out.SecretRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(LocalObjectReference)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RBDVolumeSource.
-func (in *RBDVolumeSource) DeepCopy() *RBDVolumeSource {
- if in == nil {
- return nil
- }
- out := new(RBDVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *RangeAllocation) DeepCopyInto(out *RangeAllocation) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- if in.Data != nil {
- in, out := &in.Data, &out.Data
- *out = make([]byte, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RangeAllocation.
-func (in *RangeAllocation) DeepCopy() *RangeAllocation {
- if in == nil {
- return nil
- }
- out := new(RangeAllocation)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *RangeAllocation) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ReplicationController) DeepCopyInto(out *ReplicationController) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- in.Spec.DeepCopyInto(&out.Spec)
- in.Status.DeepCopyInto(&out.Status)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationController.
-func (in *ReplicationController) DeepCopy() *ReplicationController {
- if in == nil {
- return nil
- }
- out := new(ReplicationController)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *ReplicationController) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ReplicationControllerCondition) DeepCopyInto(out *ReplicationControllerCondition) {
- *out = *in
- in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationControllerCondition.
-func (in *ReplicationControllerCondition) DeepCopy() *ReplicationControllerCondition {
- if in == nil {
- return nil
- }
- out := new(ReplicationControllerCondition)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ReplicationControllerList) DeepCopyInto(out *ReplicationControllerList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]ReplicationController, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationControllerList.
-func (in *ReplicationControllerList) DeepCopy() *ReplicationControllerList {
- if in == nil {
- return nil
- }
- out := new(ReplicationControllerList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *ReplicationControllerList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ReplicationControllerSpec) DeepCopyInto(out *ReplicationControllerSpec) {
- *out = *in
- if in.Selector != nil {
- in, out := &in.Selector, &out.Selector
- *out = make(map[string]string, len(*in))
- for key, val := range *in {
- (*out)[key] = val
- }
- }
- if in.Template != nil {
- in, out := &in.Template, &out.Template
- if *in == nil {
- *out = nil
- } else {
- *out = new(PodTemplateSpec)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationControllerSpec.
-func (in *ReplicationControllerSpec) DeepCopy() *ReplicationControllerSpec {
- if in == nil {
- return nil
- }
- out := new(ReplicationControllerSpec)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ReplicationControllerStatus) DeepCopyInto(out *ReplicationControllerStatus) {
- *out = *in
- if in.Conditions != nil {
- in, out := &in.Conditions, &out.Conditions
- *out = make([]ReplicationControllerCondition, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationControllerStatus.
-func (in *ReplicationControllerStatus) DeepCopy() *ReplicationControllerStatus {
- if in == nil {
- return nil
- }
- out := new(ReplicationControllerStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ResourceFieldSelector) DeepCopyInto(out *ResourceFieldSelector) {
- *out = *in
- out.Divisor = in.Divisor.DeepCopy()
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceFieldSelector.
-func (in *ResourceFieldSelector) DeepCopy() *ResourceFieldSelector {
- if in == nil {
- return nil
- }
- out := new(ResourceFieldSelector)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in ResourceList) DeepCopyInto(out *ResourceList) {
- {
- in := &in
- *out = make(ResourceList, len(*in))
- for key, val := range *in {
- (*out)[key] = val.DeepCopy()
- }
- return
- }
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceList.
-func (in ResourceList) DeepCopy() ResourceList {
- if in == nil {
- return nil
- }
- out := new(ResourceList)
- in.DeepCopyInto(out)
- return *out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ResourceQuota) DeepCopyInto(out *ResourceQuota) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- in.Spec.DeepCopyInto(&out.Spec)
- in.Status.DeepCopyInto(&out.Status)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuota.
-func (in *ResourceQuota) DeepCopy() *ResourceQuota {
- if in == nil {
- return nil
- }
- out := new(ResourceQuota)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *ResourceQuota) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ResourceQuotaList) DeepCopyInto(out *ResourceQuotaList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]ResourceQuota, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotaList.
-func (in *ResourceQuotaList) DeepCopy() *ResourceQuotaList {
- if in == nil {
- return nil
- }
- out := new(ResourceQuotaList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *ResourceQuotaList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ResourceQuotaSpec) DeepCopyInto(out *ResourceQuotaSpec) {
- *out = *in
- if in.Hard != nil {
- in, out := &in.Hard, &out.Hard
- *out = make(ResourceList, len(*in))
- for key, val := range *in {
- (*out)[key] = val.DeepCopy()
- }
- }
- if in.Scopes != nil {
- in, out := &in.Scopes, &out.Scopes
- *out = make([]ResourceQuotaScope, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotaSpec.
-func (in *ResourceQuotaSpec) DeepCopy() *ResourceQuotaSpec {
- if in == nil {
- return nil
- }
- out := new(ResourceQuotaSpec)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ResourceQuotaStatus) DeepCopyInto(out *ResourceQuotaStatus) {
- *out = *in
- if in.Hard != nil {
- in, out := &in.Hard, &out.Hard
- *out = make(ResourceList, len(*in))
- for key, val := range *in {
- (*out)[key] = val.DeepCopy()
- }
- }
- if in.Used != nil {
- in, out := &in.Used, &out.Used
- *out = make(ResourceList, len(*in))
- for key, val := range *in {
- (*out)[key] = val.DeepCopy()
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotaStatus.
-func (in *ResourceQuotaStatus) DeepCopy() *ResourceQuotaStatus {
- if in == nil {
- return nil
- }
- out := new(ResourceQuotaStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ResourceRequirements) DeepCopyInto(out *ResourceRequirements) {
- *out = *in
- if in.Limits != nil {
- in, out := &in.Limits, &out.Limits
- *out = make(ResourceList, len(*in))
- for key, val := range *in {
- (*out)[key] = val.DeepCopy()
- }
- }
- if in.Requests != nil {
- in, out := &in.Requests, &out.Requests
- *out = make(ResourceList, len(*in))
- for key, val := range *in {
- (*out)[key] = val.DeepCopy()
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRequirements.
-func (in *ResourceRequirements) DeepCopy() *ResourceRequirements {
- if in == nil {
- return nil
- }
- out := new(ResourceRequirements)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *SELinuxOptions) DeepCopyInto(out *SELinuxOptions) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SELinuxOptions.
-func (in *SELinuxOptions) DeepCopy() *SELinuxOptions {
- if in == nil {
- return nil
- }
- out := new(SELinuxOptions)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ScaleIOPersistentVolumeSource) DeepCopyInto(out *ScaleIOPersistentVolumeSource) {
- *out = *in
- if in.SecretRef != nil {
- in, out := &in.SecretRef, &out.SecretRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(SecretReference)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleIOPersistentVolumeSource.
-func (in *ScaleIOPersistentVolumeSource) DeepCopy() *ScaleIOPersistentVolumeSource {
- if in == nil {
- return nil
- }
- out := new(ScaleIOPersistentVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ScaleIOVolumeSource) DeepCopyInto(out *ScaleIOVolumeSource) {
- *out = *in
- if in.SecretRef != nil {
- in, out := &in.SecretRef, &out.SecretRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(LocalObjectReference)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleIOVolumeSource.
-func (in *ScaleIOVolumeSource) DeepCopy() *ScaleIOVolumeSource {
- if in == nil {
- return nil
- }
- out := new(ScaleIOVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Secret) DeepCopyInto(out *Secret) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- if in.Data != nil {
- in, out := &in.Data, &out.Data
- *out = make(map[string][]byte, len(*in))
- for key, val := range *in {
- if val == nil {
- (*out)[key] = nil
- } else {
- (*out)[key] = make([]byte, len(val))
- copy((*out)[key], val)
- }
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Secret.
-func (in *Secret) DeepCopy() *Secret {
- if in == nil {
- return nil
- }
- out := new(Secret)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *Secret) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *SecretEnvSource) DeepCopyInto(out *SecretEnvSource) {
- *out = *in
- out.LocalObjectReference = in.LocalObjectReference
- if in.Optional != nil {
- in, out := &in.Optional, &out.Optional
- if *in == nil {
- *out = nil
- } else {
- *out = new(bool)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretEnvSource.
-func (in *SecretEnvSource) DeepCopy() *SecretEnvSource {
- if in == nil {
- return nil
- }
- out := new(SecretEnvSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *SecretKeySelector) DeepCopyInto(out *SecretKeySelector) {
- *out = *in
- out.LocalObjectReference = in.LocalObjectReference
- if in.Optional != nil {
- in, out := &in.Optional, &out.Optional
- if *in == nil {
- *out = nil
- } else {
- *out = new(bool)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretKeySelector.
-func (in *SecretKeySelector) DeepCopy() *SecretKeySelector {
- if in == nil {
- return nil
- }
- out := new(SecretKeySelector)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *SecretList) DeepCopyInto(out *SecretList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]Secret, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretList.
-func (in *SecretList) DeepCopy() *SecretList {
- if in == nil {
- return nil
- }
- out := new(SecretList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *SecretList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *SecretProjection) DeepCopyInto(out *SecretProjection) {
- *out = *in
- out.LocalObjectReference = in.LocalObjectReference
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]KeyToPath, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.Optional != nil {
- in, out := &in.Optional, &out.Optional
- if *in == nil {
- *out = nil
- } else {
- *out = new(bool)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretProjection.
-func (in *SecretProjection) DeepCopy() *SecretProjection {
- if in == nil {
- return nil
- }
- out := new(SecretProjection)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *SecretReference) DeepCopyInto(out *SecretReference) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretReference.
-func (in *SecretReference) DeepCopy() *SecretReference {
- if in == nil {
- return nil
- }
- out := new(SecretReference)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *SecretVolumeSource) DeepCopyInto(out *SecretVolumeSource) {
- *out = *in
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]KeyToPath, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.DefaultMode != nil {
- in, out := &in.DefaultMode, &out.DefaultMode
- if *in == nil {
- *out = nil
- } else {
- *out = new(int32)
- **out = **in
- }
- }
- if in.Optional != nil {
- in, out := &in.Optional, &out.Optional
- if *in == nil {
- *out = nil
- } else {
- *out = new(bool)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretVolumeSource.
-func (in *SecretVolumeSource) DeepCopy() *SecretVolumeSource {
- if in == nil {
- return nil
- }
- out := new(SecretVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *SecurityContext) DeepCopyInto(out *SecurityContext) {
- *out = *in
- if in.Capabilities != nil {
- in, out := &in.Capabilities, &out.Capabilities
- if *in == nil {
- *out = nil
- } else {
- *out = new(Capabilities)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Privileged != nil {
- in, out := &in.Privileged, &out.Privileged
- if *in == nil {
- *out = nil
- } else {
- *out = new(bool)
- **out = **in
- }
- }
- if in.SELinuxOptions != nil {
- in, out := &in.SELinuxOptions, &out.SELinuxOptions
- if *in == nil {
- *out = nil
- } else {
- *out = new(SELinuxOptions)
- **out = **in
- }
- }
- if in.RunAsUser != nil {
- in, out := &in.RunAsUser, &out.RunAsUser
- if *in == nil {
- *out = nil
- } else {
- *out = new(int64)
- **out = **in
- }
- }
- if in.RunAsNonRoot != nil {
- in, out := &in.RunAsNonRoot, &out.RunAsNonRoot
- if *in == nil {
- *out = nil
- } else {
- *out = new(bool)
- **out = **in
- }
- }
- if in.ReadOnlyRootFilesystem != nil {
- in, out := &in.ReadOnlyRootFilesystem, &out.ReadOnlyRootFilesystem
- if *in == nil {
- *out = nil
- } else {
- *out = new(bool)
- **out = **in
- }
- }
- if in.AllowPrivilegeEscalation != nil {
- in, out := &in.AllowPrivilegeEscalation, &out.AllowPrivilegeEscalation
- if *in == nil {
- *out = nil
- } else {
- *out = new(bool)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityContext.
-func (in *SecurityContext) DeepCopy() *SecurityContext {
- if in == nil {
- return nil
- }
- out := new(SecurityContext)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *SerializedReference) DeepCopyInto(out *SerializedReference) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.Reference = in.Reference
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SerializedReference.
-func (in *SerializedReference) DeepCopy() *SerializedReference {
- if in == nil {
- return nil
- }
- out := new(SerializedReference)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *SerializedReference) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Service) DeepCopyInto(out *Service) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- in.Spec.DeepCopyInto(&out.Spec)
- in.Status.DeepCopyInto(&out.Status)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service.
-func (in *Service) DeepCopy() *Service {
- if in == nil {
- return nil
- }
- out := new(Service)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *Service) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ServiceAccount) DeepCopyInto(out *ServiceAccount) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- if in.Secrets != nil {
- in, out := &in.Secrets, &out.Secrets
- *out = make([]ObjectReference, len(*in))
- copy(*out, *in)
- }
- if in.ImagePullSecrets != nil {
- in, out := &in.ImagePullSecrets, &out.ImagePullSecrets
- *out = make([]LocalObjectReference, len(*in))
- copy(*out, *in)
- }
- if in.AutomountServiceAccountToken != nil {
- in, out := &in.AutomountServiceAccountToken, &out.AutomountServiceAccountToken
- if *in == nil {
- *out = nil
- } else {
- *out = new(bool)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccount.
-func (in *ServiceAccount) DeepCopy() *ServiceAccount {
- if in == nil {
- return nil
- }
- out := new(ServiceAccount)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *ServiceAccount) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ServiceAccountList) DeepCopyInto(out *ServiceAccountList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]ServiceAccount, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountList.
-func (in *ServiceAccountList) DeepCopy() *ServiceAccountList {
- if in == nil {
- return nil
- }
- out := new(ServiceAccountList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *ServiceAccountList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ServiceList) DeepCopyInto(out *ServiceList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]Service, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceList.
-func (in *ServiceList) DeepCopy() *ServiceList {
- if in == nil {
- return nil
- }
- out := new(ServiceList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *ServiceList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ServicePort) DeepCopyInto(out *ServicePort) {
- *out = *in
- out.TargetPort = in.TargetPort
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServicePort.
-func (in *ServicePort) DeepCopy() *ServicePort {
- if in == nil {
- return nil
- }
- out := new(ServicePort)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ServiceProxyOptions) DeepCopyInto(out *ServiceProxyOptions) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceProxyOptions.
-func (in *ServiceProxyOptions) DeepCopy() *ServiceProxyOptions {
- if in == nil {
- return nil
- }
- out := new(ServiceProxyOptions)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *ServiceProxyOptions) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec) {
- *out = *in
- if in.Ports != nil {
- in, out := &in.Ports, &out.Ports
- *out = make([]ServicePort, len(*in))
- copy(*out, *in)
- }
- if in.Selector != nil {
- in, out := &in.Selector, &out.Selector
- *out = make(map[string]string, len(*in))
- for key, val := range *in {
- (*out)[key] = val
- }
- }
- if in.ExternalIPs != nil {
- in, out := &in.ExternalIPs, &out.ExternalIPs
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- if in.SessionAffinityConfig != nil {
- in, out := &in.SessionAffinityConfig, &out.SessionAffinityConfig
- if *in == nil {
- *out = nil
- } else {
- *out = new(SessionAffinityConfig)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.LoadBalancerSourceRanges != nil {
- in, out := &in.LoadBalancerSourceRanges, &out.LoadBalancerSourceRanges
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSpec.
-func (in *ServiceSpec) DeepCopy() *ServiceSpec {
- if in == nil {
- return nil
- }
- out := new(ServiceSpec)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ServiceStatus) DeepCopyInto(out *ServiceStatus) {
- *out = *in
- in.LoadBalancer.DeepCopyInto(&out.LoadBalancer)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceStatus.
-func (in *ServiceStatus) DeepCopy() *ServiceStatus {
- if in == nil {
- return nil
- }
- out := new(ServiceStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *SessionAffinityConfig) DeepCopyInto(out *SessionAffinityConfig) {
- *out = *in
- if in.ClientIP != nil {
- in, out := &in.ClientIP, &out.ClientIP
- if *in == nil {
- *out = nil
- } else {
- *out = new(ClientIPConfig)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SessionAffinityConfig.
-func (in *SessionAffinityConfig) DeepCopy() *SessionAffinityConfig {
- if in == nil {
- return nil
- }
- out := new(SessionAffinityConfig)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *StorageOSPersistentVolumeSource) DeepCopyInto(out *StorageOSPersistentVolumeSource) {
- *out = *in
- if in.SecretRef != nil {
- in, out := &in.SecretRef, &out.SecretRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(ObjectReference)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageOSPersistentVolumeSource.
-func (in *StorageOSPersistentVolumeSource) DeepCopy() *StorageOSPersistentVolumeSource {
- if in == nil {
- return nil
- }
- out := new(StorageOSPersistentVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *StorageOSVolumeSource) DeepCopyInto(out *StorageOSVolumeSource) {
- *out = *in
- if in.SecretRef != nil {
- in, out := &in.SecretRef, &out.SecretRef
- if *in == nil {
- *out = nil
- } else {
- *out = new(LocalObjectReference)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageOSVolumeSource.
-func (in *StorageOSVolumeSource) DeepCopy() *StorageOSVolumeSource {
- if in == nil {
- return nil
- }
- out := new(StorageOSVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Sysctl) DeepCopyInto(out *Sysctl) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Sysctl.
-func (in *Sysctl) DeepCopy() *Sysctl {
- if in == nil {
- return nil
- }
- out := new(Sysctl)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *TCPSocketAction) DeepCopyInto(out *TCPSocketAction) {
- *out = *in
- out.Port = in.Port
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPSocketAction.
-func (in *TCPSocketAction) DeepCopy() *TCPSocketAction {
- if in == nil {
- return nil
- }
- out := new(TCPSocketAction)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Taint) DeepCopyInto(out *Taint) {
- *out = *in
- if in.TimeAdded != nil {
- in, out := &in.TimeAdded, &out.TimeAdded
- if *in == nil {
- *out = nil
- } else {
- *out = (*in).DeepCopy()
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Taint.
-func (in *Taint) DeepCopy() *Taint {
- if in == nil {
- return nil
- }
- out := new(Taint)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Toleration) DeepCopyInto(out *Toleration) {
- *out = *in
- if in.TolerationSeconds != nil {
- in, out := &in.TolerationSeconds, &out.TolerationSeconds
- if *in == nil {
- *out = nil
- } else {
- *out = new(int64)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Toleration.
-func (in *Toleration) DeepCopy() *Toleration {
- if in == nil {
- return nil
- }
- out := new(Toleration)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Volume) DeepCopyInto(out *Volume) {
- *out = *in
- in.VolumeSource.DeepCopyInto(&out.VolumeSource)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Volume.
-func (in *Volume) DeepCopy() *Volume {
- if in == nil {
- return nil
- }
- out := new(Volume)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *VolumeDevice) DeepCopyInto(out *VolumeDevice) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeDevice.
-func (in *VolumeDevice) DeepCopy() *VolumeDevice {
- if in == nil {
- return nil
- }
- out := new(VolumeDevice)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *VolumeMount) DeepCopyInto(out *VolumeMount) {
- *out = *in
- if in.MountPropagation != nil {
- in, out := &in.MountPropagation, &out.MountPropagation
- if *in == nil {
- *out = nil
- } else {
- *out = new(MountPropagationMode)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeMount.
-func (in *VolumeMount) DeepCopy() *VolumeMount {
- if in == nil {
- return nil
- }
- out := new(VolumeMount)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *VolumeNodeAffinity) DeepCopyInto(out *VolumeNodeAffinity) {
- *out = *in
- if in.Required != nil {
- in, out := &in.Required, &out.Required
- if *in == nil {
- *out = nil
- } else {
- *out = new(NodeSelector)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeNodeAffinity.
-func (in *VolumeNodeAffinity) DeepCopy() *VolumeNodeAffinity {
- if in == nil {
- return nil
- }
- out := new(VolumeNodeAffinity)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *VolumeProjection) DeepCopyInto(out *VolumeProjection) {
- *out = *in
- if in.Secret != nil {
- in, out := &in.Secret, &out.Secret
- if *in == nil {
- *out = nil
- } else {
- *out = new(SecretProjection)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.DownwardAPI != nil {
- in, out := &in.DownwardAPI, &out.DownwardAPI
- if *in == nil {
- *out = nil
- } else {
- *out = new(DownwardAPIProjection)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.ConfigMap != nil {
- in, out := &in.ConfigMap, &out.ConfigMap
- if *in == nil {
- *out = nil
- } else {
- *out = new(ConfigMapProjection)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeProjection.
-func (in *VolumeProjection) DeepCopy() *VolumeProjection {
- if in == nil {
- return nil
- }
- out := new(VolumeProjection)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *VolumeSource) DeepCopyInto(out *VolumeSource) {
- *out = *in
- if in.HostPath != nil {
- in, out := &in.HostPath, &out.HostPath
- if *in == nil {
- *out = nil
- } else {
- *out = new(HostPathVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.EmptyDir != nil {
- in, out := &in.EmptyDir, &out.EmptyDir
- if *in == nil {
- *out = nil
- } else {
- *out = new(EmptyDirVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.GCEPersistentDisk != nil {
- in, out := &in.GCEPersistentDisk, &out.GCEPersistentDisk
- if *in == nil {
- *out = nil
- } else {
- *out = new(GCEPersistentDiskVolumeSource)
- **out = **in
- }
- }
- if in.AWSElasticBlockStore != nil {
- in, out := &in.AWSElasticBlockStore, &out.AWSElasticBlockStore
- if *in == nil {
- *out = nil
- } else {
- *out = new(AWSElasticBlockStoreVolumeSource)
- **out = **in
- }
- }
- if in.GitRepo != nil {
- in, out := &in.GitRepo, &out.GitRepo
- if *in == nil {
- *out = nil
- } else {
- *out = new(GitRepoVolumeSource)
- **out = **in
- }
- }
- if in.Secret != nil {
- in, out := &in.Secret, &out.Secret
- if *in == nil {
- *out = nil
- } else {
- *out = new(SecretVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.NFS != nil {
- in, out := &in.NFS, &out.NFS
- if *in == nil {
- *out = nil
- } else {
- *out = new(NFSVolumeSource)
- **out = **in
- }
- }
- if in.ISCSI != nil {
- in, out := &in.ISCSI, &out.ISCSI
- if *in == nil {
- *out = nil
- } else {
- *out = new(ISCSIVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Glusterfs != nil {
- in, out := &in.Glusterfs, &out.Glusterfs
- if *in == nil {
- *out = nil
- } else {
- *out = new(GlusterfsVolumeSource)
- **out = **in
- }
- }
- if in.PersistentVolumeClaim != nil {
- in, out := &in.PersistentVolumeClaim, &out.PersistentVolumeClaim
- if *in == nil {
- *out = nil
- } else {
- *out = new(PersistentVolumeClaimVolumeSource)
- **out = **in
- }
- }
- if in.RBD != nil {
- in, out := &in.RBD, &out.RBD
- if *in == nil {
- *out = nil
- } else {
- *out = new(RBDVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Quobyte != nil {
- in, out := &in.Quobyte, &out.Quobyte
- if *in == nil {
- *out = nil
- } else {
- *out = new(QuobyteVolumeSource)
- **out = **in
- }
- }
- if in.FlexVolume != nil {
- in, out := &in.FlexVolume, &out.FlexVolume
- if *in == nil {
- *out = nil
- } else {
- *out = new(FlexVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Cinder != nil {
- in, out := &in.Cinder, &out.Cinder
- if *in == nil {
- *out = nil
- } else {
- *out = new(CinderVolumeSource)
- **out = **in
- }
- }
- if in.CephFS != nil {
- in, out := &in.CephFS, &out.CephFS
- if *in == nil {
- *out = nil
- } else {
- *out = new(CephFSVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.Flocker != nil {
- in, out := &in.Flocker, &out.Flocker
- if *in == nil {
- *out = nil
- } else {
- *out = new(FlockerVolumeSource)
- **out = **in
- }
- }
- if in.DownwardAPI != nil {
- in, out := &in.DownwardAPI, &out.DownwardAPI
- if *in == nil {
- *out = nil
- } else {
- *out = new(DownwardAPIVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.FC != nil {
- in, out := &in.FC, &out.FC
- if *in == nil {
- *out = nil
- } else {
- *out = new(FCVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.AzureFile != nil {
- in, out := &in.AzureFile, &out.AzureFile
- if *in == nil {
- *out = nil
- } else {
- *out = new(AzureFileVolumeSource)
- **out = **in
- }
- }
- if in.ConfigMap != nil {
- in, out := &in.ConfigMap, &out.ConfigMap
- if *in == nil {
- *out = nil
- } else {
- *out = new(ConfigMapVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.VsphereVolume != nil {
- in, out := &in.VsphereVolume, &out.VsphereVolume
- if *in == nil {
- *out = nil
- } else {
- *out = new(VsphereVirtualDiskVolumeSource)
- **out = **in
- }
- }
- if in.AzureDisk != nil {
- in, out := &in.AzureDisk, &out.AzureDisk
- if *in == nil {
- *out = nil
- } else {
- *out = new(AzureDiskVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.PhotonPersistentDisk != nil {
- in, out := &in.PhotonPersistentDisk, &out.PhotonPersistentDisk
- if *in == nil {
- *out = nil
- } else {
- *out = new(PhotonPersistentDiskVolumeSource)
- **out = **in
- }
- }
- if in.Projected != nil {
- in, out := &in.Projected, &out.Projected
- if *in == nil {
- *out = nil
- } else {
- *out = new(ProjectedVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.PortworxVolume != nil {
- in, out := &in.PortworxVolume, &out.PortworxVolume
- if *in == nil {
- *out = nil
- } else {
- *out = new(PortworxVolumeSource)
- **out = **in
- }
- }
- if in.ScaleIO != nil {
- in, out := &in.ScaleIO, &out.ScaleIO
- if *in == nil {
- *out = nil
- } else {
- *out = new(ScaleIOVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.StorageOS != nil {
- in, out := &in.StorageOS, &out.StorageOS
- if *in == nil {
- *out = nil
- } else {
- *out = new(StorageOSVolumeSource)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSource.
-func (in *VolumeSource) DeepCopy() *VolumeSource {
- if in == nil {
- return nil
- }
- out := new(VolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *VsphereVirtualDiskVolumeSource) DeepCopyInto(out *VsphereVirtualDiskVolumeSource) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VsphereVirtualDiskVolumeSource.
-func (in *VsphereVirtualDiskVolumeSource) DeepCopy() *VsphereVirtualDiskVolumeSource {
- if in == nil {
- return nil
- }
- out := new(VsphereVirtualDiskVolumeSource)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *WeightedPodAffinityTerm) DeepCopyInto(out *WeightedPodAffinityTerm) {
- *out = *in
- in.PodAffinityTerm.DeepCopyInto(&out.PodAffinityTerm)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WeightedPodAffinityTerm.
-func (in *WeightedPodAffinityTerm) DeepCopy() *WeightedPodAffinityTerm {
- if in == nil {
- return nil
- }
- out := new(WeightedPodAffinityTerm)
- in.DeepCopyInto(out)
- return out
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/extensions/doc.go
deleted file mode 100644
index d97cffdbc..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/doc.go
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-Copyright 2016 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.
-*/
-
-// +k8s:deepcopy-gen=package
-
-package extensions // import "k8s.io/kubernetes/pkg/apis/extensions"
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/helpers.go b/vendor/k8s.io/kubernetes/pkg/apis/extensions/helpers.go
deleted file mode 100644
index 27d3e23ad..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/helpers.go
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-Copyright 2016 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 extensions
-
-import (
- "strings"
-)
-
-// SysctlsFromPodSecurityPolicyAnnotation parses an annotation value of the key
-// SysctlsSecurityPolocyAnnotationKey into a slice of sysctls. An empty slice
-// is returned if annotation is the empty string.
-func SysctlsFromPodSecurityPolicyAnnotation(annotation string) ([]string, error) {
- if len(annotation) == 0 {
- return []string{}, nil
- }
-
- return strings.Split(annotation, ","), nil
-}
-
-// PodAnnotationsFromSysctls creates an annotation value for a slice of Sysctls.
-func PodAnnotationsFromSysctls(sysctls []string) string {
- return strings.Join(sysctls, ",")
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/register.go b/vendor/k8s.io/kubernetes/pkg/apis/extensions/register.go
deleted file mode 100644
index 48137fc69..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/register.go
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-Copyright 2015 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 extensions
-
-import (
- "k8s.io/apimachinery/pkg/runtime"
- "k8s.io/apimachinery/pkg/runtime/schema"
- "k8s.io/kubernetes/pkg/apis/autoscaling"
- "k8s.io/kubernetes/pkg/apis/networking"
-)
-
-// GroupName is the group name use in this package
-const GroupName = "extensions"
-
-// SchemeGroupVersion is group version used to register these objects
-var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
-
-// Kind takes an unqualified kind and returns a Group qualified GroupKind
-func Kind(kind string) schema.GroupKind {
- return SchemeGroupVersion.WithKind(kind).GroupKind()
-}
-
-// Resource takes an unqualified resource and returns a Group qualified GroupResource
-func Resource(resource string) schema.GroupResource {
- return SchemeGroupVersion.WithResource(resource).GroupResource()
-}
-
-var (
- SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
- AddToScheme = SchemeBuilder.AddToScheme
-)
-
-// Adds the list of known types to the given scheme.
-func addKnownTypes(scheme *runtime.Scheme) error {
- // TODO this gets cleaned up when the types are fixed
- scheme.AddKnownTypes(SchemeGroupVersion,
- &Deployment{},
- &DeploymentList{},
- &DeploymentRollback{},
- &ReplicationControllerDummy{},
- &DaemonSetList{},
- &DaemonSet{},
- &Ingress{},
- &IngressList{},
- &ReplicaSet{},
- &ReplicaSetList{},
- &PodSecurityPolicy{},
- &PodSecurityPolicyList{},
- &autoscaling.Scale{},
- &networking.NetworkPolicy{},
- &networking.NetworkPolicyList{},
- )
- return nil
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/types.go b/vendor/k8s.io/kubernetes/pkg/apis/extensions/types.go
deleted file mode 100644
index e36972846..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/types.go
+++ /dev/null
@@ -1,1049 +0,0 @@
-/*
-Copyright 2015 The Kubernetes Authors.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-/*
-This file (together with pkg/apis/extensions/v1beta1/types.go) contain the experimental
-types in kubernetes. These API objects are experimental, meaning that the
-APIs may be broken at any time by the kubernetes team.
-
-DISCLAIMER: The implementation of the experimental API group itself is
-a temporary one meant as a stopgap solution until kubernetes has proper
-support for multiple API groups. The transition may require changes
-beyond registration differences. In other words, experimental API group
-support is experimental.
-*/
-
-package extensions
-
-import (
- "k8s.io/apimachinery/pkg/api/resource"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/apimachinery/pkg/util/intstr"
- api "k8s.io/kubernetes/pkg/apis/core"
-)
-
-const (
- // SysctlsPodSecurityPolicyAnnotationKey represents the key of a whitelist of
- // allowed safe and unsafe sysctls in a pod spec. It's a comma-separated list of plain sysctl
- // names or sysctl patterns (which end in *). The string "*" matches all sysctls.
- SysctlsPodSecurityPolicyAnnotationKey string = "security.alpha.kubernetes.io/sysctls"
-)
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// Dummy definition
-type ReplicationControllerDummy struct {
- metav1.TypeMeta
-}
-
-// Alpha-level support for Custom Metrics in HPA (as annotations).
-type CustomMetricTarget struct {
- // Custom Metric name.
- Name string
- // Custom Metric value (average).
- TargetValue resource.Quantity
-}
-
-type CustomMetricTargetList struct {
- Items []CustomMetricTarget
-}
-
-type CustomMetricCurrentStatus struct {
- // Custom Metric name.
- Name string
- // Custom Metric value (average).
- CurrentValue resource.Quantity
-}
-
-type CustomMetricCurrentStatusList struct {
- Items []CustomMetricCurrentStatus
-}
-
-// +genclient
-// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/kubernetes/pkg/apis/autoscaling.Scale
-// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/kubernetes/pkg/apis/autoscaling.Scale,result=k8s.io/kubernetes/pkg/apis/autoscaling.Scale
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-type Deployment struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- // Specification of the desired behavior of the Deployment.
- // +optional
- Spec DeploymentSpec
-
- // Most recently observed status of the Deployment.
- // +optional
- Status DeploymentStatus
-}
-
-type DeploymentSpec struct {
- // Number of desired pods. This is a pointer to distinguish between explicit
- // zero and not specified. Defaults to 1.
- // +optional
- Replicas int32
-
- // Label selector for pods. Existing ReplicaSets whose pods are
- // selected by this will be the ones affected by this deployment.
- // +optional
- Selector *metav1.LabelSelector
-
- // Template describes the pods that will be created.
- Template api.PodTemplateSpec
-
- // The deployment strategy to use to replace existing pods with new ones.
- // +optional
- Strategy DeploymentStrategy
-
- // Minimum number of seconds for which a newly created pod should be ready
- // without any of its container crashing, for it to be considered available.
- // Defaults to 0 (pod will be considered available as soon as it is ready)
- // +optional
- MinReadySeconds int32
-
- // The number of old ReplicaSets to retain to allow rollback.
- // This is a pointer to distinguish between explicit zero and not specified.
- // +optional
- RevisionHistoryLimit *int32
-
- // Indicates that the deployment is paused and will not be processed by the
- // deployment controller.
- // +optional
- Paused bool
-
- // DEPRECATED.
- // The config this deployment is rolling back to. Will be cleared after rollback is done.
- // +optional
- RollbackTo *RollbackConfig
-
- // The maximum time in seconds for a deployment to make progress before it
- // is considered to be failed. The deployment controller will continue to
- // process failed deployments and a condition with a ProgressDeadlineExceeded
- // reason will be surfaced in the deployment status. Note that progress will
- // not be estimated during the time a deployment is paused. This is not set
- // by default.
- // +optional
- ProgressDeadlineSeconds *int32
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// DEPRECATED.
-// DeploymentRollback stores the information required to rollback a deployment.
-type DeploymentRollback struct {
- metav1.TypeMeta
- // Required: This must match the Name of a deployment.
- Name string
- // The annotations to be updated to a deployment
- // +optional
- UpdatedAnnotations map[string]string
- // The config of this deployment rollback.
- RollbackTo RollbackConfig
-}
-
-// DEPRECATED.
-type RollbackConfig struct {
- // The revision to rollback to. If set to 0, rollback to the last revision.
- // +optional
- Revision int64
-}
-
-const (
- // DefaultDeploymentUniqueLabelKey is the default key of the selector that is added
- // to existing RCs (and label key that is added to its pods) to prevent the existing RCs
- // to select new pods (and old pods being select by new RC).
- DefaultDeploymentUniqueLabelKey string = "pod-template-hash"
-)
-
-type DeploymentStrategy struct {
- // Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate.
- // +optional
- Type DeploymentStrategyType
-
- // Rolling update config params. Present only if DeploymentStrategyType =
- // RollingUpdate.
- //---
- // TODO: Update this to follow our convention for oneOf, whatever we decide it
- // to be.
- // +optional
- RollingUpdate *RollingUpdateDeployment
-}
-
-type DeploymentStrategyType string
-
-const (
- // Kill all existing pods before creating new ones.
- RecreateDeploymentStrategyType DeploymentStrategyType = "Recreate"
-
- // Replace the old RCs by new one using rolling update i.e gradually scale down the old RCs and scale up the new one.
- RollingUpdateDeploymentStrategyType DeploymentStrategyType = "RollingUpdate"
-)
-
-// Spec to control the desired behavior of rolling update.
-type RollingUpdateDeployment struct {
- // The maximum number of pods that can be unavailable during the update.
- // Value can be an absolute number (ex: 5) or a percentage of total pods at the start of update (ex: 10%).
- // Absolute number is calculated from percentage by rounding down.
- // This can not be 0 if MaxSurge is 0.
- // By default, a fixed value of 1 is used.
- // Example: when this is set to 30%, the old RC can be scaled down by 30%
- // immediately when the rolling update starts. Once new pods are ready, old RC
- // can be scaled down further, followed by scaling up the new RC, ensuring
- // that at least 70% of original number of pods are available at all times
- // during the update.
- // +optional
- MaxUnavailable intstr.IntOrString
-
- // The maximum number of pods that can be scheduled above the original number of
- // pods.
- // Value can be an absolute number (ex: 5) or a percentage of total pods at
- // the start of the update (ex: 10%). This can not be 0 if MaxUnavailable is 0.
- // Absolute number is calculated from percentage by rounding up.
- // By default, a value of 1 is used.
- // Example: when this is set to 30%, the new RC can be scaled up by 30%
- // immediately when the rolling update starts. Once old pods have been killed,
- // new RC can be scaled up further, ensuring that total number of pods running
- // at any time during the update is atmost 130% of original pods.
- // +optional
- MaxSurge intstr.IntOrString
-}
-
-type DeploymentStatus struct {
- // The generation observed by the deployment controller.
- // +optional
- ObservedGeneration int64
-
- // Total number of non-terminated pods targeted by this deployment (their labels match the selector).
- // +optional
- Replicas int32
-
- // Total number of non-terminated pods targeted by this deployment that have the desired template spec.
- // +optional
- UpdatedReplicas int32
-
- // Total number of ready pods targeted by this deployment.
- // +optional
- ReadyReplicas int32
-
- // Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.
- // +optional
- AvailableReplicas int32
-
- // Total number of unavailable pods targeted by this deployment. This is the total number of
- // pods that are still required for the deployment to have 100% available capacity. They may
- // either be pods that are running but not yet available or pods that still have not been created.
- // +optional
- UnavailableReplicas int32
-
- // Represents the latest available observations of a deployment's current state.
- Conditions []DeploymentCondition
-
- // Count of hash collisions for the Deployment. The Deployment controller uses this
- // field as a collision avoidance mechanism when it needs to create the name for the
- // newest ReplicaSet.
- // +optional
- CollisionCount *int32
-}
-
-type DeploymentConditionType string
-
-// These are valid conditions of a deployment.
-const (
- // Available means the deployment is available, ie. at least the minimum available
- // replicas required are up and running for at least minReadySeconds.
- DeploymentAvailable DeploymentConditionType = "Available"
- // Progressing means the deployment is progressing. Progress for a deployment is
- // considered when a new replica set is created or adopted, and when new pods scale
- // up or old pods scale down. Progress is not estimated for paused deployments or
- // when progressDeadlineSeconds is not specified.
- DeploymentProgressing DeploymentConditionType = "Progressing"
- // ReplicaFailure is added in a deployment when one of its pods fails to be created
- // or deleted.
- DeploymentReplicaFailure DeploymentConditionType = "ReplicaFailure"
-)
-
-// DeploymentCondition describes the state of a deployment at a certain point.
-type DeploymentCondition struct {
- // Type of deployment condition.
- Type DeploymentConditionType
- // Status of the condition, one of True, False, Unknown.
- Status api.ConditionStatus
- // The last time this condition was updated.
- LastUpdateTime metav1.Time
- // Last time the condition transitioned from one status to another.
- LastTransitionTime metav1.Time
- // The reason for the condition's last transition.
- Reason string
- // A human readable message indicating details about the transition.
- Message string
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-type DeploymentList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
-
- // Items is the list of deployments.
- Items []Deployment
-}
-
-type DaemonSetUpdateStrategy struct {
- // Type of daemon set update. Can be "RollingUpdate" or "OnDelete".
- // Default is OnDelete.
- // +optional
- Type DaemonSetUpdateStrategyType
-
- // Rolling update config params. Present only if type = "RollingUpdate".
- //---
- // TODO: Update this to follow our convention for oneOf, whatever we decide it
- // to be. Same as Deployment `strategy.rollingUpdate`.
- // See https://github.com/kubernetes/kubernetes/issues/35345
- // +optional
- RollingUpdate *RollingUpdateDaemonSet
-}
-
-type DaemonSetUpdateStrategyType string
-
-const (
- // Replace the old daemons by new ones using rolling update i.e replace them on each node one after the other.
- RollingUpdateDaemonSetStrategyType DaemonSetUpdateStrategyType = "RollingUpdate"
-
- // Replace the old daemons only when it's killed
- OnDeleteDaemonSetStrategyType DaemonSetUpdateStrategyType = "OnDelete"
-)
-
-// Spec to control the desired behavior of daemon set rolling update.
-type RollingUpdateDaemonSet struct {
- // The maximum number of DaemonSet pods that can be unavailable during the
- // update. Value can be an absolute number (ex: 5) or a percentage of total
- // number of DaemonSet pods at the start of the update (ex: 10%). Absolute
- // number is calculated from percentage by rounding up.
- // This cannot be 0.
- // Default value is 1.
- // Example: when this is set to 30%, at most 30% of the total number of nodes
- // that should be running the daemon pod (i.e. status.desiredNumberScheduled)
- // can have their pods stopped for an update at any given
- // time. The update starts by stopping at most 30% of those DaemonSet pods
- // and then brings up new DaemonSet pods in their place. Once the new pods
- // are available, it then proceeds onto other DaemonSet pods, thus ensuring
- // that at least 70% of original number of DaemonSet pods are available at
- // all times during the update.
- // +optional
- MaxUnavailable intstr.IntOrString
-}
-
-// DaemonSetSpec is the specification of a daemon set.
-type DaemonSetSpec struct {
- // A label query over pods that are managed by the daemon set.
- // Must match in order to be controlled.
- // If empty, defaulted to labels on Pod template.
- // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
- // +optional
- Selector *metav1.LabelSelector
-
- // An object that describes the pod that will be created.
- // The DaemonSet will create exactly one copy of this pod on every node
- // that matches the template's node selector (or on every node if no node
- // selector is specified).
- // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
- Template api.PodTemplateSpec
-
- // An update strategy to replace existing DaemonSet pods with new pods.
- // +optional
- UpdateStrategy DaemonSetUpdateStrategy
-
- // The minimum number of seconds for which a newly created DaemonSet pod should
- // be ready without any of its container crashing, for it to be considered
- // available. Defaults to 0 (pod will be considered available as soon as it
- // is ready).
- // +optional
- MinReadySeconds int32
-
- // DEPRECATED.
- // A sequence number representing a specific generation of the template.
- // Populated by the system. It can be set only during the creation.
- // +optional
- TemplateGeneration int64
-
- // The number of old history to retain to allow rollback.
- // This is a pointer to distinguish between explicit zero and not specified.
- // Defaults to 10.
- // +optional
- RevisionHistoryLimit *int32
-}
-
-// DaemonSetStatus represents the current status of a daemon set.
-type DaemonSetStatus struct {
- // The number of nodes that are running at least 1
- // daemon pod and are supposed to run the daemon pod.
- CurrentNumberScheduled int32
-
- // The number of nodes that are running the daemon pod, but are
- // not supposed to run the daemon pod.
- NumberMisscheduled int32
-
- // The total number of nodes that should be running the daemon
- // pod (including nodes correctly running the daemon pod).
- DesiredNumberScheduled int32
-
- // The number of nodes that should be running the daemon pod and have one
- // or more of the daemon pod running and ready.
- NumberReady int32
-
- // The most recent generation observed by the daemon set controller.
- // +optional
- ObservedGeneration int64
-
- // The total number of nodes that are running updated daemon pod
- // +optional
- UpdatedNumberScheduled int32
-
- // The number of nodes that should be running the
- // daemon pod and have one or more of the daemon pod running and
- // available (ready for at least spec.minReadySeconds)
- // +optional
- NumberAvailable int32
-
- // The number of nodes that should be running the
- // daemon pod and have none of the daemon pod running and available
- // (ready for at least spec.minReadySeconds)
- // +optional
- NumberUnavailable int32
-
- // Count of hash collisions for the DaemonSet. The DaemonSet controller
- // uses this field as a collision avoidance mechanism when it needs to
- // create the name for the newest ControllerRevision.
- // +optional
- CollisionCount *int32
-
- // Represents the latest available observations of a DaemonSet's current state.
- Conditions []DaemonSetCondition
-}
-
-type DaemonSetConditionType string
-
-// TODO: Add valid condition types of a DaemonSet.
-
-// DaemonSetCondition describes the state of a DaemonSet at a certain point.
-type DaemonSetCondition struct {
- // Type of DaemonSet condition.
- Type DaemonSetConditionType
- // Status of the condition, one of True, False, Unknown.
- Status api.ConditionStatus
- // Last time the condition transitioned from one status to another.
- LastTransitionTime metav1.Time
- // The reason for the condition's last transition.
- Reason string
- // A human readable message indicating details about the transition.
- Message string
-}
-
-// +genclient
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// DaemonSet represents the configuration of a daemon set.
-type DaemonSet struct {
- metav1.TypeMeta
- // Standard object's metadata.
- // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
- // +optional
- metav1.ObjectMeta
-
- // The desired behavior of this daemon set.
- // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
- // +optional
- Spec DaemonSetSpec
-
- // The current status of this daemon set. This data may be
- // out of date by some window of time.
- // Populated by the system.
- // Read-only.
- // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
- // +optional
- Status DaemonSetStatus
-}
-
-const (
- // DEPRECATED: DefaultDaemonSetUniqueLabelKey is used instead.
- // DaemonSetTemplateGenerationKey is the key of the labels that is added
- // to daemon set pods to distinguish between old and new pod templates
- // during DaemonSet template update.
- DaemonSetTemplateGenerationKey string = "pod-template-generation"
-)
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// DaemonSetList is a collection of daemon sets.
-type DaemonSetList struct {
- metav1.TypeMeta
- // Standard list metadata.
- // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
- // +optional
- metav1.ListMeta
-
- // A list of daemon sets.
- Items []DaemonSet
-}
-
-// +genclient
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// Ingress is a collection of rules that allow inbound connections to reach the
-// endpoints defined by a backend. An Ingress can be configured to give services
-// externally-reachable urls, load balance traffic, terminate SSL, offer name
-// based virtual hosting etc.
-type Ingress struct {
- metav1.TypeMeta
- // Standard object's metadata.
- // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
- // +optional
- metav1.ObjectMeta
-
- // Spec is the desired state of the Ingress.
- // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
- // +optional
- Spec IngressSpec
-
- // Status is the current state of the Ingress.
- // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
- // +optional
- Status IngressStatus
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// IngressList is a collection of Ingress.
-type IngressList struct {
- metav1.TypeMeta
- // Standard object's metadata.
- // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
- // +optional
- metav1.ListMeta
-
- // Items is the list of Ingress.
- Items []Ingress
-}
-
-// IngressSpec describes the Ingress the user wishes to exist.
-type IngressSpec struct {
- // A default backend capable of servicing requests that don't match any
- // rule. At least one of 'backend' or 'rules' must be specified. This field
- // is optional to allow the loadbalancer controller or defaulting logic to
- // specify a global default.
- // +optional
- Backend *IngressBackend
-
- // TLS configuration. Currently the Ingress only supports a single TLS
- // port, 443. If multiple members of this list specify different hosts, they
- // will be multiplexed on the same port according to the hostname specified
- // through the SNI TLS extension, if the ingress controller fulfilling the
- // ingress supports SNI.
- // +optional
- TLS []IngressTLS
-
- // A list of host rules used to configure the Ingress. If unspecified, or
- // no rule matches, all traffic is sent to the default backend.
- // +optional
- Rules []IngressRule
- // TODO: Add the ability to specify load-balancer IP through claims
-}
-
-// IngressTLS describes the transport layer security associated with an Ingress.
-type IngressTLS struct {
- // Hosts are a list of hosts included in the TLS certificate. The values in
- // this list must match the name/s used in the tlsSecret. Defaults to the
- // wildcard host setting for the loadbalancer controller fulfilling this
- // Ingress, if left unspecified.
- // +optional
- Hosts []string
- // SecretName is the name of the secret used to terminate SSL traffic on 443.
- // Field is left optional to allow SSL routing based on SNI hostname alone.
- // If the SNI host in a listener conflicts with the "Host" header field used
- // by an IngressRule, the SNI host is used for termination and value of the
- // Host header is used for routing.
- // +optional
- SecretName string
- // TODO: Consider specifying different modes of termination, protocols etc.
-}
-
-// IngressStatus describe the current state of the Ingress.
-type IngressStatus struct {
- // LoadBalancer contains the current status of the load-balancer.
- // +optional
- LoadBalancer api.LoadBalancerStatus
-}
-
-// IngressRule represents the rules mapping the paths under a specified host to
-// the related backend services. Incoming requests are first evaluated for a host
-// match, then routed to the backend associated with the matching IngressRuleValue.
-type IngressRule struct {
- // Host is the fully qualified domain name of a network host, as defined
- // by RFC 3986. Note the following deviations from the "host" part of the
- // URI as defined in the RFC:
- // 1. IPs are not allowed. Currently an IngressRuleValue can only apply to the
- // IP in the Spec of the parent Ingress.
- // 2. The `:` delimiter is not respected because ports are not allowed.
- // Currently the port of an Ingress is implicitly :80 for http and
- // :443 for https.
- // Both these may change in the future.
- // Incoming requests are matched against the host before the IngressRuleValue.
- // If the host is unspecified, the Ingress routes all traffic based on the
- // specified IngressRuleValue.
- // +optional
- Host string
- // IngressRuleValue represents a rule to route requests for this IngressRule.
- // If unspecified, the rule defaults to a http catch-all. Whether that sends
- // just traffic matching the host to the default backend or all traffic to the
- // default backend, is left to the controller fulfilling the Ingress. Http is
- // currently the only supported IngressRuleValue.
- // +optional
- IngressRuleValue
-}
-
-// IngressRuleValue represents a rule to apply against incoming requests. If the
-// rule is satisfied, the request is routed to the specified backend. Currently
-// mixing different types of rules in a single Ingress is disallowed, so exactly
-// one of the following must be set.
-type IngressRuleValue struct {
- //TODO:
- // 1. Consider renaming this resource and the associated rules so they
- // aren't tied to Ingress. They can be used to route intra-cluster traffic.
- // 2. Consider adding fields for ingress-type specific global options
- // usable by a loadbalancer, like http keep-alive.
-
- // +optional
- HTTP *HTTPIngressRuleValue
-}
-
-// HTTPIngressRuleValue is a list of http selectors pointing to backends.
-// In the example: http://<host>/<path>?<searchpart> -> backend where
-// where parts of the url correspond to RFC 3986, this resource will be used
-// to match against everything after the last '/' and before the first '?'
-// or '#'.
-type HTTPIngressRuleValue struct {
- // A collection of paths that map requests to backends.
- Paths []HTTPIngressPath
- // TODO: Consider adding fields for ingress-type specific global
- // options usable by a loadbalancer, like http keep-alive.
-}
-
-// HTTPIngressPath associates a path regex with a backend. Incoming urls matching
-// the path are forwarded to the backend.
-type HTTPIngressPath struct {
- // Path is an extended POSIX regex as defined by IEEE Std 1003.1,
- // (i.e this follows the egrep/unix syntax, not the perl syntax)
- // matched against the path of an incoming request. Currently it can
- // contain characters disallowed from the conventional "path"
- // part of a URL as defined by RFC 3986. Paths must begin with
- // a '/'. If unspecified, the path defaults to a catch all sending
- // traffic to the backend.
- // +optional
- Path string
-
- // Backend defines the referenced service endpoint to which the traffic
- // will be forwarded to.
- Backend IngressBackend
-}
-
-// IngressBackend describes all endpoints for a given service and port.
-type IngressBackend struct {
- // Specifies the name of the referenced service.
- ServiceName string
-
- // Specifies the port of the referenced service.
- ServicePort intstr.IntOrString
-}
-
-// +genclient
-// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/kubernetes/pkg/apis/autoscaling.Scale
-// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/kubernetes/pkg/apis/autoscaling.Scale,result=k8s.io/kubernetes/pkg/apis/autoscaling.Scale
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// ReplicaSet ensures that a specified number of pod replicas are running at any given time.
-type ReplicaSet struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- // Spec defines the desired behavior of this ReplicaSet.
- // +optional
- Spec ReplicaSetSpec
-
- // Status is the current status of this ReplicaSet. This data may be
- // out of date by some window of time.
- // +optional
- Status ReplicaSetStatus
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// ReplicaSetList is a collection of ReplicaSets.
-type ReplicaSetList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
-
- Items []ReplicaSet
-}
-
-// ReplicaSetSpec is the specification of a ReplicaSet.
-// As the internal representation of a ReplicaSet, it must have
-// a Template set.
-type ReplicaSetSpec struct {
- // Replicas is the number of desired replicas.
- Replicas int32
-
- // Minimum number of seconds for which a newly created pod should be ready
- // without any of its container crashing, for it to be considered available.
- // Defaults to 0 (pod will be considered available as soon as it is ready)
- // +optional
- MinReadySeconds int32
-
- // Selector is a label query over pods that should match the replica count.
- // Must match in order to be controlled.
- // If empty, defaulted to labels on pod template.
- // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
- // +optional
- Selector *metav1.LabelSelector
-
- // Template is the object that describes the pod that will be created if
- // insufficient replicas are detected.
- // +optional
- Template api.PodTemplateSpec
-}
-
-// ReplicaSetStatus represents the current status of a ReplicaSet.
-type ReplicaSetStatus struct {
- // Replicas is the number of actual replicas.
- Replicas int32
-
- // The number of pods that have labels matching the labels of the pod template of the replicaset.
- // +optional
- FullyLabeledReplicas int32
-
- // The number of ready replicas for this replica set.
- // +optional
- ReadyReplicas int32
-
- // The number of available replicas (ready for at least minReadySeconds) for this replica set.
- // +optional
- AvailableReplicas int32
-
- // ObservedGeneration is the most recent generation observed by the controller.
- // +optional
- ObservedGeneration int64
-
- // Represents the latest available observations of a replica set's current state.
- // +optional
- Conditions []ReplicaSetCondition
-}
-
-type ReplicaSetConditionType string
-
-// These are valid conditions of a replica set.
-const (
- // ReplicaSetReplicaFailure is added in a replica set when one of its pods fails to be created
- // due to insufficient quota, limit ranges, pod security policy, node selectors, etc. or deleted
- // due to kubelet being down or finalizers are failing.
- ReplicaSetReplicaFailure ReplicaSetConditionType = "ReplicaFailure"
-)
-
-// ReplicaSetCondition describes the state of a replica set at a certain point.
-type ReplicaSetCondition struct {
- // Type of replica set condition.
- Type ReplicaSetConditionType
- // Status of the condition, one of True, False, Unknown.
- Status api.ConditionStatus
- // The last time the condition transitioned from one status to another.
- // +optional
- LastTransitionTime metav1.Time
- // The reason for the condition's last transition.
- // +optional
- Reason string
- // A human readable message indicating details about the transition.
- // +optional
- Message string
-}
-
-// +genclient
-// +genclient:nonNamespaced
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// PodSecurityPolicy governs the ability to make requests that affect the SecurityContext
-// that will be applied to a pod and container.
-type PodSecurityPolicy struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- // Spec defines the policy enforced.
- // +optional
- Spec PodSecurityPolicySpec
-}
-
-// PodSecurityPolicySpec defines the policy enforced.
-type PodSecurityPolicySpec struct {
- // Privileged determines if a pod can request to be run as privileged.
- // +optional
- Privileged bool
- // DefaultAddCapabilities is the default set of capabilities that will be added to the container
- // unless the pod spec specifically drops the capability. You may not list a capability in both
- // DefaultAddCapabilities and RequiredDropCapabilities. Capabilities added here are implicitly
- // allowed, and need not be included in the AllowedCapabilities list.
- // +optional
- DefaultAddCapabilities []api.Capability
- // RequiredDropCapabilities are the capabilities that will be dropped from the container. These
- // are required to be dropped and cannot be added.
- // +optional
- RequiredDropCapabilities []api.Capability
- // AllowedCapabilities is a list of capabilities that can be requested to add to the container.
- // Capabilities in this field may be added at the pod author's discretion.
- // You must not list a capability in both AllowedCapabilities and RequiredDropCapabilities.
- // To allow all capabilities you may use '*'.
- // +optional
- AllowedCapabilities []api.Capability
- // Volumes is a white list of allowed volume plugins. Empty indicates that all plugins
- // may be used.
- // +optional
- Volumes []FSType
- // HostNetwork determines if the policy allows the use of HostNetwork in the pod spec.
- // +optional
- HostNetwork bool
- // HostPorts determines which host port ranges are allowed to be exposed.
- // +optional
- HostPorts []HostPortRange
- // HostPID determines if the policy allows the use of HostPID in the pod spec.
- // +optional
- HostPID bool
- // HostIPC determines if the policy allows the use of HostIPC in the pod spec.
- // +optional
- HostIPC bool
- // SELinux is the strategy that will dictate the allowable labels that may be set.
- SELinux SELinuxStrategyOptions
- // RunAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.
- RunAsUser RunAsUserStrategyOptions
- // SupplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.
- SupplementalGroups SupplementalGroupsStrategyOptions
- // FSGroup is the strategy that will dictate what fs group is used by the SecurityContext.
- FSGroup FSGroupStrategyOptions
- // ReadOnlyRootFilesystem when set to true will force containers to run with a read only root file
- // system. If the container specifically requests to run with a non-read only root file system
- // the PSP should deny the pod.
- // If set to false the container may run with a read only root file system if it wishes but it
- // will not be forced to.
- // +optional
- ReadOnlyRootFilesystem bool
- // DefaultAllowPrivilegeEscalation controls the default setting for whether a
- // process can gain more privileges than its parent process.
- // +optional
- DefaultAllowPrivilegeEscalation *bool
- // AllowPrivilegeEscalation determines if a pod can request to allow
- // privilege escalation. If unspecified, defaults to true.
- // +optional
- AllowPrivilegeEscalation bool
- // AllowedHostPaths is a white list of allowed host paths. Empty indicates that all host paths may be used.
- // +optional
- AllowedHostPaths []AllowedHostPath
- // AllowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all
- // Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes
- // is allowed in the "Volumes" field.
- // +optional
- AllowedFlexVolumes []AllowedFlexVolume
-}
-
-// AllowedHostPath defines the host volume conditions that will be enabled by a policy
-// for pods to use. It requires the path prefix to be defined.
-type AllowedHostPath struct {
- // PathPrefix is the path prefix that the host volume must match.
- // PathPrefix does not support `*`.
- // Trailing slashes are trimmed when validating the path prefix with a host path.
- //
- // Examples:
- // `/foo` would allow `/foo`, `/foo/` and `/foo/bar`
- // `/foo` would not allow `/food` or `/etc/foo`
- PathPrefix string
-}
-
-// HostPortRange defines a range of host ports that will be enabled by a policy
-// for pods to use. It requires both the start and end to be defined.
-type HostPortRange struct {
- // Min is the start of the range, inclusive.
- Min int32
- // Max is the end of the range, inclusive.
- Max int32
-}
-
-// AllowAllCapabilities can be used as a value for the PodSecurityPolicy.AllowAllCapabilities
-// field and means that any capabilities are allowed to be requested.
-var AllowAllCapabilities api.Capability = "*"
-
-// FSType gives strong typing to different file systems that are used by volumes.
-type FSType string
-
-var (
- AzureFile FSType = "azureFile"
- Flocker FSType = "flocker"
- FlexVolume FSType = "flexVolume"
- HostPath FSType = "hostPath"
- EmptyDir FSType = "emptyDir"
- GCEPersistentDisk FSType = "gcePersistentDisk"
- AWSElasticBlockStore FSType = "awsElasticBlockStore"
- GitRepo FSType = "gitRepo"
- Secret FSType = "secret"
- NFS FSType = "nfs"
- ISCSI FSType = "iscsi"
- Glusterfs FSType = "glusterfs"
- PersistentVolumeClaim FSType = "persistentVolumeClaim"
- RBD FSType = "rbd"
- Cinder FSType = "cinder"
- CephFS FSType = "cephFS"
- DownwardAPI FSType = "downwardAPI"
- FC FSType = "fc"
- ConfigMap FSType = "configMap"
- VsphereVolume FSType = "vsphereVolume"
- Quobyte FSType = "quobyte"
- AzureDisk FSType = "azureDisk"
- PhotonPersistentDisk FSType = "photonPersistentDisk"
- StorageOS FSType = "storageos"
- Projected FSType = "projected"
- PortworxVolume FSType = "portworxVolume"
- ScaleIO FSType = "scaleIO"
- CSI FSType = "csi"
- All FSType = "*"
-)
-
-// AllowedFlexVolume represents a single Flexvolume that is allowed to be used.
-type AllowedFlexVolume struct {
- // Driver is the name of the Flexvolume driver.
- Driver string
-}
-
-// SELinuxStrategyOptions defines the strategy type and any options used to create the strategy.
-type SELinuxStrategyOptions struct {
- // Rule is the strategy that will dictate the allowable labels that may be set.
- Rule SELinuxStrategy
- // seLinuxOptions required to run as; required for MustRunAs
- // More info: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#selinux
- // +optional
- SELinuxOptions *api.SELinuxOptions
-}
-
-// SELinuxStrategy denotes strategy types for generating SELinux options for a
-// Security.
-type SELinuxStrategy string
-
-const (
- // container must have SELinux labels of X applied.
- SELinuxStrategyMustRunAs SELinuxStrategy = "MustRunAs"
- // container may make requests for any SELinux context labels.
- SELinuxStrategyRunAsAny SELinuxStrategy = "RunAsAny"
-)
-
-// RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy.
-type RunAsUserStrategyOptions struct {
- // Rule is the strategy that will dictate the allowable RunAsUser values that may be set.
- Rule RunAsUserStrategy
- // Ranges are the allowed ranges of uids that may be used.
- // +optional
- Ranges []UserIDRange
-}
-
-// UserIDRange provides a min/max of an allowed range of UserIDs.
-type UserIDRange struct {
- // Min is the start of the range, inclusive.
- Min int64
- // Max is the end of the range, inclusive.
- Max int64
-}
-
-// GroupIDRange provides a min/max of an allowed range of GroupIDs.
-type GroupIDRange struct {
- // Min is the start of the range, inclusive.
- Min int64
- // Max is the end of the range, inclusive.
- Max int64
-}
-
-// RunAsUserStrategy denotes strategy types for generating RunAsUser values for a
-// SecurityContext.
-type RunAsUserStrategy string
-
-const (
- // container must run as a particular uid.
- RunAsUserStrategyMustRunAs RunAsUserStrategy = "MustRunAs"
- // container must run as a non-root uid
- RunAsUserStrategyMustRunAsNonRoot RunAsUserStrategy = "MustRunAsNonRoot"
- // container may make requests for any uid.
- RunAsUserStrategyRunAsAny RunAsUserStrategy = "RunAsAny"
-)
-
-// FSGroupStrategyOptions defines the strategy type and options used to create the strategy.
-type FSGroupStrategyOptions struct {
- // Rule is the strategy that will dictate what FSGroup is used in the SecurityContext.
- // +optional
- Rule FSGroupStrategyType
- // Ranges are the allowed ranges of fs groups. If you would like to force a single
- // fs group then supply a single range with the same start and end.
- // +optional
- Ranges []GroupIDRange
-}
-
-// FSGroupStrategyType denotes strategy types for generating FSGroup values for a
-// SecurityContext
-type FSGroupStrategyType string
-
-const (
- // container must have FSGroup of X applied.
- FSGroupStrategyMustRunAs FSGroupStrategyType = "MustRunAs"
- // container may make requests for any FSGroup labels.
- FSGroupStrategyRunAsAny FSGroupStrategyType = "RunAsAny"
-)
-
-// SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.
-type SupplementalGroupsStrategyOptions struct {
- // Rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.
- // +optional
- Rule SupplementalGroupsStrategyType
- // Ranges are the allowed ranges of supplemental groups. If you would like to force a single
- // supplemental group then supply a single range with the same start and end.
- // +optional
- Ranges []GroupIDRange
-}
-
-// SupplementalGroupsStrategyType denotes strategy types for determining valid supplemental
-// groups for a SecurityContext.
-type SupplementalGroupsStrategyType string
-
-const (
- // container must run as a particular gid.
- SupplementalGroupsStrategyMustRunAs SupplementalGroupsStrategyType = "MustRunAs"
- // container may make requests for any gid.
- SupplementalGroupsStrategyRunAsAny SupplementalGroupsStrategyType = "RunAsAny"
-)
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// PodSecurityPolicyList is a list of PodSecurityPolicy objects.
-type PodSecurityPolicyList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
-
- Items []PodSecurityPolicy
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/extensions/zz_generated.deepcopy.go
deleted file mode 100644
index b7a91b05d..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/zz_generated.deepcopy.go
+++ /dev/null
@@ -1,1231 +0,0 @@
-// +build !ignore_autogenerated
-
-/*
-Copyright 2018 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.
-*/
-
-// Code generated by deepcopy-gen. DO NOT EDIT.
-
-package extensions
-
-import (
- v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- runtime "k8s.io/apimachinery/pkg/runtime"
- core "k8s.io/kubernetes/pkg/apis/core"
-)
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *AllowedFlexVolume) DeepCopyInto(out *AllowedFlexVolume) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedFlexVolume.
-func (in *AllowedFlexVolume) DeepCopy() *AllowedFlexVolume {
- if in == nil {
- return nil
- }
- out := new(AllowedFlexVolume)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *AllowedHostPath) DeepCopyInto(out *AllowedHostPath) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedHostPath.
-func (in *AllowedHostPath) DeepCopy() *AllowedHostPath {
- if in == nil {
- return nil
- }
- out := new(AllowedHostPath)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CustomMetricCurrentStatus) DeepCopyInto(out *CustomMetricCurrentStatus) {
- *out = *in
- out.CurrentValue = in.CurrentValue.DeepCopy()
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomMetricCurrentStatus.
-func (in *CustomMetricCurrentStatus) DeepCopy() *CustomMetricCurrentStatus {
- if in == nil {
- return nil
- }
- out := new(CustomMetricCurrentStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CustomMetricCurrentStatusList) DeepCopyInto(out *CustomMetricCurrentStatusList) {
- *out = *in
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]CustomMetricCurrentStatus, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomMetricCurrentStatusList.
-func (in *CustomMetricCurrentStatusList) DeepCopy() *CustomMetricCurrentStatusList {
- if in == nil {
- return nil
- }
- out := new(CustomMetricCurrentStatusList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CustomMetricTarget) DeepCopyInto(out *CustomMetricTarget) {
- *out = *in
- out.TargetValue = in.TargetValue.DeepCopy()
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomMetricTarget.
-func (in *CustomMetricTarget) DeepCopy() *CustomMetricTarget {
- if in == nil {
- return nil
- }
- out := new(CustomMetricTarget)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CustomMetricTargetList) DeepCopyInto(out *CustomMetricTargetList) {
- *out = *in
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]CustomMetricTarget, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomMetricTargetList.
-func (in *CustomMetricTargetList) DeepCopy() *CustomMetricTargetList {
- if in == nil {
- return nil
- }
- out := new(CustomMetricTargetList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *DaemonSet) DeepCopyInto(out *DaemonSet) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- in.Spec.DeepCopyInto(&out.Spec)
- in.Status.DeepCopyInto(&out.Status)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSet.
-func (in *DaemonSet) DeepCopy() *DaemonSet {
- if in == nil {
- return nil
- }
- out := new(DaemonSet)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *DaemonSet) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *DaemonSetCondition) DeepCopyInto(out *DaemonSetCondition) {
- *out = *in
- in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetCondition.
-func (in *DaemonSetCondition) DeepCopy() *DaemonSetCondition {
- if in == nil {
- return nil
- }
- out := new(DaemonSetCondition)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *DaemonSetList) DeepCopyInto(out *DaemonSetList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]DaemonSet, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetList.
-func (in *DaemonSetList) DeepCopy() *DaemonSetList {
- if in == nil {
- return nil
- }
- out := new(DaemonSetList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *DaemonSetList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *DaemonSetSpec) DeepCopyInto(out *DaemonSetSpec) {
- *out = *in
- if in.Selector != nil {
- in, out := &in.Selector, &out.Selector
- if *in == nil {
- *out = nil
- } else {
- *out = new(v1.LabelSelector)
- (*in).DeepCopyInto(*out)
- }
- }
- in.Template.DeepCopyInto(&out.Template)
- in.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy)
- if in.RevisionHistoryLimit != nil {
- in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit
- if *in == nil {
- *out = nil
- } else {
- *out = new(int32)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetSpec.
-func (in *DaemonSetSpec) DeepCopy() *DaemonSetSpec {
- if in == nil {
- return nil
- }
- out := new(DaemonSetSpec)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) {
- *out = *in
- if in.CollisionCount != nil {
- in, out := &in.CollisionCount, &out.CollisionCount
- if *in == nil {
- *out = nil
- } else {
- *out = new(int32)
- **out = **in
- }
- }
- if in.Conditions != nil {
- in, out := &in.Conditions, &out.Conditions
- *out = make([]DaemonSetCondition, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetStatus.
-func (in *DaemonSetStatus) DeepCopy() *DaemonSetStatus {
- if in == nil {
- return nil
- }
- out := new(DaemonSetStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *DaemonSetUpdateStrategy) DeepCopyInto(out *DaemonSetUpdateStrategy) {
- *out = *in
- if in.RollingUpdate != nil {
- in, out := &in.RollingUpdate, &out.RollingUpdate
- if *in == nil {
- *out = nil
- } else {
- *out = new(RollingUpdateDaemonSet)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetUpdateStrategy.
-func (in *DaemonSetUpdateStrategy) DeepCopy() *DaemonSetUpdateStrategy {
- if in == nil {
- return nil
- }
- out := new(DaemonSetUpdateStrategy)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Deployment) DeepCopyInto(out *Deployment) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- in.Spec.DeepCopyInto(&out.Spec)
- in.Status.DeepCopyInto(&out.Status)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Deployment.
-func (in *Deployment) DeepCopy() *Deployment {
- if in == nil {
- return nil
- }
- out := new(Deployment)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *Deployment) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *DeploymentCondition) DeepCopyInto(out *DeploymentCondition) {
- *out = *in
- in.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)
- in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentCondition.
-func (in *DeploymentCondition) DeepCopy() *DeploymentCondition {
- if in == nil {
- return nil
- }
- out := new(DeploymentCondition)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *DeploymentList) DeepCopyInto(out *DeploymentList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]Deployment, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentList.
-func (in *DeploymentList) DeepCopy() *DeploymentList {
- if in == nil {
- return nil
- }
- out := new(DeploymentList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *DeploymentList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *DeploymentRollback) DeepCopyInto(out *DeploymentRollback) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- if in.UpdatedAnnotations != nil {
- in, out := &in.UpdatedAnnotations, &out.UpdatedAnnotations
- *out = make(map[string]string, len(*in))
- for key, val := range *in {
- (*out)[key] = val
- }
- }
- out.RollbackTo = in.RollbackTo
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentRollback.
-func (in *DeploymentRollback) DeepCopy() *DeploymentRollback {
- if in == nil {
- return nil
- }
- out := new(DeploymentRollback)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *DeploymentRollback) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec) {
- *out = *in
- if in.Selector != nil {
- in, out := &in.Selector, &out.Selector
- if *in == nil {
- *out = nil
- } else {
- *out = new(v1.LabelSelector)
- (*in).DeepCopyInto(*out)
- }
- }
- in.Template.DeepCopyInto(&out.Template)
- in.Strategy.DeepCopyInto(&out.Strategy)
- if in.RevisionHistoryLimit != nil {
- in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit
- if *in == nil {
- *out = nil
- } else {
- *out = new(int32)
- **out = **in
- }
- }
- if in.RollbackTo != nil {
- in, out := &in.RollbackTo, &out.RollbackTo
- if *in == nil {
- *out = nil
- } else {
- *out = new(RollbackConfig)
- **out = **in
- }
- }
- if in.ProgressDeadlineSeconds != nil {
- in, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds
- if *in == nil {
- *out = nil
- } else {
- *out = new(int32)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSpec.
-func (in *DeploymentSpec) DeepCopy() *DeploymentSpec {
- if in == nil {
- return nil
- }
- out := new(DeploymentSpec)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) {
- *out = *in
- if in.Conditions != nil {
- in, out := &in.Conditions, &out.Conditions
- *out = make([]DeploymentCondition, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.CollisionCount != nil {
- in, out := &in.CollisionCount, &out.CollisionCount
- if *in == nil {
- *out = nil
- } else {
- *out = new(int32)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatus.
-func (in *DeploymentStatus) DeepCopy() *DeploymentStatus {
- if in == nil {
- return nil
- }
- out := new(DeploymentStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *DeploymentStrategy) DeepCopyInto(out *DeploymentStrategy) {
- *out = *in
- if in.RollingUpdate != nil {
- in, out := &in.RollingUpdate, &out.RollingUpdate
- if *in == nil {
- *out = nil
- } else {
- *out = new(RollingUpdateDeployment)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStrategy.
-func (in *DeploymentStrategy) DeepCopy() *DeploymentStrategy {
- if in == nil {
- return nil
- }
- out := new(DeploymentStrategy)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *FSGroupStrategyOptions) DeepCopyInto(out *FSGroupStrategyOptions) {
- *out = *in
- if in.Ranges != nil {
- in, out := &in.Ranges, &out.Ranges
- *out = make([]GroupIDRange, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FSGroupStrategyOptions.
-func (in *FSGroupStrategyOptions) DeepCopy() *FSGroupStrategyOptions {
- if in == nil {
- return nil
- }
- out := new(FSGroupStrategyOptions)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *GroupIDRange) DeepCopyInto(out *GroupIDRange) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupIDRange.
-func (in *GroupIDRange) DeepCopy() *GroupIDRange {
- if in == nil {
- return nil
- }
- out := new(GroupIDRange)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *HTTPIngressPath) DeepCopyInto(out *HTTPIngressPath) {
- *out = *in
- out.Backend = in.Backend
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPIngressPath.
-func (in *HTTPIngressPath) DeepCopy() *HTTPIngressPath {
- if in == nil {
- return nil
- }
- out := new(HTTPIngressPath)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *HTTPIngressRuleValue) DeepCopyInto(out *HTTPIngressRuleValue) {
- *out = *in
- if in.Paths != nil {
- in, out := &in.Paths, &out.Paths
- *out = make([]HTTPIngressPath, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPIngressRuleValue.
-func (in *HTTPIngressRuleValue) DeepCopy() *HTTPIngressRuleValue {
- if in == nil {
- return nil
- }
- out := new(HTTPIngressRuleValue)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *HostPortRange) DeepCopyInto(out *HostPortRange) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostPortRange.
-func (in *HostPortRange) DeepCopy() *HostPortRange {
- if in == nil {
- return nil
- }
- out := new(HostPortRange)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Ingress) DeepCopyInto(out *Ingress) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- in.Spec.DeepCopyInto(&out.Spec)
- in.Status.DeepCopyInto(&out.Status)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ingress.
-func (in *Ingress) DeepCopy() *Ingress {
- if in == nil {
- return nil
- }
- out := new(Ingress)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *Ingress) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *IngressBackend) DeepCopyInto(out *IngressBackend) {
- *out = *in
- out.ServicePort = in.ServicePort
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressBackend.
-func (in *IngressBackend) DeepCopy() *IngressBackend {
- if in == nil {
- return nil
- }
- out := new(IngressBackend)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *IngressList) DeepCopyInto(out *IngressList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]Ingress, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressList.
-func (in *IngressList) DeepCopy() *IngressList {
- if in == nil {
- return nil
- }
- out := new(IngressList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *IngressList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *IngressRule) DeepCopyInto(out *IngressRule) {
- *out = *in
- in.IngressRuleValue.DeepCopyInto(&out.IngressRuleValue)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressRule.
-func (in *IngressRule) DeepCopy() *IngressRule {
- if in == nil {
- return nil
- }
- out := new(IngressRule)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *IngressRuleValue) DeepCopyInto(out *IngressRuleValue) {
- *out = *in
- if in.HTTP != nil {
- in, out := &in.HTTP, &out.HTTP
- if *in == nil {
- *out = nil
- } else {
- *out = new(HTTPIngressRuleValue)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressRuleValue.
-func (in *IngressRuleValue) DeepCopy() *IngressRuleValue {
- if in == nil {
- return nil
- }
- out := new(IngressRuleValue)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *IngressSpec) DeepCopyInto(out *IngressSpec) {
- *out = *in
- if in.Backend != nil {
- in, out := &in.Backend, &out.Backend
- if *in == nil {
- *out = nil
- } else {
- *out = new(IngressBackend)
- **out = **in
- }
- }
- if in.TLS != nil {
- in, out := &in.TLS, &out.TLS
- *out = make([]IngressTLS, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.Rules != nil {
- in, out := &in.Rules, &out.Rules
- *out = make([]IngressRule, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressSpec.
-func (in *IngressSpec) DeepCopy() *IngressSpec {
- if in == nil {
- return nil
- }
- out := new(IngressSpec)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *IngressStatus) DeepCopyInto(out *IngressStatus) {
- *out = *in
- in.LoadBalancer.DeepCopyInto(&out.LoadBalancer)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressStatus.
-func (in *IngressStatus) DeepCopy() *IngressStatus {
- if in == nil {
- return nil
- }
- out := new(IngressStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *IngressTLS) DeepCopyInto(out *IngressTLS) {
- *out = *in
- if in.Hosts != nil {
- in, out := &in.Hosts, &out.Hosts
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressTLS.
-func (in *IngressTLS) DeepCopy() *IngressTLS {
- if in == nil {
- return nil
- }
- out := new(IngressTLS)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodSecurityPolicy) DeepCopyInto(out *PodSecurityPolicy) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- in.Spec.DeepCopyInto(&out.Spec)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicy.
-func (in *PodSecurityPolicy) DeepCopy() *PodSecurityPolicy {
- if in == nil {
- return nil
- }
- out := new(PodSecurityPolicy)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *PodSecurityPolicy) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodSecurityPolicyList) DeepCopyInto(out *PodSecurityPolicyList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]PodSecurityPolicy, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicyList.
-func (in *PodSecurityPolicyList) DeepCopy() *PodSecurityPolicyList {
- if in == nil {
- return nil
- }
- out := new(PodSecurityPolicyList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *PodSecurityPolicyList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PodSecurityPolicySpec) DeepCopyInto(out *PodSecurityPolicySpec) {
- *out = *in
- if in.DefaultAddCapabilities != nil {
- in, out := &in.DefaultAddCapabilities, &out.DefaultAddCapabilities
- *out = make([]core.Capability, len(*in))
- copy(*out, *in)
- }
- if in.RequiredDropCapabilities != nil {
- in, out := &in.RequiredDropCapabilities, &out.RequiredDropCapabilities
- *out = make([]core.Capability, len(*in))
- copy(*out, *in)
- }
- if in.AllowedCapabilities != nil {
- in, out := &in.AllowedCapabilities, &out.AllowedCapabilities
- *out = make([]core.Capability, len(*in))
- copy(*out, *in)
- }
- if in.Volumes != nil {
- in, out := &in.Volumes, &out.Volumes
- *out = make([]FSType, len(*in))
- copy(*out, *in)
- }
- if in.HostPorts != nil {
- in, out := &in.HostPorts, &out.HostPorts
- *out = make([]HostPortRange, len(*in))
- copy(*out, *in)
- }
- in.SELinux.DeepCopyInto(&out.SELinux)
- in.RunAsUser.DeepCopyInto(&out.RunAsUser)
- in.SupplementalGroups.DeepCopyInto(&out.SupplementalGroups)
- in.FSGroup.DeepCopyInto(&out.FSGroup)
- if in.DefaultAllowPrivilegeEscalation != nil {
- in, out := &in.DefaultAllowPrivilegeEscalation, &out.DefaultAllowPrivilegeEscalation
- if *in == nil {
- *out = nil
- } else {
- *out = new(bool)
- **out = **in
- }
- }
- if in.AllowedHostPaths != nil {
- in, out := &in.AllowedHostPaths, &out.AllowedHostPaths
- *out = make([]AllowedHostPath, len(*in))
- copy(*out, *in)
- }
- if in.AllowedFlexVolumes != nil {
- in, out := &in.AllowedFlexVolumes, &out.AllowedFlexVolumes
- *out = make([]AllowedFlexVolume, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicySpec.
-func (in *PodSecurityPolicySpec) DeepCopy() *PodSecurityPolicySpec {
- if in == nil {
- return nil
- }
- out := new(PodSecurityPolicySpec)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ReplicaSet) DeepCopyInto(out *ReplicaSet) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- in.Spec.DeepCopyInto(&out.Spec)
- in.Status.DeepCopyInto(&out.Status)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSet.
-func (in *ReplicaSet) DeepCopy() *ReplicaSet {
- if in == nil {
- return nil
- }
- out := new(ReplicaSet)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *ReplicaSet) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ReplicaSetCondition) DeepCopyInto(out *ReplicaSetCondition) {
- *out = *in
- in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetCondition.
-func (in *ReplicaSetCondition) DeepCopy() *ReplicaSetCondition {
- if in == nil {
- return nil
- }
- out := new(ReplicaSetCondition)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ReplicaSetList) DeepCopyInto(out *ReplicaSetList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]ReplicaSet, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetList.
-func (in *ReplicaSetList) DeepCopy() *ReplicaSetList {
- if in == nil {
- return nil
- }
- out := new(ReplicaSetList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *ReplicaSetList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ReplicaSetSpec) DeepCopyInto(out *ReplicaSetSpec) {
- *out = *in
- if in.Selector != nil {
- in, out := &in.Selector, &out.Selector
- if *in == nil {
- *out = nil
- } else {
- *out = new(v1.LabelSelector)
- (*in).DeepCopyInto(*out)
- }
- }
- in.Template.DeepCopyInto(&out.Template)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetSpec.
-func (in *ReplicaSetSpec) DeepCopy() *ReplicaSetSpec {
- if in == nil {
- return nil
- }
- out := new(ReplicaSetSpec)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ReplicaSetStatus) DeepCopyInto(out *ReplicaSetStatus) {
- *out = *in
- if in.Conditions != nil {
- in, out := &in.Conditions, &out.Conditions
- *out = make([]ReplicaSetCondition, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetStatus.
-func (in *ReplicaSetStatus) DeepCopy() *ReplicaSetStatus {
- if in == nil {
- return nil
- }
- out := new(ReplicaSetStatus)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ReplicationControllerDummy) DeepCopyInto(out *ReplicationControllerDummy) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationControllerDummy.
-func (in *ReplicationControllerDummy) DeepCopy() *ReplicationControllerDummy {
- if in == nil {
- return nil
- }
- out := new(ReplicationControllerDummy)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *ReplicationControllerDummy) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *RollbackConfig) DeepCopyInto(out *RollbackConfig) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollbackConfig.
-func (in *RollbackConfig) DeepCopy() *RollbackConfig {
- if in == nil {
- return nil
- }
- out := new(RollbackConfig)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *RollingUpdateDaemonSet) DeepCopyInto(out *RollingUpdateDaemonSet) {
- *out = *in
- out.MaxUnavailable = in.MaxUnavailable
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDaemonSet.
-func (in *RollingUpdateDaemonSet) DeepCopy() *RollingUpdateDaemonSet {
- if in == nil {
- return nil
- }
- out := new(RollingUpdateDaemonSet)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *RollingUpdateDeployment) DeepCopyInto(out *RollingUpdateDeployment) {
- *out = *in
- out.MaxUnavailable = in.MaxUnavailable
- out.MaxSurge = in.MaxSurge
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDeployment.
-func (in *RollingUpdateDeployment) DeepCopy() *RollingUpdateDeployment {
- if in == nil {
- return nil
- }
- out := new(RollingUpdateDeployment)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *RunAsUserStrategyOptions) DeepCopyInto(out *RunAsUserStrategyOptions) {
- *out = *in
- if in.Ranges != nil {
- in, out := &in.Ranges, &out.Ranges
- *out = make([]UserIDRange, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunAsUserStrategyOptions.
-func (in *RunAsUserStrategyOptions) DeepCopy() *RunAsUserStrategyOptions {
- if in == nil {
- return nil
- }
- out := new(RunAsUserStrategyOptions)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *SELinuxStrategyOptions) DeepCopyInto(out *SELinuxStrategyOptions) {
- *out = *in
- if in.SELinuxOptions != nil {
- in, out := &in.SELinuxOptions, &out.SELinuxOptions
- if *in == nil {
- *out = nil
- } else {
- *out = new(core.SELinuxOptions)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SELinuxStrategyOptions.
-func (in *SELinuxStrategyOptions) DeepCopy() *SELinuxStrategyOptions {
- if in == nil {
- return nil
- }
- out := new(SELinuxStrategyOptions)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *SupplementalGroupsStrategyOptions) DeepCopyInto(out *SupplementalGroupsStrategyOptions) {
- *out = *in
- if in.Ranges != nil {
- in, out := &in.Ranges, &out.Ranges
- *out = make([]GroupIDRange, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupplementalGroupsStrategyOptions.
-func (in *SupplementalGroupsStrategyOptions) DeepCopy() *SupplementalGroupsStrategyOptions {
- if in == nil {
- return nil
- }
- out := new(SupplementalGroupsStrategyOptions)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *UserIDRange) DeepCopyInto(out *UserIDRange) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserIDRange.
-func (in *UserIDRange) DeepCopy() *UserIDRange {
- if in == nil {
- return nil
- }
- out := new(UserIDRange)
- in.DeepCopyInto(out)
- return out
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/networking/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/networking/doc.go
deleted file mode 100644
index 8b013e348..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/networking/doc.go
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-Copyright 2017 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.
-*/
-
-// +k8s:deepcopy-gen=package
-// +groupName=networking.k8s.io
-package networking // import "k8s.io/kubernetes/pkg/apis/networking"
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/networking/register.go b/vendor/k8s.io/kubernetes/pkg/apis/networking/register.go
deleted file mode 100644
index 4d58a210d..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/networking/register.go
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-Copyright 2017 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 networking
-
-import (
- "k8s.io/apimachinery/pkg/runtime"
- "k8s.io/apimachinery/pkg/runtime/schema"
-)
-
-// GroupName is the group name use in this package
-const GroupName = "networking.k8s.io"
-
-// SchemeGroupVersion is group version used to register these objects
-var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
-
-// Kind takes an unqualified kind and returns a Group qualified GroupKind
-func Kind(kind string) schema.GroupKind {
- return SchemeGroupVersion.WithKind(kind).GroupKind()
-}
-
-// Resource takes an unqualified resource and returns a Group qualified GroupResource
-func Resource(resource string) schema.GroupResource {
- return SchemeGroupVersion.WithResource(resource).GroupResource()
-}
-
-var (
- SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
- AddToScheme = SchemeBuilder.AddToScheme
-)
-
-func addKnownTypes(scheme *runtime.Scheme) error {
- scheme.AddKnownTypes(SchemeGroupVersion,
- &NetworkPolicy{},
- &NetworkPolicyList{},
- )
- return nil
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/networking/types.go b/vendor/k8s.io/kubernetes/pkg/apis/networking/types.go
deleted file mode 100644
index ae37fcd5e..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/networking/types.go
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
-Copyright 2017 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 networking
-
-import (
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/apimachinery/pkg/util/intstr"
- api "k8s.io/kubernetes/pkg/apis/core"
-)
-
-// +genclient
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// NetworkPolicy describes what network traffic is allowed for a set of Pods
-type NetworkPolicy struct {
- metav1.TypeMeta
- // +optional
- metav1.ObjectMeta
-
- // Specification of the desired behavior for this NetworkPolicy.
- // +optional
- Spec NetworkPolicySpec
-}
-
-// Policy Type string describes the NetworkPolicy type
-// This type is beta-level in 1.8
-type PolicyType string
-
-const (
- // PolicyTypeIngress is a NetworkPolicy that affects ingress traffic on selected pods
- PolicyTypeIngress PolicyType = "Ingress"
- // PolicyTypeEgress is a NetworkPolicy that affects egress traffic on selected pods
- PolicyTypeEgress PolicyType = "Egress"
-)
-
-// NetworkPolicySpec provides the specification of a NetworkPolicy
-type NetworkPolicySpec struct {
- // Selects the pods to which this NetworkPolicy object applies. The array of
- // ingress rules is applied to any pods selected by this field. Multiple network
- // policies can select the same set of pods. In this case, the ingress rules for
- // each are combined additively. This field is NOT optional and follows standard
- // label selector semantics. An empty podSelector matches all pods in this
- // namespace.
- PodSelector metav1.LabelSelector
-
- // List of ingress rules to be applied to the selected pods. Traffic is allowed to
- // a pod if there are no NetworkPolicies selecting the pod
- // (and cluster policy otherwise allows the traffic), OR if the traffic source is
- // the pod's local node, OR if the traffic matches at least one ingress rule
- // across all of the NetworkPolicy objects whose podSelector matches the pod. If
- // this field is empty then this NetworkPolicy does not allow any traffic (and serves
- // solely to ensure that the pods it selects are isolated by default)
- // +optional
- Ingress []NetworkPolicyIngressRule
-
- // List of egress rules to be applied to the selected pods. Outgoing traffic is
- // allowed if there are no NetworkPolicies selecting the pod (and cluster policy
- // otherwise allows the traffic), OR if the traffic matches at least one egress rule
- // across all of the NetworkPolicy objects whose podSelector matches the pod. If
- // this field is empty then this NetworkPolicy limits all outgoing traffic (and serves
- // solely to ensure that the pods it selects are isolated by default).
- // This field is beta-level in 1.8
- // +optional
- Egress []NetworkPolicyEgressRule
-
- // List of rule types that the NetworkPolicy relates to.
- // Valid options are Ingress, Egress, or Ingress,Egress.
- // If this field is not specified, it will default based on the existence of Ingress or Egress rules;
- // policies that contain an Egress section are assumed to affect Egress, and all policies
- // (whether or not they contain an Ingress section) are assumed to affect Ingress.
- // If you want to write an egress-only policy, you must explicitly specify policyTypes [ "Egress" ].
- // Likewise, if you want to write a policy that specifies that no egress is allowed,
- // you must specify a policyTypes value that include "Egress" (since such a policy would not include
- // an Egress section and would otherwise default to just [ "Ingress" ]).
- // This field is beta-level in 1.8
- // +optional
- PolicyTypes []PolicyType
-}
-
-// NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods
-// matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from.
-type NetworkPolicyIngressRule struct {
- // List of ports which should be made accessible on the pods selected for this
- // rule. Each item in this list is combined using a logical OR. If this field is
- // empty or missing, this rule matches all ports (traffic not restricted by port).
- // If this field is present and contains at least one item, then this rule allows
- // traffic only if the traffic matches at least one port in the list.
- // +optional
- Ports []NetworkPolicyPort
-
- // List of sources which should be able to access the pods selected for this rule.
- // Items in this list are combined using a logical OR operation. If this field is
- // empty or missing, this rule matches all sources (traffic not restricted by
- // source). If this field is present and contains at least on item, this rule
- // allows traffic only if the traffic matches at least one item in the from list.
- // +optional
- From []NetworkPolicyPeer
-}
-
-// NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods
-// matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to.
-// This type is beta-level in 1.8
-type NetworkPolicyEgressRule struct {
- // List of destination ports for outgoing traffic.
- // Each item in this list is combined using a logical OR. If this field is
- // empty or missing, this rule matches all ports (traffic not restricted by port).
- // If this field is present and contains at least one item, then this rule allows
- // traffic only if the traffic matches at least one port in the list.
- // +optional
- Ports []NetworkPolicyPort
-
- // List of destinations for outgoing traffic of pods selected for this rule.
- // Items in this list are combined using a logical OR operation. If this field is
- // empty or missing, this rule matches all destinations (traffic not restricted by
- // destination). If this field is present and contains at least one item, this rule
- // allows traffic only if the traffic matches at least one item in the to list.
- // +optional
- To []NetworkPolicyPeer
-}
-
-// NetworkPolicyPort describes a port to allow traffic on
-type NetworkPolicyPort struct {
- // The protocol (TCP or UDP) which traffic must match. If not specified, this
- // field defaults to TCP.
- // +optional
- Protocol *api.Protocol
-
- // The port on the given protocol. This can either be a numerical or named port on
- // a pod. If this field is not provided, this matches all port names and numbers.
- // +optional
- Port *intstr.IntOrString
-}
-
-// IPBlock describes a particular CIDR (Ex. "192.168.1.1/24") that is allowed to the pods
-// matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should
-// not be included within this rule.
-type IPBlock struct {
- // CIDR is a string representing the IP Block
- // Valid examples are "192.168.1.1/24"
- CIDR string
- // Except is a slice of CIDRs that should not be included within an IP Block
- // Valid examples are "192.168.1.1/24"
- // Except values will be rejected if they are outside the CIDR range
- // +optional
- Except []string
-}
-
-// NetworkPolicyPeer describes a peer to allow traffic from. Exactly one of its fields
-// must be specified.
-type NetworkPolicyPeer struct {
- // This is a label selector which selects Pods in this namespace. This field
- // follows standard label selector semantics. If present but empty, this selector
- // selects all pods in this namespace.
- // +optional
- PodSelector *metav1.LabelSelector
-
- // Selects Namespaces using cluster scoped-labels. This matches all pods in all
- // namespaces selected by this label selector. This field follows standard label
- // selector semantics. If present but empty, this selector selects all namespaces.
- // +optional
- NamespaceSelector *metav1.LabelSelector
-
- // IPBlock defines policy on a particular IPBlock
- // +optional
- IPBlock *IPBlock
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// NetworkPolicyList is a list of NetworkPolicy objects.
-type NetworkPolicyList struct {
- metav1.TypeMeta
- // +optional
- metav1.ListMeta
-
- Items []NetworkPolicy
-}
diff --git a/vendor/k8s.io/kubernetes/pkg/apis/networking/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/networking/zz_generated.deepcopy.go
deleted file mode 100644
index 47121a572..000000000
--- a/vendor/k8s.io/kubernetes/pkg/apis/networking/zz_generated.deepcopy.go
+++ /dev/null
@@ -1,282 +0,0 @@
-// +build !ignore_autogenerated
-
-/*
-Copyright 2018 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.
-*/
-
-// Code generated by deepcopy-gen. DO NOT EDIT.
-
-package networking
-
-import (
- v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- runtime "k8s.io/apimachinery/pkg/runtime"
- intstr "k8s.io/apimachinery/pkg/util/intstr"
- core "k8s.io/kubernetes/pkg/apis/core"
-)
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *IPBlock) DeepCopyInto(out *IPBlock) {
- *out = *in
- if in.Except != nil {
- in, out := &in.Except, &out.Except
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPBlock.
-func (in *IPBlock) DeepCopy() *IPBlock {
- if in == nil {
- return nil
- }
- out := new(IPBlock)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NetworkPolicy) DeepCopyInto(out *NetworkPolicy) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- in.Spec.DeepCopyInto(&out.Spec)
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicy.
-func (in *NetworkPolicy) DeepCopy() *NetworkPolicy {
- if in == nil {
- return nil
- }
- out := new(NetworkPolicy)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *NetworkPolicy) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NetworkPolicyEgressRule) DeepCopyInto(out *NetworkPolicyEgressRule) {
- *out = *in
- if in.Ports != nil {
- in, out := &in.Ports, &out.Ports
- *out = make([]NetworkPolicyPort, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.To != nil {
- in, out := &in.To, &out.To
- *out = make([]NetworkPolicyPeer, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyEgressRule.
-func (in *NetworkPolicyEgressRule) DeepCopy() *NetworkPolicyEgressRule {
- if in == nil {
- return nil
- }
- out := new(NetworkPolicyEgressRule)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NetworkPolicyIngressRule) DeepCopyInto(out *NetworkPolicyIngressRule) {
- *out = *in
- if in.Ports != nil {
- in, out := &in.Ports, &out.Ports
- *out = make([]NetworkPolicyPort, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.From != nil {
- in, out := &in.From, &out.From
- *out = make([]NetworkPolicyPeer, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyIngressRule.
-func (in *NetworkPolicyIngressRule) DeepCopy() *NetworkPolicyIngressRule {
- if in == nil {
- return nil
- }
- out := new(NetworkPolicyIngressRule)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NetworkPolicyList) DeepCopyInto(out *NetworkPolicyList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]NetworkPolicy, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyList.
-func (in *NetworkPolicyList) DeepCopy() *NetworkPolicyList {
- if in == nil {
- return nil
- }
- out := new(NetworkPolicyList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *NetworkPolicyList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NetworkPolicyPeer) DeepCopyInto(out *NetworkPolicyPeer) {
- *out = *in
- if in.PodSelector != nil {
- in, out := &in.PodSelector, &out.PodSelector
- if *in == nil {
- *out = nil
- } else {
- *out = new(v1.LabelSelector)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.NamespaceSelector != nil {
- in, out := &in.NamespaceSelector, &out.NamespaceSelector
- if *in == nil {
- *out = nil
- } else {
- *out = new(v1.LabelSelector)
- (*in).DeepCopyInto(*out)
- }
- }
- if in.IPBlock != nil {
- in, out := &in.IPBlock, &out.IPBlock
- if *in == nil {
- *out = nil
- } else {
- *out = new(IPBlock)
- (*in).DeepCopyInto(*out)
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyPeer.
-func (in *NetworkPolicyPeer) DeepCopy() *NetworkPolicyPeer {
- if in == nil {
- return nil
- }
- out := new(NetworkPolicyPeer)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NetworkPolicyPort) DeepCopyInto(out *NetworkPolicyPort) {
- *out = *in
- if in.Protocol != nil {
- in, out := &in.Protocol, &out.Protocol
- if *in == nil {
- *out = nil
- } else {
- *out = new(core.Protocol)
- **out = **in
- }
- }
- if in.Port != nil {
- in, out := &in.Port, &out.Port
- if *in == nil {
- *out = nil
- } else {
- *out = new(intstr.IntOrString)
- **out = **in
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyPort.
-func (in *NetworkPolicyPort) DeepCopy() *NetworkPolicyPort {
- if in == nil {
- return nil
- }
- out := new(NetworkPolicyPort)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *NetworkPolicySpec) DeepCopyInto(out *NetworkPolicySpec) {
- *out = *in
- in.PodSelector.DeepCopyInto(&out.PodSelector)
- if in.Ingress != nil {
- in, out := &in.Ingress, &out.Ingress
- *out = make([]NetworkPolicyIngressRule, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.Egress != nil {
- in, out := &in.Egress, &out.Egress
- *out = make([]NetworkPolicyEgressRule, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.PolicyTypes != nil {
- in, out := &in.PolicyTypes, &out.PolicyTypes
- *out = make([]PolicyType, len(*in))
- copy(*out, *in)
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicySpec.
-func (in *NetworkPolicySpec) DeepCopy() *NetworkPolicySpec {
- if in == nil {
- return nil
- }
- out := new(NetworkPolicySpec)
- in.DeepCopyInto(out)
- return out
-}