Documentation ¶
Overview ¶
+groupName=container.deployer.landscaper.gardener.cloud
Index ¶
- Constants
- Variables
- func Kind(kind string) schema.GroupKind
- func RegisterDefaults(scheme *runtime.Scheme) error
- func Resource(resource string) schema.GroupResource
- func SetObjectDefaults_Configuration(in *Configuration)
- type Configuration
- type ContainerSpec
- type ContainerStatus
- type Controller
- type DebugOptions
- type GarbageCollection
- type HPAConfiguration
- type OperationType
- type PodStatus
- type ProviderConfiguration
- type ProviderStatus
Constants ¶
const BasePath = "/data/ls"
BasePath is the base path inside a container that contains the container deployer specific data.
const ComponentDescriptorPathName = "COMPONENT_DESCRIPTOR_PATH"
ComponentDescriptorPathName is the name of the env var that points to the component descriptor.
const ConfigurationFilename = "configuration.json"
ConfigurationFilename is the name of the file that contains the provider configuration as json.
const ConfigurationPathName = "CONFIGURATION_PATH"
ConfigurationPathName is the name of the env var that points to the provider configuration file.
const ContainerDeployerDeployItemGenerationLabel = "deployitem.container.deployer.landscaper.gardener.cloud/generation"
ContainerDeployerDeployItemGenerationLabel is the name of the label that indicates the deploy item generation.
const ContainerDeployerDeployItemNameLabel = "deployitem.container.deployer.landscaper.gardener.cloud/name"
ContainerDeployerDeployItemNameLabel is the name of the label that is used to identify the deploy item of a pod.
const ContainerDeployerDeployItemNamespaceLabel = "deployitem.container.deployer.landscaper.gardener.cloud/namespace"
ContainerDeployerDeployItemNamespaceLabel is the name of the label that is used to identify the deploy item of a pod.
const ContainerDeployerFinalizer = "container.deployer.landscaper.gardener.cloud/finalizer"
ContainerDeployerFinalizer is the finalizer that is set by the container deployer
const ContainerDeployerIDLabel = "container.deployer.landscaper.gardener.cloud/deployer-id"
ContainerDeployerIDLabel is the unique id of the deployer managing the deploy item.
const ContainerDeployerNameLabel = "container.deployer.landscaper.gardener.cloud/name"
ContainerDeployerNameLabel is the name of the label that is used to identify managed pods.
const ContainerDeployerOperationForceCleanupAnnotation = "container.deployer.landscaper.gardener.cloud/force-cleanup"
ContainerDeployerOperationForceCleanupAnnotation is the name of the annotation that triggers the force deletion of the deploy item. Force deletion means that the delete container is skipped and all other resources are cleaned up.
const ContainerDeployerStateNumAnnotation = "container.deployer.landscaper.gardener.cloud/num"
ContainerDeployerStateNumAnnotation is a annotation that is used to define the order of chunks that are stored in the secrets.
const ContainerDeployerStateUUIDAnnotation = "container.deployer.landscaper.gardener.cloud/uuid"
ContainerDeployerStateUUIDAnnotation is a annotation that is used to group chunks that are stored in the secrets.
const ContainerDeployerTypeLabel = "container.deployer.landscaper.gardener.cloud/type"
ContainerDeployerTypeLabel is a label that is used to identify secrets that contain the state of a container.
const ContentPathName = "CONTENT_PATH"
ContentPathName is the name of the env var that points to the blob content of the definition.
const DeployItemName = "DEPLOY_ITEM_NAME"
DeployItemName is the name of the env var that contains name of the source DeployItem.
const DeployItemNamespaceName = "DEPLOY_ITEM_NAMESPACE"
DeployItemNamespaceName is the name of the env var that contains namespace of the source DeployItem.
const ExportsPathName = "EXPORTS_PATH"
ExportsPathName is the name of the env var that points to the exports file.
const GroupName = "container.deployer.landscaper.gardener.cloud"
GroupName is the name of the Garden API group.
const ImportsFilename = "import.json"
ImportsFilename is the name of the file that contains the import values as json.
const ImportsPathName = "IMPORTS_PATH"
ImportsPathName is the name of the env var that points to the imports file.
const InitContainerConditionType = "InitContainer"
InitContainerConditionType defines the condition for the current init container
const InitContainerName = "init"
InitContainerName is the name of the container running the init container.
const MainContainerName = "main"
MainContainerName is the name of the container running the user workload.
const OperationName = "OPERATION"
OperationName is the name of the env var that specifies the current operation that the image should execute
const PodName = "POD_NAME"
PodName is the name of the env var that contains the name of the pod.
const PodNamespaceName = "POD_NAMESPACE"
PodNamespaceName is the name of the env var that contains the namespace of the pod.
const RegistrySecretBasePathName = "REGISTRY_SECRETS_DIR"
RegistrySecretBasePathName is the environment variable pointing to the file system location of all OCI pull secrets
const StatePathName = "STATE_PATH"
StatePathName is the name of the env var that points to the directory where the state can be stored.
const TargetFileName = "target.json"
TargetFileName is the name of the file that contains the target content.
const TargetPathName = "TARGET_PATH"
TargetPathName is the name of the env var that points to the target content.
const WaitContainerConditionType = "WaitContainer"
WaitContainerConditionType defines the condition of the current wait container
const WaitContainerName = "wait"
WaitContainerName is the name of the container running the sidecar container.
Variables ¶
var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = localSchemeBuilder.AddToScheme )
var ComponentDescriptorPath = filepath.Join(SharedBasePath, "component_descriptor.json")
ComponentDescriptorPath is the path to the component descriptor file.
var ConfigurationPath = filepath.Join(BasePath, "internal", ConfigurationFilename)
ConfigurationPath is the path to the configuration file.
var ContentPath = filepath.Join(SharedBasePath, "content")
ContentPath is the path to the content directory.
var ( DefaultEnvVars = []corev1.EnvVar{ { Name: ImportsPathName, Value: ImportsPath, }, { Name: ExportsPathName, Value: ExportsPath, }, { Name: ComponentDescriptorPathName, Value: ComponentDescriptorPath, }, { Name: TargetPathName, Value: TargetPath, }, { Name: ContentPathName, Value: ContentPath, }, { Name: StatePathName, Value: StatePath, }, { Name: PodName, ValueFrom: &corev1.EnvVarSource{ FieldRef: &corev1.ObjectFieldSelector{ FieldPath: "metadata.name", }, }, }, { Name: PodNamespaceName, ValueFrom: &corev1.EnvVarSource{ FieldRef: &corev1.ObjectFieldSelector{ FieldPath: "metadata.namespace", }, }, }, } )
var ExportsPath = filepath.Join(SharedBasePath, "exports", "values")
ExportsPath is the path to the export file.
var ImportsPath = filepath.Join(SharedBasePath, "imports", ImportsFilename)
ImportsPath is the path to the imports file.
var RegistrySecretBasePath = filepath.Join(BasePath, "registry_secrets")
RegistrySecretBasePath is the path to all OCI pull secrets
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
SchemeGroupVersion is group version used to register these objects
SharedBasePath is the base path inside the container that is shared between the main and ls containers
var StatePath = filepath.Join(SharedBasePath, "state")
StatePath is the path to the state directory.
var TargetInitDir = filepath.Join(BasePath, "targets")
TargetInitDir is the directory in which the target is mounted in the init container, which then copies it to TargetPath.
var TargetPath = filepath.Join(SharedBasePath, "targets", TargetFileName)
TargetPath is the path to the target content file.
var UseOCMName = "USE_OCM"
Functions ¶
func RegisterDefaults ¶
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 Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
func SetObjectDefaults_Configuration ¶
func SetObjectDefaults_Configuration(in *Configuration)
Types ¶
type Configuration ¶
type Configuration struct { metav1.TypeMeta `json:",inline"` // Identity identity describes the unique identity of the deployer. // +optional Identity string `json:"identity,omitempty"` // OCI configures the oci client of the controller // +optional OCI *config.OCIConfiguration `json:"oci,omitempty"` // TargetSelector describes all selectors the deployer should depend on. TargetSelector []lsv1alpha1.TargetSelector `json:"targetSelector,omitempty"` // Namespace defines the namespace where the pods should be executed. Namespace string `json:"namespace"` // DefaultImage configures the default images that is used if the DeployItem // does not specify one. DefaultImage ContainerSpec `json:"defaultImage"` // InitContainerImage defines the image that is used to init the container. // This container bootstraps the necessary directories and files. InitContainer ContainerSpec `json:"initContainer"` // SidecarContainerImage defines the image that is used as a // sidecar to the defined main container. // The sidecar container is responsible to collect the exports and the state of the main container. WaitContainer ContainerSpec `json:"waitContainer"` // GarbageCollection configures the container deployer garbage collector. GarbageCollection GarbageCollection `json:"garbageCollection"` // DebugOptions configure additional debug options. DebugOptions *DebugOptions `json:"debug,omitempty"` // HPAConfiguration contains the configuration for horizontal pod autoscaling. HPAConfiguration *HPAConfiguration `json:"hpa,omitempty"` // Controller contains configuration concerning the controller framework. Controller Controller `json:"controller,omitempty"` // +optional UseOCMLib bool `json:"useOCMLib,omitempty"` }
Configuration is the container deployer configuration that configures the controller
func (*Configuration) DeepCopy ¶
func (in *Configuration) DeepCopy() *Configuration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Configuration.
func (*Configuration) DeepCopyInto ¶
func (in *Configuration) DeepCopyInto(out *Configuration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Configuration) DeepCopyObject ¶
func (in *Configuration) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ContainerSpec ¶
type ContainerSpec struct { // Docker image name. // More info: https://kubernetes.io/docs/concepts/containers/images // The image will be defaulted by the container deployer to the configured default. Image string `json:"image,omitempty"` // Entrypoint array. Not executed within a shell. // The docker image's ENTRYPOINT 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 Command []string `json:"command,omitempty"` // 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"` // Image pull policy. // One of Always, Never, IfNotPresent. // Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. // Cannot be updated. // More info: https://kubernetes.io/docs/concepts/containers/images#updating-images // +optional ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"` }
ContainerSpec defines a container specification
func (*ContainerSpec) DeepCopy ¶
func (in *ContainerSpec) DeepCopy() *ContainerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerSpec.
func (*ContainerSpec) DeepCopyInto ¶
func (in *ContainerSpec) DeepCopyInto(out *ContainerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ContainerStatus ¶
type ContainerStatus struct { // A human readable message indicating details about why the pod is in this condition. // +optional Message string `json:"message,omitempty"` // A brief CamelCase message indicating details about why the pod is in this state. // e.g. 'Evicted' // +optional Reason string `json:"reason,omitempty"` // Details about the container's current condition. // +optional State corev1.ContainerState `json:"state,omitempty"` // The image the container is running. // More info: https://kubernetes.io/docs/concepts/containers/images Image string `json:"image"` // ImageID of the container's image. ImageID string `json:"imageID"` // ExitCode of the main container. // +optional ExitCode *int32 `json:"exitCode,omitempty"` }
ContainerStatus describes the status of a pod with its init, wait and main container.
func (*ContainerStatus) DeepCopy ¶
func (in *ContainerStatus) DeepCopy() *ContainerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerStatus.
func (*ContainerStatus) DeepCopyInto ¶
func (in *ContainerStatus) DeepCopyInto(out *ContainerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Controller ¶
type Controller struct {
lsconfigv1alpha1.CommonControllerConfig
}
Controller contains configuration concerning the controller framework.
func (*Controller) DeepCopy ¶
func (in *Controller) DeepCopy() *Controller
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Controller.
func (*Controller) DeepCopyInto ¶
func (in *Controller) DeepCopyInto(out *Controller)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DebugOptions ¶
type DebugOptions struct { // KeepPod will only remove the finalizer on the pod but will not delete the pod. KeepPod bool `json:"keepPod,omitempty"` }
DebugOptions defines optional debug options.
func (*DebugOptions) DeepCopy ¶
func (in *DebugOptions) DeepCopy() *DebugOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DebugOptions.
func (*DebugOptions) DeepCopyInto ¶
func (in *DebugOptions) DeepCopyInto(out *DebugOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GarbageCollection ¶
type GarbageCollection struct { // Disable disables the garbage collector and the resources clean-up. Disable bool `json:"disable"` // Worker defines the number of parallel garbage collection routines. // Defaults to 5. Worker int `json:"worker"` // RequeueTime specifies the duration after which the object, which is not yet ready to be garbage collected, is requeued. // Defaults to 3600. RequeueTimeSeconds int `json:"requeueTimeSeconds"` }
GarbageCollection defines the container deployer garbage collection configuration.
func (*GarbageCollection) DeepCopy ¶
func (in *GarbageCollection) DeepCopy() *GarbageCollection
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GarbageCollection.
func (*GarbageCollection) DeepCopyInto ¶
func (in *GarbageCollection) DeepCopyInto(out *GarbageCollection)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HPAConfiguration ¶
type HPAConfiguration struct {
MaxReplicas int32 `json:"maxReplicas,omitempty"`
}
HPAConfiguration contains the configuration for horizontal pod autoscaling.
func (*HPAConfiguration) DeepCopy ¶
func (in *HPAConfiguration) DeepCopy() *HPAConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HPAConfiguration.
func (*HPAConfiguration) DeepCopyInto ¶
func (in *HPAConfiguration) DeepCopyInto(out *HPAConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OperationType ¶
type OperationType string
OperationType defines the value of a Operation that is propagated to the container.
const OperationDelete OperationType = "DELETE"
OperationDelete is the value of the Operation env var that defines a delete operation.
const OperationReconcile OperationType = "RECONCILE"
OperationReconcile is the value of the Operation env var that defines a reconcile operation.
type PodStatus ¶
type PodStatus struct { // PodName is the name of the created pod. PodName string `json:"podName"` // LastRun is the time when the pod was executed the last time. LastRun *metav1.Time `json:"lastRun,omitempty"` // LastSuccessfulJobID is set to the current JobID when the pod successfully finished. // If the pod has not yet finished, this field will be nil. LastSuccessfulJobID *string `json:"lastSuccessfulJobID,omitempty"` // ContainerStatus contains the status of the pod that // executes the configured container. ContainerStatus ContainerStatus `json:"containerStatus"` // InitContainerStatus contains the status of the init container. InitContainerStatus ContainerStatus `json:"initContainerStatus"` // WaitContainerStatus contains the status of the wait container. WaitContainerStatus ContainerStatus `json:"waitContainerStatus"` }
PodStatus describes the status of a pod with its init, wait and main container
func (*PodStatus) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodStatus.
func (*PodStatus) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProviderConfiguration ¶
type ProviderConfiguration struct { metav1.TypeMeta `json:",inline"` // Docker image name. // More info: https://kubernetes.io/docs/concepts/containers/images // The image will be defaulted by the container deployer to the configured default. // +optional Image string `json:"image,omitempty"` // Entrypoint array. Not executed within a shell. // The docker image's ENTRYPOINT 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 Command []string `json:"command,omitempty"` // 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"` // ImportValues contains the import values for the container. // +optional ImportValues json.RawMessage `json:"importValues,omitempty"` // Blueprint is the resolved reference to the Blueprint definition // +optional Blueprint *lsv1alpha1.BlueprintDefinition `json:"blueprint,omitempty"` // ComponentDescriptor is the resolved reference to the ComponentDescriptor defnition // +optional ComponentDescriptor *lsv1alpha1.ComponentDescriptorDefinition `json:"componentDescriptor,omitempty"` // RegistryPullSecrets defines a list of registry credentials that are used to // pull blueprints and component descriptors from the respective registry. // For more info see: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ // Note that the type information is used to determine the secret key and the type of the secret. // +optional RegistryPullSecrets []lsv1alpha1.ObjectReference `json:"registryPullSecrets,omitempty"` // ContinuousReconcile contains the schedule for continuous reconciliation. // +optional ContinuousReconcile *cr.ContinuousReconcileSpec `json:"continuousReconcile,omitempty"` }
ProviderConfiguration is the container deployer configuration that is expected in a DeployItem
func (*ProviderConfiguration) DeepCopy ¶
func (in *ProviderConfiguration) DeepCopy() *ProviderConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderConfiguration.
func (*ProviderConfiguration) DeepCopyInto ¶
func (in *ProviderConfiguration) DeepCopyInto(out *ProviderConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ProviderConfiguration) DeepCopyObject ¶
func (in *ProviderConfiguration) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ProviderStatus ¶
type ProviderStatus struct { metav1.TypeMeta `json:",inline"` // LastOperation defines the last run operation of the pod. // The operation can be either reconcile or deletion. LastOperation string `json:"lastOperation"` // PodStatus indicated the status of the executed pod. PodStatus *PodStatus `json:"podStatus,omitempty"` }
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object ProviderStatus is the container provider specific status
func (*ProviderStatus) DeepCopy ¶
func (in *ProviderStatus) DeepCopy() *ProviderStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderStatus.
func (*ProviderStatus) DeepCopyInto ¶
func (in *ProviderStatus) DeepCopyInto(out *ProviderStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ProviderStatus) DeepCopyObject ¶
func (in *ProviderStatus) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
+groupName=container.deployer.landscaper.gardener.cloud
|
+groupName=container.deployer.landscaper.gardener.cloud |