Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the hive v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/openshift/hive/pkg/apis/hive +k8s:defaulter-gen=TypeMeta +groupName=hive.openshift.io
Package v1alpha1 contains API Schema definitions for the hive v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/openshift/hive/pkg/apis/hive +k8s:defaulter-gen=TypeMeta +groupName=hive.openshift.io
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- type AWSDNSZoneSpec
- type AWSMachinePoolPlatform
- type AWSPlatform
- type AWSPlatformSecrets
- type ClusterDeployment
- type ClusterDeploymentList
- type ClusterDeploymentSpec
- type ClusterDeploymentStatus
- type DNSZone
- type DNSZoneList
- type DNSZoneSpec
- type DNSZoneStatus
- type EC2RootVolume
- type LibvirtMachinePoolPlatform
- type LibvirtNetwork
- type LibvirtPlatform
- type MachinePool
- type MachinePoolPlatform
- type NetworkType
- type Networking
- type OpenStackMachinePoolPlatform
- type OpenStackRootVolume
- type Platform
- type PlatformSecrets
- type ProvisionImages
Constants ¶
const ( // FinalizerDeprovision is used on ClusterDeployments to ensure we run a successful deprovision // job before cleaning up the API object. FinalizerDeprovision string = "hive.openshift.io/deprovision" // FinalizerFederation is used on ClusterDeployments to ensure that federation-related artifacts are cleaned up from // the host cluster before a ClusterDeployment is deleted. FinalizerFederation string = "hive.openshift.io/federation" )
const ( // FinalizerDNSZone is used on DNSZones to ensure we successfuly deprovision // the cloud objects before cleaning up the API object. FinalizerDNSZone string = "hive.openshift.io/dnszone" )
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "hive.openshift.io", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} // AddToScheme is a shortcut for SchemeBuilder.AddToScheme AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type AWSDNSZoneSpec ¶
type AWSDNSZoneSpec struct { // AccountSecret contains a reference to a secret that contains AWS credentials // for CRUD operations AccountSecret corev1.LocalObjectReference `json:"accountSecret"` // Region specifies the region-specific API endpoint to use Region string `json:"region"` }
AWSDNSZoneSpec contains AWS-specific DNSZone specifications
type AWSMachinePoolPlatform ¶
type AWSMachinePoolPlatform struct { // Zones is list of availability zones that can be used. Zones []string `json:"zones,omitempty"` // InstanceType defines the ec2 instance type. // eg. m4-large InstanceType string `json:"type"` // IAMRoleName defines the IAM role associated // with the ec2 instance. IAMRoleName string `json:"iamRoleName"` // EC2RootVolume defines the storage for ec2 instance. EC2RootVolume `json:"rootVolume"` }
AWSMachinePoolPlatform stores the configuration for a machine pool installed on AWS.
type AWSPlatform ¶
type AWSPlatform struct { // Region specifies the AWS region where the cluster will be created. Region string `json:"region"` // UserTags specifies additional tags for AWS resources created for the cluster. UserTags map[string]string `json:"userTags,omitempty"` // DefaultMachinePlatform is the default configuration used when // installing on AWS for machine pools which do not define their own // platform configuration. DefaultMachinePlatform *AWSMachinePoolPlatform `json:"defaultMachinePlatform,omitempty"` }
AWSPlatform stores all the global configuration that all machinesets use.
type AWSPlatformSecrets ¶
type AWSPlatformSecrets struct { // Credentials refers to a secret that contains the AWS account access // credentials. Credentials corev1.LocalObjectReference `json:"credentials"` }
AWSPlatformSecrets contains secrets for clusters on the AWS platform.
type ClusterDeployment ¶
type ClusterDeployment struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ClusterDeploymentSpec `json:"spec,omitempty"` Status ClusterDeploymentStatus `json:"status,omitempty"` }
ClusterDeployment is the Schema for the clusterdeployments API +k8s:openapi-gen=true +kubebuilder:subresource:status
type ClusterDeploymentList ¶
type ClusterDeploymentList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ClusterDeployment `json:"items"` }
ClusterDeploymentList contains a list of ClusterDeployment
type ClusterDeploymentSpec ¶
type ClusterDeploymentSpec struct { // ClusterName is the friendly name of the cluster. It is used for subdomains, // some resource tagging, and other instances where a friendly name for the // cluster is useful. ClusterName string `json:"clusterName"` // SSHKey is the reference to the secret that contains a public key to use for access to compute instances. SSHKey *corev1.LocalObjectReference `json:"sshKey,omitempty"` // BaseDomain is the base domain to which the cluster should belong. BaseDomain string `json:"baseDomain"` // Networking defines the pod network provider in the cluster. Networking `json:"networking"` // ControlPlane is the MachinePool containing control plane nodes that need to be installed. ControlPlane MachinePool `json:"controlPlane"` // Compute is the list of MachinePools containing compute nodes that need to be installed. Compute []MachinePool `json:"compute"` // Platform is the configuration for the specific platform upon which to // perform the installation. Platform `json:"platform"` // PullSecret is the reference to the secret to use when pulling images. PullSecret corev1.LocalObjectReference `json:"pullSecret"` // PlatformSecrets contains credentials and secrets for the cluster infrastructure. PlatformSecrets PlatformSecrets `json:"platformSecrets"` // Images allows overriding the default images used to provision and manage the cluster. Images ProvisionImages `json:"images,omitempty"` // PreserveOnDelete allows the user to disconnect a cluster from Hive without deprovisioning it PreserveOnDelete bool `json:"preserveOnDelete,omitempty"` }
ClusterDeploymentSpec defines the desired state of ClusterDeployment
type ClusterDeploymentStatus ¶
type ClusterDeploymentStatus struct { // ClusterID is a unique identifier for this cluster generated during installation. ClusterID string `json:"clusterID,omitempty"` // Installed is true if the installer job has successfully completed for this cluster. Installed bool `json:"installed"` // Federated is true if the cluster deployment has been federated with the host cluster. Federated bool `json:"federated,omitempty"` // AdminKubeconfigSecret references the secret containing the admin kubeconfig for this cluster. AdminKubeconfigSecret corev1.LocalObjectReference `json:"adminKubeconfigSecret,omitempty"` // AdminPasswordSecret references the secret containing the admin username/password which can be used to login to this cluster. AdminPasswordSecret corev1.LocalObjectReference `json:"adminPasswordSecret,omitempty"` // ClusterVersionStatus will hold a copy of the remote cluster's ClusterVersion.Status ClusterVersionStatus openshiftapiv1.ClusterVersionStatus `json:"clusterVersionStatus,omitempty"` // APIURL is the URL where the cluster's API can be accessed. APIURL string `json:"apiURL,omitempty"` // WebConsoleURL is the URL for the cluster's web console UI. WebConsoleURL string `json:"webConsoleURL,omitempty"` }
ClusterDeploymentStatus defines the observed state of ClusterDeployment
type DNSZone ¶
type DNSZone struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec DNSZoneSpec `json:"spec,omitempty"` Status DNSZoneStatus `json:"status,omitempty"` }
DNSZone is the Schema for the dnszones API +k8s:openapi-gen=true
type DNSZoneList ¶
type DNSZoneList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []DNSZone `json:"items"` }
DNSZoneList contains a list of DNSZone
type DNSZoneSpec ¶
type DNSZoneSpec struct { // Zone is the DNS zoneto host Zone string `json:"zone"` // AWS specifies AWS-specific cloud configuration // +optional AWS *AWSDNSZoneSpec `json:"aws,omitempty"` }
DNSZoneSpec defines the desired state of DNSZone
type DNSZoneStatus ¶
type DNSZoneStatus struct { // LastSyncTimestamp is the time that the zone was last sync'd. // +optional LastSyncTimestamp *metav1.Time `json:"lastSyncTimestamp,omitempty"` // LastSyncGeneration is the generation of the zone resource that was last sync'd. This is used to know // if the Object has changed and we should sync immediately. LastSyncGeneration int64 `json:"lastSyncGeneration"` }
DNSZoneStatus defines the observed state of DNSZone
type EC2RootVolume ¶
type EC2RootVolume struct { // IOPS defines the iops for the instance. IOPS int `json:"iops"` // Size defines the size of the instance. Size int `json:"size"` // Type defines the type of the instance. Type string `json:"type"` }
EC2RootVolume defines the storage for an ec2 instance.
type LibvirtMachinePoolPlatform ¶
type LibvirtMachinePoolPlatform struct { // ImagePool is the name of the libvirt storage pool to which the storage // volume containing the OS image belongs. ImagePool string `json:"imagePool,omitempty"` // ImageVolume is the name of the libvirt storage volume containing the OS // image. ImageVolume string `json:"imageVolume,omitempty"` // Image is the URL to the OS image. // E.g. "http://aos-ostree.rhev-ci-vms.eng.rdu2.redhat.com/rhcos/images/cloud/latest/rhcos-qemu.qcow2.gz" Image string `json:"image"` }
LibvirtMachinePoolPlatform stores the configuration for a machine pool installed on libvirt.
type LibvirtNetwork ¶
type LibvirtNetwork struct { // Name is the name of the nework. Name string `json:"name"` // IfName is the name of the network interface. IfName string `json:"if"` // IPRange is the range of IPs to use. IPRange string `json:"ipRange"` }
LibvirtNetwork is the configuration of the libvirt network.
type LibvirtPlatform ¶
type LibvirtPlatform struct { // URI is the identifier for the libvirtd connection. It must be // reachable from both the host (where the installer is run) and the // cluster (where the cluster-API controller pod will be running). URI string `json:"URI"` // DefaultMachinePlatform is the default configuration used when // installing on AWS for machine pools which do not define their own // platform configuration. DefaultMachinePlatform *LibvirtMachinePoolPlatform `json:"defaultMachinePlatform,omitempty"` // Network Network LibvirtNetwork `json:"network"` // MasterIPs MasterIPs []net.IP `json:"masterIPs"` }
LibvirtPlatform stores all the global configuration that all machinesets use.
type MachinePool ¶
type MachinePool struct { // Name is the name of the machine pool. Name string `json:"name"` // Replicas is the count of machines for this machine pool. // Default is 1. Replicas *int64 `json:"replicas"` // Platform is configuration for machine pool specific to the platfrom. Platform MachinePoolPlatform `json:"platform"` }
MachinePool is a pool of machines to be installed.
type MachinePoolPlatform ¶
type MachinePoolPlatform struct { // AWS is the configuration used when installing on AWS. AWS *AWSMachinePoolPlatform `json:"aws,omitempty"` // Libvirt is the configuration used when installing on libvirt. Libvirt *LibvirtMachinePoolPlatform `json:"libvirt,omitempty"` // OpenStack is the configuration used when installing on OpenStack. OpenStack *OpenStackMachinePoolPlatform `json:"openstack,omitempty"` }
MachinePoolPlatform is the platform-specific configuration for a machine pool. Only one of the platforms should be set.
type NetworkType ¶
type NetworkType string
NetworkType defines the pod network provider in the cluster.
const ( // NetworkTypeOpenshiftSDN is used to install with SDN. NetworkTypeOpenshiftSDN NetworkType = "OpenshiftSDN" // NetworkTypeOpenshiftOVN is used to install with OVN. NetworkTypeOpenshiftOVN NetworkType = "OVNKubernetes" )
type Networking ¶
type Networking struct { // MachineCIDR is the IP address space from which to assign machine IPs. MachineCIDR string `json:"machineCIDR"` // Type is the network type to install Type NetworkType `json:"type"` // ServiceCIDR is the IP address space from which to assign service IPs. ServiceCIDR string `json:"serviceCIDR"` // ClusterNetworks is the IP address space from which to assign pod IPs. ClusterNetworks []netopv1.ClusterNetwork `json:"clusterNetworks,omitempty"` }
Networking defines the pod network provider in the cluster.
type OpenStackMachinePoolPlatform ¶
type OpenStackMachinePoolPlatform struct { // FlavorName defines the OpenStack Nova flavor. // eg. m1.large FlavorName string `json:"type"` // OpenStackRootVolume defines the storage for Nova instance. OpenStackRootVolume `json:"rootVolume"` }
OpenStackMachinePoolPlatform stores the configuration for a machine pool installed on OpenStack.
type OpenStackRootVolume ¶
type OpenStackRootVolume struct { // IOPS defines the iops for the instance. IOPS int `json:"iops"` // Size defines the size of the instance. Size int `json:"size"` // Type defines the type of the instance. Type string `json:"type"` }
OpenStackRootVolume defines the storage for a Nova instance.
type Platform ¶
type Platform struct { // AWS is the configuration used when installing on AWS. AWS *AWSPlatform `json:"aws,omitempty"` // Libvirt is the configuration used when installing on libvirt. Libvirt *LibvirtPlatform `json:"libvirt,omitempty"` }
Platform is the configuration for the specific platform upon which to perform the installation. Only one of the platform configuration should be set.
type PlatformSecrets ¶
type PlatformSecrets struct { // +optional AWS *AWSPlatformSecrets `json:"aws,omitempty"` }
PlatformSecrets defines the secrets to be used by various clouds.
type ProvisionImages ¶
type ProvisionImages struct { // InstallerImage is the image containing the openshift-install binary that will be used to install. InstallerImage string `json:"installerImage,omitempty"` // InstallerImagePullPolicy is the pull policy for the installer image. InstallerImagePullPolicy corev1.PullPolicy `json:"installerImagePullPolicy,omitempty"` // HiveImage is the image used in the sidecar container to manage execution of openshift-install. HiveImage string `json:"hiveImage,omitempty"` // HiveImagePullPolicy is the pull policy for the installer image. HiveImagePullPolicy corev1.PullPolicy `json:"hiveImagePullPolicy,omitempty"` // ReleaseImage is the image containing metadata for all components that run in the cluster, and // is the primary and best way to specify what specific version of OpenShift you wish to install. ReleaseImage string `json:"releaseImage,omitempty"` }
ProvisionImages allows overriding the default images used to provision a cluster.