Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the forge v1alpha1 API group +kubebuilder:object:generate=true +groupName=forge.dominodatalab.com
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "forge.dominodatalab.com", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type BasicAuthConfig ¶
type BasicAuthConfig struct {
// Inline basic auth username.
// +kubebuilder:validation:Optional
Username string `json:"username"`
// Inline basic auth password.
// +kubebuilder:validation:Optional
Password string `json:"password"`
// Name of secret containing dockerconfigjson credentials to registry.
// +kubebuilder:validation:Optional
SecretName string `json:"secretName"`
// Namespace where credentials secret resides.
// +kubebuilder:validation:Optional
SecretNamespace string `json:"secretNamespace"`
}
BasicAuthConfig contains credentials either inline or a reference to a dockerconfigjson secret.
func (*BasicAuthConfig) DeepCopy ¶
func (in *BasicAuthConfig) DeepCopy() *BasicAuthConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BasicAuthConfig.
func (*BasicAuthConfig) DeepCopyInto ¶
func (in *BasicAuthConfig) DeepCopyInto(out *BasicAuthConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (BasicAuthConfig) IsInline ¶
func (auth BasicAuthConfig) IsInline() bool
func (BasicAuthConfig) IsSecret ¶
func (auth BasicAuthConfig) IsSecret() bool
func (BasicAuthConfig) Validate ¶
func (auth BasicAuthConfig) Validate() error
type BuildState ¶
type BuildState string
BuildState represents a phase in the build process.
const ( // BuildStateInitialized indicates that a new build has been intercepted by the controller. BuildStateInitialized BuildState = "Initialized" // BuildStateBuilding indicates that a build that is currently running. BuildStateBuilding BuildState = "Building" // BuildStateCompleted indicates that a build has finished successfully. BuildStateCompleted BuildState = "Completed" // BuildStateFailed indicates that a build encountered an error during the build process. BuildStateFailed BuildState = "Failed" )
type ContainerImageBuild ¶
type ContainerImageBuild struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ContainerImageBuildSpec `json:"spec,omitempty"`
Status ContainerImageBuildStatus `json:"status,omitempty"`
}
ContainerImageBuild is the Schema for the containerimagebuilds API
func (*ContainerImageBuild) DeepCopy ¶
func (in *ContainerImageBuild) DeepCopy() *ContainerImageBuild
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerImageBuild.
func (*ContainerImageBuild) DeepCopyInto ¶
func (in *ContainerImageBuild) DeepCopyInto(out *ContainerImageBuild)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ContainerImageBuild) DeepCopyObject ¶
func (in *ContainerImageBuild) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ContainerImageBuildList ¶
type ContainerImageBuildList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ContainerImageBuild `json:"items"`
}
ContainerImageBuildList contains a list of ContainerImageBuild
func (*ContainerImageBuildList) DeepCopy ¶
func (in *ContainerImageBuildList) DeepCopy() *ContainerImageBuildList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerImageBuildList.
func (*ContainerImageBuildList) DeepCopyInto ¶
func (in *ContainerImageBuildList) DeepCopyInto(out *ContainerImageBuildList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ContainerImageBuildList) DeepCopyObject ¶
func (in *ContainerImageBuildList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ContainerImageBuildSpec ¶
type ContainerImageBuildSpec struct {
// Name used to build an image.
// +kubebuilder:validation:MinLength=1
ImageName string `json:"imageName"`
// Build context for the image. This can be a local path or url.
Context string `json:"context"`
// If the build context is a URL, the timeout in seconds for fetching. Defaults to 0, which disables the timeout.
// +kubebuilder:validation:Optional
ContextTimeoutSeconds uint16 `json:"contextTimeoutSeconds"`
// Push to one or more registries.
// +kubebuilder:validation:MinItems=1
PushRegistries []string `json:"pushTo"`
// Configure one or more registry hosts with special requirements.
// +kubebuilder:validation:Optional
Registries []Registry `json:"registries"`
// Image build arguments.
// +kubebuilder:validation:Optional
BuildArgs []string `json:"buildArgs"`
// Labels added to the image during build.
// +kubebuilder:validation:Optional
Labels map[string]string `json:"labels"`
// Limits build cpu consumption.
// +kubebuilder:validation:Optional
CPU string `json:"cpu"`
// Limits build memory consumption.
// +kubebuilder:validation:Optional
Memory string `json:"memory"`
// Resources are the requests and limits applied to image builds.
// +kubebuilder:validation:Optional
Resources corev1.ResourceRequirements `json:"resources,omitempty"`
// Optional deadline in seconds for image build to complete.
// +kubebuilder:validation:Optional
TimeoutSeconds uint16 `json:"timeoutSeconds"`
// Prevents images larger than this size (in bytes) from being pushed to a registry. By default,
// an image of any size will be pushed.
// +kubebuilder:validation:Optional
ImageSizeLimit uint64 `json:"imageSizeLimit"`
// Provide arbitrary data for use in plugins that extend default capabilities.
// +kubebuilder:validation:Optional
PluginData map[string]string `json:"pluginData"`
// Disable the use of layer caches during build.
// +kubebuilder:validation:Optional
DisableBuildCache bool `json:"disableBuildCache"`
// Disable export of layer cache when it is enabled.
// +kubebuilder:validation:Optional
DisableLayerCacheExport bool `json:"disableLayerCacheExport"`
// Override queue where messages are published when status update messaging is configured. If this value is provided
// and the message configuration is missing, then no messages will be published.
// +kubebuilder:validation:Optional
MessageQueueName string `json:"messageQueueName"`
// Specifies zero or more containers that will run before the build container.
// This is deliberately not of the Container type to prevent an account with permission for creating the build
// custom resource from elevating its privilege to what the account running the build job can do. E.g. by being
// able to specify volume mounts, devices, capabilities, SELinux options, etc.
// +kubebuilder:validation:Optional
InitContainers []InitContainer `json:"initContainers"`
}
ContainerImageBuildSpec defines the desired state of ContainerImageBuild
func (*ContainerImageBuildSpec) DeepCopy ¶
func (in *ContainerImageBuildSpec) DeepCopy() *ContainerImageBuildSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerImageBuildSpec.
func (*ContainerImageBuildSpec) DeepCopyInto ¶
func (in *ContainerImageBuildSpec) DeepCopyInto(out *ContainerImageBuildSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ContainerImageBuildStatus ¶
type ContainerImageBuildStatus struct {
PreviousState BuildState `json:"-"` // NOTE: should we persist this value?
State BuildState `json:"state,omitempty"`
ImageURLs []string `json:"imageURLs,omitempty"`
ImageSize uint64 `json:"imageSize,omitempty"`
ErrorMessage string `json:"errorMessage,omitempty"`
BuildStartedAt *metav1.Time `json:"buildStartedAt,omitempty"`
BuildCompletedAt *metav1.Time `json:"buildCompletedAt,omitempty"`
}
ContainerImageBuildStatus defines the observed state of ContainerImageBuild
func (*ContainerImageBuildStatus) DeepCopy ¶
func (in *ContainerImageBuildStatus) DeepCopy() *ContainerImageBuildStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerImageBuildStatus.
func (*ContainerImageBuildStatus) DeepCopyInto ¶
func (in *ContainerImageBuildStatus) DeepCopyInto(out *ContainerImageBuildStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ContainerImageBuildStatus) SetState ¶
func (s *ContainerImageBuildStatus) SetState(state BuildState)
SetStatus will set a new build state and preserve the previous state in a transient field. An initialized state will be set when no state is provided.
type InitContainer ¶
type InitContainer struct {
// Name of the init container.
// +kubebuilder:validation:MinLength=1
Name string `json:"name"`
// Docker image name.
// +kubebuilder:validation:MinLength=1
Image string `json:"image"`
// Entrypoint array. The Docker image's ENTRYPOINT is used if this is not provided.
// +kubebuilder:validation:Optional
Command []string `json:"command"`
// Arguments to the entrypoint. The Docker image's CMD is used if this is not provided.
// +kubebuilder:validation:Optional
Args []string `json:"args"`
// Environment variables.
// +kubebuilder:validation:Optional
Env []corev1.EnvVar `json:"env"`
}
InitContainer specifies a container that will run before the build container.
func (*InitContainer) DeepCopy ¶
func (in *InitContainer) DeepCopy() *InitContainer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InitContainer.
func (*InitContainer) DeepCopyInto ¶
func (in *InitContainer) DeepCopyInto(out *InitContainer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Registry ¶
type Registry struct {
// Registry hostname.
// +kubebuilder:validation:MinLength=1
Server string `json:"server"`
// Push image to a plain HTTP registry.
// +kubebuilder:validation:Optional
NonSSL bool `json:"nonSSL"`
// Configure basic authentication credentials for a registry.
// +kubebuilder:validation:Optional
BasicAuth BasicAuthConfig `json:"basicAuth"`
// When enabled, the controller will request credentials from the specific cloud registry (AWS, GCP, Azure Cloud)
// and provide them to the build job for authentication.
// +kubebuilder:validation:Optional
DynamicCloudCredentials bool `json:"dynamicCloudCredentials"`
}
Registry contains the parameters required to pull and/or push from an OCI distribution registry.
func (*Registry) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Registry.
func (*Registry) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.