Skip to content

Commit 6f12330

Browse files
authored
Merge pull request #69 from leaseweb/develop
develop -> main: autoscaling and CAPI v1.9.10
2 parents d613796 + bc2c9f3 commit 6f12330

24 files changed

+703
-55
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ delete-kind-cluster:
288288
kind delete cluster --name $(KIND_CLUSTER_NAME)
289289

290290
cluster-api: ## Clone cluster-api repository for tilt use.
291-
git clone --branch v1.9.7 --depth 1 https://github.com/kubernetes-sigs/cluster-api.git
291+
git clone --branch v1.9.10 --depth 1 https://github.com/kubernetes-sigs/cluster-api.git
292292

293293
cluster-api/tilt-settings.json: hack/tilt-settings.json cluster-api
294294
cp ./hack/tilt-settings.json cluster-api

PROJECT

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
domain: cluster.x-k8s.io
22
layout:
3-
- go.kubebuilder.io/v3
3+
- go.kubebuilder.io/v4
44
projectName: cluster-api-provider-capc
55
repo: sigs.k8s.io/cluster-api-provider-cloudstack
66
resources:
@@ -78,7 +78,7 @@ resources:
7878
- api:
7979
crdVersion: v1
8080
namespaced: true
81-
controller: true
81+
controller: false
8282
domain: cluster.x-k8s.io
8383
group: infrastructure
8484
kind: CloudStackMachineStateChecker
@@ -141,7 +141,7 @@ resources:
141141
- api:
142142
crdVersion: v1
143143
namespaced: true
144-
controller: true
144+
controller: false
145145
domain: cluster.x-k8s.io
146146
group: infrastructure
147147
kind: CloudStackMachineStateChecker
@@ -213,7 +213,7 @@ resources:
213213
- api:
214214
crdVersion: v1
215215
namespaced: true
216-
controller: true
216+
controller: false
217217
domain: cluster.x-k8s.io
218218
group: infrastructure
219219
kind: CloudStackMachineStateChecker

api/v1beta1/conversion.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,12 @@ func Convert_v1beta3_Network_To_v1beta1_Network(in *infrav1.Network, out *Networ
7373
return autoConvert_v1beta3_Network_To_v1beta1_Network(in, out, s)
7474
}
7575

76+
func Convert_v1beta3_CloudStackMachineTemplate_To_v1beta1_CloudStackMachineTemplate(in *infrav1.CloudStackMachineTemplate, out *CloudStackMachineTemplate, s machineryconversion.Scope) error {
77+
out.ObjectMeta = in.ObjectMeta
78+
79+
return Convert_v1beta3_CloudStackMachineTemplateSpec_To_v1beta1_CloudStackMachineTemplateSpec(&in.Spec, &out.Spec, s)
80+
}
81+
7682
// getZones maps failure domains to zones.
7783
func getZones(csCluster *infrav1.CloudStackCluster) []Zone {
7884
zones := make([]Zone, 0, len(csCluster.Status.FailureDomains))

api/v1beta1/zz_generated.conversion.go

Lines changed: 6 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/v1beta2/conversion.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,9 @@ func Convert_v1beta3_Network_To_v1beta2_Network(in *infrav1.Network, out *Networ
2929
func Convert_v1beta3_CloudStackIsolatedNetworkSpec_To_v1beta2_CloudStackIsolatedNetworkSpec(in *infrav1.CloudStackIsolatedNetworkSpec, out *CloudStackIsolatedNetworkSpec, s machineryconversion.Scope) error {
3030
return autoConvert_v1beta3_CloudStackIsolatedNetworkSpec_To_v1beta2_CloudStackIsolatedNetworkSpec(in, out, s)
3131
}
32+
33+
func Convert_v1beta3_CloudStackMachineTemplate_To_v1beta2_CloudStackMachineTemplate(in *infrav1.CloudStackMachineTemplate, out *CloudStackMachineTemplate, s machineryconversion.Scope) error {
34+
out.ObjectMeta = in.ObjectMeta
35+
36+
return Convert_v1beta3_CloudStackMachineTemplateSpec_To_v1beta2_CloudStackMachineTemplateSpec(&in.Spec, &out.Spec, s)
37+
}

api/v1beta2/zz_generated.conversion.go

Lines changed: 6 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/v1beta3/cloudstackmachinetemplate_types.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ limitations under the License.
1717
package v1beta3
1818

1919
import (
20+
corev1 "k8s.io/api/core/v1"
2021
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2122
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
2223
)
@@ -37,6 +38,16 @@ type CloudStackMachineTemplateSpec struct {
3738
Template CloudStackMachineTemplateResource `json:"template"`
3839
}
3940

41+
// CloudStackMachineTemplateStatus defines the observed state of CloudStackMachineTemplate.
42+
type CloudStackMachineTemplateStatus struct {
43+
// Capacity defines the resource capacity for this machine.
44+
// This value is used for autoscaling from zero operations as defined in:
45+
// https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20210310-opt-in-autoscaling-from-zero.md
46+
// +optional
47+
Capacity corev1.ResourceList `json:"capacity,omitempty"`
48+
}
49+
50+
//+kubebuilder:subresource:status
4051
//+kubebuilder:object:root=true
4152
//+kubebuilder:resource:path=cloudstackmachinetemplates,scope=Namespaced,categories=cluster-api,shortName=csmt
4253
//+kubebuilder:storageversion
@@ -47,7 +58,8 @@ type CloudStackMachineTemplate struct {
4758
metav1.TypeMeta `json:",inline"`
4859
metav1.ObjectMeta `json:"metadata,omitempty"`
4960

50-
Spec CloudStackMachineTemplateSpec `json:"spec,omitempty"`
61+
Spec CloudStackMachineTemplateSpec `json:"spec,omitempty"`
62+
Status CloudStackMachineTemplateStatus `json:"status,omitempty"`
5163
}
5264

5365
//+kubebuilder:object:root=true

api/v1beta3/zz_generated.deepcopy.go

Lines changed: 23 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/infrastructure.cluster.x-k8s.io_cloudstackmachinetemplates.yaml

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -646,7 +646,25 @@ spec:
646646
required:
647647
- template
648648
type: object
649+
status:
650+
description: CloudStackMachineTemplateStatus defines the observed state
651+
of CloudStackMachineTemplate.
652+
properties:
653+
capacity:
654+
additionalProperties:
655+
anyOf:
656+
- type: integer
657+
- type: string
658+
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
659+
x-kubernetes-int-or-string: true
660+
description: |-
661+
Capacity defines the resource capacity for this machine.
662+
This value is used for autoscaling from zero operations as defined in:
663+
https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20210310-opt-in-autoscaling-from-zero.md
664+
type: object
665+
type: object
649666
type: object
650667
served: true
651668
storage: true
652-
subresources: {}
669+
subresources:
670+
status: {}

config/rbac/role.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ rules:
5555
- cloudstackfailuredomains
5656
- cloudstackisolatednetworks
5757
- cloudstackmachines
58+
- cloudstackmachinetemplates
5859
verbs:
5960
- create
6061
- delete
@@ -79,6 +80,7 @@ rules:
7980
- cloudstackaffinitygroups/status
8081
- cloudstackisolatednetworks/status
8182
- cloudstackmachines/status
83+
- cloudstackmachinetemplates/status
8284
verbs:
8385
- get
8486
- patch

0 commit comments

Comments
 (0)