Documentation ¶
Overview ¶
Package contract provides support for the ClusterReconciler to handle with providers objects according to the Cluster API contract.
Index ¶
- func GetNestedRef(obj *unstructured.Unstructured, fields ...string) (*corev1.ObjectReference, error)
- func ObjToRef(obj client.Object) *corev1.ObjectReference
- func SetNestedRef(obj, refObj *unstructured.Unstructured, fields ...string) error
- type Bool
- type BootstrapContract
- type ControlPlaneContract
- func (c *ControlPlaneContract) ExternalManagedControlPlane() *Bool
- func (c *ControlPlaneContract) FailureMessage() *String
- func (c *ControlPlaneContract) FailureReason() *String
- func (c *ControlPlaneContract) Initialized() *Bool
- func (c *ControlPlaneContract) IsProvisioning(obj *unstructured.Unstructured) (bool, error)
- func (c *ControlPlaneContract) IsScaling(obj *unstructured.Unstructured) (bool, error)
- func (c *ControlPlaneContract) IsUpgrading(obj *unstructured.Unstructured) (bool, error)
- func (c *ControlPlaneContract) MachineTemplate() *ControlPlaneMachineTemplate
- func (c *ControlPlaneContract) Ready() *Bool
- func (c *ControlPlaneContract) ReadyReplicas() *Int64
- func (c *ControlPlaneContract) Replicas() *Int64
- func (c *ControlPlaneContract) Selector() *String
- func (c *ControlPlaneContract) StatusReplicas() *Int64
- func (c *ControlPlaneContract) StatusVersion() *String
- func (c *ControlPlaneContract) UnavailableReplicas() *Int64
- func (c *ControlPlaneContract) UpdatedReplicas() *Int64
- func (c *ControlPlaneContract) Version() *String
- type ControlPlaneMachineTemplate
- func (c *ControlPlaneMachineTemplate) InfrastructureRef() *Ref
- func (c *ControlPlaneMachineTemplate) Metadata() *Metadata
- func (c *ControlPlaneMachineTemplate) NodeDeletionTimeout() *Duration
- func (c *ControlPlaneMachineTemplate) NodeDrainTimeout() *Duration
- func (c *ControlPlaneMachineTemplate) NodeVolumeDetachTimeout() *Duration
- type ControlPlaneTemplateContract
- type Duration
- type FailureDomains
- type InfrastructureClusterContract
- func (c *InfrastructureClusterContract) ControlPlaneEndpoint() *InfrastructureClusterControlPlaneEndpoint
- func (c *InfrastructureClusterContract) FailureDomains() *FailureDomains
- func (c *InfrastructureClusterContract) FailureMessage() *String
- func (c *InfrastructureClusterContract) FailureReason() *String
- func (c *InfrastructureClusterContract) IgnorePaths(infrastructureCluster *unstructured.Unstructured) ([]Path, error)
- func (c *InfrastructureClusterContract) Ready() *Bool
- type InfrastructureClusterControlPlaneEndpoint
- type InfrastructureMachineContract
- func (m *InfrastructureMachineContract) Addresses() *MachineAddresses
- func (m *InfrastructureMachineContract) FailureDomain() *String
- func (m *InfrastructureMachineContract) FailureMessage() *String
- func (m *InfrastructureMachineContract) FailureReason() *String
- func (m *InfrastructureMachineContract) ProviderID() *String
- func (m *InfrastructureMachineContract) Ready() *Bool
- type Int64
- type MachineAddresses
- type Metadata
- type Path
- type Ref
- type String
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetNestedRef ¶
func GetNestedRef(obj *unstructured.Unstructured, fields ...string) (*corev1.ObjectReference, error)
GetNestedRef returns the ref value from a nested field in an Unstructured object.
func ObjToRef ¶
func ObjToRef(obj client.Object) *corev1.ObjectReference
ObjToRef returns a reference to the given object.
func SetNestedRef ¶
func SetNestedRef(obj, refObj *unstructured.Unstructured, fields ...string) error
SetNestedRef sets the value of a nested field in an Unstructured to a reference to the refObj provided.
Types ¶
type Bool ¶ added in v1.3.0
type Bool struct {
// contains filtered or unexported fields
}
Bool represents an accessor to an bool path value.
func (*Bool) Get ¶ added in v1.3.0
func (b *Bool) Get(obj *unstructured.Unstructured) (*bool, error)
Get gets the bool value.
func (*Bool) Set ¶ added in v1.3.0
func (b *Bool) Set(obj *unstructured.Unstructured, value bool) error
Set sets the bool value in the path.
type BootstrapContract ¶ added in v1.3.0
type BootstrapContract struct{}
BootstrapContract encodes information about the Cluster API contract for bootstrap objects.
func Bootstrap ¶ added in v1.3.0
func Bootstrap() *BootstrapContract
Bootstrap provide access to the information about the Cluster API contract for bootstrap objects.
func (*BootstrapContract) DataSecretName ¶ added in v1.3.0
func (b *BootstrapContract) DataSecretName() *String
DataSecretName provide access to status.dataSecretName field in a bootstrap object.
func (*BootstrapContract) FailureMessage ¶ added in v1.3.0
func (b *BootstrapContract) FailureMessage() *String
FailureMessage provides access to the status.failureMessage field in an bootstrap object. Note that this field is optional.
func (*BootstrapContract) FailureReason ¶ added in v1.3.0
func (b *BootstrapContract) FailureReason() *String
FailureReason provides access to the status.failureReason field in an bootstrap object. Note that this field is optional.
func (*BootstrapContract) Ready ¶ added in v1.3.0
func (b *BootstrapContract) Ready() *Bool
Ready provide access to status.ready field in a bootstrap object.
type ControlPlaneContract ¶
type ControlPlaneContract struct{}
ControlPlaneContract encodes information about the Cluster API contract for ControlPlane objects like e.g the KubeadmControlPlane etc.
func ControlPlane ¶
func ControlPlane() *ControlPlaneContract
ControlPlane provide access to the information about the Cluster API contract for ControlPlane objects.
func (*ControlPlaneContract) ExternalManagedControlPlane ¶ added in v1.3.0
func (c *ControlPlaneContract) ExternalManagedControlPlane() *Bool
ExternalManagedControlPlane provides access to the status.externalManagedControlPlane field in an ControlPlane object. Note that this field is optional.
func (*ControlPlaneContract) FailureMessage ¶ added in v1.3.0
func (c *ControlPlaneContract) FailureMessage() *String
FailureMessage provides access to the status.failureMessage field in an ControlPlane object. Note that this field is optional.
func (*ControlPlaneContract) FailureReason ¶ added in v1.3.0
func (c *ControlPlaneContract) FailureReason() *String
FailureReason provides access to the status.failureReason field in an ControlPlane object. Note that this field is optional.
func (*ControlPlaneContract) Initialized ¶ added in v1.3.0
func (c *ControlPlaneContract) Initialized() *Bool
Initialized provide access to status.initialized field in a ControlPlane object.
func (*ControlPlaneContract) IsProvisioning ¶
func (c *ControlPlaneContract) IsProvisioning(obj *unstructured.Unstructured) (bool, error)
IsProvisioning returns true if the control plane is being created for the first time. Returns false, if the control plane was already previously provisioned.
func (*ControlPlaneContract) IsScaling ¶
func (c *ControlPlaneContract) IsScaling(obj *unstructured.Unstructured) (bool, error)
IsScaling returns true if the control plane is in the middle of a scale operation, false otherwise. A control plane is considered scaling if: - status.replicas is not yet set. - spec.replicas != status.replicas. - spec.replicas != status.updatedReplicas. - spec.replicas != status.readyReplicas. - status.unavailableReplicas > 0.
func (*ControlPlaneContract) IsUpgrading ¶
func (c *ControlPlaneContract) IsUpgrading(obj *unstructured.Unstructured) (bool, error)
IsUpgrading returns true if the control plane is in the middle of an upgrade, false otherwise. A control plane is considered upgrading if: - if spec.version is greater than status.version. Note: A control plane is considered not upgrading if the status or status.version is not set.
func (*ControlPlaneContract) MachineTemplate ¶
func (c *ControlPlaneContract) MachineTemplate() *ControlPlaneMachineTemplate
MachineTemplate provides access to MachineTemplate in a ControlPlane object, if any. NOTE: When working with unstructured there is no way to understand if the ControlPlane provider do support a field in the type definition from the fact that a field is not set in a given instance. This is why in we are deriving if MachineTemplate is required from the ClusterClass in the topology reconciler code.
func (*ControlPlaneContract) Ready ¶ added in v1.3.0
func (c *ControlPlaneContract) Ready() *Bool
Ready provide access to the status.ready field in a ControlPlane object.
func (*ControlPlaneContract) ReadyReplicas ¶
func (c *ControlPlaneContract) ReadyReplicas() *Int64
ReadyReplicas provide access to the status.readyReplicas field in a ControlPlane object, if any. Applies to implementations using replicas.
func (*ControlPlaneContract) Replicas ¶
func (c *ControlPlaneContract) Replicas() *Int64
Replicas provide access to replicas field in a ControlPlane object, if any. NOTE: When working with unstructured there is no way to understand if the ControlPlane provider do support a field in the type definition from the fact that a field is not set in a given instance. This is why in we are deriving if replicas is required from the ClusterClass in the topology reconciler code.
func (*ControlPlaneContract) Selector ¶ added in v1.3.0
func (c *ControlPlaneContract) Selector() *String
Selector provide access to the status.selector field in a ControlPlane object, if any. Applies to implementations using replicas.
func (*ControlPlaneContract) StatusReplicas ¶
func (c *ControlPlaneContract) StatusReplicas() *Int64
StatusReplicas provide access to the status.replicas field in a ControlPlane object, if any. Applies to implementations using replicas.
func (*ControlPlaneContract) StatusVersion ¶
func (c *ControlPlaneContract) StatusVersion() *String
StatusVersion provide access to the version field in a ControlPlane object status, if any.
func (*ControlPlaneContract) UnavailableReplicas ¶ added in v1.2.10
func (c *ControlPlaneContract) UnavailableReplicas() *Int64
UnavailableReplicas provide access to the status.unavailableReplicas field in a ControlPlane object, if any. Applies to implementations using replicas.
func (*ControlPlaneContract) UpdatedReplicas ¶
func (c *ControlPlaneContract) UpdatedReplicas() *Int64
UpdatedReplicas provide access to the status.updatedReplicas field in a ControlPlane object, if any. Applies to implementations using replicas.
func (*ControlPlaneContract) Version ¶
func (c *ControlPlaneContract) Version() *String
Version provide access to version field in a ControlPlane object, if any. NOTE: When working with unstructured there is no way to understand if the ControlPlane provider do support a field in the type definition from the fact that a field is not set in a given instance. This is why in we are deriving if version is required from the ClusterClass in the topology reconciler code.
type ControlPlaneMachineTemplate ¶
type ControlPlaneMachineTemplate struct{}
ControlPlaneMachineTemplate provides a helper struct for working with MachineTemplate in ClusterClass.
func (*ControlPlaneMachineTemplate) InfrastructureRef ¶
func (c *ControlPlaneMachineTemplate) InfrastructureRef() *Ref
InfrastructureRef provides access to the infrastructureRef of a MachineTemplate.
func (*ControlPlaneMachineTemplate) Metadata ¶
func (c *ControlPlaneMachineTemplate) Metadata() *Metadata
Metadata provides access to the metadata of a MachineTemplate.
func (*ControlPlaneMachineTemplate) NodeDeletionTimeout ¶ added in v1.3.0
func (c *ControlPlaneMachineTemplate) NodeDeletionTimeout() *Duration
NodeDeletionTimeout provides access to the nodeDeletionTimeout of a MachineTemplate.
func (*ControlPlaneMachineTemplate) NodeDrainTimeout ¶
func (c *ControlPlaneMachineTemplate) NodeDrainTimeout() *Duration
NodeDrainTimeout provides access to the nodeDrainTimeout of a MachineTemplate.
func (*ControlPlaneMachineTemplate) NodeVolumeDetachTimeout ¶ added in v1.3.0
func (c *ControlPlaneMachineTemplate) NodeVolumeDetachTimeout() *Duration
NodeVolumeDetachTimeout provides access to the nodeVolumeDetachTimeout of a MachineTemplate.
type ControlPlaneTemplateContract ¶
type ControlPlaneTemplateContract struct{}
ControlPlaneTemplateContract encodes information about the Cluster API contract for ControlPlaneTemplate objects like e.g. the KubeadmControlPlane etc.
func ControlPlaneTemplate ¶
func ControlPlaneTemplate() *ControlPlaneTemplateContract
ControlPlaneTemplate provide access to the information about the Cluster API contract for ControlPlaneTemplate objects.
func (*ControlPlaneTemplateContract) InfrastructureMachineTemplate ¶
func (c *ControlPlaneTemplateContract) InfrastructureMachineTemplate() *Ref
InfrastructureMachineTemplate provide access to InfrastructureMachineTemplate reference, if any. NOTE: When working with unstructured there is no way to understand if the ControlPlane provider do support a field in the type definition from the fact that a field is not set in a given instance. This is why in we are deriving if this field is required from the ClusterClass in the topology reconciler code.
type Duration ¶
type Duration struct {
// contains filtered or unexported fields
}
Duration represents an accessor to a metav1.Duration path value.
func (*Duration) Get ¶
func (i *Duration) Get(obj *unstructured.Unstructured) (*metav1.Duration, error)
Get gets the metav1.Duration value.
func (*Duration) Set ¶
func (i *Duration) Set(obj *unstructured.Unstructured, value metav1.Duration) error
Set sets the metav1.Duration value in the path.
type FailureDomains ¶ added in v1.3.0
type FailureDomains struct {
// contains filtered or unexported fields
}
FailureDomains represents an accessor to a clusterv1.FailureDomains path value.
func (*FailureDomains) Get ¶ added in v1.3.0
func (d *FailureDomains) Get(obj *unstructured.Unstructured) (*clusterv1.FailureDomains, error)
Get gets the metav1.MachineAddressList value.
func (*FailureDomains) Path ¶ added in v1.3.0
func (d *FailureDomains) Path() Path
Path returns the path to the clusterv1.FailureDomains value.
func (*FailureDomains) Set ¶ added in v1.3.0
func (d *FailureDomains) Set(obj *unstructured.Unstructured, values clusterv1.FailureDomains) error
Set sets the clusterv1.FailureDomains value in the path.
type InfrastructureClusterContract ¶
type InfrastructureClusterContract struct{}
InfrastructureClusterContract encodes information about the Cluster API contract for InfrastructureCluster objects like DockerClusters, AWS Clusters, etc.
func InfrastructureCluster ¶
func InfrastructureCluster() *InfrastructureClusterContract
InfrastructureCluster provide access to the information about the Cluster API contract for InfrastructureCluster objects.
func (*InfrastructureClusterContract) ControlPlaneEndpoint ¶ added in v1.1.6
func (c *InfrastructureClusterContract) ControlPlaneEndpoint() *InfrastructureClusterControlPlaneEndpoint
ControlPlaneEndpoint provides access to ControlPlaneEndpoint in an InfrastructureCluster object.
func (*InfrastructureClusterContract) FailureDomains ¶ added in v1.3.0
func (c *InfrastructureClusterContract) FailureDomains() *FailureDomains
FailureDomains provides access to the status.failureDomains field in an InfrastructureCluster object. Note that this field is optional.
func (*InfrastructureClusterContract) FailureMessage ¶ added in v1.3.0
func (c *InfrastructureClusterContract) FailureMessage() *String
FailureMessage provides access to the status.failureMessage field in an InfrastructureCluster object. Note that this field is optional.
func (*InfrastructureClusterContract) FailureReason ¶ added in v1.3.0
func (c *InfrastructureClusterContract) FailureReason() *String
FailureReason provides access to the status.failureReason field in an InfrastructureCluster object. Note that this field is optional.
func (*InfrastructureClusterContract) IgnorePaths ¶
func (c *InfrastructureClusterContract) IgnorePaths(infrastructureCluster *unstructured.Unstructured) ([]Path, error)
IgnorePaths returns a list of paths to be ignored when reconciling an InfrastructureCluster. NOTE: The controlPlaneEndpoint struct currently contains two mandatory fields (host and port). As the host and port fields are not using omitempty, they are automatically set to their zero values if they are not set by the user. We don't want to reconcile the zero values as we would then overwrite changes applied by the infrastructure provider controller.
func (*InfrastructureClusterContract) Ready ¶ added in v1.3.0
func (c *InfrastructureClusterContract) Ready() *Bool
Ready provides access to the status.ready field in an InfrastructureCluster object.
type InfrastructureClusterControlPlaneEndpoint ¶ added in v1.1.6
type InfrastructureClusterControlPlaneEndpoint struct{}
InfrastructureClusterControlPlaneEndpoint provides a helper struct for working with ControlPlaneEndpoint in an InfrastructureCluster object.
func (*InfrastructureClusterControlPlaneEndpoint) Host ¶ added in v1.1.6
func (c *InfrastructureClusterControlPlaneEndpoint) Host() *String
Host provides access to the host field in the ControlPlaneEndpoint in an InfrastructureCluster object.
func (*InfrastructureClusterControlPlaneEndpoint) Port ¶ added in v1.1.6
func (c *InfrastructureClusterControlPlaneEndpoint) Port() *Int64
Port provides access to the port field in the ControlPlaneEndpoint in an InfrastructureCluster object.
type InfrastructureMachineContract ¶ added in v1.3.0
type InfrastructureMachineContract struct{}
InfrastructureMachineContract encodes information about the Machine API contract for InfrastructureMachine objects like DockerMachines, AWS Machines, etc.
func InfrastructureMachine ¶ added in v1.3.0
func InfrastructureMachine() *InfrastructureMachineContract
InfrastructureMachine provide access to the information about the Machine API contract for InfrastructureMachine objects.
func (*InfrastructureMachineContract) Addresses ¶ added in v1.3.0
func (m *InfrastructureMachineContract) Addresses() *MachineAddresses
Addresses provides access to the status.addresses field in an InfrastructureMachine object. Note that this field is optional.
func (*InfrastructureMachineContract) FailureDomain ¶ added in v1.3.0
func (m *InfrastructureMachineContract) FailureDomain() *String
FailureDomain provides access to the spec.failureDomain field in an InfrastructureMachine object. Note that this field is optional.
func (*InfrastructureMachineContract) FailureMessage ¶ added in v1.3.0
func (m *InfrastructureMachineContract) FailureMessage() *String
FailureMessage provides access to the status.failureMessage field in an InfrastructureMachine object. Note that this field is optional.
func (*InfrastructureMachineContract) FailureReason ¶ added in v1.3.0
func (m *InfrastructureMachineContract) FailureReason() *String
FailureReason provides access to the status.failureReason field in an InfrastructureMachine object. Note that this field is optional.
func (*InfrastructureMachineContract) ProviderID ¶ added in v1.3.0
func (m *InfrastructureMachineContract) ProviderID() *String
ProviderID provides access to the spec.providerID field in an InfrastructureMachine object.
func (*InfrastructureMachineContract) Ready ¶ added in v1.3.0
func (m *InfrastructureMachineContract) Ready() *Bool
Ready provides access to status.ready field in an InfrastructureMachine object.
type Int64 ¶
type Int64 struct {
// contains filtered or unexported fields
}
Int64 represents an accessor to an int64 path value.
func (*Int64) Get ¶
func (i *Int64) Get(obj *unstructured.Unstructured) (*int64, error)
Get gets the int64 value.
func (*Int64) Set ¶
func (i *Int64) Set(obj *unstructured.Unstructured, value int64) error
Set sets the int64 value in the path.
type MachineAddresses ¶ added in v1.3.0
type MachineAddresses struct {
// contains filtered or unexported fields
}
MachineAddresses represents an accessor to a []clusterv1.MachineAddress path value.
func (*MachineAddresses) Get ¶ added in v1.3.0
func (m *MachineAddresses) Get(obj *unstructured.Unstructured) (*[]clusterv1.MachineAddress, error)
Get gets the metav1.MachineAddressList value.
func (*MachineAddresses) Path ¶ added in v1.3.0
func (m *MachineAddresses) Path() Path
Path returns the path to the []clusterv1.MachineAddress value.
func (*MachineAddresses) Set ¶ added in v1.3.0
func (m *MachineAddresses) Set(obj *unstructured.Unstructured, values []clusterv1.MachineAddress) error
Set sets the []clusterv1.MachineAddress value in the path.
type Metadata ¶
type Metadata struct {
// contains filtered or unexported fields
}
Metadata provides a helper struct for working with Metadata.
func (*Metadata) Get ¶
func (m *Metadata) Get(obj *unstructured.Unstructured) (*clusterv1.ObjectMeta, error)
Get gets the metadata object.
func (*Metadata) Set ¶
func (m *Metadata) Set(obj *unstructured.Unstructured, metadata *clusterv1.ObjectMeta) error
Set sets the metadata value. Note: We are blanking out empty label annotations, thus avoiding triggering infinite reconcile given that at json level label: {} or annotation: {} is different from no field, which is the corresponding value stored in etcd given that those fields are defined as omitempty.
type Path ¶
type Path []string
Path defines a how to access a field in an Unstructured object.
func (Path) IsParentOf ¶ added in v1.2.0
IsParentOf check if one path is Parent of the other.
type Ref ¶
type Ref struct {
// contains filtered or unexported fields
}
Ref provide a helper struct for working with references in Unstructured objects.
func (*Ref) Get ¶
func (r *Ref) Get(obj *unstructured.Unstructured) (*corev1.ObjectReference, error)
Get gets the reference value from the Unstructured object.
func (*Ref) Set ¶
func (r *Ref) Set(obj, refObj *unstructured.Unstructured) error
Set sets the reference value in the Unstructured object.
type String ¶
type String struct {
// contains filtered or unexported fields
}
String represents an accessor to a string path value.
func (*String) Get ¶
func (s *String) Get(obj *unstructured.Unstructured) (*string, error)
Get gets the string value.
func (*String) Set ¶
func (s *String) Set(obj *unstructured.Unstructured, value string) error
Set sets the string value in the path.