v1beta1

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: May 4, 2023 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package v1beta1 contains API Schema definitions for the infrastructure v1beta1 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io

Index

Constants

View Source
const (
	JujuClusterFinalizer = "juju.cluster.x-k8s.io"
)
View Source
const (
	JujuMachineFinalizer = "juju.machine.x-k8s.io"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.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 APIEndpoint

type APIEndpoint struct {
	// Host is the hostname on which the API server is serving.
	Host string `json:"host"`

	// Port is the port on which the API server is serving.
	Port int `json:"port"`
}

APIEndpoint represents a reachable Kubernetes API endpoint.

func (*APIEndpoint) DeepCopy

func (in *APIEndpoint) DeepCopy() *APIEndpoint

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

func (*APIEndpoint) DeepCopyInto

func (in *APIEndpoint) DeepCopyInto(out *APIEndpoint)

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

type AdditionalApplications

type AdditionalApplications struct {
	Applications map[string]Charm `json:"applications"`
	Integrations []Endpoints      `json:"integrations"`
}

func (*AdditionalApplications) DeepCopy

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

func (*AdditionalApplications) DeepCopyInto

func (in *AdditionalApplications) DeepCopyInto(out *AdditionalApplications)

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

type AuthType

type AuthType string

type AuthTypes

type AuthTypes []AuthType

func (AuthTypes) DeepCopy

func (in AuthTypes) DeepCopy() AuthTypes

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

func (AuthTypes) DeepCopyInto

func (in AuthTypes) DeepCopyInto(out *AuthTypes)

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

type Charm

type Charm struct {
	Charm         string                `json:"charm"`
	Channel       string                `json:"channel"`
	Base          string                `json:"base"`
	NumUnits      int                   `json:"numUnits"`
	Options       *apiextensionsv1.JSON `json:"options,omitempty"`
	Constraints   *ConstraintValue      `json:"constraints,omitempty"`
	RequiresTrust bool                  `json:"requiresTrust,omitempty"`
	Expose        bool                  `json:"expose,omitempty"`
}

func (*Charm) DeepCopy

func (in *Charm) DeepCopy() *Charm

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

func (*Charm) DeepCopyInto

func (in *Charm) DeepCopyInto(out *Charm)

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

type Cloud

type Cloud struct {
	// Name of the cloud.
	Name string `json:"name"`

	// Type is the type of cloud, eg ec2, openstack etc.
	// This is one of the provider names registered with
	// environs.RegisterProvider.
	Type string `json:"type"`

	// HostCloudRegion represents the k8s host cloud. The format is <cloudType>/<region>.
	HostCloudRegion string `json:"hostCloudRegion,omitempty"`

	// Description describes the type of cloud.
	Description string `json:"description,omitempty"`

	// AuthTypes are the authentication modes supported by the cloud.
	AuthTypes AuthTypes `json:"authTypes"`

	// Endpoint is the default endpoint for the cloud regions, may be
	// overridden by a region.
	Endpoint string `json:"endpoint,omitempty"`

	// IdentityEndpoint is the default identity endpoint for the cloud
	// regions, may be overridden by a region.
	IdentityEndpoint string `json:"identityEndpoint,omitempty"`

	// StorageEndpoint is the default storage endpoint for the cloud
	// regions, may be overridden by a region.
	StorageEndpoint string `json:"storageEndpoint,omitempty"`

	// Regions are the regions available in the cloud.
	//
	// Regions is a slice, and not a map, because order is important.
	// The first region in the slice is the default region for the
	// cloud.
	Regions []Region `json:"regions,omitempty"`

	// Config contains optional cloud-specific configuration to use
	// when bootstrapping Juju in this cloud. The cloud configuration
	// will be combined with Juju-generated, and user-supplied values;
	// user-supplied values taking precedence.
	// This should be a map[string]interface{}, but kube-builder does not allow interface{} types
	// so we are forced to use untyped JSON here
	Config *apiextensionsv1.JSON `json:"config,omitempty"`

	// RegionConfig contains optional region specific configuration.
	// Like Config above, this will be combined with Juju-generated and user
	// supplied values; with user supplied values taking precedence.
	// This should be a map[string]map[string]interface{}, but kube-builder does not allow interface{} types
	// so we are forced to use untyped JSON here
	RegionConfig *apiextensionsv1.JSON `json:"regionConfig,omitempty"`

	// CACertificates contains an optional list of Certificate
	// Authority certificates to be used to validate certificates
	// of cloud infrastructure components
	// The contents are Base64 encoded x.509 certs.
	CACertificates []string `json:"CACertificates,omitempty"`

	// SkipTLSVerify is true if the client should be asked not to
	// validate certificates. It is not recommended for production clouds.
	// It is secure (false) by default.
	SkipTLSVerify bool `json:"skipTLSVerify,omitempty"`

	// IsControllerCloud is true when this is the cloud used by the controller.
	IsControllerCloud bool `json:"isControllerCloud,omitempty"`
}

func (*Cloud) DeepCopy

func (in *Cloud) DeepCopy() *Cloud

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

func (*Cloud) DeepCopyInto

func (in *Cloud) DeepCopyInto(out *Cloud)

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

type ConstraintValue

type ConstraintValue constraints.Value

We are only able to do this since constraints.Value has json-tagged fields

func (*ConstraintValue) DeepCopy

func (cv *ConstraintValue) DeepCopy() *ConstraintValue

Since the underlying type constraints.Value does not have a deep copy method and it cant be generated, we have to provide our own

func (*ConstraintValue) DeepCopyInto

func (in *ConstraintValue) DeepCopyInto(out *ConstraintValue)

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

type Credential

type Credential struct {
	// CredentialSecretName is used to tell the controller the name of the secret containing the cloud credentials
	CredentialSecretName string `json:"credentialSecretName"`

	// CredentialSecretNamespace is used to tell the controller the namespace of the secret containing the cloud credentials
	CredentialSecretNamespace string `json:"credentialSecretNamespace"`
}

func (*Credential) DeepCopy

func (in *Credential) DeepCopy() *Credential

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

func (*Credential) DeepCopyInto

func (in *Credential) DeepCopyInto(out *Credential)

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

type DefaultApplicationConfig

type DefaultApplicationConfig struct {
	Options     *apiextensionsv1.JSON `json:"options,omitempty"`
	Constraints *ConstraintValue      `json:"constraints,omitempty"`
	// Channel and base can be empty, the default channel and base will cover them if not specified
	Channel string `json:"channel,omitempty"`
	Base    string `json:"base,omitempty"`
	Expose  bool   `json:"expose,omitempty"`
}

func (*DefaultApplicationConfig) DeepCopy

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

func (*DefaultApplicationConfig) DeepCopyInto

func (in *DefaultApplicationConfig) DeepCopyInto(out *DefaultApplicationConfig)

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

type DefaultApplicationConfigs

type DefaultApplicationConfigs struct {
	EasyRSAConfig                *DefaultApplicationConfig `json:"easyRSAConfig,omitempty"`
	EtcdConfig                   *DefaultApplicationConfig `json:"etcdConfig,omitempty"`
	KubernetesWorkerConfig       *DefaultApplicationConfig `json:"kubernetesWorkerConfig,omitempty"`
	KubernetesControlPlaneConfig *DefaultApplicationConfig `json:"kubernetesControlPlaneConfig,omitempty"`
	KubeAPILoadBalancerConfig    *DefaultApplicationConfig `json:"kubeApiLoadBalancerConfig,omitempty"`
	ContainerdConfig             *DefaultApplicationConfig `json:"containerdConfig,omitempty"`
	DefaultChannel               string                    `json:"defaultChannel"`
	DefaultBase                  string                    `json:"defaultBase"`
}

func (*DefaultApplicationConfigs) DeepCopy

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

func (*DefaultApplicationConfigs) DeepCopyInto

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

type Endpoints

type Endpoints []string

List of endpoints to use in an integration

func (Endpoints) DeepCopy

func (in Endpoints) DeepCopy() Endpoints

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

func (Endpoints) DeepCopyInto

func (in Endpoints) DeepCopyInto(out *Endpoints)

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

type JujuCluster

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

	Spec   JujuClusterSpec   `json:"spec,omitempty"`
	Status JujuClusterStatus `json:"status,omitempty"`
}

