SSHMachineTemplate [infrastructure.cluster.x-k8s.io/v1beta1]
infrastructure.cluster.x-k8s.io group
SSHMachineTemplate is the Schema for the sshmachinetemplates API.
v1beta1 versionspec object
SSHMachineTemplateSpec defines the desired state of SSHMachineTemplate.
template object required
metadata object
ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create. This is a copy of customizable fields from metav1.ObjectMeta.
ObjectMeta is embedded in Machine.Spec, MachineDeployment.Template and MachineSet.Template,
which are not top-level Kubernetes objects. Given that metav1.ObjectMeta has lots of special cases
and read-only fields which end up in the generated CRD validation, having it as a subset simplifies
the API and some issues that can impact user experience.
During the upgrade to controller-tools@v2
for v1alpha2, we noticed a failure would occur running Cluster API test suite against the new CRDs,
specifically spec.metadata.creationTimestamp in body must be of type string: "null".
The investigation showed that controller-tools@v2 behaves differently than its previous version
when handling types from metav1 package.
In more details, we found that embedded (non-top level) types that embedded metav1.ObjectMeta
had validation properties, including for creationTimestamp (metav1.Time).
The metav1.Time type specifies a custom json marshaller that, when IsZero() is true, returns null
which breaks validation because the field isn't marked as nullable.
In future versions, controller-tools@v2 might allow overriding the type and validation for embedded types. When that happens, this hack should be revisited.
annotations object
annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations
labels object
labels is a map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels
spec object
SSHMachineSpec defines the desired state of SSHMachine.
containerRuntime object
type string required
version string required
hostLabelSelector object
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
matchExpressions []object
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
key string required
key is the label key that the selector applies to.
operator string required
operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
values []string
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
matchLabels object
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
hostReference object
LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
name string
Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
providerID string
status object
SSHMachineTemplateStatus defines the observed state of SSHMachineTemplate.