github.com/openshift/installer@v1.4.17/pkg/types/ovirt/platform.go (about)

     1  package ovirt
     2  
     3  import (
     4  	configv1 "github.com/openshift/api/config/v1"
     5  )
     6  
     7  // Platform stores all the global configuration that all
     8  // machinesets use.
     9  type Platform struct {
    10  	// The target cluster under which all VMs will run
    11  	ClusterID string `json:"ovirt_cluster_id"`
    12  
    13  	// The target storage domain under which all VM disk would be created.
    14  	StorageDomainID string `json:"ovirt_storage_domain_id"`
    15  
    16  	// NetworkName is the target network of all the network interfaces of the nodes.
    17  	// When no ovirt_network_name is provided it defaults to `ovirtmgmt` network, which is a default network for every ovirt cluster.
    18  	// +optional
    19  	NetworkName string `json:"ovirt_network_name,omitempty"`
    20  
    21  	// VNICProfileID defines the VNIC profile ID to use the the VM network interfaces.
    22  	// When no vnicProfileID is provided it will be set to the profile of the network. If there are multiple
    23  	// profiles for the network, the installer requires you to explicitly set the vnicProfileID.
    24  	// +optional
    25  	VNICProfileID string `json:"vnicProfileID,omitempty"`
    26  
    27  	// DeprecatedAPIVIP is an IP which will be served by bootstrap and then pivoted masters, using keepalived
    28  	// Deprecated: Use APIVIPs
    29  	//
    30  	// +kubebuilder:validation:Format=ip
    31  	// +optional
    32  	DeprecatedAPIVIP string `json:"api_vip,omitempty"`
    33  
    34  	// APIVIPs contains the VIP(s) which will be served by bootstrap and then
    35  	// pivoted masters, using keepalived. In dual stack clusters it contains an
    36  	// IPv4 and IPv6 address, otherwise only one VIP
    37  	//
    38  	// +kubebuilder:validation:MaxItems=2
    39  	// +kubebuilder:validation:UniqueItems=true
    40  	// +kubebuilder:validation:Format=ip
    41  	// +optional
    42  	APIVIPs []string `json:"api_vips,omitempty"`
    43  
    44  	// IngressIP is an external IP which routes to the default ingress controller.
    45  	// The IP is a suitable target of a wildcard DNS record used to resolve default route host names.
    46  	// Deprecated: Use IngressVIPs
    47  	//
    48  	// +kubebuilder:validation:Format=ip
    49  	// +optional
    50  	DeprecatedIngressVIP string `json:"ingress_vip,omitempty"`
    51  
    52  	// IngressVIPs are external IP(s) which route to the default ingress
    53  	// controller. The VIPs are suitable targets of wildcard DNS records used to
    54  	// resolve default route host names. In dual stack clusters it contains an
    55  	// IPv4 and IPv6 address, otherwise only one VIP
    56  	//
    57  	// +kubebuilder:validation:MaxItems=2
    58  	// +kubebuilder:validation:UniqueItems=true
    59  	// +kubebuilder:validation:Format=ip
    60  	// +optional
    61  	IngressVIPs []string `json:"ingress_vips,omitempty"`
    62  
    63  	// DefaultMachinePlatform is the default configuration used when
    64  	// installing on ovirt for machine pools which do not define their
    65  	// own platform configuration.
    66  	// Default will set the image field to the latest RHCOS image.
    67  	// +optional
    68  	DefaultMachinePlatform *MachinePool `json:"defaultMachinePlatform,omitempty"`
    69  
    70  	// AffinityGroups contains the RHV affinity groups that the installer will create.
    71  	// +optional
    72  	AffinityGroups []AffinityGroup `json:"affinityGroups"`
    73  
    74  	// LoadBalancer defines how the load balancer used by the cluster is configured.
    75  	// LoadBalancer is available in TechPreview.
    76  	// +optional
    77  	LoadBalancer *configv1.OvirtPlatformLoadBalancer `json:"loadBalancer,omitempty"`
    78  }
    79  
    80  // AffinityGroup defines the affinity group that the installer will create
    81  type AffinityGroup struct {
    82  	// Name name of the affinity group
    83  	Name string `json:"name"`
    84  	// Priority of the affinity group, needs to be between 1 (lowest) - 5 (highest)
    85  	Priority int `json:"priority"`
    86  	// Description of the affinity group
    87  	// +optional
    88  	Description string `json:"description,omitempty"`
    89  	// Enforcing whether to create a hard affinity rule, default is false
    90  	// +optional
    91  	Enforcing bool `json:"enforcing"`
    92  }