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
- Variables
- type APIEndpoint
- type AdditionalApplications
- type AuthType
- type AuthTypes
- type Charm
- type Cloud
- type ConstraintValue
- type Credential
- type DefaultApplicationConfig
- type DefaultApplicationConfigs
- type Endpoints
- type JujuCluster
- type JujuClusterList
- type JujuClusterSpec
- type JujuClusterStatus
- type JujuMachine
- type JujuMachineList
- type JujuMachineSpec
- type JujuMachineStatus
- type JujuMachineTemplate
- type JujuMachineTemplateList
- type JujuMachineTemplateResource
- type JujuMachineTemplateSpec
- type Model
- type Region
Constants ¶
const (
JujuClusterFinalizer = "juju.cluster.x-k8s.io"
)
const (
JujuMachineFinalizer = "juju.machine.x-k8s.io"
)
Variables ¶
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 ¶
func (in *AdditionalApplications) DeepCopy() *AdditionalApplications
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 AuthTypes ¶
type AuthTypes []AuthType
func (AuthTypes) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthTypes.
func (AuthTypes) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Charm.
func (*Charm) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cloud.
func (*Cloud) DeepCopyInto ¶
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 ¶
func (in *DefaultApplicationConfig) DeepCopy() *DefaultApplicationConfig
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 ¶
func (in *DefaultApplicationConfigs) DeepCopy() *DefaultApplicationConfigs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DefaultApplicationConfigs.
func (*DefaultApplicationConfigs) DeepCopyInto ¶
func (in *DefaultApplicationConfigs) DeepCopyInto(out *DefaultApplicationConfigs)
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoints.
func (Endpoints) DeepCopyInto ¶
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 ¶
func (in *JujuMachineTemplateList) DeepCopy() *JujuMachineTemplateList
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 ¶
func (in *JujuMachineTemplateResource) DeepCopy() *JujuMachineTemplateResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JujuMachineTemplateResource.
func (*JujuMachineTemplateResource) DeepCopyInto ¶
func (in *JujuMachineTemplateResource) DeepCopyInto(out *JujuMachineTemplateResource)
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 ¶
func (in *JujuMachineTemplateSpec) DeepCopy() *JujuMachineTemplateSpec
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Model.
func (*Model) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Region.
func (*Region) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.