Skip to content

Commit

Permalink
Add v1alpha2 types 🎉
Browse files Browse the repository at this point in the history
Signed-off-by: Vince Prignano <[email protected]>
  • Loading branch information
vincepri committed Jun 20, 2019
1 parent d63d4be commit c16e6a8
Show file tree
Hide file tree
Showing 22 changed files with 2,178 additions and 5 deletions.
10 changes: 5 additions & 5 deletions config/crds/cluster_v1alpha1_machinedeployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,9 @@ spec:
= RollingUpdate.
properties:
maxSurge:
anyOf:
- type: string
- type: integer
description: 'The maximum number of machines that can be scheduled
above the desired number of machines. Value can be an absolute
number (ex: 5) or a percentage of desired machines (ex: 10%).
Expand All @@ -91,10 +94,10 @@ spec:
new MachineSet can be scaled up further, ensuring that total
number of machines running at any time during the update is
at most 130% of desired machines.'
oneOf:
maxUnavailable:
anyOf:
- type: string
- type: integer
maxUnavailable:
description: 'The maximum number of machines that can be unavailable
during the update. Value can be an absolute number (ex: 5)
or a percentage of desired machines (ex: 10%). Absolute number
Expand All @@ -106,9 +109,6 @@ spec:
down further, followed by scaling up the new MachineSet, ensuring
that the total number of machines available at all times during
the update is at least 70% of desired machines.'
oneOf:
- type: string
- type: integer
type: object
type:
description: Type of deployment. Currently the only supported strategy
Expand Down
185 changes: 185 additions & 0 deletions config/crds/cluster_v1alpha2_machine.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
creationTimestamp: null
labels:
controller-tools.k8s.io: "1.0"
name: machines.cluster.k8s.io
spec:
additionalPrinterColumns:
- JSONPath: .spec.providerID
description: Provider ID
name: ProviderID
type: string
- JSONPath: .status.phase
description: Machine status such as Terminating/Pending/Running/Failed etc
name: Phase
type: string
- JSONPath: .status.nodeRef.name
description: Node name associated with this machine
name: NodeName
priority: 1
type: string
group: cluster.k8s.io
names:
kind: Machine
plural: machines
shortNames:
- ma
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
properties:
bootstrap:
description: Bootstrap is a reference to a local struct which encapsulates
fields to configure the Machine’s bootstrapping mechanism.
type: object
configSource:
description: ConfigSource is used to populate in the associated Node
for dynamic kubelet config. This field already exists in Node, so
any updates to it in the Machine spec will be automatically copied
to the linked NodeRef from the status. The rest of dynamic kubelet
config support should then work as-is.
type: object
infrastructureRef:
description: InfrastructureRef is a required reference to a custom resource
offered by an infrastructure provider.
type: object
metadata:
description: ObjectMeta will autopopulate the Node created. Use this
to indicate what labels, annotations, name prefix, etc., should be
used when creating the Node.
type: object
providerID:
description: ProviderID is the identification ID of the machine provided
by the provider. This field must match the provider ID as seen on
the node object corresponding to this machine. This field is required
by higher level consumers of cluster-api. Example use case is cluster
autoscaler with cluster-api as provider. Clean-up logic in the autoscaler
compares machines to nodes to find out machines at provider which
could not get registered as Kubernetes nodes. With cluster-api as
a generic out-of-tree provider for autoscaler, this field is required
by autoscaler to be able to have a provider view of the list of machines.
Another list of nodes is queried from the k8s apiserver and then a
comparison is done to find out unregistered machines and are marked
for delete. This field will be set by the actuators and consumed by
higher level entities like autoscaler that will be interfacing with
cluster-api as generic provider.
type: string
taints:
description: The list of the taints to be applied to the corresponding
Node in additive manner. This list will not overwrite any other taints
added to the Node on an ongoing basis by other entities. These taints
should be actively reconciled e.g. if you ask the machine controller
to apply a taint and then manually remove the taint the machine controller
will put it back) but not have the machine controller remove any taints
items:
type: object
type: array
version:
description: Version defines the desired Kubernetes version. This field
is meant to be optionally used by bootstrap providers.
type: string
required:
- bootstrap
- infrastructureRef
type: object
status:
properties:
addresses:
description: Addresses is a list of addresses assigned to the machine.
Queried from cloud provider, if available.
items:
type: object
type: array
bootstrap:
description: Bootstrap is the state of the bootstrap provider.
type: string
conditions:
description: 'Conditions lists the conditions synced from the node conditions
of the corresponding node-object. Machine-controller is responsible
for keeping conditions up-to-date. MachineSet controller will be taking
these conditions as a signal to decide if machine is healthy or needs
to be replaced. Refer: https://kubernetes.io/docs/concepts/architecture/nodes/#condition'
items:
type: object
type: array
errorMessage:
description: ErrorMessage will be set in the event that there is a terminal
problem reconciling the Machine and will contain a more verbose string
suitable for logging and human consumption. This field should not
be set for transitive errors that a controller faces that are expected
to be fixed automatically over time (like service outages), but instead
indicate that something is fundamentally wrong with the Machine's
spec or the configuration of the controller, and that manual intervention
is required. Examples of terminal errors would be invalid combinations
of settings in the spec, values that are unsupported by the controller,
or the responsible controller itself being critically misconfigured. Any
transient errors that occur during the reconciliation of Machines
can be added as events to the Machine object and/or logged in the
controller's output.
type: string
errorReason:
description: ErrorReason will be set in the event that there is a terminal
problem reconciling the Machine and will contain a succinct value
suitable for machine interpretation. This field should not be set
for transitive errors that a controller faces that are expected to
be fixed automatically over time (like service outages), but instead
indicate that something is fundamentally wrong with the Machine's
spec or the configuration of the controller, and that manual intervention
is required. Examples of terminal errors would be invalid combinations
of settings in the spec, values that are unsupported by the controller,
or the responsible controller itself being critically misconfigured. Any
transient errors that occur during the reconciliation of Machines
can be added as events to the Machine object and/or logged in the
controller's output.
type: string
infrastructure:
description: Infrastructure is the state of the infrastructure provider.
type: string
lastUpdated:
description: LastUpdated identifies when this status was last observed.
format: date-time
type: string
nodeRef:
description: NodeRef will point to the corresponding Node if it exists.
type: object
phase:
description: Phase represents the current phase of machine actuation.
E.g. Pending, Running, Terminating, Failed etc.
type: string
providerStatus:
description: ProviderStatus details a Provider-specific status. It is
recommended that providers maintain their own versioned API types
that should be serialized/deserialized from this field.
type: object
version:
description: Version specifies the current version of Kubernetes running
on the corresponding Node. This is meant to be a means of bubbling
up status from the Node to the Machine. It is entirely optional, but
useful for end-user UX if it’s present.
type: string
type: object
version: v1alpha2
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
Loading

0 comments on commit c16e6a8

Please sign in to comment.