Documentation
¶
Overview ¶
+kubebuilder:object:generate=true +groupName=distributedvirtualswitch.vsphere.upbound.io +versionName=v1alpha1
Index ¶
- Constants
- Variables
- type HostObservation
- type HostParameters
- type PvlanMappingObservation
- type PvlanMappingParameters
- type VirtualSwitch
- func (in *VirtualSwitch) DeepCopy() *VirtualSwitch
- func (in *VirtualSwitch) DeepCopyInto(out *VirtualSwitch)
- func (in *VirtualSwitch) DeepCopyObject() runtime.Object
- func (mg *VirtualSwitch) GetCondition(ct xpv1.ConditionType) xpv1.Condition
- func (tr *VirtualSwitch) GetConnectionDetailsMapping() map[string]string
- func (mg *VirtualSwitch) GetDeletionPolicy() xpv1.DeletionPolicy
- func (tr *VirtualSwitch) GetID() string
- func (tr *VirtualSwitch) GetObservation() (map[string]any, error)
- func (tr *VirtualSwitch) GetParameters() (map[string]any, error)
- func (mg *VirtualSwitch) GetProviderConfigReference() *xpv1.Reference
- func (mg *VirtualSwitch) GetProviderReference() *xpv1.Reference
- func (mg *VirtualSwitch) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo
- func (mg *VirtualSwitch) GetTerraformResourceType() string
- func (tr *VirtualSwitch) GetTerraformSchemaVersion() int
- func (mg *VirtualSwitch) GetWriteConnectionSecretToReference() *xpv1.SecretReference
- func (tr *VirtualSwitch) LateInitialize(attrs []byte) (bool, error)
- func (mg *VirtualSwitch) SetConditions(c ...xpv1.Condition)
- func (mg *VirtualSwitch) SetDeletionPolicy(r xpv1.DeletionPolicy)
- func (tr *VirtualSwitch) SetObservation(obs map[string]any) error
- func (tr *VirtualSwitch) SetParameters(params map[string]any) error
- func (mg *VirtualSwitch) SetProviderConfigReference(r *xpv1.Reference)
- func (mg *VirtualSwitch) SetProviderReference(r *xpv1.Reference)
- func (mg *VirtualSwitch) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo)
- func (mg *VirtualSwitch) SetWriteConnectionSecretToReference(r *xpv1.SecretReference)
- type VirtualSwitchList
- type VirtualSwitchObservation
- type VirtualSwitchParameters
- type VirtualSwitchSpec
- type VirtualSwitchStatus
- type VlanRangeObservation
- type VlanRangeParameters
Constants ¶
const ( CRDGroup = "distributedvirtualswitch.vsphere.upbound.io" CRDVersion = "v1alpha1" )
Package type metadata.
Variables ¶
var ( // CRDGroupVersion is the API Group Version used to register the objects CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
var ( VirtualSwitch_Kind = "VirtualSwitch" VirtualSwitch_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: VirtualSwitch_Kind}.String() VirtualSwitch_KindAPIVersion = VirtualSwitch_Kind + "." + CRDGroupVersion.String() VirtualSwitch_GroupVersionKind = CRDGroupVersion.WithKind(VirtualSwitch_Kind) )
Repository type metadata.
Functions ¶
This section is empty.
Types ¶
type HostObservation ¶
type HostObservation struct {
}
func (*HostObservation) DeepCopy ¶
func (in *HostObservation) DeepCopy() *HostObservation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostObservation.
func (*HostObservation) DeepCopyInto ¶
func (in *HostObservation) DeepCopyInto(out *HostObservation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HostParameters ¶
type HostParameters struct {
// The list of NIC devices to map to uplinks on the VDS,
// added in order they are specified.
// Name of the physical NIC to be added to the proxy switch.
// +kubebuilder:validation:Optional
Devices []*string `json:"devices,omitempty" tf:"devices,omitempty"`
// The host system ID of the host to add to the
// VDS.
// The managed object ID of the host this specification applies to.
// +kubebuilder:validation:Required
HostSystemID *string `json:"hostSystemId" tf:"host_system_id,omitempty"`
}
func (*HostParameters) DeepCopy ¶
func (in *HostParameters) DeepCopy() *HostParameters
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostParameters.
func (*HostParameters) DeepCopyInto ¶
func (in *HostParameters) DeepCopyInto(out *HostParameters)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PvlanMappingObservation ¶
type PvlanMappingObservation struct {
}
func (*PvlanMappingObservation) DeepCopy ¶
func (in *PvlanMappingObservation) DeepCopy() *PvlanMappingObservation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PvlanMappingObservation.
func (*PvlanMappingObservation) DeepCopyInto ¶
func (in *PvlanMappingObservation) DeepCopyInto(out *PvlanMappingObservation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PvlanMappingParameters ¶
type PvlanMappingParameters struct {
// The primary VLAN ID. The VLAN IDs of 0 and
// 4095 are reserved and cannot be used in this property.
// The primary VLAN ID. The VLAN IDs of 0 and 4095 are reserved and cannot be used in this property.
// +kubebuilder:validation:Required
PrimaryVlanID *float64 `json:"primaryVlanId" tf:"primary_vlan_id,omitempty"`
// The private VLAN type. Valid values are
// promiscuous, community and isolated.
// The private VLAN type. Valid values are promiscuous, community and isolated.
// +kubebuilder:validation:Required
PvlanType *string `json:"pvlanType" tf:"pvlan_type,omitempty"`
// The secondary VLAN ID. The VLAN IDs of 0
// and 4095 are reserved and cannot be used in this property.
// The secondary VLAN ID. The VLAN IDs of 0 and 4095 are reserved and cannot be used in this property.
// +kubebuilder:validation:Required
SecondaryVlanID *float64 `json:"secondaryVlanId" tf:"secondary_vlan_id,omitempty"`
}
func (*PvlanMappingParameters) DeepCopy ¶
func (in *PvlanMappingParameters) DeepCopy() *PvlanMappingParameters
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PvlanMappingParameters.
func (*PvlanMappingParameters) DeepCopyInto ¶
func (in *PvlanMappingParameters) DeepCopyInto(out *PvlanMappingParameters)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualSwitch ¶
type VirtualSwitch struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec VirtualSwitchSpec `json:"spec"`
Status VirtualSwitchStatus `json:"status,omitempty"`
}
VirtualSwitch is the Schema for the VirtualSwitchs API. Provides a vSphere Distributed Switch resource. This can be used to create and manage the vSphere Distributed Switch resources in vCenter Server. +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,vsphere}
func (*VirtualSwitch) DeepCopy ¶
func (in *VirtualSwitch) DeepCopy() *VirtualSwitch
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualSwitch.
func (*VirtualSwitch) DeepCopyInto ¶
func (in *VirtualSwitch) DeepCopyInto(out *VirtualSwitch)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualSwitch) DeepCopyObject ¶
func (in *VirtualSwitch) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*VirtualSwitch) GetCondition ¶
func (mg *VirtualSwitch) GetCondition(ct xpv1.ConditionType) xpv1.Condition
GetCondition of this VirtualSwitch.
func (*VirtualSwitch) GetConnectionDetailsMapping ¶
func (tr *VirtualSwitch) GetConnectionDetailsMapping() map[string]string
GetConnectionDetailsMapping for this VirtualSwitch
func (*VirtualSwitch) GetDeletionPolicy ¶
func (mg *VirtualSwitch) GetDeletionPolicy() xpv1.DeletionPolicy
GetDeletionPolicy of this VirtualSwitch.
func (*VirtualSwitch) GetID ¶
func (tr *VirtualSwitch) GetID() string
GetID returns ID of underlying Terraform resource of this VirtualSwitch
func (*VirtualSwitch) GetObservation ¶
func (tr *VirtualSwitch) GetObservation() (map[string]any, error)
GetObservation of this VirtualSwitch
func (*VirtualSwitch) GetParameters ¶
func (tr *VirtualSwitch) GetParameters() (map[string]any, error)
GetParameters of this VirtualSwitch
func (*VirtualSwitch) GetProviderConfigReference ¶
func (mg *VirtualSwitch) GetProviderConfigReference() *xpv1.Reference
GetProviderConfigReference of this VirtualSwitch.
func (*VirtualSwitch) GetProviderReference ¶
func (mg *VirtualSwitch) GetProviderReference() *xpv1.Reference
GetProviderReference of this VirtualSwitch. Deprecated: Use GetProviderConfigReference.
func (*VirtualSwitch) GetPublishConnectionDetailsTo ¶
func (mg *VirtualSwitch) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo
GetPublishConnectionDetailsTo of this VirtualSwitch.
func (*VirtualSwitch) GetTerraformResourceType ¶
func (mg *VirtualSwitch) GetTerraformResourceType() string
GetTerraformResourceType returns Terraform resource type for this VirtualSwitch
func (*VirtualSwitch) GetTerraformSchemaVersion ¶
func (tr *VirtualSwitch) GetTerraformSchemaVersion() int
GetTerraformSchemaVersion returns the associated Terraform schema version
func (*VirtualSwitch) GetWriteConnectionSecretToReference ¶
func (mg *VirtualSwitch) GetWriteConnectionSecretToReference() *xpv1.SecretReference
GetWriteConnectionSecretToReference of this VirtualSwitch.
func (*VirtualSwitch) LateInitialize ¶
func (tr *VirtualSwitch) LateInitialize(attrs []byte) (bool, error)
LateInitialize this VirtualSwitch using its observed tfState. returns True if there are any spec changes for the resource.
func (*VirtualSwitch) SetConditions ¶
func (mg *VirtualSwitch) SetConditions(c ...xpv1.Condition)
SetConditions of this VirtualSwitch.
func (*VirtualSwitch) SetDeletionPolicy ¶
func (mg *VirtualSwitch) SetDeletionPolicy(r xpv1.DeletionPolicy)
SetDeletionPolicy of this VirtualSwitch.
func (*VirtualSwitch) SetObservation ¶
func (tr *VirtualSwitch) SetObservation(obs map[string]any) error
SetObservation for this VirtualSwitch
func (*VirtualSwitch) SetParameters ¶
func (tr *VirtualSwitch) SetParameters(params map[string]any) error
SetParameters for this VirtualSwitch
func (*VirtualSwitch) SetProviderConfigReference ¶
func (mg *VirtualSwitch) SetProviderConfigReference(r *xpv1.Reference)
SetProviderConfigReference of this VirtualSwitch.
func (*VirtualSwitch) SetProviderReference ¶
func (mg *VirtualSwitch) SetProviderReference(r *xpv1.Reference)
SetProviderReference of this VirtualSwitch. Deprecated: Use SetProviderConfigReference.
func (*VirtualSwitch) SetPublishConnectionDetailsTo ¶
func (mg *VirtualSwitch) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo)
SetPublishConnectionDetailsTo of this VirtualSwitch.
func (*VirtualSwitch) SetWriteConnectionSecretToReference ¶
func (mg *VirtualSwitch) SetWriteConnectionSecretToReference(r *xpv1.SecretReference)
SetWriteConnectionSecretToReference of this VirtualSwitch.
type VirtualSwitchList ¶
type VirtualSwitchList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []VirtualSwitch `json:"items"`
}
VirtualSwitchList contains a list of VirtualSwitchs
func (*VirtualSwitchList) DeepCopy ¶
func (in *VirtualSwitchList) DeepCopy() *VirtualSwitchList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualSwitchList.
func (*VirtualSwitchList) DeepCopyInto ¶
func (in *VirtualSwitchList) DeepCopyInto(out *VirtualSwitchList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualSwitchList) DeepCopyObject ¶
func (in *VirtualSwitchList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*VirtualSwitchList) GetItems ¶
func (l *VirtualSwitchList) GetItems() []resource.Managed
GetItems of this VirtualSwitchList.
type VirtualSwitchObservation ¶
type VirtualSwitchObservation struct {
// : The current version of the VDS configuration, incremented
// by subsequent updates to the VDS.
// The version string of the configuration that this spec is trying to change.
ConfigVersion *string `json:"configVersion,omitempty" tf:"config_version,omitempty"`
// : The UUID of the created VDS.
ID *string `json:"id,omitempty" tf:"id,omitempty"`
}
func (*VirtualSwitchObservation) DeepCopy ¶
func (in *VirtualSwitchObservation) DeepCopy() *VirtualSwitchObservation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualSwitchObservation.
func (*VirtualSwitchObservation) DeepCopyInto ¶
func (in *VirtualSwitchObservation) DeepCopyInto(out *VirtualSwitchObservation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualSwitchParameters ¶
type VirtualSwitchParameters struct {
// A list of active uplinks to be used in load
// balancing. These uplinks need to match the definitions in the
// uplinks VDS argument. See
// here for more details.
// List of active uplinks used for load balancing, matching the names of the uplinks assigned in the DVS.
// +kubebuilder:validation:Optional
ActiveUplinks []*string `json:"activeUplinks,omitempty" tf:"active_uplinks,omitempty"`
// Controls whether or not a virtual
// network adapter is allowed to send network traffic with a different MAC
// address than that of its own.
// Controls whether or not the virtual network adapter is allowed to send network traffic with a different MAC address than that of its own.
// +kubebuilder:validation:Optional
AllowForgedTransmits *bool `json:"allowForgedTransmits,omitempty" tf:"allow_forged_transmits,omitempty"`
// Controls whether or not the Media Access
// Control (MAC) address can be changed.
// Controls whether or not the Media Access Control (MAC) address can be changed.
// +kubebuilder:validation:Optional
AllowMacChanges *bool `json:"allowMacChanges,omitempty" tf:"allow_mac_changes,omitempty"`
// Enable promiscuous mode on the network. This
// flag indicates whether or not all traffic is seen on a given port.
// Enable promiscuous mode on the network. This flag indicates whether or not all traffic is seen on a given port.
// +kubebuilder:validation:Optional
AllowPromiscuous *bool `json:"allowPromiscuous,omitempty" tf:"allow_promiscuous,omitempty"`
// The maximum amount of bandwidth allowed for this
// traffic class in Mbits/sec.
// The maximum allowed usage for the backupNfc traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
BackupnfcMaximumMbit *float64 `json:"backupnfcMaximumMbit,omitempty" tf:"backupnfc_maximum_mbit,omitempty"`
// The guaranteed amount of bandwidth for this
// traffic class in Mbits/sec.
// The amount of guaranteed bandwidth for the backupNfc traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
BackupnfcReservationMbit *float64 `json:"backupnfcReservationMbit,omitempty" tf:"backupnfc_reservation_mbit,omitempty"`
// ignored if share_level is not custom.
// The amount of shares to allocate to the backupNfc traffic class for a custom share level.
// +kubebuilder:validation:Optional
BackupnfcShareCount *float64 `json:"backupnfcShareCount,omitempty" tf:"backupnfc_share_count,omitempty"`
// this resource class. Can be one of low, normal, high, or custom.
// The allocation level for the backupNfc traffic class. Can be one of high, low, normal, or custom.
// +kubebuilder:validation:Optional
BackupnfcShareLevel *string `json:"backupnfcShareLevel,omitempty" tf:"backupnfc_share_level,omitempty"`
// Shuts down all ports in the port groups that
// this policy applies to, effectively blocking all network access to connected
// virtual devices.
// Indicates whether to block all ports by default.
// +kubebuilder:validation:Optional
BlockAllPorts *bool `json:"blockAllPorts,omitempty" tf:"block_all_ports,omitempty"`
// Enables beacon probing as an additional measure
// to detect NIC failure.
// Enable beacon probing on the ports this policy applies to.
// +kubebuilder:validation:Optional
CheckBeacon *bool `json:"checkBeacon,omitempty" tf:"check_beacon,omitempty"`
// The detailed contact information for the person
// who is responsible for the VDS.
// The contact detail for this DVS.
// +kubebuilder:validation:Optional
ContactDetail *string `json:"contactDetail,omitempty" tf:"contact_detail,omitempty"`
// The name of the person who is responsible for the
// VDS.
// The contact name for this DVS.
// +kubebuilder:validation:Optional
ContactName *string `json:"contactName,omitempty" tf:"contact_name,omitempty"`
// Map of custom attribute ids to attribute
// value strings to set for VDS. See here
// for a reference on how to set values for custom attributes.
// A list of custom attributes to set on this resource.
// +kubebuilder:validation:Optional
CustomAttributes map[string]*string `json:"customAttributes,omitempty" tf:"custom_attributes,omitempty"`
// The ID of the datacenter where the VDS will be
// created. Forces a new resource if changed.
// The ID of the datacenter to create this virtual switch in.
// +kubebuilder:validation:Required
DatacenterID *string `json:"datacenterId" tf:"datacenter_id,omitempty"`
// A detailed description for the VDS.
// The description of the DVS.
// +kubebuilder:validation:Optional
Description *string `json:"description,omitempty" tf:"description,omitempty"`
// Allow VMDirectPath Gen2 for the ports
// for which this policy applies to.
// Allow VMDirectPath Gen2 on the ports this policy applies to.
// +kubebuilder:validation:Optional
DirectpathGen2Allowed *bool `json:"directpathGen2Allowed,omitempty" tf:"directpath_gen2_allowed,omitempty"`
// The average bandwidth in bits
// per second if egress traffic shaping is enabled on the port.
// The average egress bandwidth in bits per second if egress shaping is enabled on the port.
// +kubebuilder:validation:Optional
EgressShapingAverageBandwidth *float64 `json:"egressShapingAverageBandwidth,omitempty" tf:"egress_shaping_average_bandwidth,omitempty"`
// The maximum burst size allowed in
// bytes if egress traffic shaping is enabled on the port.
// The maximum egress burst size allowed in bytes if egress shaping is enabled on the port.
// +kubebuilder:validation:Optional
EgressShapingBurstSize *float64 `json:"egressShapingBurstSize,omitempty" tf:"egress_shaping_burst_size,omitempty"`
// true if the traffic shaper is enabled
// on the port for egress traffic.
// True if the traffic shaper is enabled for egress traffic on the port.
// +kubebuilder:validation:Optional
EgressShapingEnabled *bool `json:"egressShapingEnabled,omitempty" tf:"egress_shaping_enabled,omitempty"`
// The peak bandwidth during bursts
// in bits per second if egress traffic shaping is enabled on the port.
// The peak egress bandwidth during bursts in bits per second if egress traffic shaping is enabled on the port.
// +kubebuilder:validation:Optional
EgressShapingPeakBandwidth *float64 `json:"egressShapingPeakBandwidth,omitempty" tf:"egress_shaping_peak_bandwidth,omitempty"`
// If true, the teaming policy will re-activate failed
// uplinks higher in precedence when they come back up.
// If true, the teaming policy will re-activate failed interfaces higher in precedence when they come back up.
// +kubebuilder:validation:Optional
Failback *bool `json:"failback,omitempty" tf:"failback,omitempty"`
// The maximum amount of bandwidth allowed for this
// traffic class in Mbits/sec.
// The maximum allowed usage for the faultTolerance traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
FaulttoleranceMaximumMbit *float64 `json:"faulttoleranceMaximumMbit,omitempty" tf:"faulttolerance_maximum_mbit,omitempty"`
// The guaranteed amount of bandwidth for this
// traffic class in Mbits/sec.
// The amount of guaranteed bandwidth for the faultTolerance traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
FaulttoleranceReservationMbit *float64 `json:"faulttoleranceReservationMbit,omitempty" tf:"faulttolerance_reservation_mbit,omitempty"`
// ignored if share_level is not custom.
// The amount of shares to allocate to the faultTolerance traffic class for a custom share level.
// +kubebuilder:validation:Optional
FaulttoleranceShareCount *float64 `json:"faulttoleranceShareCount,omitempty" tf:"faulttolerance_share_count,omitempty"`
// this resource class. Can be one of low, normal, high, or custom.
// The allocation level for the faultTolerance traffic class. Can be one of high, low, normal, or custom.
// +kubebuilder:validation:Optional
FaulttoleranceShareLevel *string `json:"faulttoleranceShareLevel,omitempty" tf:"faulttolerance_share_level,omitempty"`
// The folder in which to create the VDS.
// Forces a new resource if changed.
// The folder to create this virtual switch in, relative to the datacenter.
// +kubebuilder:validation:Optional
Folder *string `json:"folder,omitempty" tf:"folder,omitempty"`
// The maximum amount of bandwidth allowed for this
// traffic class in Mbits/sec.
// The maximum allowed usage for the hbr traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
HbrMaximumMbit *float64 `json:"hbrMaximumMbit,omitempty" tf:"hbr_maximum_mbit,omitempty"`
// The guaranteed amount of bandwidth for this
// traffic class in Mbits/sec.
// The amount of guaranteed bandwidth for the hbr traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
HbrReservationMbit *float64 `json:"hbrReservationMbit,omitempty" tf:"hbr_reservation_mbit,omitempty"`
// ignored if share_level is not custom.
// The amount of shares to allocate to the hbr traffic class for a custom share level.
// +kubebuilder:validation:Optional
HbrShareCount *float64 `json:"hbrShareCount,omitempty" tf:"hbr_share_count,omitempty"`
// this resource class. Can be one of low, normal, high, or custom.
// The allocation level for the hbr traffic class. Can be one of high, low, normal, or custom.
// +kubebuilder:validation:Optional
HbrShareLevel *string `json:"hbrShareLevel,omitempty" tf:"hbr_share_level,omitempty"`
// Use the host block to declare a host specification. The
// options are:
// A host member specification.
// +kubebuilder:validation:Optional
Host []HostParameters `json:"host,omitempty" tf:"host,omitempty"`
// An IPv4 address to identify the switch. This is
// mostly useful when used with the Netflow arguments.
// The IPv4 address of the switch. This can be used to see the DVS as a unique device with NetFlow.
// +kubebuilder:validation:Optional
IPv4Address *string `json:"ipv4Address,omitempty" tf:"ipv4_address,omitempty"`
// The maximum amount of bandwidth allowed for this
// traffic class in Mbits/sec.
// The maximum allowed usage for the iSCSI traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
ISCSIMaximumMbit *float64 `json:"iscsiMaximumMbit,omitempty" tf:"iscsi_maximum_mbit,omitempty"`
// The guaranteed amount of bandwidth for this
// traffic class in Mbits/sec.
// The amount of guaranteed bandwidth for the iSCSI traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
ISCSIReservationMbit *float64 `json:"iscsiReservationMbit,omitempty" tf:"iscsi_reservation_mbit,omitempty"`
// ignored if share_level is not custom.
// The amount of shares to allocate to the iSCSI traffic class for a custom share level.
// +kubebuilder:validation:Optional
ISCSIShareCount *float64 `json:"iscsiShareCount,omitempty" tf:"iscsi_share_count,omitempty"`
// this resource class. Can be one of low, normal, high, or custom.
// The allocation level for the iSCSI traffic class. Can be one of high, low, normal, or custom.
// +kubebuilder:validation:Optional
ISCSIShareLevel *string `json:"iscsiShareLevel,omitempty" tf:"iscsi_share_level,omitempty"`
// Whether to ignore existing PVLAN
// mappings not managed by this resource. Defaults to false.
// Whether to ignore existing PVLAN mappings not managed by this resource. Defaults to false.
// +kubebuilder:validation:Optional
IgnoreOtherPvlanMappings *bool `json:"ignoreOtherPvlanMappings,omitempty" tf:"ignore_other_pvlan_mappings,omitempty"`
// The average bandwidth in
// bits per second if ingress traffic shaping is enabled on the port.
// The average ingress bandwidth in bits per second if ingress shaping is enabled on the port.
// +kubebuilder:validation:Optional
IngressShapingAverageBandwidth *float64 `json:"ingressShapingAverageBandwidth,omitempty" tf:"ingress_shaping_average_bandwidth,omitempty"`
// The maximum burst size allowed in
// bytes if ingress traffic shaping is enabled on the port.
// The maximum ingress burst size allowed in bytes if ingress shaping is enabled on the port.
// +kubebuilder:validation:Optional
IngressShapingBurstSize *float64 `json:"ingressShapingBurstSize,omitempty" tf:"ingress_shaping_burst_size,omitempty"`
// true if the traffic shaper is
// enabled on the port for ingress traffic.
// True if the traffic shaper is enabled for ingress traffic on the port.
// +kubebuilder:validation:Optional
IngressShapingEnabled *bool `json:"ingressShapingEnabled,omitempty" tf:"ingress_shaping_enabled,omitempty"`
// The peak bandwidth during
// bursts in bits per second if ingress traffic shaping is enabled on the port.
// The peak ingress bandwidth during bursts in bits per second if ingress traffic shaping is enabled on the port.
// +kubebuilder:validation:Optional
IngressShapingPeakBandwidth *float64 `json:"ingressShapingPeakBandwidth,omitempty" tf:"ingress_shaping_peak_bandwidth,omitempty"`
// The Link Aggregation Control Protocol group
// version to use with the VDS. Possible values are singleLag and
// multipleLag.
// The Link Aggregation Control Protocol group version in the switch. Can be one of singleLag or multipleLag.
// +kubebuilder:validation:Optional
LacpAPIVersion *string `json:"lacpApiVersion,omitempty" tf:"lacp_api_version,omitempty"`
// Enables LACP for the ports that this policy
// applies to.
// Whether or not to enable LACP on all uplink ports.
// +kubebuilder:validation:Optional
LacpEnabled *bool `json:"lacpEnabled,omitempty" tf:"lacp_enabled,omitempty"`
// The LACP mode. Can be one of active or passive.
// The uplink LACP mode to use. Can be one of active or passive.
// +kubebuilder:validation:Optional
LacpMode *string `json:"lacpMode,omitempty" tf:"lacp_mode,omitempty"`
// Whether to advertise or listen
// for link discovery traffic.
// Whether to advertise or listen for link discovery. Valid values are advertise, both, listen, and none.
// +kubebuilder:validation:Optional
LinkDiscoveryOperation *string `json:"linkDiscoveryOperation,omitempty" tf:"link_discovery_operation,omitempty"`
// The discovery protocol type. Valid
// types are cdp and lldp.
// The discovery protocol type. Valid values are cdp and lldp.
// +kubebuilder:validation:Optional
LinkDiscoveryProtocol *string `json:"linkDiscoveryProtocol,omitempty" tf:"link_discovery_protocol,omitempty"`
// The maximum amount of bandwidth allowed for this
// traffic class in Mbits/sec.
// The maximum allowed usage for the management traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
ManagementMaximumMbit *float64 `json:"managementMaximumMbit,omitempty" tf:"management_maximum_mbit,omitempty"`
// The guaranteed amount of bandwidth for this
// traffic class in Mbits/sec.
// The amount of guaranteed bandwidth for the management traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
ManagementReservationMbit *float64 `json:"managementReservationMbit,omitempty" tf:"management_reservation_mbit,omitempty"`
// ignored if share_level is not custom.
// The amount of shares to allocate to the management traffic class for a custom share level.
// +kubebuilder:validation:Optional
ManagementShareCount *float64 `json:"managementShareCount,omitempty" tf:"management_share_count,omitempty"`
// this resource class. Can be one of low, normal, high, or custom.
// The allocation level for the management traffic class. Can be one of high, low, normal, or custom.
// +kubebuilder:validation:Optional
ManagementShareLevel *string `json:"managementShareLevel,omitempty" tf:"management_share_level,omitempty"`
// The maximum transmission unit (MTU) for the VDS.
// The maximum MTU on the switch.
// +kubebuilder:validation:Optional
MaxMtu *float64 `json:"maxMtu,omitempty" tf:"max_mtu,omitempty"`
// The multicast filtering mode to use
// with the VDS. Can be one of legacyFiltering or snooping.
// The multicast filtering mode on the switch. Can be one of legacyFiltering, or snooping.
// +kubebuilder:validation:Optional
MulticastFilteringMode *string `json:"multicastFilteringMode,omitempty" tf:"multicast_filtering_mode,omitempty"`
// The maximum amount of bandwidth allowed for this
// traffic class in Mbits/sec.
// The maximum allowed usage for the nfs traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
NFSMaximumMbit *float64 `json:"nfsMaximumMbit,omitempty" tf:"nfs_maximum_mbit,omitempty"`
// The guaranteed amount of bandwidth for this
// traffic class in Mbits/sec.
// The amount of guaranteed bandwidth for the nfs traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
NFSReservationMbit *float64 `json:"nfsReservationMbit,omitempty" tf:"nfs_reservation_mbit,omitempty"`
// ignored if share_level is not custom.
// The amount of shares to allocate to the nfs traffic class for a custom share level.
// +kubebuilder:validation:Optional
NFSShareCount *float64 `json:"nfsShareCount,omitempty" tf:"nfs_share_count,omitempty"`
// this resource class. Can be one of low, normal, high, or custom.
// The allocation level for the nfs traffic class. Can be one of high, low, normal, or custom.
// +kubebuilder:validation:Optional
NFSShareLevel *string `json:"nfsShareLevel,omitempty" tf:"nfs_share_level,omitempty"`
// The number of seconds after which
// active flows are forced to be exported to the collector. Allowed range is
// 60 to 3600. Default: 60.
// The number of seconds after which active flows are forced to be exported to the collector.
// +kubebuilder:validation:Optional
NetflowActiveFlowTimeout *float64 `json:"netflowActiveFlowTimeout,omitempty" tf:"netflow_active_flow_timeout,omitempty"`
// IP address for the Netflow
// collector, using IPv4 or IPv6. IPv6 is supported in VDS version 6.0 or later.
// Must be set before Netflow can be enabled.
// IP address for the netflow collector, using IPv4 or IPv6. IPv6 is supported in vSphere Distributed Switch Version 6.0 or later.
// +kubebuilder:validation:Optional
NetflowCollectorIPAddress *string `json:"netflowCollectorIpAddress,omitempty" tf:"netflow_collector_ip_address,omitempty"`
// Port for the Netflow collector. This
// must be set before Netflow can be enabled.
// The port for the netflow collector.
// +kubebuilder:validation:Optional
NetflowCollectorPort *float64 `json:"netflowCollectorPort,omitempty" tf:"netflow_collector_port,omitempty"`
// Enables Netflow on all ports that this policy
// applies to.
// Indicates whether to enable netflow on all ports.
// +kubebuilder:validation:Optional
NetflowEnabled *bool `json:"netflowEnabled,omitempty" tf:"netflow_enabled,omitempty"`
// The number of seconds after which
// idle flows are forced to be exported to the collector. Allowed range is 10
// to 600. Default: 15.
// The number of seconds after which idle flows are forced to be exported to the collector.
// +kubebuilder:validation:Optional
NetflowIdleFlowTimeout *float64 `json:"netflowIdleFlowTimeout,omitempty" tf:"netflow_idle_flow_timeout,omitempty"`
// Whether to limit analysis to
// traffic that has both source and destination served by the same host.
// Default: false.
// Whether to limit analysis to traffic that has both source and destination served by the same host.
// +kubebuilder:validation:Optional
NetflowInternalFlowsOnly *bool `json:"netflowInternalFlowsOnly,omitempty" tf:"netflow_internal_flows_only,omitempty"`
// The observation domain ID for
// the Netflow collector.
// The observation Domain ID for the netflow collector.
// +kubebuilder:validation:Optional
NetflowObservationDomainID *float64 `json:"netflowObservationDomainId,omitempty" tf:"netflow_observation_domain_id,omitempty"`
// The ratio of total number of packets to
// the number of packets analyzed. The default is 0, which indicates that the
// VDS should analyze all packets. The maximum value is 1000, which
// indicates an analysis rate of 0.001%.
// The ratio of total number of packets to the number of packets analyzed. Set to 0 to disable sampling, meaning that all packets are analyzed.
// +kubebuilder:validation:Optional
NetflowSamplingRate *float64 `json:"netflowSamplingRate,omitempty" tf:"netflow_sampling_rate,omitempty"`
// Set to true to enable
// network I/O control. Default: false.
// Whether or not to enable network resource control, enabling advanced traffic shaping and resource control features.
// +kubebuilder:validation:Optional
NetworkResourceControlEnabled *bool `json:"networkResourceControlEnabled,omitempty" tf:"network_resource_control_enabled,omitempty"`
// The version of network I/O
// control to use. Can be one of version2 or version3. Default: version2.
// The network I/O control version to use. Can be one of version2 or version3.
// +kubebuilder:validation:Optional
NetworkResourceControlVersion *string `json:"networkResourceControlVersion,omitempty" tf:"network_resource_control_version,omitempty"`
// If true, the teaming policy will notify the
// broadcast network of an uplink failover, triggering cache updates.
// If true, the teaming policy will notify the broadcast network of a NIC failover, triggering cache updates.
// +kubebuilder:validation:Optional
NotifySwitches *bool `json:"notifySwitches,omitempty" tf:"notify_switches,omitempty"`
// Used to define a secondary VLAN
// ID when using private VLANs.
// The secondary VLAN ID for this port.
// +kubebuilder:validation:Optional
PortPrivateSecondaryVlanID *float64 `json:"portPrivateSecondaryVlanId,omitempty" tf:"port_private_secondary_vlan_id,omitempty"`
// Use the pvlan_mapping block to declare a
// private VLAN mapping. The options are:
// A private VLAN (PVLAN) mapping.
// +kubebuilder:validation:Optional
PvlanMapping []PvlanMappingParameters `json:"pvlanMapping,omitempty" tf:"pvlan_mapping,omitempty"`
// A list of standby uplinks to be used in
// failover. These uplinks need to match the definitions in the
// uplinks VDS argument. See
// here for more details.
// List of standby uplinks used for load balancing, matching the names of the uplinks assigned in the DVS.
// +kubebuilder:validation:Optional
StandbyUplinks []*string `json:"standbyUplinks,omitempty" tf:"standby_uplinks,omitempty"`
// The IDs of any tags to attach to this resource. See
// here for a reference on how to apply tags.
// A list of tag IDs to apply to this object.
// +kubebuilder:validation:Optional
Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"`
// The uplink teaming policy. Can be one of
// loadbalance_ip, loadbalance_srcmac, loadbalance_srcid,
// failover_explicit, or loadbalance_loadbased.
// The network adapter teaming policy. Can be one of loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, failover_explicit, or loadbalance_loadbased.
// +kubebuilder:validation:Optional
TeamingPolicy *string `json:"teamingPolicy,omitempty" tf:"teaming_policy,omitempty"`
// Forward all traffic transmitted by ports for which
// this policy applies to its VDS uplinks.
// If true, a copy of packets sent to the switch will always be forwarded to an uplink in addition to the regular packet forwarded done by the switch.
// +kubebuilder:validation:Optional
TxUplink *bool `json:"txUplink,omitempty" tf:"tx_uplink,omitempty"`
// A list of strings that uniquely identifies the names
// of the uplinks on the VDS across hosts. The number of items in this list
// controls the number of uplinks that exist on the VDS, in addition to the
// names. See here for an example on how to
// use this option.
// A list of uplink ports. The contents of this list control both the uplink count and names of the uplinks on the DVS across hosts.
// +kubebuilder:validation:Optional
Uplinks []*string `json:"uplinks,omitempty" tf:"uplinks,omitempty"`
// The maximum amount of bandwidth allowed for this
// traffic class in Mbits/sec.
// The maximum allowed usage for the vdp traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
VdpMaximumMbit *float64 `json:"vdpMaximumMbit,omitempty" tf:"vdp_maximum_mbit,omitempty"`
// The guaranteed amount of bandwidth for this
// traffic class in Mbits/sec.
// The amount of guaranteed bandwidth for the vdp traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
VdpReservationMbit *float64 `json:"vdpReservationMbit,omitempty" tf:"vdp_reservation_mbit,omitempty"`
// ignored if share_level is not custom.
// The amount of shares to allocate to the vdp traffic class for a custom share level.
// +kubebuilder:validation:Optional
VdpShareCount *float64 `json:"vdpShareCount,omitempty" tf:"vdp_share_count,omitempty"`
// this resource class. Can be one of low, normal, high, or custom.
// The allocation level for the vdp traffic class. Can be one of high, low, normal, or custom.
// +kubebuilder:validation:Optional
VdpShareLevel *string `json:"vdpShareLevel,omitempty" tf:"vdp_share_level,omitempty"`
// - The version of the VDS. BY default, a VDS is created
// at the latest version supported by the vSphere version if not specified.
// A VDS can be upgraded to a newer version, but can not be downgraded.
// The version of this virtual switch. Allowed versions are 8.0.0, 7.0.3, 7.0.2, 7.0.0, 6.6.0, 6.5.0, 6.0.0, 5.5.0, 5.1.0, and 5.0.0.
// +kubebuilder:validation:Optional
Version *string `json:"version,omitempty" tf:"version,omitempty"`
// The maximum amount of bandwidth allowed for this
// traffic class in Mbits/sec.
// The maximum allowed usage for the virtualMachine traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
VirtualmachineMaximumMbit *float64 `json:"virtualmachineMaximumMbit,omitempty" tf:"virtualmachine_maximum_mbit,omitempty"`
// The guaranteed amount of bandwidth for this
// traffic class in Mbits/sec.
// The amount of guaranteed bandwidth for the virtualMachine traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
VirtualmachineReservationMbit *float64 `json:"virtualmachineReservationMbit,omitempty" tf:"virtualmachine_reservation_mbit,omitempty"`
// ignored if share_level is not custom.
// The amount of shares to allocate to the virtualMachine traffic class for a custom share level.
// +kubebuilder:validation:Optional
VirtualmachineShareCount *float64 `json:"virtualmachineShareCount,omitempty" tf:"virtualmachine_share_count,omitempty"`
// this resource class. Can be one of low, normal, high, or custom.
// The allocation level for the virtualMachine traffic class. Can be one of high, low, normal, or custom.
// +kubebuilder:validation:Optional
VirtualmachineShareLevel *string `json:"virtualmachineShareLevel,omitempty" tf:"virtualmachine_share_level,omitempty"`
// : The UUID of the created VDS.
// The VLAN ID for single VLAN mode. 0 denotes no VLAN.
// +kubebuilder:validation:Optional
VlanID *float64 `json:"vlanId,omitempty" tf:"vlan_id,omitempty"`
// Used to denote VLAN trunking. Use the min_vlan
// and max_vlan sub-arguments to define the tagged VLAN range. Multiple
// vlan_range definitions are allowed, but they must not overlap. Example
// below:
// The VLAN ID for single VLAN mode. 0 denotes no VLAN.
// +kubebuilder:validation:Optional
VlanRange []VlanRangeParameters `json:"vlanRange,omitempty" tf:"vlan_range,omitempty"`
// The maximum amount of bandwidth allowed for this
// traffic class in Mbits/sec.
// The maximum allowed usage for the vmotion traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
VmotionMaximumMbit *float64 `json:"vmotionMaximumMbit,omitempty" tf:"vmotion_maximum_mbit,omitempty"`
// The guaranteed amount of bandwidth for this
// traffic class in Mbits/sec.
// The amount of guaranteed bandwidth for the vmotion traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
VmotionReservationMbit *float64 `json:"vmotionReservationMbit,omitempty" tf:"vmotion_reservation_mbit,omitempty"`
// ignored if share_level is not custom.
// The amount of shares to allocate to the vmotion traffic class for a custom share level.
// +kubebuilder:validation:Optional
VmotionShareCount *float64 `json:"vmotionShareCount,omitempty" tf:"vmotion_share_count,omitempty"`
// this resource class. Can be one of low, normal, high, or custom.
// The allocation level for the vmotion traffic class. Can be one of high, low, normal, or custom.
// +kubebuilder:validation:Optional
VmotionShareLevel *string `json:"vmotionShareLevel,omitempty" tf:"vmotion_share_level,omitempty"`
// The maximum amount of bandwidth allowed for this
// traffic class in Mbits/sec.
// The maximum allowed usage for the vsan traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
VsanMaximumMbit *float64 `json:"vsanMaximumMbit,omitempty" tf:"vsan_maximum_mbit,omitempty"`
// The guaranteed amount of bandwidth for this
// traffic class in Mbits/sec.
// The amount of guaranteed bandwidth for the vsan traffic class, in Mbits/sec.
// +kubebuilder:validation:Optional
VsanReservationMbit *float64 `json:"vsanReservationMbit,omitempty" tf:"vsan_reservation_mbit,omitempty"`
// ignored if share_level is not custom.
// The amount of shares to allocate to the vsan traffic class for a custom share level.
// +kubebuilder:validation:Optional
VsanShareCount *float64 `json:"vsanShareCount,omitempty" tf:"vsan_share_count,omitempty"`
// this resource class. Can be one of low, normal, high, or custom.
// The allocation level for the vsan traffic class. Can be one of high, low, normal, or custom.
// +kubebuilder:validation:Optional
VsanShareLevel *string `json:"vsanShareLevel,omitempty" tf:"vsan_share_level,omitempty"`
}
func (*VirtualSwitchParameters) DeepCopy ¶
func (in *VirtualSwitchParameters) DeepCopy() *VirtualSwitchParameters
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualSwitchParameters.
func (*VirtualSwitchParameters) DeepCopyInto ¶
func (in *VirtualSwitchParameters) DeepCopyInto(out *VirtualSwitchParameters)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualSwitchSpec ¶
type VirtualSwitchSpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider VirtualSwitchParameters `json:"forProvider"`
}
VirtualSwitchSpec defines the desired state of VirtualSwitch
func (*VirtualSwitchSpec) DeepCopy ¶
func (in *VirtualSwitchSpec) DeepCopy() *VirtualSwitchSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualSwitchSpec.
func (*VirtualSwitchSpec) DeepCopyInto ¶
func (in *VirtualSwitchSpec) DeepCopyInto(out *VirtualSwitchSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualSwitchStatus ¶
type VirtualSwitchStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider VirtualSwitchObservation `json:"atProvider,omitempty"`
}
VirtualSwitchStatus defines the observed state of VirtualSwitch.
func (*VirtualSwitchStatus) DeepCopy ¶
func (in *VirtualSwitchStatus) DeepCopy() *VirtualSwitchStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualSwitchStatus.
func (*VirtualSwitchStatus) DeepCopyInto ¶
func (in *VirtualSwitchStatus) DeepCopyInto(out *VirtualSwitchStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VlanRangeObservation ¶
type VlanRangeObservation struct {
}
func (*VlanRangeObservation) DeepCopy ¶
func (in *VlanRangeObservation) DeepCopy() *VlanRangeObservation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VlanRangeObservation.
func (*VlanRangeObservation) DeepCopyInto ¶
func (in *VlanRangeObservation) DeepCopyInto(out *VlanRangeObservation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VlanRangeParameters ¶
type VlanRangeParameters struct {
// The member VLAN for the ports this policy applies to. A
// value of 0 means no VLAN.
// The minimum VLAN to use in the range.
// +kubebuilder:validation:Required
MaxVlan *float64 `json:"maxVlan" tf:"max_vlan,omitempty"`
// The member VLAN for the ports this policy applies to. A
// value of 0 means no VLAN.
// The minimum VLAN to use in the range.
// +kubebuilder:validation:Required
MinVlan *float64 `json:"minVlan" tf:"min_vlan,omitempty"`
}
func (*VlanRangeParameters) DeepCopy ¶
func (in *VlanRangeParameters) DeepCopy() *VlanRangeParameters
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VlanRangeParameters.
func (*VlanRangeParameters) DeepCopyInto ¶
func (in *VlanRangeParameters) DeepCopyInto(out *VlanRangeParameters)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.