JujuCluster is the Schema for the jujuclusters API

func (*JujuCluster) DeepCopy

func (in *JujuCluster) DeepCopy() *JujuCluster

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

func (*JujuCluster) DeepCopyInto

func (in *JujuCluster) DeepCopyInto(out *JujuCluster)

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

func (*JujuCluster) DeepCopyObject

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

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

type JujuClusterList

type JujuClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []JujuCluster `json:"items"`
}

JujuClusterList contains a list of JujuCluster

func (*JujuClusterList) DeepCopy

func (in *JujuClusterList) DeepCopy() *JujuClusterList

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

func (*JujuClusterList) DeepCopyInto

func (in *JujuClusterList) DeepCopyInto(out *JujuClusterList)

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

func (*JujuClusterList) DeepCopyObject

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

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

type JujuClusterSpec

type JujuClusterSpec struct {

	// Controller service type defines what type of service will be created for the
	// juju controller. Should be cluster, loadbalancer, or external
	//+kubebuilder:default="cluster"
	ControllerServiceType string `json:"controllerServiceType"`

	// Model is used to specify the details of the model created by the controller
	Model *Model `json:"model"`

	// Cloud is used to define the cloud the Charmed Kubernetes machine model will reside in
	Cloud *Cloud `json:"cloud"`

	// Credential is used to specify the name and namespace of the secret containing cloud credentials if your cloud requires them
	// +optional
	Credential *Credential `json:"credential,omitempty"`

	DefaultApplicationConfigs *DefaultApplicationConfigs `json:"defaultApplicationConfigs,omitempty"`

	// List of additional applications to deploy in the model
	AdditionalApplications AdditionalApplications `json:"additionalApplications,omitempty"`

	// Required fields for infra providers
	// ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.
	// Expected to eventually be set by the user/controller
	// +optional
	ControlPlaneEndpoint APIEndpoint `json:"controlPlaneEndpoint"`

	// Optional fields for infra providers
	FailureReason  string `json:"failureReason,omitempty"`  // error string for programs
	FailureMessage string `json:"failureMessage,omitempty"` // error string for humans
}

