Documentation
¶
Overview ¶
Package v1alpha1 contains resources relating to Crossplane packages. +kubebuilder:object:generate=true +groupName=pkg.crossplane.io +versionName=v1alpha1
Index ¶
Constants ¶
const ( Group = "pkg.crossplane.io" Version = "v1alpha1" )
Package type metadata.
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: Version} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} // AddToScheme adds all registered types to the scheme AddToScheme = SchemeBuilder.AddToScheme )
var ( ControllerConfigKind = reflect.TypeOf(ControllerConfig{}).Name() ControllerConfigGroupKind = schema.GroupKind{Group: Group, Kind: ControllerConfigKind}.String() ControllerConfigKindAPIVersion = ControllerConfigKind + "." + SchemeGroupVersion.String() ControllerConfigGroupVersionKind = SchemeGroupVersion.WithKind(ControllerConfigKind) )
ControllerConfig type metadata.
Functions ¶
This section is empty.
Types ¶
type ControllerConfig ¶ added in v0.14.0
type ControllerConfig struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ControllerConfigSpec `json:"spec,omitempty"`
}
ControllerConfig is the CRD type for a packaged controller configuration. Deprecated: This API is replaced by DeploymentRuntimeConfig, and is scheduled to be removed in a future release. See the design doc for more details: https://github.com/crossplane/crossplane/blob/11bbe13ea3604928cc4e24e8d0d18f3f5f7e847c/design/one-pager-package-runtime-config.md +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:scope=Cluster +kubebuilder:deprecatedversion:warning="ControllerConfig.pkg.crossplane.io/v1alpha1 is deprecated. Use DeploymentRuntimeConfig from pkg.crossplane.io/v1beta1 instead."
func (*ControllerConfig) DeepCopy ¶ added in v0.14.0
func (in *ControllerConfig) DeepCopy() *ControllerConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfig.
func (*ControllerConfig) DeepCopyInto ¶ added in v0.14.0
func (in *ControllerConfig) DeepCopyInto(out *ControllerConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ControllerConfig) DeepCopyObject ¶ added in v0.14.0
func (in *ControllerConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ControllerConfigList ¶ added in v0.14.0
type ControllerConfigList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ControllerConfig `json:"items"`
}
ControllerConfigList contains a list of ControllerConfig.
func (*ControllerConfigList) DeepCopy ¶ added in v0.14.0
func (in *ControllerConfigList) DeepCopy() *ControllerConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfigList.
func (*ControllerConfigList) DeepCopyInto ¶ added in v0.14.0
func (in *ControllerConfigList) DeepCopyInto(out *ControllerConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ControllerConfigList) DeepCopyObject ¶ added in v0.14.0
func (in *ControllerConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ControllerConfigSpec ¶ added in v0.14.0
type ControllerConfigSpec struct {
// Metadata that will be added to the provider Pod.
// +optional
Metadata *PodObjectMeta `json:"metadata,omitempty"`
// Number of desired pods. This is a pointer to distinguish between explicit
// zero and not specified. Defaults to 1.
// Note: If more than 1 replica is set and leader election is not enabled then
// controllers could conflict. Environment variable "LEADER_ELECTION" can be
// used to enable leader election process.
// +optional
Replicas *int32 `json:"replicas,omitempty"`
// Docker image name.
// More info: https://kubernetes.io/docs/concepts/containers/images
// This field is optional to allow higher level config management to default or override
// container images in workload controllers like Deployments and StatefulSets.
// +optional
Image *string `json:"image,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/
// If specified, a ServiceAccount named this ServiceAccountName will be used for
// the spec.serviceAccountName field in Pods to be created and for the subjects.name field
// in a ClusterRoleBinding to be created.
// If there is no ServiceAccount named this ServiceAccountName, a new ServiceAccount
// will be created.
// If there is a pre-existing ServiceAccount named this ServiceAccountName, the ServiceAccount
// will be used. The annotations in the ControllerConfig will be copied to the ServiceAccount
// and pre-existing annotations will be kept.
// Regardless of whether there is a ServiceAccount created by Crossplane or is in place already,
// the ServiceAccount will be deleted once the Provider and ControllerConfig are deleted.
// +optional
ServiceAccountName *string `json:"serviceAccountName,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"`
// PodSecurityContext holds pod-level security attributes and common container settings.
// Optional: Defaults to empty. See type description for default values of each field.
// +optional
PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`
// SecurityContext holds container-level security attributes and common container settings.
// Optional: Defaults to empty. See type description for default values of each field.
// +optional
SecurityContext *corev1.SecurityContext `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. 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
// Setting ImagePullSecrets will replace any secrets that have been
// propagated to a controller Deployment, typically via packagePullSecrets.
// +optional
ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,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"`
// If specified, the pod's scheduling constraints
// +optional
Affinity *corev1.Affinity `json:"affinity,omitempty"`
// If specified, the pod's tolerations.
// +optional
Tolerations []corev1.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"`
// RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used
// to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run.
// If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an
// empty definition that uses the default runtime handler.
// More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md
// This is a beta feature as of Kubernetes v1.14.
// +optional
RuntimeClassName *string `json:"runtimeClassName,omitempty"`
// Compute Resources required by this container.
// Cannot be updated.
// More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
// +optional
ResourceRequirements *corev1.ResourceRequirements `json:"resources,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"`
// 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 []corev1.EnvFromSource `json:"envFrom,omitempty"`
// List of environment variables to set in the container.
// Cannot be updated.
// +optional
Env []corev1.EnvVar `json:"env,omitempty"`
// List of container ports to expose on the container
// +optional
Ports []corev1.ContainerPort `json:"ports,omitempty"`
// List of volumes that can be mounted by containers belonging to the pod.
// More info: https://kubernetes.io/docs/concepts/storage/volumes
// +optional
Volumes []corev1.Volume `json:"volumes,omitempty"`
// List of VolumeMounts to mount into the container's filesystem.
// Cannot be updated.
// +optional
VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
}
ControllerConfigSpec specifies the configuration for a packaged controller. Values provided will override package manager defaults. Labels and annotations are passed to both the controller Deployment and ServiceAccount.
func (*ControllerConfigSpec) DeepCopy ¶ added in v0.14.0
func (in *ControllerConfigSpec) DeepCopy() *ControllerConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfigSpec.
func (*ControllerConfigSpec) DeepCopyInto ¶ added in v0.14.0
func (in *ControllerConfigSpec) DeepCopyInto(out *ControllerConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodObjectMeta ¶ added in v1.1.0
type PodObjectMeta struct {
// 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"`
// Map of string keys and values that can be used to organize and
// categorize (scope and select) objects. This will only affect
// labels on the pod, not the pod selector. Labels will be merged
// with internal labels used by crossplane, and labels with a
// crossplane.io key might be overwritten.
// More info: http://kubernetes.io/docs/user-guide/labels
// +optional
Labels map[string]string `json:"labels,omitempty"`
}
PodObjectMeta is metadata that is added to the Pods in a provider's Deployment.
func (*PodObjectMeta) DeepCopy ¶ added in v1.1.0
func (in *PodObjectMeta) DeepCopy() *PodObjectMeta
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodObjectMeta.
func (*PodObjectMeta) DeepCopyInto ¶ added in v1.1.0
func (in *PodObjectMeta) DeepCopyInto(out *PodObjectMeta)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.