Documentation ¶
Overview ¶
Package openstack contains OpenStack-specific structures for installer configuration and management.
Index ¶
Constants ¶
const Name string = "openstack"
Name is the name for the Openstack platform.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type MachinePool ¶
type MachinePool struct { // FlavorName defines the OpenStack Nova flavor. // eg. m1.large FlavorName string `json:"type"` // RootVolume defines the root volume for instances in the machine pool. // The instances use ephemeral disks if not set. // +optional RootVolume *RootVolume `json:"rootVolume,omitempty"` // AdditionalNetworkIDs contains IDs of additional networks for machines, // where each ID is presented in UUID v4 format. // Allowed address pairs won't be created for the additional networks. // +optional AdditionalNetworkIDs []string `json:"additionalNetworkIDs,omitempty"` // AdditionalSecurityGroupIDs contains IDs of additional security groups for machines, // where each ID is presented in UUID v4 format. // +optional AdditionalSecurityGroupIDs []string `json:"additionalSecurityGroupIDs,omitempty"` // ServerGroupPolicy will be used to create the Server Group that will contain all the machines of this MachinePool. // Defaults to "soft-anti-affinity". ServerGroupPolicy ServerGroupPolicy `json:"serverGroupPolicy,omitempty"` // Zones is the list of availability zones where the instances should be deployed. // If no zones are provided, all instances will be deployed on OpenStack Nova default availability zone // +optional Zones []string `json:"zones,omitempty"` }
MachinePool stores the configuration for a machine pool installed on OpenStack.
func (*MachinePool) Set ¶
func (o *MachinePool) Set(required *MachinePool)
Set sets the values from `required` to `o`.
type Metadata ¶
type Metadata struct { Cloud string `json:"cloud"` // Most OpenStack resources are tagged with these tags as identifier. Identifier map[string]string `json:"identifier"` }
Metadata contains OpenStack metadata (e.g. for uninstalling the cluster).
type Platform ¶
type Platform struct { // Region specifies the OpenStack region where the cluster will be created. // Deprecated: this value is not used by the installer. // +optional DeprecatedRegion string `json:"region,omitempty"` // DefaultMachinePlatform is the default configuration used when // installing on OpenStack for machine pools which do not define their own // platform configuration. // +optional DefaultMachinePlatform *MachinePool `json:"defaultMachinePlatform,omitempty"` // Cloud is the name of OpenStack cloud to use from clouds.yaml. Cloud string `json:"cloud"` // ExternalNetwork is name of the external network in your OpenStack cluster. // +optional ExternalNetwork string `json:"externalNetwork,omitempty"` // DeprecatedFlavorName is the name of the flavor to use for instances in this cluster. // Deprecated: use FlavorName in DefaultMachinePlatform to define default flavor. // +optional DeprecatedFlavorName string `json:"computeFlavor,omitempty"` // LbFloatingIP is the IP address of an available floating IP in your OpenStack cluster // to associate with the OpenShift load balancer. // Deprecated: this value has been renamed to apiFloatingIP. // +optional DeprecatedLbFloatingIP string `json:"lbFloatingIP,omitempty"` // APIFloatingIP is the IP address of an available floating IP in your OpenStack cluster // to associate with the OpenShift API load balancer. // +optional APIFloatingIP string `json:"apiFloatingIP,omitempty"` // IngressFloatingIP is the ID of an available floating IP in your OpenStack cluster // that will be associated with the OpenShift ingress port // +optional IngressFloatingIP string `json:"ingressFloatingIP,omitempty"` // ExternalDNS holds the IP addresses of dns servers that will // be added to the dns resolution of all instances in the cluster. // +optional ExternalDNS []string `json:"externalDNS"` // TrunkSupport holds a `0` or `1` value that indicates whether or not to use trunk ports // in your OpenShift cluster. // Deprecated: this value is set by the installer automatically. // +optional DeprecatedTrunkSupport string `json:"trunkSupport,omitempty"` // OctaviaSupport holds a `0` or `1` value that indicates whether your OpenStack // cluster supports Octavia Loadbalancing. // Deprecated: this value is set by the installer automatically. // +optional DeprecatedOctaviaSupport string `json:"octaviaSupport,omitempty"` // ClusterOSImage is either a URL with `http(s)` or `file` scheme to override // the default OS image for cluster nodes, or an existing Glance image name. // +optional ClusterOSImage string `json:"clusterOSImage,omitempty"` // ClusterOSImageProperties is a list of properties to be added to the metadata of the uploaded Glance ClusterOSImage. // Default: the default is to not set any properties. // +optional ClusterOSImageProperties map[string]string `json:"clusterOSImageProperties,omitempty"` // DeprecatedAPIVIP is the static IP on the nodes subnet that the api port for openshift will be assigned // Default: will be set to the 5 on the first entry in the machineNetwork CIDR // Deprecated: Use APIVIPs // // +kubebuilder:validation:Format=ip // +optional DeprecatedAPIVIP string `json:"apiVIP,omitempty"` // APIVIPs contains the VIP(s) on the nodes subnet that the api port for // openshift will be assigned. In dual stack clusters it contains an IPv4 // and IPv6 address, otherwise only one VIP // Default: will be set to the 5 on the first entry in the machineNetwork // CIDR // // +kubebuilder:validation:MaxItems=2 // +kubebuilder:validation:UniqueItems=true // +kubebuilder:validation:Format=ip // +optional APIVIPs []string `json:"apiVIPs,omitempty"` // DeprecatedIngressVIP is the static IP on the nodes subnet that the apps port for openshift will be assigned // Default: will be set to the 7 on the first entry in the machineNetwork CIDR // Deprecated: Use IngressVIPs // // +kubebuilder:validation:Format=ip // +optional DeprecatedIngressVIP string `json:"ingressVIP,omitempty"` // IngressVIPs contains the VIP(s) on the nodes subnet that the apps port // for openshift will be assigned. In dual stack clusters it contains an // IPv4 and IPv6 address, otherwise only one VIP // Default: will be set to the 7 on the first entry in the machineNetwork // CIDR // // +kubebuilder:validation:MaxItems=2 // +kubebuilder:validation:UniqueItems=true // +kubebuilder:validation:Format=ip // +optional IngressVIPs []string `json:"ingressVIPs,omitempty"` // MachinesSubnet is the UUIDv4 of an openstack subnet. This subnet will be used by all nodes created by the installer. // By setting this, the installer will no longer create a network and subnet. // The subnet and network specified in MachinesSubnet will not be deleted or modified by the installer. // +optional MachinesSubnet string `json:"machinesSubnet,omitempty"` // LoadBalancer defines how the load balancer used by the cluster is configured. // LoadBalancer is available in TechPreview. // +optional LoadBalancer *configv1.OpenStackPlatformLoadBalancer `json:"loadBalancer,omitempty"` }
Platform stores all the global configuration that all machinesets use.
type RootVolume ¶
type RootVolume struct { // Size defines the size of the volume in gibibytes (GiB). // Required Size int `json:"size"` // Type defines the type of the volume. // Required Type string `json:"type"` // Zones is the list of availability zones where the root volumes should be deployed. // If no zones are provided, all instances will be deployed on OpenStack Cinder default availability zone // +optional Zones []string `json:"zones,omitempty"` }
RootVolume defines the storage for an instance.
type ServerGroupPolicy ¶ added in v0.9.2
type ServerGroupPolicy string
ServerGroupPolicy is the policy to be applied to an OpenStack Server Group.
+kubebuilder:validation:Enum="";affinity;soft-affinity;anti-affinity;soft-anti-affinity +optional
const ( // SGPolicyUnset represents the default empty string for the ServerGroupPolicy field of the MachinePool. SGPolicyUnset ServerGroupPolicy = "" // SGPolicyAffinity represents the "affinity" ServerGroupPolicy field of the MachinePool. SGPolicyAffinity ServerGroupPolicy = "affinity" // SGPolicySoftAffinity represents the "soft-affinity" ServerGroupPolicy field of the MachinePool. SGPolicySoftAffinity ServerGroupPolicy = "soft-affinity" // SGPolicyAntiAffinity represents the "anti-affinity" ServerGroupPolicy field of the MachinePool. SGPolicyAntiAffinity ServerGroupPolicy = "anti-affinity" // SGPolicySoftAntiAffinity represents the "soft-anti-affinity" ServerGroupPolicy field of the MachinePool. SGPolicySoftAntiAffinity ServerGroupPolicy = "soft-anti-affinity" )
func (ServerGroupPolicy) IsSet ¶ added in v0.9.2
func (p ServerGroupPolicy) IsSet() bool
IsSet returns true when p is not the empty string.