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.4.15
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.4.15
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: the machine manifest should be used to specify that trunk should be used.
// +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.4.15
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.4.15
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.4.15
func (p ServerGroupPolicy) IsSet() bool
IsSet returns true when p is not the empty string.
type SubnetFilter ¶ added in v0.4.15
SubnetFilter defines a subnet by ID and/or name.