Skip to content

Commit 181c713

Browse files
committed
Add v1alpha2 types 🎉
Signed-off-by: Vince Prignano <[email protected]>
1 parent 1cb3deb commit 181c713

22 files changed

+2600
-0
lines changed
+185
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
1+
apiVersion: apiextensions.k8s.io/v1beta1
2+
kind: CustomResourceDefinition
3+
metadata:
4+
creationTimestamp: null
5+
labels:
6+
controller-tools.k8s.io: "1.0"
7+
name: machines.cluster.k8s.io
8+
spec:
9+
additionalPrinterColumns:
10+
- JSONPath: .spec.providerID
11+
description: Provider ID
12+
name: ProviderID
13+
type: string
14+
- JSONPath: .status.phase
15+
description: Machine status such as Terminating/Pending/Running/Failed etc
16+
name: Phase
17+
type: string
18+
- JSONPath: .status.nodeRef.name
19+
description: Node name associated with this machine
20+
name: NodeName
21+
priority: 1
22+
type: string
23+
group: cluster.k8s.io
24+
names:
25+
kind: Machine
26+
plural: machines
27+
shortNames:
28+
- ma
29+
scope: Namespaced
30+
subresources:
31+
status: {}
32+
validation:
33+
openAPIV3Schema:
34+
properties:
35+
apiVersion:
36+
description: 'APIVersion defines the versioned schema of this representation
37+
of an object. Servers should convert recognized schemas to the latest
38+
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
39+
type: string
40+
kind:
41+
description: 'Kind is a string value representing the REST resource this
42+
object represents. Servers may infer this from the endpoint the client
43+
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
44+
type: string
45+
metadata:
46+
type: object
47+
spec:
48+
properties:
49+
bootstrap:
50+
description: Bootstrap is a reference to a local struct which encapsulates
51+
fields to configure the Machine’s bootstrapping mechanism.
52+
type: object
53+
configSource:
54+
description: ConfigSource is used to populate in the associated Node
55+
for dynamic kubelet config. This field already exists in Node, so
56+
any updates to it in the Machine spec will be automatically copied
57+
to the linked NodeRef from the status. The rest of dynamic kubelet
58+
config support should then work as-is.
59+
type: object
60+
infrastructureRef:
61+
description: InfrastructureRef is a required reference to a custom resource
62+
offered by an infrastructure provider.
63+
type: object
64+
metadata:
65+
description: ObjectMeta will autopopulate the Node created. Use this
66+
to indicate what labels, annotations, name prefix, etc., should be
67+
used when creating the Node.
68+
type: object
69+
providerID:
70+
description: ProviderID is the identification ID of the machine provided
71+
by the provider. This field must match the provider ID as seen on
72+
the node object corresponding to this machine. This field is required
73+
by higher level consumers of cluster-api. Example use case is cluster
74+
autoscaler with cluster-api as provider. Clean-up logic in the autoscaler
75+
compares machines to nodes to find out machines at provider which
76+
could not get registered as Kubernetes nodes. With cluster-api as
77+
a generic out-of-tree provider for autoscaler, this field is required
78+
by autoscaler to be able to have a provider view of the list of machines.
79+
Another list of nodes is queried from the k8s apiserver and then a
80+
comparison is done to find out unregistered machines and are marked
81+
for delete. This field will be set by the actuators and consumed by
82+
higher level entities like autoscaler that will be interfacing with
83+
cluster-api as generic provider.
84+
type: string
85+
taints:
86+
description: The list of the taints to be applied to the corresponding
87+
Node in additive manner. This list will not overwrite any other taints
88+
added to the Node on an ongoing basis by other entities. These taints
89+
should be actively reconciled e.g. if you ask the machine controller
90+
to apply a taint and then manually remove the taint the machine controller
91+
will put it back) but not have the machine controller remove any taints
92+
items:
93+
type: object
94+
type: array
95+
version:
96+
description: Version defines the desired Kubernetes version. This field
97+
is meant to be optionally used by bootstrap providers.
98+
type: string
99+
required:
100+
- bootstrap
101+
- infrastructureRef
102+
type: object
103+
status:
104+
properties:
105+
addresses:
106+
description: Addresses is a list of addresses assigned to the machine.
107+
Queried from cloud provider, if available.
108+
items:
109+
type: object
110+
type: array
111+
bootstrap:
112+
description: Bootstrap is the state of the bootstrap provider.
113+
type: string
114+
conditions:
115+
description: 'Conditions lists the conditions synced from the node conditions
116+
of the corresponding node-object. Machine-controller is responsible
117+
for keeping conditions up-to-date. MachineSet controller will be taking
118+
these conditions as a signal to decide if machine is healthy or needs
119+
to be replaced. Refer: https://kubernetes.io/docs/concepts/architecture/nodes/#condition'
120+
items:
121+
type: object
122+
type: array
123+
errorMessage:
124+
description: ErrorMessage will be set in the event that there is a terminal
125+
problem reconciling the Machine and will contain a more verbose string
126+
suitable for logging and human consumption. This field should not
127+
be set for transitive errors that a controller faces that are expected
128+
to be fixed automatically over time (like service outages), but instead
129+
indicate that something is fundamentally wrong with the Machine's
130+
spec or the configuration of the controller, and that manual intervention
131+
is required. Examples of terminal errors would be invalid combinations
132+
of settings in the spec, values that are unsupported by the controller,
133+
or the responsible controller itself being critically misconfigured. Any
134+
transient errors that occur during the reconciliation of Machines
135+
can be added as events to the Machine object and/or logged in the
136+
controller's output.
137+
type: string
138+
errorReason:
139+
description: ErrorReason will be set in the event that there is a terminal
140+
problem reconciling the Machine and will contain a succinct value
141+
suitable for machine interpretation. This field should not be set
142+
for transitive errors that a controller faces that are expected to
143+
be fixed automatically over time (like service outages), but instead
144+
indicate that something is fundamentally wrong with the Machine's
145+
spec or the configuration of the controller, and that manual intervention
146+
is required. Examples of terminal errors would be invalid combinations
147+
of settings in the spec, values that are unsupported by the controller,
148+
or the responsible controller itself being critically misconfigured. Any
149+
transient errors that occur during the reconciliation of Machines
150+
can be added as events to the Machine object and/or logged in the
151+
controller's output.
152+
type: string
153+
infrastructure:
154+
description: Infrastructure is the state of the infrastructure provider.
155+
type: string
156+
lastUpdated:
157+
description: LastUpdated identifies when this status was last observed.
158+
format: date-time
159+
type: string
160+
nodeRef:
161+
description: NodeRef will point to the corresponding Node if it exists.
162+
type: object
163+
phase:
164+
description: Phase represents the current phase of machine actuation.
165+
E.g. Pending, Running, Terminating, Failed etc.
166+
type: string
167+
providerStatus:
168+
description: ProviderStatus details a Provider-specific status. It is
169+
recommended that providers maintain their own versioned API types
170+
that should be serialized/deserialized from this field.
171+
type: object
172+
version:
173+
description: Version specifies the current version of Kubernetes running
174+
on the corresponding Node. This is meant to be a means of bubbling
175+
up status from the Node to the Machine. It is entirely optional, but
176+
useful for end-user UX if it’s present.
177+
type: string
178+
type: object
179+
version: v1alpha2
180+
status:
181+
acceptedNames:
182+
kind: ""
183+
plural: ""
184+
conditions: []
185+
storedVersions: []

0 commit comments

Comments
 (0)