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 FixedIP ¶ added in v0.9.2
type FixedIP struct {
Subnet SubnetFilter `json:"subnet"`
}
FixedIP identifies a subnet defined by a subnet filter.
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 NetworkFilter ¶ added in v0.9.2
NetworkFilter defines a network by name and/or ID.
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"` // DeprecatedMachinesSubnet is a string of 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. // Deprecated: Use ControlPlanePort // +optional DeprecatedMachinesSubnet string `json:"machinesSubnet,omitempty"` // ControlPlanePort contains details of the network attached to the control plane port, with the network either containing one openstack // subnet for IPv4 or two openstack subnets for dualstack clusters. Providing this configuration will prevent OpenShift from managing // or updating this network and its subnets. The network and its subnets will be used during creation of all nodes. // +optional ControlPlanePort *PortTarget `json:"controlPlanePort,omitempty"` // LoadBalancer defines how the load balancer used by the cluster is configured. // +optional LoadBalancer *configv1.OpenStackPlatformLoadBalancer `json:"loadBalancer,omitempty"` }
Platform stores all the global configuration that all machinesets use.
type PortTarget ¶ added in v0.9.2
type PortTarget struct { // Network is a query for an openstack network that the port will be discovered on. // This will fail if the query returns more than one network. Network NetworkFilter `json:"network,omitempty"` // Specify subnets of the network where control plane port will be discovered. FixedIPs []FixedIP `json:"fixedIPs"` }
PortTarget defines, directly or indirectly, one or more subnets where to attach a port.
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. // Deprecated: Use Types instead. // +optional DeprecatedType string `json:"type,omitempty"` // Types is the list of the volume types of the root volumes. // This is mutually exclusive with Type. // +required Types []string `json:"types"` // 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.
type SubnetFilter ¶ added in v0.9.153
SubnetFilter defines a subnet by ID and/or name.