mirror of
https://github.com/kubernetes/client-go.git
synced 2026-02-21 23:53:16 +00:00
176 lines
10 KiB
Go
176 lines
10 KiB
Go
/*
|
|
Copyright The Kubernetes Authors.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
|
|
|
package v1
|
|
|
|
import (
|
|
corev1 "k8s.io/api/core/v1"
|
|
metav1 "k8s.io/client-go/applyconfigurations/meta/v1"
|
|
)
|
|
|
|
// PersistentVolumeClaimSpecApplyConfiguration represents a declarative configuration of the PersistentVolumeClaimSpec type for use
|
|
// with apply.
|
|
//
|
|
// PersistentVolumeClaimSpec describes the common attributes of storage devices
|
|
// and allows a Source for provider-specific attributes
|
|
type PersistentVolumeClaimSpecApplyConfiguration struct {
|
|
// accessModes contains the desired access modes the volume should have.
|
|
// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
|
|
AccessModes []corev1.PersistentVolumeAccessMode `json:"accessModes,omitempty"`
|
|
// selector is a label query over volumes to consider for binding.
|
|
Selector *metav1.LabelSelectorApplyConfiguration `json:"selector,omitempty"`
|
|
// resources represents the minimum resources the volume should have.
|
|
// Users are allowed to specify resource requirements
|
|
// that are lower than previous value but must still be higher than capacity recorded in the
|
|
// status field of the claim.
|
|
// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
|
|
Resources *VolumeResourceRequirementsApplyConfiguration `json:"resources,omitempty"`
|
|
// volumeName is the binding reference to the PersistentVolume backing this claim.
|
|
VolumeName *string `json:"volumeName,omitempty"`
|
|
// storageClassName is the name of the StorageClass required by the claim.
|
|
// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
|
|
StorageClassName *string `json:"storageClassName,omitempty"`
|
|
// volumeMode defines what type of volume is required by the claim.
|
|
// Value of Filesystem is implied when not included in claim spec.
|
|
VolumeMode *corev1.PersistentVolumeMode `json:"volumeMode,omitempty"`
|
|
// dataSource field can be used to specify either:
|
|
// * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
|
|
// * An existing PVC (PersistentVolumeClaim)
|
|
// If the provisioner or an external controller can support the specified data source,
|
|
// it will create a new volume based on the contents of the specified data source.
|
|
// When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
|
|
// and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
|
|
// If the namespace is specified, then dataSourceRef will not be copied to dataSource.
|
|
DataSource *TypedLocalObjectReferenceApplyConfiguration `json:"dataSource,omitempty"`
|
|
// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
|
|
// volume is desired. This may be any object from a non-empty API group (non
|
|
// core object) or a PersistentVolumeClaim object.
|
|
// When this field is specified, volume binding will only succeed if the type of
|
|
// the specified object matches some installed volume populator or dynamic
|
|
// provisioner.
|
|
// This field will replace the functionality of the dataSource field and as such
|
|
// if both fields are non-empty, they must have the same value. For backwards
|
|
// compatibility, when namespace isn't specified in dataSourceRef,
|
|
// both fields (dataSource and dataSourceRef) will be set to the same
|
|
// value automatically if one of them is empty and the other is non-empty.
|
|
// When namespace is specified in dataSourceRef,
|
|
// dataSource isn't set to the same value and must be empty.
|
|
// There are three important differences between dataSource and dataSourceRef:
|
|
// * While dataSource only allows two specific types of objects, dataSourceRef
|
|
// allows any non-core object, as well as PersistentVolumeClaim objects.
|
|
// * While dataSource ignores disallowed values (dropping them), dataSourceRef
|
|
// preserves all values, and generates an error if a disallowed value is
|
|
// specified.
|
|
// * While dataSource only allows local objects, dataSourceRef allows objects
|
|
// in any namespaces.
|
|
// (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
|
|
// (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
|
|
DataSourceRef *TypedObjectReferenceApplyConfiguration `json:"dataSourceRef,omitempty"`
|
|
// volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
|
|
// If specified, the CSI driver will create or update the volume with the attributes defined
|
|
// in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
|
|
// it can be changed after the claim is created. An empty string or nil value indicates that no
|
|
// VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state,
|
|
// this field can be reset to its previous value (including nil) to cancel the modification.
|
|
// If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
|
|
// set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
|
|
// exists.
|
|
// More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
|
|
VolumeAttributesClassName *string `json:"volumeAttributesClassName,omitempty"`
|
|
}
|
|
|
|
// PersistentVolumeClaimSpecApplyConfiguration constructs a declarative configuration of the PersistentVolumeClaimSpec type for use with
|
|
// apply.
|
|
func PersistentVolumeClaimSpec() *PersistentVolumeClaimSpecApplyConfiguration {
|
|
return &PersistentVolumeClaimSpecApplyConfiguration{}
|
|
}
|
|
|
|
// WithAccessModes adds the given value to the AccessModes field in the declarative configuration
|
|
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
// If called multiple times, values provided by each call will be appended to the AccessModes field.
|
|
func (b *PersistentVolumeClaimSpecApplyConfiguration) WithAccessModes(values ...corev1.PersistentVolumeAccessMode) *PersistentVolumeClaimSpecApplyConfiguration {
|
|
for i := range values {
|
|
b.AccessModes = append(b.AccessModes, values[i])
|
|
}
|
|
return b
|
|
}
|
|
|
|
// WithSelector sets the Selector field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the Selector field is set to the value of the last call.
|
|
func (b *PersistentVolumeClaimSpecApplyConfiguration) WithSelector(value *metav1.LabelSelectorApplyConfiguration) *PersistentVolumeClaimSpecApplyConfiguration {
|
|
b.Selector = value
|
|
return b
|
|
}
|
|
|
|
// WithResources sets the Resources field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the Resources field is set to the value of the last call.
|
|
func (b *PersistentVolumeClaimSpecApplyConfiguration) WithResources(value *VolumeResourceRequirementsApplyConfiguration) *PersistentVolumeClaimSpecApplyConfiguration {
|
|
b.Resources = value
|
|
return b
|
|
}
|
|
|
|
// WithVolumeName sets the VolumeName field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the VolumeName field is set to the value of the last call.
|
|
func (b *PersistentVolumeClaimSpecApplyConfiguration) WithVolumeName(value string) *PersistentVolumeClaimSpecApplyConfiguration {
|
|
b.VolumeName = &value
|
|
return b
|
|
}
|
|
|
|
// WithStorageClassName sets the StorageClassName field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the StorageClassName field is set to the value of the last call.
|
|
func (b *PersistentVolumeClaimSpecApplyConfiguration) WithStorageClassName(value string) *PersistentVolumeClaimSpecApplyConfiguration {
|
|
b.StorageClassName = &value
|
|
return b
|
|
}
|
|
|
|
// WithVolumeMode sets the VolumeMode field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the VolumeMode field is set to the value of the last call.
|
|
func (b *PersistentVolumeClaimSpecApplyConfiguration) WithVolumeMode(value corev1.PersistentVolumeMode) *PersistentVolumeClaimSpecApplyConfiguration {
|
|
b.VolumeMode = &value
|
|
return b
|
|
}
|
|
|
|
// WithDataSource sets the DataSource field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the DataSource field is set to the value of the last call.
|
|
func (b *PersistentVolumeClaimSpecApplyConfiguration) WithDataSource(value *TypedLocalObjectReferenceApplyConfiguration) *PersistentVolumeClaimSpecApplyConfiguration {
|
|
b.DataSource = value
|
|
return b
|
|
}
|
|
|
|
// WithDataSourceRef sets the DataSourceRef field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the DataSourceRef field is set to the value of the last call.
|
|
func (b *PersistentVolumeClaimSpecApplyConfiguration) WithDataSourceRef(value *TypedObjectReferenceApplyConfiguration) *PersistentVolumeClaimSpecApplyConfiguration {
|
|
b.DataSourceRef = value
|
|
return b
|
|
}
|
|
|
|
// WithVolumeAttributesClassName sets the VolumeAttributesClassName field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the VolumeAttributesClassName field is set to the value of the last call.
|
|
func (b *PersistentVolumeClaimSpecApplyConfiguration) WithVolumeAttributesClassName(value string) *PersistentVolumeClaimSpecApplyConfiguration {
|
|
b.VolumeAttributesClassName = &value
|
|
return b
|
|
}
|