v1alpha1

package
v1.5.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 6, 2024 License: Apache-2.0 Imports: 3 Imported by: 13

Documentation

Overview

Package v1alpha1 defines the v1alpha1 version of the OSM API

Index

Constants

View Source
const (
	// OperatingSystemConfigResourceName represents "Resource" defined in Kubernetes
	OperatingSystemConfigResourceName = "operatingsystemconfigs"

	// OperatingSystemConfigKindName represents "Kind" defined in Kubernetes
	OperatingSystemConfigKindName = "OperatingSystemConfig"
)
View Source
const (
	// OperatingSystemProfileResourceName represents "Resource" defined in Kubernetes
	OperatingSystemProfileResourceName = "operatingsystemprofiles"

	// OperatingSystemProfileKindName represents "Kind" defined in Kubernetes
	OperatingSystemProfileKindName = "OperatingSystemProfile"
)
View Source
const (
	// GroupName is the group name used in this package
	GroupName = "operatingsystemmanager.k8c.io"

	// GroupVersion is the group version used in this package
	GroupVersion = "v1alpha1"
)

Variables

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme   = SchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: GroupVersion}

SchemeGroupVersion is group version used to register these objects

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type CloudInitModule added in v0.2.0

type CloudInitModule struct {
	// BootCMD module runs arbitrary commands very early in the boot process, only slightly after a boothook would run.
	BootCMD []string `json:"bootcmd,omitempty"`
	// RHSubscription registers a Red Hat system either by username and password or activation and org
	RHSubscription map[string]string `json:"rh_subscription,omitempty"`
	// RunCMD Run arbitrary commands at a rc.local like level with output to the console.
	RunCMD []string `json:"runcmd,omitempty"`
	// YumRepos adds yum repository configuration to the system.
	YumRepos map[string]map[string]string `json:"yum_repos,omitempty"`
	// YumRepoDir the repo parts directory where individual yum repo config files will be written. Default: /etc/yum.repos.d
	YumRepoDir string `json:"yum_repo_dir,omitempty"`
}

CloudInitModule contains the fields of the cloud init module.

func (*CloudInitModule) DeepCopy added in v0.2.0

func (in *CloudInitModule) DeepCopy() *CloudInitModule

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudInitModule.

func (*CloudInitModule) DeepCopyInto added in v0.2.0

func (in *CloudInitModule) DeepCopyInto(out *CloudInitModule)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CloudProvider added in v0.2.0

type CloudProvider string

CloudProvider represents supported cloud provider. +kubebuilder:validation:Enum=aws;azure;digitalocean;edge;gce;hetzner;kubevirt;linode;nutanix;openstack;equinixmetal;vsphere;fake;alibaba;anexia;scaleway;baremetal;external;vmware-cloud-director;opennebula

const (
	CloudProviderAlibaba             CloudProvider = "alibaba"
	CloudProviderAnexia              CloudProvider = "anexia"
	CloudProviderAWS                 CloudProvider = "aws"
	CloudProviderAzure               CloudProvider = "azure"
	CloudProviderBaremetal           CloudProvider = "baremetal"
	CloudProviderDigitalocean        CloudProvider = "digitalocean"
	CloudProviderEdge                CloudProvider = "edge"
	CloudProviderEquinixMetal        CloudProvider = "equinixmetal"
	CloudProviderExternal            CloudProvider = "external"
	CloudProviderFake                CloudProvider = "fake"
	CloudProviderGoogle              CloudProvider = "gce"
	CloudProviderHetzner             CloudProvider = "hetzner"
	CloudProviderKubeVirt            CloudProvider = "kubevirt"
	CloudProviderLinode              CloudProvider = "linode"
	CloudProviderNutanix             CloudProvider = "nutanix"
	CloudProviderOpenNebula          CloudProvider = "opennebula"
	CloudProviderOpenstack           CloudProvider = "openstack"
	CloudProviderScaleway            CloudProvider = "scaleway"
	CloudProviderVMwareCloudDirector CloudProvider = "vmware-cloud-director"
	CloudProviderVsphere             CloudProvider = "vsphere"
)