JujuClusterSpec defines the desired state of JujuCluster +kubebuilder:object:generate=true

func (*JujuClusterSpec) DeepCopy

func (in *JujuClusterSpec) DeepCopy() *JujuClusterSpec

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

func (*JujuClusterSpec) DeepCopyInto

func (in *JujuClusterSpec) DeepCopyInto(out *JujuClusterSpec)

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

type JujuClusterStatus

type JujuClusterStatus struct {
	ModelStatus *apiextensionsv1.JSON `json:"modelStatus,omitempty"`

	// Required fields for infra providers
	// Ready denotes that the cluster (infrastructure) is ready.
	//+kubebuilder:default=false
	Ready bool `json:"ready"`
}

JujuClusterStatus defines the observed state of JujuCluster

func (*JujuClusterStatus) DeepCopy

func (in *JujuClusterStatus) DeepCopy() *JujuClusterStatus

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

func (*JujuClusterStatus) DeepCopyInto

func (in *JujuClusterStatus) DeepCopyInto(out *JujuClusterStatus)

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

type JujuMachine

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

	Spec   JujuMachineSpec   `json:"spec,omitempty"`
	Status JujuMachineStatus `json:"status,omitempty"`
}

JujuMachine is the Schema for the jujumachines API

func (*JujuMachine) DeepCopy

func (in *JujuMachine) DeepCopy() *JujuMachine

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

func (*JujuMachine) DeepCopyInto

func (in *JujuMachine) DeepCopyInto(out *JujuMachine)

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

func (*JujuMachine) DeepCopyObject

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

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

type JujuMachineList

type JujuMachineList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []JujuMachine `json:"items"`
}

JujuMachineList contains a list of JujuMachine

func (*JujuMachineList) DeepCopy

func (in *JujuMachineList) DeepCopy() *JujuMachineList

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

func (*JujuMachineList) DeepCopyInto

func (in *JujuMachineList) DeepCopyInto(out *JujuMachineList)

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

func (*JujuMachineList) DeepCopyObject

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

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

type JujuMachineSpec

type JujuMachineSpec struct {

	// Constraints for the machine
	Constraints *ConstraintValue `json:"constraints,omitempty"`

	// If true, the machine will use a providerID based on the juju instance ID
	// If false, the machine will use the providerID from its corresponding node
	// Note that if false you will need a cloud provider deployed in order for the provider ID to be set
	UseJujuProviderID bool `json:"useJujuProviderID"`

	// Machine holds a pointer the ID of the machine that is returned when a machine gets created by the Juju API
	// This is generally a number like 0, 1, 2 etc
	// This is expected to eventually be set by the machine controller
	MachineID *string `json:"machineID,omitempty"`

	// Required fields for infra providers
	// +optional
	// This is expected to eventually be set by the machine controller
	ProviderID *string `json:"providerID,omitempty"`
}

