diff --git a/Makefile b/Makefile index c46855e..3aff088 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,9 @@ # Update this for every tagged release. -CHART_VERSION = v0.1.10 +CHART_VERSION = v0.1.11 # Defines the versions to use for cluster API components. -CAPI_VERSION = v1.4.3 -CAPO_VERSION = v0.8.0 +CAPI_VERSION = v1.6.2 +CAPO_VERSION = v0.9.0 # All the charts we can generate. CHARTS = cluster-api-core \ diff --git a/charts/cluster-api-bootstrap-kubeadm/Chart.yaml b/charts/cluster-api-bootstrap-kubeadm/Chart.yaml index 85d2c00..d0ad87a 100644 --- a/charts/cluster-api-bootstrap-kubeadm/Chart.yaml +++ b/charts/cluster-api-bootstrap-kubeadm/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 -appVersion: v1.4.3 +appVersion: v1.6.2 description: A Helm chart for deploying cluster API. icon: https://assets.unikorn-cloud.org/assets/images/logos/dark-on-light/icon.png name: cluster-api-bootstrap-kubeadm type: application -version: v0.1.10 +version: v0.1.11 diff --git a/charts/cluster-api-bootstrap-kubeadm/crds/kubeadmconfigs.bootstrap.cluster.x-k8s.io.yaml b/charts/cluster-api-bootstrap-kubeadm/crds/kubeadmconfigs.bootstrap.cluster.x-k8s.io.yaml index 71df19c..a3c121e 100644 --- a/charts/cluster-api-bootstrap-kubeadm/crds/kubeadmconfigs.bootstrap.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-bootstrap-kubeadm/crds/kubeadmconfigs.bootstrap.cluster.x-k8s.io.yaml @@ -3,10 +3,9 @@ kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: capi-kubeadm-bootstrap-system/capi-kubeadm-bootstrap-serving-cert - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: bootstrap-kubeadm - cluster.x-k8s.io/v1alpha3: v1alpha3 cluster.x-k8s.io/v1alpha4: v1alpha4 cluster.x-k8s.io/v1beta1: v1beta1 name: kubeadmconfigs.bootstrap.cluster.x-k8s.io @@ -1019,7 +1018,7 @@ spec: type: boolean type: object type: object - served: true + served: false storage: false subresources: status: {} @@ -2005,7 +2004,7 @@ spec: type: boolean type: object type: object - served: true + served: false storage: false subresources: status: {} diff --git a/charts/cluster-api-bootstrap-kubeadm/crds/kubeadmconfigtemplates.bootstrap.cluster.x-k8s.io.yaml b/charts/cluster-api-bootstrap-kubeadm/crds/kubeadmconfigtemplates.bootstrap.cluster.x-k8s.io.yaml index 8ab39fe..c6d2035 100644 --- a/charts/cluster-api-bootstrap-kubeadm/crds/kubeadmconfigtemplates.bootstrap.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-bootstrap-kubeadm/crds/kubeadmconfigtemplates.bootstrap.cluster.x-k8s.io.yaml @@ -3,10 +3,9 @@ kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: capi-kubeadm-bootstrap-system/capi-kubeadm-bootstrap-serving-cert - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: bootstrap-kubeadm - cluster.x-k8s.io/v1alpha3: v1alpha3 cluster.x-k8s.io/v1alpha4: v1alpha4 cluster.x-k8s.io/v1beta1: v1beta1 name: kubeadmconfigtemplates.bootstrap.cluster.x-k8s.io @@ -1010,7 +1009,7 @@ spec: - template type: object type: object - served: true + served: false storage: false - additionalPrinterColumns: - description: Time duration since creation of KubeadmConfigTemplate @@ -1993,7 +1992,7 @@ spec: - template type: object type: object - served: true + served: false storage: false subresources: {} - additionalPrinterColumns: diff --git a/charts/cluster-api-bootstrap-kubeadm/templates/clusterrole-0.yaml b/charts/cluster-api-bootstrap-kubeadm/templates/clusterrole-0.yaml index f482503..5d0792c 100644 --- a/charts/cluster-api-bootstrap-kubeadm/templates/clusterrole-0.yaml +++ b/charts/cluster-api-bootstrap-kubeadm/templates/clusterrole-0.yaml @@ -19,6 +19,18 @@ rules: - patch - update - watch +- apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create +- apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create - apiGroups: - bootstrap.cluster.x-k8s.io resources: diff --git a/charts/cluster-api-bootstrap-kubeadm/templates/deployment-0.yaml b/charts/cluster-api-bootstrap-kubeadm/templates/deployment-0.yaml index 86c0753..6efebec 100644 --- a/charts/cluster-api-bootstrap-kubeadm/templates/deployment-0.yaml +++ b/charts/cluster-api-bootstrap-kubeadm/templates/deployment-0.yaml @@ -21,8 +21,9 @@ spec: containers: - args: - --leader-elect - - --metrics-bind-addr=localhost:8080 - - --feature-gates=MachinePool={{ .Values.exp_machine_pool }},KubeadmBootstrapFormatIgnition={{ .Values.exp_kubeadm_bootstrap_format_ignition }},LazyRestmapper={{ .Values.exp_lazy_restmapper }} + - --diagnostics-address={{ .Values.capi_diagnostics_address }} + - --insecure-diagnostics={{ .Values.capi_insecure_diagnostics }} + - --feature-gates=MachinePool={{ .Values.exp_machine_pool }},KubeadmBootstrapFormatIgnition={{ .Values.exp_kubeadm_bootstrap_format_ignition }} - --bootstrap-token-ttl={{ .Values.kubeadm_bootstrap_token_ttl }} - --logging-format=json command: @@ -41,6 +42,9 @@ spec: - containerPort: 9440 name: healthz protocol: TCP + - containerPort: 8443 + name: metrics + protocol: TCP readinessProbe: httpGet: path: /readyz diff --git a/charts/cluster-api-bootstrap-kubeadm/values.yaml b/charts/cluster-api-bootstrap-kubeadm/values.yaml index 2bfa337..d68c312 100644 --- a/charts/cluster-api-bootstrap-kubeadm/values.yaml +++ b/charts/cluster-api-bootstrap-kubeadm/values.yaml @@ -1,5 +1,6 @@ +capi_diagnostics_address: :8443 +capi_insecure_diagnostics: false exp_kubeadm_bootstrap_format_ignition: false -exp_lazy_restmapper: false exp_machine_pool: false -image: registry.k8s.io/cluster-api/kubeadm-bootstrap-controller:v1.4.3 +image: registry.k8s.io/cluster-api/kubeadm-bootstrap-controller:v1.6.2 kubeadm_bootstrap_token_ttl: 15m diff --git a/charts/cluster-api-cluster-openstack/Chart.yaml b/charts/cluster-api-cluster-openstack/Chart.yaml index 503d72f..40ef0a9 100644 --- a/charts/cluster-api-cluster-openstack/Chart.yaml +++ b/charts/cluster-api-cluster-openstack/Chart.yaml @@ -2,5 +2,5 @@ apiVersion: v2 name: cluster-api-cluster-openstack description: A Helm chart to deploy a Kubernetes Cluster type: application -version: v0.3.26 +version: v0.3.27 icon: https://raw.githubusercontent.com/unikorn-cloud/helm-cluster-api/main/icons/default.png diff --git a/charts/cluster-api-control-plane-kubeadm/Chart.yaml b/charts/cluster-api-control-plane-kubeadm/Chart.yaml index f58024c..5436db8 100644 --- a/charts/cluster-api-control-plane-kubeadm/Chart.yaml +++ b/charts/cluster-api-control-plane-kubeadm/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 -appVersion: v1.4.3 +appVersion: v1.6.2 description: A Helm chart for deploying cluster API. icon: https://assets.unikorn-cloud.org/assets/images/logos/dark-on-light/icon.png name: cluster-api-control-plane-kubeadm type: application -version: v0.1.10 +version: v0.1.11 diff --git a/charts/cluster-api-control-plane-kubeadm/crds/kubeadmcontrolplanes.controlplane.cluster.x-k8s.io.yaml b/charts/cluster-api-control-plane-kubeadm/crds/kubeadmcontrolplanes.controlplane.cluster.x-k8s.io.yaml index e9ebc3c..1396eef 100644 --- a/charts/cluster-api-control-plane-kubeadm/crds/kubeadmcontrolplanes.controlplane.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-control-plane-kubeadm/crds/kubeadmcontrolplanes.controlplane.cluster.x-k8s.io.yaml @@ -3,10 +3,9 @@ kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: capi-kubeadm-control-plane-system/capi-kubeadm-control-plane-serving-cert - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: control-plane-kubeadm - cluster.x-k8s.io/v1alpha3: v1alpha3 cluster.x-k8s.io/v1alpha4: v1alpha4 cluster.x-k8s.io/v1beta1: v1beta1 name: kubeadmcontrolplanes.controlplane.cluster.x-k8s.io @@ -1201,7 +1200,7 @@ spec: type: integer type: object type: object - served: true + served: false storage: false subresources: scale: @@ -2413,7 +2412,7 @@ spec: type: string type: object type: object - served: true + served: false storage: false subresources: scale: diff --git a/charts/cluster-api-control-plane-kubeadm/crds/kubeadmcontrolplanetemplates.controlplane.cluster.x-k8s.io.yaml b/charts/cluster-api-control-plane-kubeadm/crds/kubeadmcontrolplanetemplates.controlplane.cluster.x-k8s.io.yaml index 5162469..29bb576 100644 --- a/charts/cluster-api-control-plane-kubeadm/crds/kubeadmcontrolplanetemplates.controlplane.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-control-plane-kubeadm/crds/kubeadmcontrolplanetemplates.controlplane.cluster.x-k8s.io.yaml @@ -3,10 +3,9 @@ kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: capi-kubeadm-control-plane-system/capi-kubeadm-control-plane-serving-cert - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: control-plane-kubeadm - cluster.x-k8s.io/v1alpha3: v1alpha3 cluster.x-k8s.io/v1alpha4: v1alpha4 cluster.x-k8s.io/v1beta1: v1beta1 name: kubeadmcontrolplanetemplates.controlplane.cluster.x-k8s.io @@ -1190,7 +1189,7 @@ spec: - template type: object type: object - served: true + served: false storage: false subresources: {} - additionalPrinterColumns: diff --git a/charts/cluster-api-control-plane-kubeadm/templates/clusterrole-1.yaml b/charts/cluster-api-control-plane-kubeadm/templates/clusterrole-1.yaml index 3fee278..0d1c292 100644 --- a/charts/cluster-api-control-plane-kubeadm/templates/clusterrole-1.yaml +++ b/charts/cluster-api-control-plane-kubeadm/templates/clusterrole-1.yaml @@ -14,6 +14,18 @@ rules: - get - list - watch +- apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create +- apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create - apiGroups: - bootstrap.cluster.x-k8s.io - controlplane.cluster.x-k8s.io diff --git a/charts/cluster-api-control-plane-kubeadm/templates/deployment-0.yaml b/charts/cluster-api-control-plane-kubeadm/templates/deployment-0.yaml index e2e215c..0126660 100644 --- a/charts/cluster-api-control-plane-kubeadm/templates/deployment-0.yaml +++ b/charts/cluster-api-control-plane-kubeadm/templates/deployment-0.yaml @@ -21,8 +21,9 @@ spec: containers: - args: - --leader-elect - - --metrics-bind-addr=localhost:8080 - - --feature-gates=ClusterTopology={{ .Values.cluster_topology }},KubeadmBootstrapFormatIgnition={{ .Values.exp_kubeadm_bootstrap_format_ignition }},LazyRestmapper={{ .Values.exp_lazy_restmapper }} + - --diagnostics-address={{ .Values.capi_diagnostics_address }} + - --insecure-diagnostics={{ .Values.capi_insecure_diagnostics }} + - --feature-gates=ClusterTopology={{ .Values.cluster_topology }},KubeadmBootstrapFormatIgnition={{ .Values.exp_kubeadm_bootstrap_format_ignition }} - --logging-format=json command: - /manager @@ -53,6 +54,9 @@ spec: - containerPort: 9440 name: healthz protocol: TCP + - containerPort: 8443 + name: metrics + protocol: TCP readinessProbe: httpGet: path: /readyz diff --git a/charts/cluster-api-control-plane-kubeadm/templates/validatingwebhookconfiguration-0.yaml b/charts/cluster-api-control-plane-kubeadm/templates/validatingwebhookconfiguration-0.yaml index 771dca0..2d08670 100644 --- a/charts/cluster-api-control-plane-kubeadm/templates/validatingwebhookconfiguration-0.yaml +++ b/charts/cluster-api-control-plane-kubeadm/templates/validatingwebhookconfiguration-0.yaml @@ -14,20 +14,19 @@ webhooks: service: name: capi-kubeadm-control-plane-webhook-service namespace: capi-kubeadm-control-plane-system - path: /validate-controlplane-cluster-x-k8s-io-v1beta1-kubeadmcontrolplane + path: /validate-scale-controlplane-cluster-x-k8s-io-v1beta1-kubeadmcontrolplane failurePolicy: Fail matchPolicy: Equivalent - name: validation.kubeadmcontrolplane.controlplane.cluster.x-k8s.io + name: validation-scale.kubeadmcontrolplane.controlplane.cluster.x-k8s.io rules: - apiGroups: - controlplane.cluster.x-k8s.io apiVersions: - v1beta1 operations: - - CREATE - UPDATE resources: - - kubeadmcontrolplanes + - kubeadmcontrolplanes/scale sideEffects: None - admissionReviewVersions: - v1 @@ -36,9 +35,10 @@ webhooks: service: name: capi-kubeadm-control-plane-webhook-service namespace: capi-kubeadm-control-plane-system - path: /validate-controlplane-cluster-x-k8s-io-v1beta1-kubeadmcontrolplanetemplate + path: /validate-controlplane-cluster-x-k8s-io-v1beta1-kubeadmcontrolplane failurePolicy: Fail - name: validation.kubeadmcontrolplanetemplate.controlplane.cluster.x-k8s.io + matchPolicy: Equivalent + name: validation.kubeadmcontrolplane.controlplane.cluster.x-k8s.io rules: - apiGroups: - controlplane.cluster.x-k8s.io @@ -48,7 +48,7 @@ webhooks: - CREATE - UPDATE resources: - - kubeadmcontrolplanetemplates + - kubeadmcontrolplanes sideEffects: None - admissionReviewVersions: - v1 @@ -57,17 +57,17 @@ webhooks: service: name: capi-kubeadm-control-plane-webhook-service namespace: capi-kubeadm-control-plane-system - path: /validate-scale-controlplane-cluster-x-k8s-io-v1beta1-kubeadmcontrolplane + path: /validate-controlplane-cluster-x-k8s-io-v1beta1-kubeadmcontrolplanetemplate failurePolicy: Fail - matchPolicy: Equivalent - name: validation-scale.kubeadmcontrolplane.controlplane.cluster.x-k8s.io + name: validation.kubeadmcontrolplanetemplate.controlplane.cluster.x-k8s.io rules: - apiGroups: - controlplane.cluster.x-k8s.io apiVersions: - v1beta1 operations: + - CREATE - UPDATE resources: - - kubeadmcontrolplanes/scale + - kubeadmcontrolplanetemplates sideEffects: None diff --git a/charts/cluster-api-control-plane-kubeadm/values.yaml b/charts/cluster-api-control-plane-kubeadm/values.yaml index 3e111a1..c3b6d52 100644 --- a/charts/cluster-api-control-plane-kubeadm/values.yaml +++ b/charts/cluster-api-control-plane-kubeadm/values.yaml @@ -1,4 +1,5 @@ +capi_diagnostics_address: :8443 +capi_insecure_diagnostics: false cluster_topology: false exp_kubeadm_bootstrap_format_ignition: false -exp_lazy_restmapper: false -image: registry.k8s.io/cluster-api/kubeadm-control-plane-controller:v1.4.3 +image: registry.k8s.io/cluster-api/kubeadm-control-plane-controller:v1.6.2 diff --git a/charts/cluster-api-core/Chart.yaml b/charts/cluster-api-core/Chart.yaml index 004909a..037e414 100644 --- a/charts/cluster-api-core/Chart.yaml +++ b/charts/cluster-api-core/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 -appVersion: v1.4.3 +appVersion: v1.6.2 description: A Helm chart for deploying cluster API. icon: https://assets.unikorn-cloud.org/assets/images/logos/dark-on-light/icon.png name: cluster-api-core type: application -version: v0.1.10 +version: v0.1.11 diff --git a/charts/cluster-api-core/crds/clusterclasses.cluster.x-k8s.io.yaml b/charts/cluster-api-core/crds/clusterclasses.cluster.x-k8s.io.yaml index 2c4e36b..fca8dcf 100644 --- a/charts/cluster-api-core/crds/clusterclasses.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-core/crds/clusterclasses.cluster.x-k8s.io.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: capi-system/capi-serving-cert - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: cluster-api name: clusterclasses.cluster.x-k8s.io @@ -395,7 +395,7 @@ spec: type: object type: object type: object - served: true + served: false storage: false subresources: {} - additionalPrinterColumns: @@ -601,6 +601,22 @@ spec: More info: http://kubernetes.io/docs/user-guide/labels' type: object type: object + namingStrategy: + description: NamingStrategy allows changing the naming pattern + used when creating the control plane provider object. + properties: + template: + description: 'Template defines the template to use for generating + the name of the ControlPlane object. If not defined, it + will fallback to `{{ .cluster.name }}-{{ .random }}`. If + the templated string exceeds 63 characters, it will be trimmed + to 58 characters and will get concatenated with a random + suffix of length 5. The templating mechanism provides the + following arguments: * `.cluster.name`: The name of the + cluster object. * `.random`: A random alphanumeric string, + without vowels, of length 5.' + type: string + type: object nodeDeletionTimeout: description: 'NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts after @@ -821,6 +837,18 @@ spec: type: string type: array type: object + machinePoolClass: + description: MachinePoolClass selects templates + referenced in specific MachinePoolClasses in + .spec.workers.machinePools. + properties: + names: + description: Names selects templates by class + names. + items: + type: string + type: array + type: object type: object required: - apiVersion @@ -1170,6 +1198,25 @@ spec: using this MachineDeploymentClass.' format: int32 type: integer + namingStrategy: + description: NamingStrategy allows changing the naming pattern + used when creating the MachineDeployment. + properties: + template: + description: 'Template defines the template to use for + generating the name of the MachineDeployment object. + If not defined, it will fallback to `{{ .cluster.name + }}-{{ .machineDeployment.topologyName }}-{{ .random + }}`. If the templated string exceeds 63 characters, + it will be trimmed to 58 characters and will get concatenated + with a random suffix of length 5. The templating mechanism + provides the following arguments: * `.cluster.name`: + The name of the cluster object. * `.random`: A random + alphanumeric string, without vowels, of length 5. + * `.machineDeployment.topologyName`: The name of the + MachineDeployment topology (Cluster.spec.topology.workers.machineDeployments[].name).' + type: string + type: object nodeDeletionTimeout: description: 'NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts @@ -1256,7 +1303,8 @@ spec: x-kubernetes-int-or-string: true type: object type: - description: Type of deployment. Default is RollingUpdate. + description: Type of deployment. Allowed values are + RollingUpdate and OnDelete. The default is RollingUpdate. enum: - RollingUpdate - OnDelete @@ -1409,6 +1457,227 @@ spec: - template type: object type: array + machinePools: + description: MachinePools is a list of machine pool classes that + can be used to create a set of worker nodes. + items: + description: MachinePoolClass serves as a template to define + a pool of worker nodes of the cluster provisioned using `ClusterClass`. + properties: + class: + description: Class denotes a type of machine pool present + in the cluster, this name MUST be unique within a ClusterClass + and can be referenced in the Cluster to create a managed + MachinePool. + type: string + failureDomains: + description: 'FailureDomains is the list of failure domains + the MachinePool should be attached to. Must match a key + in the FailureDomains map stored on the cluster object. + NOTE: This value can be overridden while defining a Cluster.Topology + using this MachinePoolClass.' + items: + type: string + type: array + minReadySeconds: + description: 'Minimum number of seconds for which a newly + created machine pool should be ready. Defaults to 0 (machine + will be considered available as soon as it is ready) NOTE: + This value can be overridden while defining a Cluster.Topology + using this MachinePoolClass.' + format: int32 + type: integer + namingStrategy: + description: NamingStrategy allows changing the naming pattern + used when creating the MachinePool. + properties: + template: + description: 'Template defines the template to use for + generating the name of the MachinePool object. If + not defined, it will fallback to `{{ .cluster.name + }}-{{ .machinePool.topologyName }}-{{ .random }}`. + If the templated string exceeds 63 characters, it + will be trimmed to 58 characters and will get concatenated + with a random suffix of length 5. The templating mechanism + provides the following arguments: * `.cluster.name`: + The name of the cluster object. * `.random`: A random + alphanumeric string, without vowels, of length 5. + * `.machinePool.topologyName`: The name of the MachinePool + topology (Cluster.spec.topology.workers.machinePools[].name).' + type: string + type: object + nodeDeletionTimeout: + description: 'NodeDeletionTimeout defines how long the controller + will attempt to delete the Node that the Machine hosts + after the Machine Pool is marked for deletion. A duration + of 0 will retry deletion indefinitely. Defaults to 10 + seconds. NOTE: This value can be overridden while defining + a Cluster.Topology using this MachinePoolClass.' + type: string + nodeDrainTimeout: + description: 'NodeDrainTimeout is the total amount of time + that the controller will spend on draining a node. The + default value is 0, meaning that the node can be drained + without any time limitations. NOTE: NodeDrainTimeout is + different from `kubectl drain --timeout` NOTE: This value + can be overridden while defining a Cluster.Topology using + this MachinePoolClass.' + type: string + nodeVolumeDetachTimeout: + description: 'NodeVolumeDetachTimeout is the total amount + of time that the controller will spend on waiting for + all volumes to be detached. The default value is 0, meaning + that the volumes can be detached without any time limitations. + NOTE: This value can be overridden while defining a Cluster.Topology + using this MachinePoolClass.' + type: string + template: + description: Template is a local struct containing a collection + of templates for creation of MachinePools objects representing + a pool of worker nodes. + properties: + bootstrap: + description: Bootstrap contains the bootstrap template + reference to be used for the creation of the Machines + in the MachinePool. + properties: + ref: + description: Ref is a required reference to a custom + resource offered by a provider. + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: 'If referring to a piece of an + object instead of an entire object, this string + should contain a valid JSON/Go field access + statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to + a container within a pod, this would take + on a value like: "spec.containers{name}" (where + "name" refers to the name of the container + that triggered the event) or if no container + name is specified "spec.containers[2]" (container + with index 2 in this pod). This syntax is + chosen only to have some well-defined way + of referencing a part of an object. TODO: + this design is not final and this field is + subject to change in the future.' + type: string + kind: + description: 'Kind of the referent. More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More + info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + resourceVersion: + description: 'Specific resourceVersion to which + this reference is made, if any. More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + type: string + uid: + description: 'UID of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + type: string + type: object + x-kubernetes-map-type: atomic + required: + - ref + type: object + infrastructure: + description: Infrastructure contains the infrastructure + template reference to be used for the creation of + the MachinePool. + properties: + ref: + description: Ref is a required reference to a custom + resource offered by a provider. + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: 'If referring to a piece of an + object instead of an entire object, this string + should contain a valid JSON/Go field access + statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to + a container within a pod, this would take + on a value like: "spec.containers{name}" (where + "name" refers to the name of the container + that triggered the event) or if no container + name is specified "spec.containers[2]" (container + with index 2 in this pod). This syntax is + chosen only to have some well-defined way + of referencing a part of an object. TODO: + this design is not final and this field is + subject to change in the future.' + type: string + kind: + description: 'Kind of the referent. More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More + info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + resourceVersion: + description: 'Specific resourceVersion to which + this reference is made, if any. More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + type: string + uid: + description: 'UID of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + type: string + type: object + x-kubernetes-map-type: atomic + required: + - ref + type: object + metadata: + description: Metadata is the metadata applied to the + MachinePool. At runtime this metadata is merged with + the corresponding metadata from the topology. + properties: + annotations: + additionalProperties: + type: string + description: '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' + type: object + labels: + additionalProperties: + type: string + description: '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' + type: object + type: object + required: + - bootstrap + - infrastructure + type: object + required: + - class + - template + type: object + type: array type: object type: object status: diff --git a/charts/cluster-api-core/crds/clusterresourcesetbindings.addons.cluster.x-k8s.io.yaml b/charts/cluster-api-core/crds/clusterresourcesetbindings.addons.cluster.x-k8s.io.yaml index 1b5d70d..b897c77 100644 --- a/charts/cluster-api-core/crds/clusterresourcesetbindings.addons.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-core/crds/clusterresourcesetbindings.addons.cluster.x-k8s.io.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: capi-system/capi-serving-cert - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: cluster-api name: clusterresourcesetbindings.addons.cluster.x-k8s.io @@ -111,7 +111,7 @@ spec: type: array type: object type: object - served: true + served: false storage: false subresources: status: {} @@ -201,7 +201,7 @@ spec: type: array type: object type: object - served: true + served: false storage: false subresources: status: {} diff --git a/charts/cluster-api-core/crds/clusterresourcesets.addons.cluster.x-k8s.io.yaml b/charts/cluster-api-core/crds/clusterresourcesets.addons.cluster.x-k8s.io.yaml index f4d4d85..ea9d3e4 100644 --- a/charts/cluster-api-core/crds/clusterresourcesets.addons.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-core/crds/clusterresourcesets.addons.cluster.x-k8s.io.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: capi-system/capi-serving-cert - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: cluster-api name: clusterresourcesets.addons.cluster.x-k8s.io @@ -98,6 +98,7 @@ spec: are ANDed. type: object type: object + x-kubernetes-map-type: atomic resources: description: Resources is a list of Secrets/ConfigMaps where each contains 1 or more resources to be applied to remote clusters. @@ -184,7 +185,7 @@ spec: type: integer type: object type: object - served: true + served: false storage: false subresources: status: {} @@ -262,6 +263,7 @@ spec: are ANDed. type: object type: object + x-kubernetes-map-type: atomic resources: description: Resources is a list of Secrets/ConfigMaps where each contains 1 or more resources to be applied to remote clusters. @@ -348,7 +350,7 @@ spec: type: integer type: object type: object - served: true + served: false storage: false subresources: status: {} @@ -425,6 +427,7 @@ spec: are ANDed. type: object type: object + x-kubernetes-map-type: atomic resources: description: Resources is a list of Secrets/ConfigMaps where each contains 1 or more resources to be applied to remote clusters. diff --git a/charts/cluster-api-core/crds/clusters.cluster.x-k8s.io.yaml b/charts/cluster-api-core/crds/clusters.cluster.x-k8s.io.yaml index e5544d2..721b781 100644 --- a/charts/cluster-api-core/crds/clusters.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-core/crds/clusters.cluster.x-k8s.io.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: capi-system/capi-serving-cert - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: cluster-api name: clusters.cluster.x-k8s.io @@ -286,7 +286,7 @@ spec: type: string type: object type: object - served: true + served: false storage: false subresources: status: {} @@ -674,11 +674,16 @@ spec: type: string type: object type: object - served: true + served: false storage: false subresources: status: {} - additionalPrinterColumns: + - description: ClusterClass of this Cluster, empty if the Cluster is not using + a ClusterClass + jsonPath: .spec.topology.class + name: ClusterClass + type: string - description: Cluster status such as Pending/Provisioning/Provisioned/Deleting/Failed jsonPath: .status.phase name: Phase @@ -1022,10 +1027,10 @@ spec: type: integer type: object rolloutAfter: - description: 'RolloutAfter performs a rollout of the entire cluster - one component at a time, control plane first and then machine - deployments. Deprecated: This field has no function and is going - to be removed in the next apiVersion.' + description: "RolloutAfter performs a rollout of the entire cluster\ + \ one component at a time, control plane first and then machine\ + \ deployments. \n Deprecated: This field has no function and\ + \ is going to be removed in the next apiVersion." format: date-time type: string variables: @@ -1346,7 +1351,9 @@ spec: x-kubernetes-int-or-string: true type: object type: - description: Type of deployment. Default is RollingUpdate. + description: Type of deployment. Allowed values + are RollingUpdate and OnDelete. The default is + RollingUpdate. enum: - RollingUpdate - OnDelete @@ -1402,6 +1409,149 @@ spec: - name type: object type: array + machinePools: + description: MachinePools is a list of machine pools in the + cluster. + items: + description: MachinePoolTopology specifies the different + parameters for a pool of worker nodes in the topology. + This pool of nodes is managed by a MachinePool object + whose lifecycle is managed by the Cluster controller. + properties: + class: + description: Class is the name of the MachinePoolClass + used to create the pool of worker nodes. This should + match one of the deployment classes defined in the + ClusterClass object mentioned in the `Cluster.Spec.Class` + field. + type: string + failureDomains: + description: FailureDomains is the list of failure domains + the machine pool will be created in. Must match a + key in the FailureDomains map stored on the cluster + object. + items: + type: string + type: array + metadata: + description: Metadata is the metadata applied to the + MachinePool. At runtime this metadata is merged with + the corresponding metadata from the ClusterClass. + properties: + annotations: + additionalProperties: + type: string + description: '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' + type: object + labels: + additionalProperties: + type: string + description: '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' + type: object + type: object + minReadySeconds: + description: Minimum number of seconds for which a newly + created machine pool should be ready. Defaults to + 0 (machine will be considered available as soon as + it is ready) + format: int32 + type: integer + name: + description: Name is the unique identifier for this + MachinePoolTopology. The value is used with other + unique identifiers to create a MachinePool's Name + (e.g. cluster's name, etc). In case the name is greater + than the allowed maximum length, the values are hashed + together. + type: string + nodeDeletionTimeout: + description: NodeDeletionTimeout defines how long the + controller will attempt to delete the Node that the + MachinePool hosts after the MachinePool is marked + for deletion. A duration of 0 will retry deletion + indefinitely. Defaults to 10 seconds. + type: string + nodeDrainTimeout: + description: 'NodeDrainTimeout is the total amount of + time that the controller will spend on draining a + node. The default value is 0, meaning that the node + can be drained without any time limitations. NOTE: + NodeDrainTimeout is different from `kubectl drain + --timeout`' + type: string + nodeVolumeDetachTimeout: + description: NodeVolumeDetachTimeout is the total amount + of time that the controller will spend on waiting + for all volumes to be detached. The default value + is 0, meaning that the volumes can be detached without + any time limitations. + type: string + replicas: + description: Replicas is the number of nodes belonging + to this pool. If the value is nil, the MachinePool + is created without the number of Replicas (defaulting + to 1) and it's assumed that an external entity (like + cluster autoscaler) is responsible for the management + of this value. + format: int32 + type: integer + variables: + description: Variables can be used to customize the + MachinePool through patches. + properties: + overrides: + description: Overrides can be used to override Cluster + level variables. + items: + description: ClusterVariable can be used to customize + the Cluster through patches. Each ClusterVariable + is associated with a Variable definition in + the ClusterClass `status` variables. + properties: + definitionFrom: + description: 'DefinitionFrom specifies where + the definition of this Variable is from. + DefinitionFrom is `inline` when the definition + is from the ClusterClass `.spec.variables` + or the name of a patch defined in the ClusterClass + `.spec.patches` where the patch is external + and provides external variables. This field + is mandatory if the variable has `DefinitionsConflict: + true` in ClusterClass `status.variables[]`' + type: string + name: + description: Name of the variable. + type: string + value: + description: 'Value of the variable. Note: + the value will be validated against the + schema of the corresponding ClusterClassVariable + from the ClusterClass. Note: We have to + use apiextensionsv1.JSON instead of a custom + JSON type, because controller-tools has + a hard-coded schema for apiextensionsv1.JSON + which cannot be produced by another type + via controller-tools, i.e. it is not possible + to have no type field. Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111' + x-kubernetes-preserve-unknown-fields: true + required: + - name + - value + type: object + type: array + type: object + required: + - class + - name + type: object + type: array type: object required: - class diff --git a/charts/cluster-api-core/crds/extensionconfigs.runtime.cluster.x-k8s.io.yaml b/charts/cluster-api-core/crds/extensionconfigs.runtime.cluster.x-k8s.io.yaml index c5484f6..98e14f9 100644 --- a/charts/cluster-api-core/crds/extensionconfigs.runtime.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-core/crds/extensionconfigs.runtime.cluster.x-k8s.io.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: cluster-api name: extensionconfigs.runtime.cluster.x-k8s.io @@ -140,6 +140,7 @@ spec: are ANDed. type: object type: object + x-kubernetes-map-type: atomic settings: additionalProperties: type: string diff --git a/charts/cluster-api-core/crds/ipaddressclaims.ipam.cluster.x-k8s.io.yaml b/charts/cluster-api-core/crds/ipaddressclaims.ipam.cluster.x-k8s.io.yaml index 417758a..96fe033 100644 --- a/charts/cluster-api-core/crds/ipaddressclaims.ipam.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-core/crds/ipaddressclaims.ipam.cluster.x-k8s.io.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: cluster-api name: ipaddressclaims.ipam.cluster.x-k8s.io @@ -26,6 +26,10 @@ spec: jsonPath: .spec.poolRef.kind name: Pool Kind type: string + - description: Time duration since creation of IPAdressClaim + jsonPath: .metadata.creationTimestamp + name: Age + type: date name: v1alpha1 schema: openAPIV3Schema: @@ -63,10 +67,10 @@ spec: description: Name is the name of resource being referenced type: string required: - - apiGroup - kind - name type: object + x-kubernetes-map-type: atomic required: - poolRef type: object @@ -82,6 +86,128 @@ spec: TODO: Add other useful fields. apiVersion, kind, uid?' type: string type: object + x-kubernetes-map-type: atomic + conditions: + description: Conditions summarises the current state of the IPAddressClaim + items: + description: Condition defines an observation of a Cluster API resource + operational state. + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. This should be when the underlying condition changed. + If that is not known, then using the time when the API field + changed is acceptable. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: The reason for the condition's last transition + in CamelCase. The specific API may choose whether or not this + field is considered a guaranteed API. This field may not be + empty. + type: string + severity: + description: Severity provides an explicit classification of + Reason code, so the users or machines can immediately understand + the current situation and act accordingly. The Severity field + MUST be set only when Status=False. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. + type: string + required: + - lastTransitionTime + - status + - type + type: object + type: array + type: object + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: Name of the pool to allocate an address from + jsonPath: .spec.poolRef.name + name: Pool Name + type: string + - description: Kind of the pool to allocate an address from + jsonPath: .spec.poolRef.kind + name: Pool Kind + type: string + - description: Time duration since creation of IPAdressClaim + jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: IPAddressClaim is the Schema for the ipaddressclaim API. + 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/sig-architecture/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/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: IPAddressClaimSpec is the desired state of an IPAddressClaim. + properties: + poolRef: + description: PoolRef is a reference to the pool from which an IP address + should be created. + properties: + apiGroup: + description: APIGroup is the group for the resource being referenced. + If APIGroup is not specified, the specified Kind must be in + the core API group. For any other third-party types, APIGroup + is required. + type: string + kind: + description: Kind is the type of resource being referenced + type: string + name: + description: Name is the name of resource being referenced + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + required: + - poolRef + type: object + status: + description: IPAddressClaimStatus is the observed status of a IPAddressClaim. + properties: + addressRef: + description: AddressRef is a reference to the address that was created + for this claim. + properties: + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + type: object + x-kubernetes-map-type: atomic conditions: description: Conditions summarises the current state of the IPAddressClaim items: diff --git a/charts/cluster-api-core/crds/ipaddresses.ipam.cluster.x-k8s.io.yaml b/charts/cluster-api-core/crds/ipaddresses.ipam.cluster.x-k8s.io.yaml index 996be39..ae7ae30 100644 --- a/charts/cluster-api-core/crds/ipaddresses.ipam.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-core/crds/ipaddresses.ipam.cluster.x-k8s.io.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: cluster-api name: ipaddresses.ipam.cluster.x-k8s.io @@ -30,6 +30,10 @@ spec: jsonPath: .spec.poolRef.kind name: Pool Kind type: string + - description: Time duration since creation of IPAdress + jsonPath: .metadata.creationTimestamp + name: Age + type: date name: v1alpha1 schema: openAPIV3Schema: @@ -62,6 +66,7 @@ spec: TODO: Add other useful fields. apiVersion, kind, uid?' type: string type: object + x-kubernetes-map-type: atomic gateway: description: Gateway is the network gateway of the network the address is from. @@ -83,10 +88,98 @@ spec: description: Name is the name of resource being referenced type: string required: - - apiGroup - kind - name type: object + x-kubernetes-map-type: atomic + prefix: + description: Prefix is the prefix of the address. + type: integer + required: + - address + - claimRef + - poolRef + - prefix + type: object + type: object + served: true + storage: false + subresources: {} + - additionalPrinterColumns: + - description: Address + jsonPath: .spec.address + name: Address + type: string + - description: Name of the pool the address is from + jsonPath: .spec.poolRef.name + name: Pool Name + type: string + - description: Kind of the pool the address is from + jsonPath: .spec.poolRef.kind + name: Pool Kind + type: string + - description: Time duration since creation of IPAdress + jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: IPAddress is the Schema for the ipaddress API. + 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/sig-architecture/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/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: IPAddressSpec is the desired state of an IPAddress. + properties: + address: + description: Address is the IP address. + type: string + claimRef: + description: ClaimRef is a reference to the claim this IPAddress was + created for. + properties: + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + type: object + x-kubernetes-map-type: atomic + gateway: + description: Gateway is the network gateway of the network the address + is from. + type: string + poolRef: + description: PoolRef is a reference to the pool that this IPAddress + was created from. + properties: + apiGroup: + description: APIGroup is the group for the resource being referenced. + If APIGroup is not specified, the specified Kind must be in + the core API group. For any other third-party types, APIGroup + is required. + type: string + kind: + description: Kind is the type of resource being referenced + type: string + name: + description: Name is the name of resource being referenced + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic prefix: description: Prefix is the prefix of the address. type: integer diff --git a/charts/cluster-api-core/crds/machinedeployments.cluster.x-k8s.io.yaml b/charts/cluster-api-core/crds/machinedeployments.cluster.x-k8s.io.yaml index bad1925..06964a0 100644 --- a/charts/cluster-api-core/crds/machinedeployments.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-core/crds/machinedeployments.cluster.x-k8s.io.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: capi-system/capi-serving-cert - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: cluster-api name: machinedeployments.cluster.x-k8s.io @@ -305,10 +305,10 @@ spec: description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names' + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids' + description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -518,7 +518,7 @@ spec: type: integer type: object type: object - served: true + served: false storage: false subresources: scale: @@ -981,7 +981,7 @@ spec: type: integer type: object type: object - served: true + served: false storage: false subresources: scale: @@ -1054,9 +1054,10 @@ spec: minLength: 1 type: string minReadySeconds: - description: Minimum number of seconds for which a newly created machine - should be ready. Defaults to 0 (machine will be considered available - as soon as it is ready) + description: MinReadySeconds is the minimum number of seconds for + which a Node for a newly created machine should be ready before + considering the replica available. Defaults to 0 (machine will be + considered available as soon as the Node is ready) format: int32 type: integer paused: @@ -1206,7 +1207,8 @@ spec: x-kubernetes-int-or-string: true type: object type: - description: Type of deployment. Default is RollingUpdate. + description: Type of deployment. Allowed values are RollingUpdate + and OnDelete. The default is RollingUpdate. enum: - RollingUpdate - OnDelete diff --git a/charts/cluster-api-core/crds/machinehealthchecks.cluster.x-k8s.io.yaml b/charts/cluster-api-core/crds/machinehealthchecks.cluster.x-k8s.io.yaml index 4e839c6..101371a 100644 --- a/charts/cluster-api-core/crds/machinehealthchecks.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-core/crds/machinehealthchecks.cluster.x-k8s.io.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: capi-system/capi-serving-cert - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: cluster-api name: machinehealthchecks.cluster.x-k8s.io @@ -282,7 +282,7 @@ spec: type: array type: object type: object - served: true + served: false storage: false subresources: status: {} @@ -554,7 +554,7 @@ spec: type: array type: object type: object - served: true + served: false storage: false subresources: status: {} diff --git a/charts/cluster-api-core/crds/machinepools.cluster.x-k8s.io.yaml b/charts/cluster-api-core/crds/machinepools.cluster.x-k8s.io.yaml index 324111a..6e0c103 100644 --- a/charts/cluster-api-core/crds/machinepools.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-core/crds/machinepools.cluster.x-k8s.io.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: capi-system/capi-serving-cert - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: cluster-api name: machinepools.cluster.x-k8s.io @@ -246,10 +246,10 @@ spec: description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names' + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids' + description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -543,6 +543,7 @@ spec: description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' type: string type: object + x-kubernetes-map-type: atomic type: array observedGeneration: description: ObservedGeneration is the latest generation observed @@ -574,7 +575,7 @@ spec: type: integer type: object type: object - served: true + served: false storage: false subresources: scale: @@ -952,6 +953,7 @@ spec: description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' type: string type: object + x-kubernetes-map-type: atomic type: array observedGeneration: description: ObservedGeneration is the latest generation observed @@ -983,7 +985,7 @@ spec: type: integer type: object type: object - served: true + served: false storage: false subresources: scale: @@ -1049,9 +1051,10 @@ spec: type: string type: array minReadySeconds: - description: Minimum number of seconds for which a newly created machine - instances should be ready. Defaults to 0 (machine instance will - be considered available as soon as it is ready) + description: 'Minimum number of seconds for which a newly created + machine instances should be ready. Defaults to 0 (machine instance + will be considered available as soon as it is ready) NOTE: No logic + is implemented for this field and it currently has no behaviour.' format: int32 type: integer providerIDList: @@ -1381,6 +1384,7 @@ spec: description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' type: string type: object + x-kubernetes-map-type: atomic type: array observedGeneration: description: ObservedGeneration is the latest generation observed diff --git a/charts/cluster-api-core/crds/machines.cluster.x-k8s.io.yaml b/charts/cluster-api-core/crds/machines.cluster.x-k8s.io.yaml index 66197ca..21b9ee8 100644 --- a/charts/cluster-api-core/crds/machines.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-core/crds/machines.cluster.x-k8s.io.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: capi-system/capi-serving-cert - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: cluster-api name: machines.cluster.x-k8s.io @@ -370,7 +370,7 @@ spec: type: string type: object type: object - served: true + served: false storage: false subresources: status: {} @@ -768,7 +768,7 @@ spec: type: string type: object type: object - served: true + served: false storage: false subresources: status: {} diff --git a/charts/cluster-api-core/crds/machinesets.cluster.x-k8s.io.yaml b/charts/cluster-api-core/crds/machinesets.cluster.x-k8s.io.yaml index 77455cf..ae1b418 100644 --- a/charts/cluster-api-core/crds/machinesets.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-core/crds/machinesets.cluster.x-k8s.io.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: capi-system/capi-serving-cert - controller-gen.kubebuilder.io/version: v0.11.4 + controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: cluster-api name: machinesets.cluster.x-k8s.io @@ -243,10 +243,10 @@ spec: description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names' + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids' + description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -464,7 +464,7 @@ spec: type: string type: object type: object - served: true + served: false storage: false subresources: scale: @@ -861,7 +861,7 @@ spec: type: string type: object type: object - served: true + served: false storage: false subresources: scale: @@ -935,8 +935,9 @@ spec: type: string minReadySeconds: description: MinReadySeconds is the minimum number of seconds for - which a newly created machine should be ready. Defaults to 0 (machine - will be considered available as soon as it is ready) + which a Node for a newly created machine should be ready before + considering the replica available. Defaults to 0 (machine will be + considered available as soon as the Node is ready) format: int32 type: integer replicas: diff --git a/charts/cluster-api-core/templates/clusterrole-1.yaml b/charts/cluster-api-core/templates/clusterrole-1.yaml index e37871a..fca72d5 100644 --- a/charts/cluster-api-core/templates/clusterrole-1.yaml +++ b/charts/cluster-api-core/templates/clusterrole-1.yaml @@ -43,6 +43,18 @@ rules: - get - list - watch +- apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create +- apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create - apiGroups: - bootstrap.cluster.x-k8s.io - controlplane.cluster.x-k8s.io @@ -189,6 +201,18 @@ rules: - patch - update - watch +- apiGroups: + - cluster.x-k8s.io + resources: + - machinepools + verbs: + - create + - delete + - get + - list + - patch + - update + - watch - apiGroups: - cluster.x-k8s.io resources: diff --git a/charts/cluster-api-core/templates/deployment-0.yaml b/charts/cluster-api-core/templates/deployment-0.yaml index 3fd56e0..5b0a056 100644 --- a/charts/cluster-api-core/templates/deployment-0.yaml +++ b/charts/cluster-api-core/templates/deployment-0.yaml @@ -21,8 +21,9 @@ spec: containers: - args: - --leader-elect - - --metrics-bind-addr=localhost:8080 - - --feature-gates=MachinePool={{ .Values.exp_machine_pool }},ClusterResourceSet={{ .Values.exp_cluster_resource_set }},ClusterTopology={{ .Values.cluster_topology }},RuntimeSDK={{ .Values.exp_runtime_sdk }},LazyRestmapper={{ .Values.exp_lazy_restmapper }} + - --diagnostics-address={{ .Values.capi_diagnostics_address }} + - --insecure-diagnostics={{ .Values.capi_insecure_diagnostics }} + - --feature-gates=MachinePool={{ .Values.exp_machine_pool }},ClusterResourceSet={{ .Values.exp_cluster_resource_set }},ClusterTopology={{ .Values.cluster_topology }},RuntimeSDK={{ .Values.exp_runtime_sdk }},MachineSetPreflightChecks={{ .Values.exp_machine_set_preflight_checks }} - --logging-format=json command: - /manager @@ -53,6 +54,9 @@ spec: - containerPort: 9440 name: healthz protocol: TCP + - containerPort: 8443 + name: metrics + protocol: TCP readinessProbe: httpGet: path: /readyz diff --git a/charts/cluster-api-core/templates/mutatingwebhookconfiguration-0.yaml b/charts/cluster-api-core/templates/mutatingwebhookconfiguration-0.yaml index f7dcfc2..42d6ada 100644 --- a/charts/cluster-api-core/templates/mutatingwebhookconfiguration-0.yaml +++ b/charts/cluster-api-core/templates/mutatingwebhookconfiguration-0.yaml @@ -14,10 +14,10 @@ webhooks: service: name: capi-webhook-service namespace: capi-system - path: /mutate-cluster-x-k8s-io-v1beta1-machine + path: /mutate-cluster-x-k8s-io-v1beta1-cluster failurePolicy: Fail matchPolicy: Equivalent - name: default.machine.cluster.x-k8s.io + name: default.cluster.cluster.x-k8s.io rules: - apiGroups: - cluster.x-k8s.io @@ -27,7 +27,7 @@ webhooks: - CREATE - UPDATE resources: - - machines + - clusters sideEffects: None - admissionReviewVersions: - v1 @@ -36,10 +36,10 @@ webhooks: service: name: capi-webhook-service namespace: capi-system - path: /mutate-cluster-x-k8s-io-v1beta1-machinedeployment + path: /mutate-cluster-x-k8s-io-v1beta1-clusterclass failurePolicy: Fail matchPolicy: Equivalent - name: default.machinedeployment.cluster.x-k8s.io + name: default.clusterclass.cluster.x-k8s.io rules: - apiGroups: - cluster.x-k8s.io @@ -49,7 +49,7 @@ webhooks: - CREATE - UPDATE resources: - - machinedeployments + - clusterclasses sideEffects: None - admissionReviewVersions: - v1 @@ -58,10 +58,10 @@ webhooks: service: name: capi-webhook-service namespace: capi-system - path: /mutate-cluster-x-k8s-io-v1beta1-machinehealthcheck + path: /mutate-cluster-x-k8s-io-v1beta1-machine failurePolicy: Fail matchPolicy: Equivalent - name: default.machinehealthcheck.cluster.x-k8s.io + name: default.machine.cluster.x-k8s.io rules: - apiGroups: - cluster.x-k8s.io @@ -71,7 +71,7 @@ webhooks: - CREATE - UPDATE resources: - - machinehealthchecks + - machines sideEffects: None - admissionReviewVersions: - v1 @@ -80,10 +80,10 @@ webhooks: service: name: capi-webhook-service namespace: capi-system - path: /mutate-cluster-x-k8s-io-v1beta1-machineset + path: /mutate-cluster-x-k8s-io-v1beta1-machinedeployment failurePolicy: Fail matchPolicy: Equivalent - name: default.machineset.cluster.x-k8s.io + name: default.machinedeployment.cluster.x-k8s.io rules: - apiGroups: - cluster.x-k8s.io @@ -93,7 +93,7 @@ webhooks: - CREATE - UPDATE resources: - - machinesets + - machinedeployments sideEffects: None - admissionReviewVersions: - v1 @@ -102,10 +102,10 @@ webhooks: service: name: capi-webhook-service namespace: capi-system - path: /mutate-cluster-x-k8s-io-v1beta1-cluster + path: /mutate-cluster-x-k8s-io-v1beta1-machinehealthcheck failurePolicy: Fail matchPolicy: Equivalent - name: default.cluster.cluster.x-k8s.io + name: default.machinehealthcheck.cluster.x-k8s.io rules: - apiGroups: - cluster.x-k8s.io @@ -115,7 +115,7 @@ webhooks: - CREATE - UPDATE resources: - - clusters + - machinehealthchecks sideEffects: None - admissionReviewVersions: - v1 @@ -124,10 +124,10 @@ webhooks: service: name: capi-webhook-service namespace: capi-system - path: /mutate-cluster-x-k8s-io-v1beta1-clusterclass + path: /mutate-cluster-x-k8s-io-v1beta1-machineset failurePolicy: Fail matchPolicy: Equivalent - name: default.clusterclass.cluster.x-k8s.io + name: default.machineset.cluster.x-k8s.io rules: - apiGroups: - cluster.x-k8s.io @@ -137,7 +137,7 @@ webhooks: - CREATE - UPDATE resources: - - clusterclasses + - machinesets sideEffects: None - admissionReviewVersions: - v1 diff --git a/charts/cluster-api-core/templates/validatingwebhookconfiguration-0.yaml b/charts/cluster-api-core/templates/validatingwebhookconfiguration-0.yaml index e94cb72..9d4d172 100644 --- a/charts/cluster-api-core/templates/validatingwebhookconfiguration-0.yaml +++ b/charts/cluster-api-core/templates/validatingwebhookconfiguration-0.yaml @@ -14,10 +14,10 @@ webhooks: service: name: capi-webhook-service namespace: capi-system - path: /validate-cluster-x-k8s-io-v1beta1-machine + path: /validate-cluster-x-k8s-io-v1beta1-cluster failurePolicy: Fail matchPolicy: Equivalent - name: validation.machine.cluster.x-k8s.io + name: validation.cluster.cluster.x-k8s.io rules: - apiGroups: - cluster.x-k8s.io @@ -26,8 +26,9 @@ webhooks: operations: - CREATE - UPDATE + - DELETE resources: - - machines + - clusters sideEffects: None - admissionReviewVersions: - v1 @@ -36,10 +37,10 @@ webhooks: service: name: capi-webhook-service namespace: capi-system - path: /validate-cluster-x-k8s-io-v1beta1-machinedeployment + path: /validate-cluster-x-k8s-io-v1beta1-clusterclass failurePolicy: Fail matchPolicy: Equivalent - name: validation.machinedeployment.cluster.x-k8s.io + name: validation.clusterclass.cluster.x-k8s.io rules: - apiGroups: - cluster.x-k8s.io @@ -48,8 +49,9 @@ webhooks: operations: - CREATE - UPDATE + - DELETE resources: - - machinedeployments + - clusterclasses sideEffects: None - admissionReviewVersions: - v1 @@ -58,10 +60,10 @@ webhooks: service: name: capi-webhook-service namespace: capi-system - path: /validate-cluster-x-k8s-io-v1beta1-machinehealthcheck + path: /validate-cluster-x-k8s-io-v1beta1-machine failurePolicy: Fail matchPolicy: Equivalent - name: validation.machinehealthcheck.cluster.x-k8s.io + name: validation.machine.cluster.x-k8s.io rules: - apiGroups: - cluster.x-k8s.io @@ -71,7 +73,7 @@ webhooks: - CREATE - UPDATE resources: - - machinehealthchecks + - machines sideEffects: None - admissionReviewVersions: - v1 @@ -80,10 +82,10 @@ webhooks: service: name: capi-webhook-service namespace: capi-system - path: /validate-cluster-x-k8s-io-v1beta1-machineset + path: /validate-cluster-x-k8s-io-v1beta1-machinedeployment failurePolicy: Fail matchPolicy: Equivalent - name: validation.machineset.cluster.x-k8s.io + name: validation.machinedeployment.cluster.x-k8s.io rules: - apiGroups: - cluster.x-k8s.io @@ -93,7 +95,7 @@ webhooks: - CREATE - UPDATE resources: - - machinesets + - machinedeployments sideEffects: None - admissionReviewVersions: - v1 @@ -102,10 +104,10 @@ webhooks: service: name: capi-webhook-service namespace: capi-system - path: /validate-cluster-x-k8s-io-v1beta1-cluster + path: /validate-cluster-x-k8s-io-v1beta1-machinehealthcheck failurePolicy: Fail matchPolicy: Equivalent - name: validation.cluster.cluster.x-k8s.io + name: validation.machinehealthcheck.cluster.x-k8s.io rules: - apiGroups: - cluster.x-k8s.io @@ -114,9 +116,8 @@ webhooks: operations: - CREATE - UPDATE - - DELETE resources: - - clusters + - machinehealthchecks sideEffects: None - admissionReviewVersions: - v1 @@ -125,10 +126,10 @@ webhooks: service: name: capi-webhook-service namespace: capi-system - path: /validate-cluster-x-k8s-io-v1beta1-clusterclass + path: /validate-cluster-x-k8s-io-v1beta1-machineset failurePolicy: Fail matchPolicy: Equivalent - name: validation.clusterclass.cluster.x-k8s.io + name: validation.machineset.cluster.x-k8s.io rules: - apiGroups: - cluster.x-k8s.io @@ -137,9 +138,8 @@ webhooks: operations: - CREATE - UPDATE - - DELETE resources: - - clusterclasses + - machinesets sideEffects: None - admissionReviewVersions: - v1 @@ -236,7 +236,7 @@ webhooks: service: name: capi-webhook-service namespace: capi-system - path: /validate-ipam-cluster-x-k8s-io-v1alpha1-ipaddress + path: /validate-ipam-cluster-x-k8s-io-v1beta1-ipaddress failurePolicy: Fail matchPolicy: Equivalent name: validation.ipaddress.ipam.cluster.x-k8s.io @@ -244,7 +244,7 @@ webhooks: - apiGroups: - ipam.cluster.x-k8s.io apiVersions: - - v1alpha1 + - v1beta1 operations: - CREATE - UPDATE @@ -259,7 +259,7 @@ webhooks: service: name: capi-webhook-service namespace: capi-system - path: /validate-ipam-cluster-x-k8s-io-v1alpha1-ipaddressclaim + path: /validate-ipam-cluster-x-k8s-io-v1beta1-ipaddressclaim failurePolicy: Fail matchPolicy: Equivalent name: validation.ipaddressclaim.ipam.cluster.x-k8s.io @@ -267,7 +267,7 @@ webhooks: - apiGroups: - ipam.cluster.x-k8s.io apiVersions: - - v1alpha1 + - v1beta1 operations: - CREATE - UPDATE diff --git a/charts/cluster-api-core/values.yaml b/charts/cluster-api-core/values.yaml index c824dc6..dfbc883 100644 --- a/charts/cluster-api-core/values.yaml +++ b/charts/cluster-api-core/values.yaml @@ -1,6 +1,8 @@ +capi_diagnostics_address: :8443 +capi_insecure_diagnostics: false cluster_topology: false exp_cluster_resource_set: false -exp_lazy_restmapper: false exp_machine_pool: false +exp_machine_set_preflight_checks: false exp_runtime_sdk: false -image: registry.k8s.io/cluster-api/cluster-api-controller:v1.4.3 +image: registry.k8s.io/cluster-api/cluster-api-controller:v1.6.2 diff --git a/charts/cluster-api-provider-openstack/Chart.yaml b/charts/cluster-api-provider-openstack/Chart.yaml index e3dbeab..4f1eb3b 100644 --- a/charts/cluster-api-provider-openstack/Chart.yaml +++ b/charts/cluster-api-provider-openstack/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 -appVersion: v0.8.0 +appVersion: v0.9.0 description: A Helm chart for deploying cluster API. icon: https://assets.unikorn-cloud.org/assets/images/logos/dark-on-light/icon.png name: cluster-api-provider-openstack type: application -version: v0.1.10 +version: v0.1.11 diff --git a/charts/cluster-api-provider-openstack/crds/openstackclusters.infrastructure.cluster.x-k8s.io.yaml b/charts/cluster-api-provider-openstack/crds/openstackclusters.infrastructure.cluster.x-k8s.io.yaml index 895f22b..9b40794 100644 --- a/charts/cluster-api-provider-openstack/crds/openstackclusters.infrastructure.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-provider-openstack/crds/openstackclusters.infrastructure.cluster.x-k8s.io.yaml @@ -3785,6 +3785,67 @@ spec: instance: description: Instance for the bastion itself properties: + additionalBlockDevices: + description: AdditionalBlockDevices is a list of specifications + for additional block devices to attach to the server instance + items: + description: AdditionalBlockDevice is a block device to + attach to the server. + properties: + name: + description: Name of the block device in the context + of a machine. If the block device is a volume, the + Cinder volume will be named as a combination of the + machine name and this name. Also, this name will be + used for tagging the block device. Information about + the block device tag can be obtained from the OpenStack + metadata API or the config drive. + type: string + sizeGiB: + description: SizeGiB is the size of the block device + in gibibytes (GiB). + type: integer + storage: + description: Storage specifies the storage type of the + block device and additional storage options. + properties: + type: + description: Type is the type of block device to + create. This can be either "Volume" or "Local". + type: string + volume: + description: Volume contains additional storage + options for a volume block device. + properties: + availabilityZone: + description: AvailabilityZone is the volume + availability zone to create the volume in. + If omitted, the availability zone of the server + will be used. The availability zone must NOT + contain spaces otherwise it will lead to volume + that belongs to this availability zone register + failure, see kubernetes/cloud-provider-openstack#1379 + for further information. + type: string + type: + description: Type is the Cinder volume type + of the volume. If omitted, the default Cinder + volume type that is configured in the OpenStack + cloud will be used. + type: string + type: object + required: + - type + type: object + required: + - name + - sizeGiB + - storage + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map cloudName: description: The name of the cloud to use from the clouds secret @@ -4246,6 +4307,14 @@ spec: tagsAny: type: string type: object + networkMtu: + description: NetworkMTU sets the maximum transmission unit (MTU) value + to address fragmentation for the private network ID. This value + will be used only if the Cluster actuator creates the network. If + leaved empty, the network will have the default MTU defined in Openstack + network service. To use this field, the Openstack installation requires + the net-mtu neutron API extension. + type: integer nodeCidr: description: NodeCIDR is the OpenStack Subnet to be created. Cluster actuator will create a network, a subnet with NodeCIDR, and a router diff --git a/charts/cluster-api-provider-openstack/crds/openstackclustertemplates.infrastructure.cluster.x-k8s.io.yaml b/charts/cluster-api-provider-openstack/crds/openstackclustertemplates.infrastructure.cluster.x-k8s.io.yaml index 513144c..ceb65b0 100644 --- a/charts/cluster-api-provider-openstack/crds/openstackclustertemplates.infrastructure.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-provider-openstack/crds/openstackclustertemplates.infrastructure.cluster.x-k8s.io.yaml @@ -1625,6 +1625,73 @@ spec: instance: description: Instance for the bastion itself properties: + additionalBlockDevices: + description: AdditionalBlockDevices is a list of specifications + for additional block devices to attach to the server + instance + items: + description: AdditionalBlockDevice is a block device + to attach to the server. + properties: + name: + description: Name of the block device in the + context of a machine. If the block device + is a volume, the Cinder volume will be named + as a combination of the machine name and this + name. Also, this name will be used for tagging + the block device. Information about the block + device tag can be obtained from the OpenStack + metadata API or the config drive. + type: string + sizeGiB: + description: SizeGiB is the size of the block + device in gibibytes (GiB). + type: integer + storage: + description: Storage specifies the storage type + of the block device and additional storage + options. + properties: + type: + description: Type is the type of block device + to create. This can be either "Volume" + or "Local". + type: string + volume: + description: Volume contains additional + storage options for a volume block device. + properties: + availabilityZone: + description: AvailabilityZone is the + volume availability zone to create + the volume in. If omitted, the availability + zone of the server will be used. The + availability zone must NOT contain + spaces otherwise it will lead to volume + that belongs to this availability + zone register failure, see kubernetes/cloud-provider-openstack#1379 + for further information. + type: string + type: + description: Type is the Cinder volume + type of the volume. If omitted, the + default Cinder volume type that is + configured in the OpenStack cloud + will be used. + type: string + type: object + required: + - type + type: object + required: + - name + - sizeGiB + - storage + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map cloudName: description: The name of the cloud to use from the clouds secret @@ -2106,6 +2173,15 @@ spec: tagsAny: type: string type: object + networkMtu: + description: NetworkMTU sets the maximum transmission unit + (MTU) value to address fragmentation for the private network + ID. This value will be used only if the Cluster actuator + creates the network. If leaved empty, the network will have + the default MTU defined in Openstack network service. To + use this field, the Openstack installation requires the + net-mtu neutron API extension. + type: integer nodeCidr: description: NodeCIDR is the OpenStack Subnet to be created. Cluster actuator will create a network, a subnet with NodeCIDR, diff --git a/charts/cluster-api-provider-openstack/crds/openstackmachines.infrastructure.cluster.x-k8s.io.yaml b/charts/cluster-api-provider-openstack/crds/openstackmachines.infrastructure.cluster.x-k8s.io.yaml index 6820a4c..1b9822a 100644 --- a/charts/cluster-api-provider-openstack/crds/openstackmachines.infrastructure.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-provider-openstack/crds/openstackmachines.infrastructure.cluster.x-k8s.io.yaml @@ -1176,6 +1176,64 @@ spec: spec: description: OpenStackMachineSpec defines the desired state of OpenStackMachine. properties: + additionalBlockDevices: + description: AdditionalBlockDevices is a list of specifications for + additional block devices to attach to the server instance + items: + description: AdditionalBlockDevice is a block device to attach to + the server. + properties: + name: + description: Name of the block device in the context of a machine. + If the block device is a volume, the Cinder volume will be + named as a combination of the machine name and this name. + Also, this name will be used for tagging the block device. + Information about the block device tag can be obtained from + the OpenStack metadata API or the config drive. + type: string + sizeGiB: + description: SizeGiB is the size of the block device in gibibytes + (GiB). + type: integer + storage: + description: Storage specifies the storage type of the block + device and additional storage options. + properties: + type: + description: Type is the type of block device to create. + This can be either "Volume" or "Local". + type: string + volume: + description: Volume contains additional storage options + for a volume block device. + properties: + availabilityZone: + description: AvailabilityZone is the volume availability + zone to create the volume in. If omitted, the availability + zone of the server will be used. The availability + zone must NOT contain spaces otherwise it will lead + to volume that belongs to this availability zone register + failure, see kubernetes/cloud-provider-openstack#1379 + for further information. + type: string + type: + description: Type is the Cinder volume type of the volume. + If omitted, the default Cinder volume type that is + configured in the OpenStack cloud will be used. + type: string + type: object + required: + - type + type: object + required: + - name + - sizeGiB + - storage + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map cloudName: description: The name of the cloud to use from the clouds secret type: string diff --git a/charts/cluster-api-provider-openstack/crds/openstackmachinetemplates.infrastructure.cluster.x-k8s.io.yaml b/charts/cluster-api-provider-openstack/crds/openstackmachinetemplates.infrastructure.cluster.x-k8s.io.yaml index 4c4e488..002841d 100644 --- a/charts/cluster-api-provider-openstack/crds/openstackmachinetemplates.infrastructure.cluster.x-k8s.io.yaml +++ b/charts/cluster-api-provider-openstack/crds/openstackmachinetemplates.infrastructure.cluster.x-k8s.io.yaml @@ -973,6 +973,67 @@ spec: description: Spec is the specification of the desired behavior of the machine. properties: + additionalBlockDevices: + description: AdditionalBlockDevices is a list of specifications + for additional block devices to attach to the server instance + items: + description: AdditionalBlockDevice is a block device to + attach to the server. + properties: + name: + description: Name of the block device in the context + of a machine. If the block device is a volume, the + Cinder volume will be named as a combination of the + machine name and this name. Also, this name will be + used for tagging the block device. Information about + the block device tag can be obtained from the OpenStack + metadata API or the config drive. + type: string + sizeGiB: + description: SizeGiB is the size of the block device + in gibibytes (GiB). + type: integer + storage: + description: Storage specifies the storage type of the + block device and additional storage options. + properties: + type: + description: Type is the type of block device to + create. This can be either "Volume" or "Local". + type: string + volume: + description: Volume contains additional storage + options for a volume block device. + properties: + availabilityZone: + description: AvailabilityZone is the volume + availability zone to create the volume in. + If omitted, the availability zone of the server + will be used. The availability zone must NOT + contain spaces otherwise it will lead to volume + that belongs to this availability zone register + failure, see kubernetes/cloud-provider-openstack#1379 + for further information. + type: string + type: + description: Type is the Cinder volume type + of the volume. If omitted, the default Cinder + volume type that is configured in the OpenStack + cloud will be used. + type: string + type: object + required: + - type + type: object + required: + - name + - sizeGiB + - storage + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map cloudName: description: The name of the cloud to use from the clouds secret diff --git a/charts/cluster-api-provider-openstack/templates/clusterrole-0.yaml b/charts/cluster-api-provider-openstack/templates/clusterrole-0.yaml index c033783..45194cc 100644 --- a/charts/cluster-api-provider-openstack/templates/clusterrole-0.yaml +++ b/charts/cluster-api-provider-openstack/templates/clusterrole-0.yaml @@ -24,6 +24,18 @@ rules: - get - list - watch +- apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create +- apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create - apiGroups: - cluster.x-k8s.io resources: diff --git a/charts/cluster-api-provider-openstack/values.yaml b/charts/cluster-api-provider-openstack/values.yaml index 30b4a5a..ad232af 100644 --- a/charts/cluster-api-provider-openstack/values.yaml +++ b/charts/cluster-api-provider-openstack/values.yaml @@ -1 +1 @@ -image: registry.k8s.io/capi-openstack/capi-openstack-controller:v0.8.0 +image: registry.k8s.io/capi-openstack/capi-openstack-controller:v0.9.0 diff --git a/charts/cluster-api/Chart.yaml b/charts/cluster-api/Chart.yaml index b198846..5dc81cf 100644 --- a/charts/cluster-api/Chart.yaml +++ b/charts/cluster-api/Chart.yaml @@ -3,22 +3,22 @@ appVersion: v1.4.3 name: cluster-api description: A Helm chart to deploy Cluster API type: application -version: v0.1.10 +version: v0.1.11 icon: https://assets.unikorn-cloud.org/assets/images/logos/dark-on-light/icon.png dependencies: - name: cluster-api-core - version: v0.1.10 + version: v0.1.11 repository: file://../cluster-api-core - name: cluster-api-bootstrap-kubeadm - version: v0.1.10 + version: v0.1.11 repository: file://../cluster-api-bootstrap-kubeadm condition: kubeadm.enabled - name: cluster-api-control-plane-kubeadm - version: v0.1.10 + version: v0.1.11 repository: file://../cluster-api-control-plane-kubeadm condition: kubeadm.enabled - name: cluster-api-provider-openstack - version: v0.1.10 + version: v0.1.11 repository: file://../cluster-api-provider-openstack condition: openstack.enabled diff --git a/charts/cluster-api/values.yaml b/charts/cluster-api/values.yaml index 71f3d65..3512d35 100644 --- a/charts/cluster-api/values.yaml +++ b/charts/cluster-api/values.yaml @@ -7,25 +7,29 @@ openstack: enabled: true cluster-api-core: + capi_diagnostics_address: :8443 + capi_insecure_diagnostics: false cluster_topology: false exp_cluster_resource_set: false - exp_lazy_restmapper: false exp_machine_pool: false + exp_machine_set_preflight_checks: false exp_runtime_sdk: false - image: registry.k8s.io/cluster-api/cluster-api-controller:v1.4.3 + image: registry.k8s.io/cluster-api/cluster-api-controller:v1.6.2 cluster-api-bootstrap-kubeadm: + capi_diagnostics_address: :8443 + capi_insecure_diagnostics: false exp_kubeadm_bootstrap_format_ignition: false - exp_lazy_restmapper: false exp_machine_pool: false - image: registry.k8s.io/cluster-api/kubeadm-bootstrap-controller:v1.4.3 + image: registry.k8s.io/cluster-api/kubeadm-bootstrap-controller:v1.6.2 kubeadm_bootstrap_token_ttl: 15m cluster-api-control-plane-kubeadm: + capi_diagnostics_address: :8443 + capi_insecure_diagnostics: false cluster_topology: false exp_kubeadm_bootstrap_format_ignition: false - exp_lazy_restmapper: false - image: registry.k8s.io/cluster-api/kubeadm-control-plane-controller:v1.4.3 + image: registry.k8s.io/cluster-api/kubeadm-control-plane-controller:v1.6.2 cluster-api-provider-openstack: - image: registry.k8s.io/capi-openstack/capi-openstack-controller:v0.8.0 + image: registry.k8s.io/capi-openstack/capi-openstack-controller:v0.9.0