type CloudProviderSpec

type CloudProviderSpec struct {
	// Name represents the name of the supported cloud provider
	Name CloudProvider `json:"name"`
	// Spec represents the os/image reference in the supported cloud provider
	// +kubebuilder:pruning:PreserveUnknownFields
	Spec runtime.RawExtension `json:"spec,omitempty"`
}

CloudProviderSpec contains the os/image reference for a specific supported cloud provider

func (*CloudProviderSpec) DeepCopy

func (in *CloudProviderSpec) DeepCopy() *CloudProviderSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudProviderSpec.

func (*CloudProviderSpec) DeepCopyInto

func (in *CloudProviderSpec) DeepCopyInto(out *CloudProviderSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ContainerRuntime added in v0.3.0

type ContainerRuntime string

ContainerRuntime represents supported container runtime +kubebuilder:validation:Enum=docker;containerd

const (
	ContainerRuntimeDocker     ContainerRuntime = "docker"
	ContainerRuntimeContainerd ContainerRuntime = "containerd"
)

type ContainerRuntimeSpec added in v0.2.0

type ContainerRuntimeSpec struct {
	// Name of the Container runtime
	Name ContainerRuntime `json:"name"`
	// Files to add to the main files list when the containerRuntime is selected
	Files []File `json:"files"`
	// Templates to add to the available templates when the containerRuntime is selected
	Templates map[string]string `json:"templates,omitempty"`
}

ContainerRuntimeSpec aggregates information about a specific container runtime

func (*ContainerRuntimeSpec) DeepCopy added in v0.2.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeSpec.

func (*ContainerRuntimeSpec) DeepCopyInto added in v0.2.0

func (in *ContainerRuntimeSpec) DeepCopyInto(out *ContainerRuntimeSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DropIn

type DropIn struct {
	// Name is the name of the drop-in.
	Name string `json:"name"`
	// Content is the content of the drop-in.
	Content string `json:"content"`
}

DropIn is a drop-in configuration for a systemd unit.

func (*DropIn) DeepCopy

func (in *DropIn) DeepCopy() *DropIn

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DropIn.

func (*DropIn) DeepCopyInto

func (in *DropIn) DeepCopyInto(out *DropIn)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type File

type File struct {
	// Path is the path of the file system where the file should get written to.
	Path string `json:"path"`
	// Permissions describes with which permissions the file should get written to the file system.
	// Should be in decimal base and without any leading zeroes.
	// +kubebuilder:default=644
	Permissions int32 `json:"permissions,omitempty"`
	// Content describe the file's content.
	Content FileContent `json:"content"`
}

File is a file that should get written to the host's file system. The content can either be inlined or referenced from a secret in the same namespace.

func (*File) DeepCopy

func (in *File) DeepCopy() *File

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new File.

func (*File) DeepCopyInto

func (in *File) DeepCopyInto(out *File)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FileContent

type FileContent struct {
	// Inline is a struct that contains information about the inlined data.
	Inline *FileContentInline `json:"inline,omitempty"`
}

FileContent can either reference a secret or contain inline configuration.

func (*FileContent) DeepCopy

func (in *FileContent) DeepCopy() *FileContent

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileContent.

func (*FileContent) DeepCopyInto

func (in *FileContent) DeepCopyInto(out *FileContent)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FileContentInline

type FileContentInline struct {
	// Encoding is the file's encoding (e.g. base64).
	Encoding string `json:"encoding,omitempty"`
	// Data is the file's data.
	Data string `json:"data"`
}

FileContentInline contains keys for inlining a file content's data and encoding.

func (*FileContentInline) DeepCopy

func (in *FileContentInline) DeepCopy() *FileContentInline

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileContentInline.

func (*FileContentInline) DeepCopyInto

func (in *FileContentInline) DeepCopyInto(out *FileContentInline)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OSCConfig added in v0.5.0

type OSCConfig struct {
	// Units a list of the systemd unit files which will run on the instance
	Units []Unit `json:"units,omitempty"`
	// Files is a list of files that should exist in the instance
	Files []File `json:"files,omitempty"`
	// UserSSHKeys is a list of attached user ssh keys
	UserSSHKeys []string `json:"userSSHKeys,omitempty"`
	// CloudInitModules contains the supported cloud-init modules
	// +optional
	CloudInitModules *CloudInitModule `json:"modules,omitempty"`
}

func (*OSCConfig) DeepCopy added in v0.5.0

func (in *OSCConfig) DeepCopy() *OSCConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSCConfig.

func (*OSCConfig) DeepCopyInto added in v0.5.0

func (in *OSCConfig) DeepCopyInto(out *OSCConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OSPConfig added in v0.5.0

type OSPConfig struct {
	// SupportedContainerRuntimes represents the container runtimes supported by the given OS.
	// Docker has been deprecated and is no-op.
	SupportedContainerRuntimes []ContainerRuntimeSpec `json:"supportedContainerRuntimes,omitempty"`
	// Templates to be included in units and files
	Templates map[string]string `json:"templates,omitempty"`
	// Units a list of the systemd unit files which will run on the instance
	Units []Unit `json:"units,omitempty"`
	// Files is a list of files that should exist in the instance
	Files []File `json:"files,omitempty"`
	// CloudInitModules field contains the optional cloud-init modules which are supported by OSM
	// +optional
	CloudInitModules *CloudInitModule `json:"modules,omitempty"`
}

func (*OSPConfig) DeepCopy added in v0.5.0

func (in *OSPConfig) DeepCopy() *OSPConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSPConfig.

func (*OSPConfig) DeepCopyInto added in v0.5.0

func (in *OSPConfig) DeepCopyInto(out *OSPConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OperatingSystem added in v0.2.0

type OperatingSystem string

OperatingSystem represents supported operating system. +kubebuilder:validation:Enum=flatcar;rhel;centos;ubuntu;amzn2;rockylinux

const (
	OperatingSystemFlatcar      OperatingSystem = "flatcar"
	OperatingSystemRHEL         OperatingSystem = "rhel"
	OperatingSystemCentOS       OperatingSystem = "centos"
	OperatingSystemUbuntu       OperatingSystem = "ubuntu"
	OperatingSystemAmazonLinux2 OperatingSystem = "amzn2"
	OperatingSystemRockyLinux   OperatingSystem = "rockylinux"
)

type OperatingSystemConfig

type OperatingSystemConfig struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// OperatingSystemConfigSpec represents the operating system configuration spec.
	Spec OperatingSystemConfigSpec `json:"spec"`
}

OperatingSystemConfig is the object that represents the OperatingSystemConfig

func (*OperatingSystemConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatingSystemConfig.

func (*OperatingSystemConfig) DeepCopyInto

func (in *OperatingSystemConfig) DeepCopyInto(out *OperatingSystemConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OperatingSystemConfig) DeepCopyObject

func (in *OperatingSystemConfig) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type OperatingSystemConfigList

type OperatingSystemConfigList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []OperatingSystemConfig `json:"items"`
}

OperatingSystemConfigList is a list of OperatingSystemConfigs

func (*OperatingSystemConfigList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatingSystemConfigList.

func (*OperatingSystemConfigList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OperatingSystemConfigList) DeepCopyObject

func (in *OperatingSystemConfigList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type OperatingSystemConfigSpec

type OperatingSystemConfigSpec struct {
	// OSType represent the operating system name e.g: ubuntu
	OSName OperatingSystem `json:"osName"`
	// OSVersion the version of the operating system
	OSVersion string `json:"osVersion"`
	// CloudProvider represent the cloud provider that support the given operating system version
	CloudProvider CloudProviderSpec `json:"cloudProvider"`
	// BootstrapConfig is used for initial configuration of machine and to fetch the kubernetes secret that contains the provisioning config.
	BootstrapConfig OSCConfig `json:"bootstrapConfig"`
	// ProvisioningConfig is used for provisioning the worker node.
	ProvisioningConfig OSCConfig `json:"provisioningConfig"`
	// ProvisioningUtility used for configuring the worker node. Defaults to cloud-init.
	// +kubebuilder:default=cloud-init
	ProvisioningUtility ProvisioningUtility `json:"provisioningUtility,omitempty"`
}

OperatingSystemConfigSpec represents the data in the newly created OperatingSystemConfig

func (*OperatingSystemConfigSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatingSystemConfigSpec.

func (*OperatingSystemConfigSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OperatingSystemProfile

type OperatingSystemProfile struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// OperatingSystemProfileSpec represents the operating system configuration spec.
	Spec OperatingSystemProfileSpec `json:"spec"`
}

OperatingSystemProfile is the object that represents the OperatingSystemProfile

func (*OperatingSystemProfile) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatingSystemProfile.

func (*OperatingSystemProfile) DeepCopyInto

func (in *OperatingSystemProfile) DeepCopyInto(out *OperatingSystemProfile)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OperatingSystemProfile) DeepCopyObject

func (in *OperatingSystemProfile) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type OperatingSystemProfileList

type OperatingSystemProfileList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []OperatingSystemProfile `json:"items"`
}

OperatingSystemProfileList is a list of OperatingSystemProfiles

func (*OperatingSystemProfileList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatingSystemProfileList.

func (*OperatingSystemProfileList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OperatingSystemProfileList) DeepCopyObject

func (in *OperatingSystemProfileList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type OperatingSystemProfileSpec

type OperatingSystemProfileSpec struct {
	// OSType represent the operating system name e.g: ubuntu
	OSName OperatingSystem `json:"osName"`
	// OSVersion the version of the operating system
	OSVersion string `json:"osVersion"`
	// Version is the version of the operating System Profile
	// +kubebuilder:validation:Pattern=`v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$`
	Version string `json:"version"`
	// SupportedCloudProviders represent the cloud providers that support the given operating system version
	SupportedCloudProviders []CloudProviderSpec `json:"supportedCloudProviders"`
	// BootstrapConfig is used for initial configuration of machine and to fetch the kubernetes secret that contains the provisioning config.
	BootstrapConfig OSPConfig `json:"bootstrapConfig"`
	// ProvisioningConfig is used for provisioning the worker node.
	ProvisioningConfig OSPConfig `json:"provisioningConfig"`
	// ProvisioningUtility used for configuring the worker node. Defaults to cloud-init.
	// +kubebuilder:default=cloud-init
	ProvisioningUtility ProvisioningUtility `json:"provisioningUtility,omitempty"`
}

OperatingSystemProfileSpec represents the data in the newly created OperatingSystemProfile

func (*OperatingSystemProfileSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatingSystemProfileSpec.

func (*OperatingSystemProfileSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ProvisioningUtility added in v1.3.0

type ProvisioningUtility string

ProvisioningUtility used to provision the machines +kubebuilder:validation:Enum=cloud-init;ignition

const (
	ProvisioningUtilityCloudInit ProvisioningUtility = "cloud-init"
	ProvisioningUtilityIgnition  ProvisioningUtility = "ignition"
)

type Unit

type Unit struct {
	// Name is the name of a unit.
	Name string `json:"name"`
	// Enable describes whether the unit is enabled or not.
	Enable *bool `json:"enable,omitempty"`
	// Mask describes whether the unit is masked or not.
	Mask *bool `json:"mask,omitempty"`
	// Content is the unit's content.
	Content *string `json:"content,omitempty"`
	// DropIns is a list of drop-ins for this unit.
	DropIns []DropIn `json:"dropIns,omitempty"`
}

Unit is a systemd unit used for the operating system config.

func (*Unit) DeepCopy

func (in *Unit) DeepCopy() *Unit

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Unit.

func (*Unit) DeepCopyInto

func (in *Unit) DeepCopyInto(out *Unit)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL