Documentation ¶
Overview ¶
+k8s:deepcopy-gen=package +k8s:conversion-gen=kmodules.xyz/offshoot-api/api/v2 +k8s:openapi-gen=true +gencrdrefdocs:force=true
Index ¶
- Constants
- func ConvertVolumes(in []Volume) []core.Volume
- func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition
- func PatchServicePorts(cur []core.ServicePort, desired []ServicePort) []core.ServicePort
- type ContainerRuntimeSettings
- type EphemeralVolumeSource
- type GatewayPort
- type IONiceSettings
- type NiceSettings
- type ObjectMeta
- type PartialObjectMeta
- type PersistentVolumeClaim
- type PersistentVolumeClaimTemplate
- type PodRuntimeSettings
- type PodSpec
- type PodTemplateSpec
- type RuntimeSettings
- type ServicePort
- type ServiceSpec
- type ServiceTemplateSpec
- type Volume
- type VolumeSource
Constants ¶
const ( NiceAdjustment = "NICE_ADJUSTMENT" IONiceClass = "IONICE_CLASS" IONiceClassData = "IONICE_CLASS_DATA" )
Variables ¶
This section is empty.
Functions ¶
func ConvertVolumes ¶ added in v0.25.4
func GetOpenAPIDefinitions ¶
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition
func PatchServicePorts ¶
func PatchServicePorts(cur []core.ServicePort, desired []ServicePort) []core.ServicePort
Beware of MergeServicePorts ref: https://github.com/kmodules/client-go/blob/03dac1aea5084354127990a10d0b0e7529460dd5/core/v1/service.go#L103-L136
Types ¶
type ContainerRuntimeSettings ¶
type ContainerRuntimeSettings struct { // Compute Resources required by container. // Cannot be updated. // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ // +optional Resources core.ResourceRequirements `json:"resources,omitempty"` // Periodic probe of container liveness. // Container will be restarted if the probe fails. // Cannot be updated. // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes // +optional LivenessProbe *core.Probe `json:"livenessProbe,omitempty"` // Periodic probe of container service readiness. // Container will be removed from service endpoints if the probe fails. // Cannot be updated. // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes // +optional ReadinessProbe *core.Probe `json:"readinessProbe,omitempty"` // Actions that the management system should take in response to container lifecycle events. // Cannot be updated. // +optional Lifecycle *core.Lifecycle `json:"lifecycle,omitempty"` // Security options the pod should run with. // More info: https://kubernetes.io/docs/concepts/policy/security-context/ // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ // +optional SecurityContext *core.SecurityContext `json:"securityContext,omitempty"` // Settings to configure `nice` to throttle the load on cpu. // More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html // More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/ // +optional Nice *NiceSettings `json:"nice,omitempty"` // Settings to configure `ionice` to throttle the load on disk. // More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html // More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/ // +optional IONice *IONiceSettings `json:"ionice,omitempty"` // 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 []core.EnvFromSource `json:"envFrom,omitempty"` // List of environment variables to set in the container. // Cannot be updated. // +optional // +patchMergeKey=name // +patchStrategy=merge Env []core.EnvVar `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"` }
func (*ContainerRuntimeSettings) DeepCopy ¶
func (in *ContainerRuntimeSettings) DeepCopy() *ContainerRuntimeSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeSettings.
func (*ContainerRuntimeSettings) DeepCopyInto ¶
func (in *ContainerRuntimeSettings) DeepCopyInto(out *ContainerRuntimeSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EphemeralVolumeSource ¶ added in v0.25.2
type EphemeralVolumeSource struct { // Will be used to create a stand-alone PVC to provision the volume. // The pod in which this EphemeralVolumeSource is embedded will be the // owner of the PVC, i.e. the PVC will be deleted together with the // pod. The name of the PVC will be `<pod name>-<volume name>` where // `<volume name>` is the name from the `PodSpec.Volumes` array // entry. Pod validation will reject the pod if the concatenated name // is not valid for a PVC (for example, too long). // // An existing PVC with that name that is not owned by the pod // will *not* be used for the pod to avoid using an unrelated // volume by mistake. Starting the pod is then blocked until // the unrelated PVC is removed. If such a pre-created PVC is // meant to be used by the pod, the PVC has to updated with an // owner reference to the pod once the pod exists. Normally // this should not be necessary, but it may be useful when // manually reconstructing a broken cluster. // // This field is read-only and no changes will be made by Kubernetes // to the PVC after it has been created. // // Required, must not be nil. VolumeClaimTemplate *PersistentVolumeClaimTemplate `json:"volumeClaimTemplate,omitempty"` }
Represents an ephemeral volume that is handled by a normal storage driver.
func (*EphemeralVolumeSource) DeepCopy ¶ added in v0.25.2
func (in *EphemeralVolumeSource) DeepCopy() *EphemeralVolumeSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EphemeralVolumeSource.
func (*EphemeralVolumeSource) DeepCopyInto ¶ added in v0.25.2
func (in *EphemeralVolumeSource) DeepCopyInto(out *EphemeralVolumeSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*EphemeralVolumeSource) ToAPIObject ¶ added in v0.25.2
func (in *EphemeralVolumeSource) ToAPIObject() *core.EphemeralVolumeSource
type GatewayPort ¶ added in v0.29.1
type GatewayPort struct { // The name of this port within the gateway service. // +optional Name string `json:"name,omitempty"` // The port that will be exposed by the gateway service. Port int32 `json:"port"` // Number of the port to access the backend service. // +optional BackendServicePort int32 `json:"backendServicePort,omitempty"` // The port on each node on which this gateway service is exposed when type is // NodePort or LoadBalancer. // +optional NodePort int32 `json:"nodePort,omitempty"` }
GatewayPort contains information on Gateway service's port.
func (*GatewayPort) DeepCopy ¶ added in v0.29.1
func (in *GatewayPort) DeepCopy() *GatewayPort
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayPort.
func (*GatewayPort) DeepCopyInto ¶ added in v0.29.1
func (in *GatewayPort) DeepCopyInto(out *GatewayPort)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IONiceSettings ¶
type IONiceSettings struct { Class *int32 `json:"class,omitempty"` ClassData *int32 `json:"classData,omitempty"` }
https://linux.die.net/man/1/ionice
func IONiceSettingsFromEnv ¶
func IONiceSettingsFromEnv() (*IONiceSettings, error)
func (*IONiceSettings) DeepCopy ¶
func (in *IONiceSettings) DeepCopy() *IONiceSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IONiceSettings.
func (*IONiceSettings) DeepCopyInto ¶
func (in *IONiceSettings) DeepCopyInto(out *IONiceSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NiceSettings ¶
type NiceSettings struct {
Adjustment *int32 `json:"adjustment,omitempty"`
}
https://linux.die.net/man/1/nice
func NiceSettingsFromEnv ¶
func NiceSettingsFromEnv() (*NiceSettings, error)
func (*NiceSettings) DeepCopy ¶
func (in *NiceSettings) DeepCopy() *NiceSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NiceSettings.
func (*NiceSettings) DeepCopyInto ¶
func (in *NiceSettings) DeepCopyInto(out *NiceSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ObjectMeta ¶
type ObjectMeta struct { // Map of string keys and values that can be used to organize and categorize // (scope and select) objects. May match selectors of replication controllers // and services. // More info: http://kubernetes.io/docs/user-guide/labels // +optional Labels map[string]string `json:"labels,omitempty"` // Annotations is an unstructured key value map stored with a resource that may be // set by external tools to store and retrieve arbitrary metadata. They are not // queryable and should be preserved when modifying objects. // More info: http://kubernetes.io/docs/user-guide/annotations // +optional Annotations map[string]string `json:"annotations,omitempty"` }
ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.
func (*ObjectMeta) DeepCopy ¶
func (in *ObjectMeta) DeepCopy() *ObjectMeta
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMeta.
func (*ObjectMeta) DeepCopyInto ¶
func (in *ObjectMeta) DeepCopyInto(out *ObjectMeta)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PartialObjectMeta ¶
type PartialObjectMeta struct { // Name must be unique within a namespace. 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. // Cannot be updated. // More info: http://kubernetes.io/docs/user-guide/identifiers#names // +optional Name string `json:"name,omitempty"` // GenerateName is an optional prefix, used by the server, to generate a unique // name ONLY IF the Name field has not been provided. // If this field is used, the name returned to the client will be different // than the name passed. This value will also be combined with a unique suffix. // The provided value has the same validation rules as the Name field, // 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 the generated name exists, the server will // NOT return a 409 - 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). // // Applied only if Name is not specified. // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency // +optional GenerateName string `json:"generateName,omitempty"` // Namespace defines the space within each 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. // // Must be a DNS_LABEL. // Cannot be updated. // More info: http://kubernetes.io/docs/user-guide/namespaces // +optional Namespace string `json:"namespace,omitempty"` // Map of string keys and values that can be used to organize and categorize // (scope and select) objects. May match selectors of replication controllers // and services. // More info: http://kubernetes.io/docs/user-guide/labels // +optional Labels map[string]string `json:"labels,omitempty"` // Annotations is an unstructured key value map stored with a resource that may be // set by external tools to store and retrieve arbitrary metadata. They are not // queryable and should be preserved when modifying objects. // More info: http://kubernetes.io/docs/user-guide/annotations // +optional Annotations map[string]string `json:"annotations,omitempty"` // 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 // +patchMergeKey=uid // +patchStrategy=merge OwnerReferences []metav1.OwnerReference `json:"ownerReferences,omitempty" patchStrategy:"merge" patchMergeKey:"uid"` }
ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.
func (*PartialObjectMeta) DeepCopy ¶
func (in *PartialObjectMeta) DeepCopy() *PartialObjectMeta
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PartialObjectMeta.
func (*PartialObjectMeta) DeepCopyInto ¶
func (in *PartialObjectMeta) DeepCopyInto(out *PartialObjectMeta)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PersistentVolumeClaim ¶
type PersistentVolumeClaim struct { metav1.TypeMeta `json:",inline"` // Standard object's metadata. // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata // +optional PartialObjectMeta `json:"metadata,omitempty"` // Spec defines the desired characteristics of a volume requested by a pod author. // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims // +optional Spec core.PersistentVolumeClaimSpec `json:"spec,omitempty"` // Status represents the current information/status of a persistent volume claim. // Read-only. // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims // +optional Status core.PersistentVolumeClaimStatus `json:"status,omitempty"` }
PersistentVolumeClaim is a user's request for and claim to a persistent volume
func (*PersistentVolumeClaim) DeepCopy ¶
func (in *PersistentVolumeClaim) DeepCopy() *PersistentVolumeClaim
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaim.
func (*PersistentVolumeClaim) DeepCopyInto ¶
func (in *PersistentVolumeClaim) DeepCopyInto(out *PersistentVolumeClaim)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PersistentVolumeClaim) ToAPIObject ¶ added in v0.25.2
func (in *PersistentVolumeClaim) ToAPIObject() *core.PersistentVolumeClaim
type PersistentVolumeClaimTemplate ¶ added in v0.25.1
type PersistentVolumeClaimTemplate struct { // May contain labels and annotations that will be copied into the PVC // when creating it. No other fields are allowed and will be rejected during // validation. // // +optional PartialObjectMeta `json:"metadata,omitempty"` // The specification for the PersistentVolumeClaim. The entire content is // copied unchanged into the PVC that gets created from this // template. The same fields as in a PersistentVolumeClaim // are also valid here. Spec core.PersistentVolumeClaimSpec `json:"spec"` }
PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.
func (*PersistentVolumeClaimTemplate) DeepCopy ¶ added in v0.25.1
func (in *PersistentVolumeClaimTemplate) DeepCopy() *PersistentVolumeClaimTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimTemplate.
func (*PersistentVolumeClaimTemplate) DeepCopyInto ¶ added in v0.25.1
func (in *PersistentVolumeClaimTemplate) DeepCopyInto(out *PersistentVolumeClaimTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PersistentVolumeClaimTemplate) ToAPIObject ¶ added in v0.25.1
func (in *PersistentVolumeClaimTemplate) ToAPIObject() *core.PersistentVolumeClaimTemplate
type PodRuntimeSettings ¶
type PodRuntimeSettings struct { // PodLabels are the labels that will be attached with the respective Pod // +optional PodLabels map[string]string `json:"podLabels,omitempty"` // PodAnnotations are the annotations that will be attached with the respective Pod // +optional PodAnnotations map[string]string `json:"podAnnotations,omitempty"` // NodeSelector is a selector which must be true for the pod to fit on a node. // Selector which must match a node's labels for the pod to be scheduled on that node. // More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ // +optional NodeSelector map[string]string `json:"nodeSelector,omitempty"` // ServiceAccountName is the name of the ServiceAccount to use to run this pod. // More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ // +optional ServiceAccountName string `json:"serviceAccountName,omitempty"` // ServiceAccountAnnotations are the annotations that will be attached with the respective ServiceAccount // +optional ServiceAccountAnnotations map[string]string `json:"serviceAccountAnnotations,omitempty"` // AutomountServiceAccountToken indicates whether a service account token should be automatically mounted. // +optional AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` // 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 `json:"nodeName,omitempty"` // Security options the pod should run with. // More info: https://kubernetes.io/docs/concepts/policy/security-context/ // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ // +optional SecurityContext *core.PodSecurityContext `json:"securityContext,omitempty"` // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodRuntimeSettings. // 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. // More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod // +optional ImagePullSecrets []core.LocalObjectReference `json:"imagePullSecrets,omitempty"` // If specified, the pod's scheduling constraints // +optional Affinity *core.Affinity `json:"affinity,omitempty"` // If specified, the pod will be dispatched by specified scheduler. // If not specified, the pod will be dispatched by default scheduler. // +optional SchedulerName string `json:"schedulerName,omitempty"` // If specified, the pod's tolerations. // +optional Tolerations []core.Toleration `json:"tolerations,omitempty"` // 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 `json:"priorityClassName,omitempty"` // 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 `json:"priority,omitempty"` // If specified, all readiness gates will be evaluated for pod readiness. // A pod is ready when all its containers are ready AND // all conditions specified in the readiness gates have status equal to "True" // More info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md // +optional ReadinessGates []core.PodReadinessGate `json:"readinessGates,omitempty"` // RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used // to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. // If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an // empty definition that uses the default runtime handler. // More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md // This is an alpha feature and may change in the future. // +optional RuntimeClassName *string `json:"runtimeClassName,omitempty"` // EnableServiceLinks indicates whether information about services should be injected into pod's // environment variables, matching the syntax of Docker links. // Optional: Defaults to true. // +optional EnableServiceLinks *bool `json:"enableServiceLinks,omitempty"` // TopologySpreadConstraints describes how a group of pods ought to spread across topology // domains. Scheduler will schedule pods in a way which abides by the constraints. // All topologySpreadConstraints are ANDed. // +optional // +patchMergeKey=topologyKey // +patchStrategy=merge // +listType=map // +listMapKey=topologyKey // +listMapKey=whenUnsatisfiable TopologySpreadConstraints []core.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty" patchStrategy:"merge" patchMergeKey:"topologyKey"` }
func (*PodRuntimeSettings) DeepCopy ¶
func (in *PodRuntimeSettings) DeepCopy() *PodRuntimeSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodRuntimeSettings.
func (*PodRuntimeSettings) DeepCopyInto ¶
func (in *PodRuntimeSettings) DeepCopyInto(out *PodRuntimeSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodSpec ¶
type PodSpec struct { // List of volumes that can be mounted by containers belonging to the pod. // More info: https://kubernetes.io/docs/concepts/storage/volumes // +optional // +patchMergeKey=name // +patchStrategy=merge,retainKeys Volumes []Volume `json:"volumes,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"name"` // List of initialization containers belonging to the pod. // Init containers are executed in order prior to containers being started. If any // init container fails, the pod is considered to have failed and is handled according // to its restartPolicy. The name for an init container or normal container must be // unique among all containers. // Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. // The resourceRequirements of an init container are taken into account during scheduling // by finding the highest request/limit for each resource type, and then using the max of // of that value or the sum of the normal containers. Limits are applied to init containers // in a similar fashion. // Init containers cannot currently be added or removed. // Cannot be updated. // More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ // +patchMergeKey=name // +patchStrategy=merge InitContainers []core.Container `json:"initContainers,omitempty" patchStrategy:"merge" patchMergeKey:"name"` // 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 stop immediately via // the kill signal (no opportunity to shut down). // 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. // Defaults to 30 seconds. // +optional TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` // 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 core.DNSPolicy `json:"dnsPolicy,omitempty"` // NodeSelector is a selector which must be true for the pod to fit on a node. // Selector which must match a node's labels for the pod to be scheduled on that node. // More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ // +optional // +mapType=atomic NodeSelector map[string]string `json:"nodeSelector,omitempty"` // ServiceAccountName is the name of the ServiceAccount to use to run this pod. // More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ // +optional ServiceAccountName string `json:"serviceAccountName,omitempty"` // Host networking requested for this pod. Use the host's network namespace. // If this option is set, the ports that will be used must be specified. // Default to false. // +optional HostNetwork bool `json:"hostNetwork,omitempty"` // Use the host's pid namespace. // Optional: Default to false. // +optional HostPID bool `json:"hostPID,omitempty"` // Use the host's ipc namespace. // Optional: Default to false. // +optional HostIPC bool `json:"hostIPC,omitempty"` // 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. // +optional ShareProcessNamespace *bool `json:"shareProcessNamespace,omitempty"` // 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 *core.PodSecurityContext `json:"securityContext,omitempty"` // 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. // More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod // +optional // +patchMergeKey=name // +patchStrategy=merge ImagePullSecrets []core.LocalObjectReference `json:"imagePullSecrets,omitempty" patchStrategy:"merge" patchMergeKey:"name"` // If specified, the pod's scheduling constraints // +optional Affinity *core.Affinity `json:"affinity,omitempty"` // If specified, the pod will be dispatched by specified scheduler. // If not specified, the pod will be dispatched by default scheduler. // +optional SchedulerName string `json:"schedulerName,omitempty"` // If specified, the pod's tolerations. // +optional Tolerations []core.Toleration `json:"tolerations,omitempty"` // 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 `json:"priorityClassName,omitempty"` // 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 `json:"priority,omitempty"` // Specifies the DNS parameters of a pod. // Parameters specified here will be merged to the generated DNS // configuration based on DNSPolicy. // +optional DNSConfig *core.PodDNSConfig `json:"dnsConfig,omitempty"` // RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used // to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. // If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an // empty definition that uses the default runtime handler. // More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class // +optional RuntimeClassName *string `json:"runtimeClassName,omitempty"` // EnableServiceLinks indicates whether information about services should be injected into pod's // environment variables, matching the syntax of Docker links. // Optional: Defaults to true. // +optional EnableServiceLinks *bool `json:"enableServiceLinks,omitempty"` // TopologySpreadConstraints describes how a group of pods ought to spread across topology // domains. Scheduler will schedule pods in a way which abides by the constraints. // All topologySpreadConstraints are ANDed. // +optional // +patchMergeKey=topologyKey // +patchStrategy=merge // +listType=map // +listMapKey=topologyKey // +listMapKey=whenUnsatisfiable TopologySpreadConstraints []core.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty" patchStrategy:"merge" patchMergeKey:"topologyKey"` // Arguments to the entrypoint. // The docker image's CMD is used if this is not provided. // 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. // Cannot be updated. // More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell // +optional Args []string `json:"args,omitempty"` // List of environment variables to set in the container. // Cannot be updated. // +optional Env []core.EnvVar `json:"env,omitempty"` // Compute Resources required by the sidecar container. // +optional Resources core.ResourceRequirements `json:"resources,omitempty"` // Periodic probe of container liveness. // Container will be restarted if the probe fails. // Controllers may set default LivenessProbe if no liveness probe is provided. // To ignore defaulting, set the value to empty LivenessProbe "{}". // Cannot be updated. // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes // +optional LivenessProbe *core.Probe `json:"livenessProbe,omitempty"` // Periodic probe of container service readiness. // Container will be removed from service endpoints if the probe fails. // Cannot be updated. // Controllers may set default ReadinessProbe if no readyness probe is provided. // To ignore defaulting, set the value to empty ReadynessProbe "{}". // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes // +optional ReadinessProbe *core.Probe `json:"readinessProbe,omitempty"` // Actions that the management system should take in response to container lifecycle events. // Cannot be updated. // +optional Lifecycle *core.Lifecycle `json:"lifecycle,omitempty"` // Security options the pod should run with. // More info: https://kubernetes.io/docs/concepts/policy/security-context/ // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ // +optional ContainerSecurityContext *core.SecurityContext `json:"containerSecurityContext,omitempty"` // Pod volumes to mount into the container's filesystem. // Cannot be updated. // +optional // +patchMergeKey=mountPath // +patchStrategy=merge VolumeMounts []core.VolumeMount `json:"volumeMounts,omitempty" patchStrategy:"merge" patchMergeKey:"mountPath"` // PodPlacementPolicy is the reference of the podPlacementPolicy // +optional PodPlacementPolicy *core.LocalObjectReference `json:"podPlacementPolicy,omitempty"` }
func (*PodSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSpec.
func (*PodSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodTemplateSpec ¶
type PodTemplateSpec struct { // Standard object's metadata. // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata // +optional ObjectMeta `json:"metadata,omitempty"` // Workload controller's metadata. // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata // +optional Controller ObjectMeta `json:"controller,omitempty"` // Specification of the desired behavior of the pod. // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status // +optional Spec PodSpec `json:"spec,omitempty"` }
PodTemplateSpec describes the data a pod should have when created from a template
func (*PodTemplateSpec) DeepCopy ¶
func (in *PodTemplateSpec) DeepCopy() *PodTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplateSpec.
func (*PodTemplateSpec) DeepCopyInto ¶
func (in *PodTemplateSpec) DeepCopyInto(out *PodTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RuntimeSettings ¶
type RuntimeSettings struct { Pod *PodRuntimeSettings `json:"pod,omitempty"` Container *ContainerRuntimeSettings `json:"container,omitempty"` }
func (*RuntimeSettings) DeepCopy ¶
func (in *RuntimeSettings) DeepCopy() *RuntimeSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuntimeSettings.
func (*RuntimeSettings) DeepCopyInto ¶
func (in *RuntimeSettings) DeepCopyInto(out *RuntimeSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServicePort ¶
type ServicePort struct { // 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. // Optional if only one ServicePort is defined on this service. // +optional Name string `json:"name,omitempty"` // The port that will be exposed by this service. Port int32 `json:"port"` // The port on each node on which this service is exposed when type=NodePort or LoadBalancer. // Usually assigned by the system. If specified, it will be allocated to the service // if unused or else creation of the service will fail. // Default is to auto-allocate a port if the ServiceType of this Service requires one. // More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport // +optional NodePort int32 `json:"nodePort,omitempty"` }
ServicePort contains information on service's port.
func (*ServicePort) DeepCopy ¶
func (in *ServicePort) DeepCopy() *ServicePort
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServicePort.
func (*ServicePort) DeepCopyInto ¶
func (in *ServicePort) DeepCopyInto(out *ServicePort)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceSpec ¶
type ServiceSpec struct { // The list of ports that are exposed by this service. // More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies // +patchMergeKey=port // +patchStrategy=merge Ports []ServicePort `json:"ports,omitempty" patchStrategy:"merge" patchMergeKey:"port"` // 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 `json:"clusterIP,omitempty"` // 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/#publishing-services---service-types // +optional Type core.ServiceType `json:"type,omitempty"` // externalIPs is a list of IP addresses for which nodes in the cluster // will also accept traffic for this service. These IPs are not managed by // Kubernetes. The user is responsible for ensuring that traffic arrives // at a node with this IP. A common example is external load-balancers // that are not part of the Kubernetes system. // +optional ExternalIPs []string `json:"externalIPs,omitempty"` // 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 `json:"loadBalancerIP,omitempty"` // 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." // More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/ // +optional LoadBalancerSourceRanges []string `json:"loadBalancerSourceRanges,omitempty"` // 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 core.ServiceExternalTrafficPolicyType `json:"externalTrafficPolicy,omitempty"` // 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 `json:"healthCheckNodePort,omitempty"` // sessionAffinityConfig contains the configurations of session affinity. // +optional SessionAffinityConfig *core.SessionAffinityConfig `json:"sessionAffinityConfig,omitempty"` }
ServiceSpec describes the attributes that a user creates on a service.
func (*ServiceSpec) DeepCopy ¶
func (in *ServiceSpec) DeepCopy() *ServiceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSpec.
func (*ServiceSpec) DeepCopyInto ¶
func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceTemplateSpec ¶
type ServiceTemplateSpec struct { // Standard object's metadata. // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata // +optional ObjectMeta `json:"metadata,omitempty"` // Specification of the desired behavior of the service. // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status // +optional Spec ServiceSpec `json:"spec,omitempty"` }
ServiceTemplateSpec describes the data a service should have when created from a template
func (*ServiceTemplateSpec) DeepCopy ¶
func (in *ServiceTemplateSpec) DeepCopy() *ServiceTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceTemplateSpec.
func (*ServiceTemplateSpec) DeepCopyInto ¶
func (in *ServiceTemplateSpec) DeepCopyInto(out *ServiceTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Volume ¶ added in v0.25.2
type Volume struct { // name of the volume. // Must be a DNS_LABEL and unique within the pod. // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names Name string `json:"name"` // volumeSource represents the location and type of the mounted volume. // If not specified, the Volume is implied to be an EmptyDir. // This implied behavior is deprecated and will be removed in a future version. VolumeSource `json:",inline"` }
Volume represents a named volume in a pod that may be accessed by any container in the pod.
func (*Volume) DeepCopy ¶ added in v0.25.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Volume.
func (*Volume) DeepCopyInto ¶ added in v0.25.2
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Volume) ToAPIObject ¶ added in v0.25.2
type VolumeSource ¶ added in v0.25.2
type VolumeSource struct { // hostPath represents a pre-existing 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. // More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath // --- // 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 *core.HostPathVolumeSource `json:"hostPath,omitempty"` // emptyDir represents a temporary directory that shares a pod's lifetime. // More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir // +optional EmptyDir *core.EmptyDirVolumeSource `json:"emptyDir,omitempty"` // gcePersistentDisk represents a GCE Disk resource that is attached to a // kubelet's host machine and then exposed to the pod. // More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk // +optional GCEPersistentDisk *core.GCEPersistentDiskVolumeSource `json:"gcePersistentDisk,omitempty"` // awsElasticBlockStore represents an AWS Disk resource that is attached to a // kubelet's host machine and then exposed to the pod. // More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore // +optional AWSElasticBlockStore *core.AWSElasticBlockStoreVolumeSource `json:"awsElasticBlockStore,omitempty"` // secret represents a secret that should populate this volume. // More info: https://kubernetes.io/docs/concepts/storage/volumes#secret // +optional Secret *core.SecretVolumeSource `json:"secret,omitempty"` // nfs represents an NFS mount on the host that shares a pod's lifetime // More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs // +optional NFS *core.NFSVolumeSource `json:"nfs,omitempty"` // iscsi represents an ISCSI Disk resource that is attached to a // kubelet's host machine and then exposed to the pod. // More info: https://examples.k8s.io/volumes/iscsi/README.md // +optional ISCSI *core.ISCSIVolumeSource `json:"iscsi,omitempty"` // glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. // More info: https://examples.k8s.io/volumes/glusterfs/README.md // +optional Glusterfs *core.GlusterfsVolumeSource `json:"glusterfs,omitempty"` // persistentVolumeClaimVolumeSource represents a reference to a // PersistentVolumeClaim in the same namespace. // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims // +optional PersistentVolumeClaim *core.PersistentVolumeClaimVolumeSource `json:"persistentVolumeClaim,omitempty"` // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. // More info: https://examples.k8s.io/volumes/rbd/README.md // +optional RBD *core.RBDVolumeSource `json:"rbd,omitempty"` // flexVolume represents a generic volume resource that is // provisioned/attached using an exec based plugin. // +optional FlexVolume *core.FlexVolumeSource `json:"flexVolume,omitempty"` // cinder represents a cinder volume attached and mounted on kubelets host machine. // More info: https://examples.k8s.io/mysql-cinder-pd/README.md // +optional Cinder *core.CinderVolumeSource `json:"cinder,omitempty"` // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime // +optional CephFS *core.CephFSVolumeSource `json:"cephfs,omitempty"` // flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running // +optional Flocker *core.FlockerVolumeSource `json:"flocker,omitempty"` // downwardAPI represents downward API about the pod that should populate this volume // +optional DownwardAPI *core.DownwardAPIVolumeSource `json:"downwardAPI,omitempty"` // fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. // +optional FC *core.FCVolumeSource `json:"fc,omitempty"` // azureFile represents an Azure File Service mount on the host and bind mount to the pod. // +optional AzureFile *core.AzureFileVolumeSource `json:"azureFile,omitempty"` // configMap represents a configMap that should populate this volume // +optional ConfigMap *core.ConfigMapVolumeSource `json:"configMap,omitempty"` // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine // +optional VsphereVolume *core.VsphereVirtualDiskVolumeSource `json:"vsphereVolume,omitempty"` // quobyte represents a Quobyte mount on the host that shares a pod's lifetime // +optional Quobyte *core.QuobyteVolumeSource `json:"quobyte,omitempty"` // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. // +optional AzureDisk *core.AzureDiskVolumeSource `json:"azureDisk,omitempty"` // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine PhotonPersistentDisk *core.PhotonPersistentDiskVolumeSource `json:"photonPersistentDisk,omitempty"` // projected items for all in one resources secrets, configmaps, and downward API Projected *core.ProjectedVolumeSource `json:"projected,omitempty"` // portworxVolume represents a portworx volume attached and mounted on kubelets host machine // +optional PortworxVolume *core.PortworxVolumeSource `json:"portworxVolume,omitempty"` // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. // +optional ScaleIO *core.ScaleIOVolumeSource `json:"scaleIO,omitempty"` // storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. // +optional StorageOS *core.StorageOSVolumeSource `json:"storageos,omitempty"` // csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). // +optional CSI *core.CSIVolumeSource `json:"csi,omitempty"` // ephemeral represents a volume that is handled by a cluster storage driver. // The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, // and deleted when the pod is removed. // // Use this if: // a) the volume is only needed while the pod runs, // b) features of normal volumes like restoring from snapshot or capacity // tracking are needed, // c) the storage driver is specified through a storage class, and // d) the storage driver supports dynamic volume provisioning through // a PersistentVolumeClaim (see EphemeralVolumeSource for more // information on the connection between this volume type // and PersistentVolumeClaim). // // Use PersistentVolumeClaim or one of the vendor-specific // APIs for volumes that persist for longer than the lifecycle // of an individual pod. // // Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to // be used that way - see the documentation of the driver for // more information. // // A pod can use both types of ephemeral volumes and // persistent volumes at the same time. // // +optional Ephemeral *EphemeralVolumeSource `json:"ephemeral,omitempty"` }
Represents the source of a volume to mount. Only one of its members may be specified.
func (*VolumeSource) DeepCopy ¶ added in v0.25.2
func (in *VolumeSource) DeepCopy() *VolumeSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSource.
func (*VolumeSource) DeepCopyInto ¶ added in v0.25.2
func (in *VolumeSource) DeepCopyInto(out *VolumeSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VolumeSource) ToAPIObject ¶ added in v0.25.2
func (in *VolumeSource) ToAPIObject() *core.VolumeSource