v1beta1

package
v0.5.1 Latest Latest
Warning

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

Go to latest
Published: Aug 15, 2023 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package v1beta1 contains API Schema definitions for the v1beta1 API group +kubebuilder:object:generate=true +groupName=claudie.io

Index

Constants

View Source
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"
	// DONE_WITH_ERROR is a helper status that indicates that
	// one of the clusters failed while building and the rest completed successfully
	STATUS_DONE_ERROR = "DONE_WITH_ERROR"
	// 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

View Source
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 ClustersStatus struct {
	State   string `json:"state,omitempty"`
	Phase   string `json:"phase,omitempty"`
	Message string `json:"message,omitempty"`
}

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;
	ProviderType ProviderType           `json:"providerType"`
	SecretRef    corev1.SecretReference `json:"secretRef"`
}

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.3.2/input-manifest/providers/aws/

const (
	AWS         ProviderType = "aws"
	AZURE       ProviderType = "azure"
	CLOUDFLARE  ProviderType = "cloudflare"
	GCP         ProviderType = "gcp"
	HETZNER     ProviderType = "hetzner"
	HETZNER_DNS ProviderType = "hetznerdns"
	OCI         ProviderType = "oci"
)

type ProviderWithData

type ProviderWithData struct {
	ProviderName string
	ProviderType ProviderType
	Secret       corev1.Secret
}

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

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"
)

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"`
}

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"`
}

StaticNodePool defines nodepool of already existing nodes, managed outside of Claudie.

type StaticNodeWithData

type StaticNodeWithData struct {
	Endpoint string
	Secret   corev1.Secret
}

Jump to

Keyboard shortcuts

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