Documentation ¶
Overview ¶
Package v1beta1 contains API Schema definitions for the v1beta1 API group +kubebuilder:object:generate=true +groupName=claudie.io
Index ¶
- Constants
- Variables
- type ClustersStatus
- type InputManifest
- func (in *InputManifest) DeepCopy() *InputManifest
- func (in *InputManifest) DeepCopyInto(out *InputManifest)
- func (in *InputManifest) DeepCopyObject() runtime.Object
- func (im *InputManifest) GetNamespacedName() string
- func (im *InputManifest) GetNamespacedNameDashed() string
- func (im *InputManifest) GetStatuses() InputManifestStatus
- func (im *InputManifest) SetDeletingStatus()
- func (im *InputManifest) SetNewResourceStatus()
- func (im *InputManifest) SetUpdateResourceStatus(newStatus InputManifestStatus)
- type InputManifestList
- type InputManifestSpec
- type InputManifestStatus
- type NodePool
- type Provider
- type ProviderType
- type ProviderWithData
- type SecretField
- type StaticNode
- type StaticNodePool
- type StaticNodeWithData
Constants ¶
const ( SEPARATOR = "/" // Claudie cluster statuses // IN_PROGRESS is a helper status that indicates that the cluster is currently being build. STATUS_IN_PROGRESS = "IN_PROGRESS" // ERROR indicates that an error occurred while building the cluster. STATUS_ERROR = "ERROR" // DONE indicates that the workflow has finished. STATUS_DONE = "DONE" // STATUS_NEW is a helper status that indicates that the resource was recently created STATUS_NEW = "NEW" // SCHEDULED_FOR_DELETION STATUS_SCHEDULED_FOR_DELETION = "SCHEDULED_FOR_DELETION" )
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "claudie.io", Version: "v1beta1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type ClustersStatus ¶
type InputManifest ¶
type InputManifest struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec InputManifestSpec `json:"spec,omitempty"` Status InputManifestStatus `json:"status,omitempty"` }
InputManifest is a definition of the user's infrastructure. It contains cloud provider specification, nodepool specification, Kubernetes and loadbalancer clusters.
func (*InputManifest) DeepCopy ¶
func (in *InputManifest) DeepCopy() *InputManifest
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InputManifest.
func (*InputManifest) DeepCopyInto ¶
func (in *InputManifest) DeepCopyInto(out *InputManifest)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*InputManifest) DeepCopyObject ¶
func (in *InputManifest) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*InputManifest) GetNamespacedName ¶
func (im *InputManifest) GetNamespacedName() string
GetNamespacedName returns a string in Namespace/Name format
func (*InputManifest) GetNamespacedNameDashed ¶
func (im *InputManifest) GetNamespacedNameDashed() string
GetNamespacedNameDashed returns a string in Namespace-Name format
func (*InputManifest) GetStatuses ¶
func (im *InputManifest) GetStatuses() InputManifestStatus
GetStatuses returns the inputmanifest.Status field
func (*InputManifest) SetDeletingStatus ¶
func (im *InputManifest) SetDeletingStatus()
func (*InputManifest) SetNewResourceStatus ¶
func (im *InputManifest) SetNewResourceStatus()
func (*InputManifest) SetUpdateResourceStatus ¶
func (im *InputManifest) SetUpdateResourceStatus(newStatus InputManifestStatus)
type InputManifestList ¶
type InputManifestList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []InputManifest `json:"items"` }
InputManifestList contains a list of InputManifest
func (*InputManifestList) DeepCopy ¶
func (in *InputManifestList) DeepCopy() *InputManifestList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InputManifestList.
func (*InputManifestList) DeepCopyInto ¶
func (in *InputManifestList) DeepCopyInto(out *InputManifestList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*InputManifestList) DeepCopyObject ¶
func (in *InputManifestList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type InputManifestSpec ¶
type InputManifestSpec struct { // Providers list of defined cloud provider configuration // that will be used while infrastructure provisioning. // +optional Providers []Provider `json:"providers,omitempty"` // +optional NodePools NodePool `json:"nodePools,omitempty"` // +optional Kubernetes manifest.Kubernetes `json:"kubernetes,omitempty"` // +optional LoadBalancer manifest.LoadBalancer `json:"loadBalancers,omitempty"` }
Specification of the desired behaviour of the InputManifest
func (*InputManifestSpec) DeepCopy ¶
func (in *InputManifestSpec) DeepCopy() *InputManifestSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InputManifestSpec.
func (*InputManifestSpec) DeepCopyInto ¶
func (in *InputManifestSpec) DeepCopyInto(out *InputManifestSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InputManifestStatus ¶
type InputManifestStatus struct { State string `json:"state,omitempty"` Clusters map[string]ClustersStatus `json:"clusters,omitempty"` }
Most recently observed status of the InputManifest
func (*InputManifestStatus) DeepCopy ¶
func (in *InputManifestStatus) DeepCopy() *InputManifestStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InputManifestStatus.
func (*InputManifestStatus) DeepCopyInto ¶
func (in *InputManifestStatus) DeepCopyInto(out *InputManifestStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodePool ¶
type NodePool struct { // Dynamic nodepools define nodepools dynamically created by Claudie. // +optional Dynamic []manifest.DynamicNodePool `json:"dynamic"` // Static nodepools define nodepools of already existing nodes. // +optional Static []StaticNodePool `json:"static"` }
NodePool is a map of dynamic nodepools and static nodepools which will be used to form kubernetes or loadbalancer clusters.
type Provider ¶
type Provider struct { // Name is the name of the provider specification. It has to be unique across all providers. // +kubebuilder:validation:MaxLength=32 // +kubebuilder:validation:MinLength=1 ProviderName string `json:"name"` // +kubebuilder:validation:Enum=gcp;hetzner;aws;oci;azure;cloudflare;hetznerdns;genesiscloud; ProviderType ProviderType `json:"providerType"` SecretRef corev1.SecretReference `json:"secretRef"` // External templates for building the cluster infrastructure. // +optional Templates *manifest.TemplateRepository `json:"templates"` }
Providers list of defined cloud provider configuration that will be used while infrastructure provisioning.
type ProviderType ¶
type ProviderType string
ProviderType type of a provider. A list of available providers can be found at https://docs.claudie.io/v0.8.1/input-manifest/providers/aws/
const ( AWS ProviderType = "aws" AZURE ProviderType = "azure" CLOUDFLARE ProviderType = "cloudflare" GCP ProviderType = "gcp" GENESIS_CLOUD ProviderType = "genesiscloud" HETZNER ProviderType = "hetzner" HETZNER_DNS ProviderType = "hetznerdns" OCI ProviderType = "oci" )
type ProviderWithData ¶
type ProviderWithData struct { ProviderName string ProviderType ProviderType Secret corev1.Secret Templates *manifest.TemplateRepository }
ProviderWithData helper type that assist in conversion from SecretReference to Secret
func (*ProviderWithData) GetSecretField ¶
func (pwd *ProviderWithData) GetSecretField(name SecretField) (string, error)
GetSecretField takes an ENUM string type of SecretField, and returns the value of the that field from the ProviderWithData struct it is also validating if the string is a proper UTF-8 string
type SecretField ¶
type SecretField string
const ( AWS_ACCESS_KEY SecretField = "accesskey" AWS_SECRET_KEY SecretField = "secretkey" AZURE_CLIENT_SECRET SecretField = "clientsecret" AZURE_SUBSCRIPTION_ID SecretField = "subscriptionid" AZURE_TENANT_ID SecretField = "tenantid" AZURE_CLIENT_ID SecretField = "clientid" CF_API_TOKEN SecretField = "apitoken" GCP_CREDENTIALS SecretField = "credentials" GCP_GCP_PROJECT SecretField = "gcpproject" HETZNER_CREDENTIALS SecretField = "credentials" HETZNER_DNS_API_TOKEN SecretField = "apitoken" OCI_PRIVATE_KEY SecretField = "privatekey" OCI_KEY_FINGERPRINT SecretField = "keyfingerprint" OCI_TENANCT_OCID SecretField = "tenancyocid" OCI_USER_OCID SecretField = "userocid" OCI_COMPARTMENT_OCID SecretField = "compartmentocid" PRIVATE_KEY SecretField = "privatekey" GEN_C_API_TOKEN SecretField = "apitoken" )
type StaticNode ¶
type StaticNode struct { // Endpoint under which Claudie will access this node. Endpoint string `json:"endpoint"` // Secret reference to the private key of the node. SecretRef corev1.SecretReference `json:"secretRef"` // Username with root access. Used in SSH connection also. Username string `json:"username,omitempty"` }
StaticNode defines a single static node for a particular static nodepool.
type StaticNodePool ¶
type StaticNodePool struct { // Name of the nodepool. Name string `json:"name"` // List of static nodes for a particular static nodepool. Nodes []StaticNode `json:"nodes"` // +optional Labels map[string]string `json:"labels"` // +optional Annotations map[string]string `json:"annotations"` // +optional Taints []corev1.Taint `json:"taints"` }
StaticNodePool defines nodepool of already existing nodes, managed outside of Claudie.