JujuMachineSpec defines the desired state of JujuMachine

func (*JujuMachineSpec) DeepCopy

func (in *JujuMachineSpec) DeepCopy() *JujuMachineSpec

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

func (*JujuMachineSpec) DeepCopyInto

func (in *JujuMachineSpec) DeepCopyInto(out *JujuMachineSpec)

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

type JujuMachineStatus

type JujuMachineStatus struct {

	// Required fields for infra providers
	//+kubebuilder:default=false
	Ready bool `json:"ready"`

	// Optional fields for infra providers
	FailureReason  string `json:"failureReason,omitempty"`  // error string for programs
	FailureMessage string `json:"failureMessage,omitempty"` // error string for humans

	// Addresses contains the Juju machine associated addresses.
	Addresses []clusterv1.MachineAddress `json:"addresses,omitempty"`
}

JujuMachineStatus defines the observed state of JujuMachine

func (*JujuMachineStatus) DeepCopy

func (in *JujuMachineStatus) DeepCopy() *JujuMachineStatus

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

func (*JujuMachineStatus) DeepCopyInto

func (in *JujuMachineStatus) DeepCopyInto(out *JujuMachineStatus)

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

type JujuMachineTemplate

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

	Spec JujuMachineTemplateSpec `json:"spec,omitempty"`
}

JujuMachineTemplate is the Schema for the jujumachinetemplates API

func (*JujuMachineTemplate) DeepCopy

func (in *JujuMachineTemplate) DeepCopy() *JujuMachineTemplate

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

func (*JujuMachineTemplate) DeepCopyInto

func (in *JujuMachineTemplate) DeepCopyInto(out *JujuMachineTemplate)

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

func (*JujuMachineTemplate) DeepCopyObject

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

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

type JujuMachineTemplateList

type JujuMachineTemplateList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []JujuMachineTemplate `json:"items"`
}

JujuMachineTemplateList contains a list of JujuMachineTemplate

func (*JujuMachineTemplateList) DeepCopy

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

func (*JujuMachineTemplateList) DeepCopyInto

func (in *JujuMachineTemplateList) DeepCopyInto(out *JujuMachineTemplateList)

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

func (*JujuMachineTemplateList) DeepCopyObject

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

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

type JujuMachineTemplateResource

type JujuMachineTemplateResource struct {
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	ObjectMeta clusterv1.ObjectMeta `json:"metadata,omitempty"`
	// Spec is the specification of the desired behavior of the machine.
	Spec JujuMachineSpec `json:"spec"`
}

func (*JujuMachineTemplateResource) DeepCopy

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

func (*JujuMachineTemplateResource) DeepCopyInto

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

type JujuMachineTemplateSpec

type JujuMachineTemplateSpec struct {
	Template JujuMachineTemplateResource `json:"template"`
}

JujuMachineTemplateSpec defines the desired state of JujuMachineTemplate

func (*JujuMachineTemplateSpec) DeepCopy

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

func (*JujuMachineTemplateSpec) DeepCopyInto

func (in *JujuMachineTemplateSpec) DeepCopyInto(out *JujuMachineTemplateSpec)

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

type Model

type Model struct {
	Name        string                `json:"name"`
	CloudRegion string                `json:"cloudRegion,omitempty"`
	Config      *apiextensionsv1.JSON `json:"config,omitempty"`
	Constraints *ConstraintValue      `json:"constraints,omitempty"`
}

func (*Model) DeepCopy

func (in *Model) DeepCopy() *Model

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

func (*Model) DeepCopyInto

func (in *Model) DeepCopyInto(out *Model)

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

type Region

type Region struct {
	// Name is the name of the region.
	Name string `json:"name"`

	// Endpoint is the region's primary endpoint URL.
	Endpoint string `json:"endpoint"`

	// IdentityEndpoint is the region's identity endpoint URL.
	// If the cloud/region does not have an identity-specific
	// endpoint URL, this will be empty.
	IdentityEndpoint string `json:"identityEndpoint,omitempty"`

	// StorageEndpoint is the region's storage endpoint URL.
	// If the cloud/region does not have a storage-specific
	// endpoint URL, this will be empty.
	StorageEndpoint string `json:"storageEndpoint,omitempty"`
}

func (*Region) DeepCopy

func (in *Region) DeepCopy() *Region

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

func (*Region) DeepCopyInto

func (in *Region) DeepCopyInto(out *Region)

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