Skip to content

Commit 8b59042

Browse files
committed
Merge remote-tracking branch 'upstream/master' into integrate-bm
2 parents 7f14c0b + d5671a2 commit 8b59042

File tree

97 files changed

+5940
-1468
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+5940
-1468
lines changed

Makefile

+79-24
Original file line numberDiff line numberDiff line change
@@ -37,19 +37,56 @@ export GOPRIVATE = github.com/microsoft
3737
# Directories.
3838
ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
3939
TOOLS_DIR := hack/tools
40-
TOOLS_BIN_DIR := $(TOOLS_DIR)/bin
40+
TOOLS_BIN_DIR := $(abspath $(TOOLS_DIR)/bin)
4141
BIN_DIR := bin
4242

43+
# set --output-base used for conversion-gen which needs to be different for in GOPATH and outside GOPATH dev
44+
OUTPUT_BASE := --output-base=$(ROOT_DIR)
45+
46+
4347
# Binaries.
4448
CLUSTERCTL := $(BIN_DIR)/clusterctl
45-
CONTROLLER_GEN := $(TOOLS_BIN_DIR)/controller-gen
46-
ENVSUBST := $(TOOLS_BIN_DIR)/envsubst
47-
GOLANGCI_LINT := $(TOOLS_BIN_DIR)/golangci-lint
48-
MOCKGEN := $(TOOLS_BIN_DIR)/mockgen
49-
CONVERSION_GEN := $(TOOLS_BIN_DIR)/conversion-gen
50-
KUBECTL=$(TOOLS_BIN_DIR)/kubectl
5149
KUBE_APISERVER=$(TOOLS_BIN_DIR)/kube-apiserver
5250
ETCD=$(TOOLS_BIN_DIR)/etcd
51+
GO_INSTALL = ./scripts/go_install.sh
52+
53+
# Binaries.
54+
CONTROLLER_GEN_VER := v0.6.1
55+
CONTROLLER_GEN_BIN := controller-gen
56+
CONTROLLER_GEN := $(TOOLS_BIN_DIR)/$(CONTROLLER_GEN_BIN)-$(CONTROLLER_GEN_VER)
57+
58+
CONVERSION_GEN_VER := v0.20.2
59+
CONVERSION_GEN_BIN := conversion-gen
60+
CONVERSION_GEN := $(TOOLS_BIN_DIR)/$(CONVERSION_GEN_BIN)-$(CONVERSION_GEN_VER)
61+
62+
63+
GOLANGCI_LINT_VER := v1.41.1
64+
GOLANGCI_LINT_BIN := golangci-lint
65+
GOLANGCI_LINT := $(TOOLS_BIN_DIR)/$(GOLANGCI_LINT_BIN)-$(GOLANGCI_LINT_VER)
66+
67+
KUSTOMIZE_VER := v4.1.3
68+
KUSTOMIZE_BIN := kustomize
69+
KUSTOMIZE := $(TOOLS_BIN_DIR)/$(KUSTOMIZE_BIN)-$(KUSTOMIZE_VER)
70+
71+
MOCKGEN_VER := v1.6.0
72+
MOCKGEN_BIN := mockgen
73+
MOCKGEN := $(TOOLS_BIN_DIR)/$(MOCKGEN_BIN)-$(MOCKGEN_VER)
74+
75+
RELEASE_NOTES_VER := v0.9.0
76+
RELEASE_NOTES_BIN := release-notes
77+
RELEASE_NOTES := $(TOOLS_BIN_DIR)/$(RELEASE_NOTES_BIN)-$(RELEASE_NOTES_VER)
78+
79+
GO_APIDIFF_VER := v0.1.0
80+
GO_APIDIFF_BIN := go-apidiff
81+
GO_APIDIFF := $(TOOLS_BIN_DIR)/$(GO_APIDIFF_BIN)
82+
83+
GINKGO_VER := v1.16.4
84+
GINKGO_BIN := ginkgo
85+
GINKGO := $(TOOLS_BIN_DIR)/$(GINKGO_BIN)-$(GINKGO_VER)
86+
87+
KUBECTL_VER := v1.21.4
88+
KUBECTL_BIN := kubectl
89+
KUBECTL := $(TOOLS_BIN_DIR)/$(KUBECTL_BIN)-$(KUBECTL_VER)
5390

5491
TAGSUFFIX_APPEND :=
5592
ifdef TAGSUFFIX
@@ -58,8 +95,8 @@ endif
5895

5996
# Version
6097
MAJOR_VER ?= 0
61-
MINOR_VER ?= 3
62-
PATCH_VER ?= 9-alpha
98+
MINOR_VER ?= 4
99+
PATCH_VER ?= 0-alpha
63100

64101
# Define Docker related variables. Releases should modify and double check these vars.
65102
REGISTRY ?= mocimages.azurecr.io
@@ -134,20 +171,37 @@ manager: ## Build manager binary.
134171
$(CLUSTERCTL): go.mod ## Build clusterctl binary.
135172
go build -o $(BIN_DIR)/clusterctl sigs.k8s.io/cluster-api/cmd/clusterctl
136173

137-
$(CONTROLLER_GEN): $(TOOLS_DIR)/go.mod # Build controller-gen from tools folder.
138-
cd $(TOOLS_DIR); go build -tags=tools -o $(BIN_DIR)/controller-gen sigs.k8s.io/controller-tools/cmd/controller-gen
174+
$(CONTROLLER_GEN): ## Build controller-gen from tools folder.
175+
GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) sigs.k8s.io/controller-tools/cmd/controller-gen $(CONTROLLER_GEN_BIN) $(CONTROLLER_GEN_VER)
176+
177+
$(CONVERSION_GEN): ## Build conversion-gen.
178+
GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) k8s.io/code-generator/cmd/conversion-gen $(CONVERSION_GEN_BIN) $(CONVERSION_GEN_VER)
179+
180+
$(ENVSUBST): ## Build envsubst from tools folder.
181+
rm -f $(TOOLS_BIN_DIR)/$(ENVSUBST_BIN)*
182+
mkdir -p $(TOOLS_DIR) && cd $(TOOLS_DIR) && go build -tags=tools -o $(ENVSUBST) github.com/drone/envsubst/v2/cmd/envsubst
183+
ln -sf $(ENVSUBST) $(TOOLS_BIN_DIR)/$(ENVSUBST_BIN)
139184

140-
$(ENVSUBST): $(TOOLS_DIR)/go.mod # Build envsubst from tools folder.
141-
cd $(TOOLS_DIR); go build -tags=tools -o $(BIN_DIR)/envsubst github.com/a8m/envsubst/cmd/envsubst
185+
.PHONY: $(ENVSUBST_BIN)
186+
$(ENVSUBST_BIN): $(ENVSUBST) ## Build envsubst from tools folder.
142187

143-
$(GOLANGCI_LINT): $(TOOLS_DIR)/go.mod # Build golangci-lint from tools folder.
144-
cd $(TOOLS_DIR); go build -tags=tools -o $(BIN_DIR)/golangci-lint github.com/golangci/golangci-lint/cmd/golangci-lint
188+
$(GOLANGCI_LINT): ## Build golangci-lint from tools folder.
189+
GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) github.com/golangci/golangci-lint/cmd/golangci-lint $(GOLANGCI_LINT_BIN) $(GOLANGCI_LINT_VER)
145190

146-
$(MOCKGEN): $(TOOLS_DIR)/go.mod # Build mockgen from tools folder.
147-
cd $(TOOLS_DIR); go build -tags=tools -o $(BIN_DIR)/mockgen github.com/golang/mock/mockgen
191+
$(KUSTOMIZE): ## Build kustomize from tools folder.
192+
GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) sigs.k8s.io/kustomize/kustomize/v4 $(KUSTOMIZE_BIN) $(KUSTOMIZE_VER)
148193

149-
$(CONVERSION_GEN): $(TOOLS_DIR)/go.mod
150-
cd $(TOOLS_DIR); go build -tags=tools -o $(BIN_DIR)/conversion-gen k8s.io/code-generator/cmd/conversion-gen
194+
$(MOCKGEN): ## Build mockgen from tools folder.
195+
GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) github.com/golang/mock/mockgen $(MOCKGEN_BIN) $(MOCKGEN_VER)
196+
197+
$(RELEASE_NOTES): ## Build release notes.
198+
GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) k8s.io/release/cmd/release-notes $(RELEASE_NOTES_BIN) $(RELEASE_NOTES_VER)
199+
200+
$(GO_APIDIFF): ## Build go-apidiff.
201+
GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) github.com/joelanford/go-apidiff $(GO_APIDIFF_BIN) $(GO_APIDIFF_VER)
202+
203+
$(GINKGO): ## Build ginkgo.
204+
GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) github.com/onsi/ginkgo/ginkgo $(GINKGO_BIN) $(GINKGO_VER)
151205

152206
$(RELEASE_NOTES) : $(TOOLS_DIR)/go.mod
153207
cd $(TOOLS_DIR) && go build -tags tools -o $(BIN_DIR)/release-notes sigs.k8s.io/cluster-api/hack/tools/release
@@ -187,14 +241,15 @@ generate-go: $(CONTROLLER_GEN) $(MOCKGEN) $(CONVERSION_GEN) ## Runs Go related g
187241

188242
$(CONVERSION_GEN) \
189243
--input-dirs=./api/v1alpha3 \
190-
--output-file-base=zz_generated.conversion \
244+
--output-file-base=zz_generated.conversion $(OUTPUT_BASE) \
191245
--go-header-file=./hack/boilerplate/boilerplate.generatego.txt
192-
246+
193247
.PHONY: generate-manifests
194248
generate-manifests: $(CONTROLLER_GEN) ## Generate manifests e.g. CRD, RBAC etc.
195249
$(CONTROLLER_GEN) \
196250
paths=./api/... \
197251
crd:crdVersions=v1 \
252+
rbac:roleName=manager-role \
198253
output:crd:dir=$(CRD_ROOT) \
199254
output:webhook:dir=$(WEBHOOK_ROOT) \
200255
webhook
@@ -261,12 +316,12 @@ docker-push-manifest: ## Push the fat manifest docker image.
261316
.PHONY: set-manifest-image
262317
set-manifest-image:
263318
$(info Updating kustomize image patch file for manager resource)
264-
sed -i'' -e 's@image: .*@image: '"${MANIFEST_IMG}:$(MANIFEST_TAG)"'@' ./config/manager/manager_image_patch.yaml
319+
sed -i'' -e 's@image: .*@image: '"${MANIFEST_IMG}:$(MANIFEST_TAG)"'@' ./config/default/manager_image_patch.yaml
265320

266321
.PHONY: set-manifest-pull-policy
267322
set-manifest-pull-policy:
268323
$(info Updating kustomize pull policy file for manager resource)
269-
sed -i'' -e 's@imagePullPolicy: .*@imagePullPolicy: '"$(PULL_POLICY)"'@' ./config/manager/manager_pull_policy.yaml
324+
sed -i'' -e 's@imagePullPolicy: .*@imagePullPolicy: '"$(PULL_POLICY)"'@' ./config/default/manager_pull_policy.yaml
270325

271326
## --------------------------------------
272327
## Release
@@ -291,7 +346,7 @@ release: clean-release ## Builds and push container images using the latest git
291346

292347
.PHONY: release-manifests
293348
release-manifests: $(RELEASE_DIR) ## Builds the manifests to publish with a release
294-
kustomize build config > $(RELEASE_DIR)/infrastructure-components.yaml
349+
kustomize build config/default > $(RELEASE_DIR)/infrastructure-components.yaml
295350

296351
.PHONY: release-binary
297352
release-binary: $(RELEASE_DIR)

PROJECT

+21-6
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,34 @@
1-
version: "2"
21
domain: cluster.x-k8s.io
32
repo: github.com/microsoft/cluster-api-provider-azurestackhci
43
resources:
54
- group: infrastructure
6-
version: v1alpha3
75
kind: AzureStackHCICluster
8-
- group: infrastructure
96
version: v1alpha3
10-
kind: AzureStackHCIMachine
117
- group: infrastructure
8+
kind: AzureStackHCIMachine
129
version: v1alpha3
13-
kind: AzureStackHCIMachineTemplate
1410
- group: infrastructure
11+
kind: AzureStackHCIMachineTemplate
1512
version: v1alpha3
13+
- group: infrastructure
1614
kind: AzureStackHCIVirtualMachine
15+
version: v1alpha3
1716
- group: infrastructure
17+
kind: AzureStackHCILoadBalancer
1818
version: v1alpha3
19-
kind: AzureStackHCILoadBalancer
19+
- group: infrastructure
20+
kind: AzureStackHCICluster
21+
version: v1alpha4
22+
- group: infrastructure
23+
kind: AzureStackHCIMachine
24+
version: v1alpha4
25+
- group: infrastructure
26+
kind: AzureStackHCIMachineTemplate
27+
version: v1alpha4
28+
- group: infrastructure
29+
kind: AzureStackHCIVirtualMachine
30+
version: v1alpha4
31+
- group: infrastructure
32+
kind: AzureStackHCILoadBalancer
33+
version: v1alpha4
34+
version: "2"

api/v1alpha3/azurestackhcicluster_conversion.go

+23-4
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,27 @@ limitations under the License.
1717

1818
package v1alpha3
1919

20-
// Hub marks AzureStackHCICluster as a conversion hub.
21-
func (*AzureStackHCICluster) Hub() {}
20+
import (
21+
infrav1alpha4 "github.com/microsoft/cluster-api-provider-azurestackhci/api/v1alpha4"
22+
"sigs.k8s.io/controller-runtime/pkg/conversion"
23+
)
2224

23-
// Hub marks AzureStackHCIClusterList as a conversion hub.
24-
func (*AzureStackHCIClusterList) Hub() {}
25+
func (src *AzureStackHCICluster) ConvertTo(dstRaw conversion.Hub) error {
26+
dst := dstRaw.(*infrav1alpha4.AzureStackHCICluster)
27+
return Convert_v1alpha3_AzureStackHCICluster_To_v1alpha4_AzureStackHCICluster(src, dst, nil)
28+
}
29+
30+
func (dst *AzureStackHCICluster) ConvertFrom(srcRaw conversion.Hub) error {
31+
src := srcRaw.(*infrav1alpha4.AzureStackHCICluster)
32+
return Convert_v1alpha4_AzureStackHCICluster_To_v1alpha3_AzureStackHCICluster(src, dst, nil)
33+
}
34+
35+
func (src *AzureStackHCIClusterList) ConvertTo(dstRaw conversion.Hub) error {
36+
dst := dstRaw.(*infrav1alpha4.AzureStackHCIClusterList)
37+
return Convert_v1alpha3_AzureStackHCIClusterList_To_v1alpha4_AzureStackHCIClusterList(src, dst, nil)
38+
}
39+
40+
func (dst *AzureStackHCIClusterList) ConvertFrom(srcRaw conversion.Hub) error {
41+
src := srcRaw.(*infrav1alpha4.AzureStackHCIClusterList)
42+
return Convert_v1alpha4_AzureStackHCIClusterList_To_v1alpha3_AzureStackHCIClusterList(src, dst, nil)
43+
}

api/v1alpha3/azurestackhciloadbalancer_conversion.go

+23-4
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,27 @@ limitations under the License.
1717

1818
package v1alpha3
1919

20-
// Hub marks AzureStackHCILoadBalancer as a conversion hub.
21-
func (*AzureStackHCILoadBalancer) Hub() {}
20+
import (
21+
infrav1alpha4 "github.com/microsoft/cluster-api-provider-azurestackhci/api/v1alpha4"
22+
"sigs.k8s.io/controller-runtime/pkg/conversion"
23+
)
2224

23-
// Hub marks AzureStackHCILoadBalancerList as a conversion hub.
24-
func (*AzureStackHCILoadBalancerList) Hub() {}
25+
func (src *AzureStackHCILoadBalancer) ConvertTo(dstRaw conversion.Hub) error {
26+
dst := dstRaw.(*infrav1alpha4.AzureStackHCILoadBalancer)
27+
return Convert_v1alpha3_AzureStackHCILoadBalancer_To_v1alpha4_AzureStackHCILoadBalancer(src, dst, nil)
28+
}
29+
30+
func (dst *AzureStackHCILoadBalancer) ConvertFrom(srcRaw conversion.Hub) error {
31+
src := srcRaw.(*infrav1alpha4.AzureStackHCILoadBalancer)
32+
return Convert_v1alpha4_AzureStackHCILoadBalancer_To_v1alpha3_AzureStackHCILoadBalancer(src, dst, nil)
33+
}
34+
35+
func (src *AzureStackHCILoadBalancerList) ConvertTo(dstRaw conversion.Hub) error {
36+
dst := dstRaw.(*infrav1alpha4.AzureStackHCILoadBalancerList)
37+
return Convert_v1alpha3_AzureStackHCILoadBalancerList_To_v1alpha4_AzureStackHCILoadBalancerList(src, dst, nil)
38+
}
39+
40+
func (dst *AzureStackHCILoadBalancerList) ConvertFrom(srcRaw conversion.Hub) error {
41+
src := srcRaw.(*infrav1alpha4.AzureStackHCILoadBalancerList)
42+
return Convert_v1alpha4_AzureStackHCILoadBalancerList_To_v1alpha3_AzureStackHCILoadBalancerList(src, dst, nil)
43+
}

api/v1alpha3/azurestackhcimachine_conversion.go

+23-4
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,27 @@ limitations under the License.
1717

1818
package v1alpha3
1919

20-
// Hub marks AzureStackHCIMachine as a conversion hub.
21-
func (*AzureStackHCIMachine) Hub() {}
20+
import (
21+
infrav1alpha4 "github.com/microsoft/cluster-api-provider-azurestackhci/api/v1alpha4"
22+
"sigs.k8s.io/controller-runtime/pkg/conversion"
23+
)
2224

23-
// Hub marks AzureStackHCIMachineList as a conversion hub.
24-
func (*AzureStackHCIMachineList) Hub() {}
25+
func (src *AzureStackHCIMachine) ConvertTo(dstRaw conversion.Hub) error {
26+
dst := dstRaw.(*infrav1alpha4.AzureStackHCIMachine)
27+
return Convert_v1alpha3_AzureStackHCIMachine_To_v1alpha4_AzureStackHCIMachine(src, dst, nil)
28+
}
29+
30+
func (dst *AzureStackHCIMachine) ConvertFrom(srcRaw conversion.Hub) error {
31+
src := srcRaw.(*infrav1alpha4.AzureStackHCIMachine)
32+
return Convert_v1alpha4_AzureStackHCIMachine_To_v1alpha3_AzureStackHCIMachine(src, dst, nil)
33+
}
34+
35+
func (src *AzureStackHCIMachineList) ConvertTo(dstRaw conversion.Hub) error {
36+
dst := dstRaw.(*infrav1alpha4.AzureStackHCIMachineList)
37+
return Convert_v1alpha3_AzureStackHCIMachineList_To_v1alpha4_AzureStackHCIMachineList(src, dst, nil)
38+
}
39+
40+
func (dst *AzureStackHCIMachineList) ConvertFrom(srcRaw conversion.Hub) error {
41+
src := srcRaw.(*infrav1alpha4.AzureStackHCIMachineList)
42+
return Convert_v1alpha4_AzureStackHCIMachineList_To_v1alpha3_AzureStackHCIMachineList(src, dst, nil)
43+
}

api/v1alpha3/azurestackhcimachine_webhook.go

-60
This file was deleted.

api/v1alpha3/azurestackhcimachinetemplate_conversion.go

+23-4
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,27 @@ limitations under the License.
1717

1818
package v1alpha3
1919

20-
// Hub marks AzureStackHCIMachineTemplate as a conversion hub.
21-
func (*AzureStackHCIMachineTemplate) Hub() {}
20+
import (
21+
infrav1alpha4 "github.com/microsoft/cluster-api-provider-azurestackhci/api/v1alpha4"
22+
"sigs.k8s.io/controller-runtime/pkg/conversion"
23+
)
2224

23-
// Hub marks AzureStackHCIMachineTemplateList as a conversion hub.
24-
func (*AzureStackHCIMachineTemplateList) Hub() {}
25+
func (src *AzureStackHCIMachineTemplate) ConvertTo(dstRaw conversion.Hub) error {
26+
dst := dstRaw.(*infrav1alpha4.AzureStackHCIMachineTemplate)
27+
return Convert_v1alpha3_AzureStackHCIMachineTemplate_To_v1alpha4_AzureStackHCIMachineTemplate(src, dst, nil)
28+
}
29+
30+
func (dst *AzureStackHCIMachineTemplate) ConvertFrom(srcRaw conversion.Hub) error {
31+
src := srcRaw.(*infrav1alpha4.AzureStackHCIMachineTemplate)
32+
return Convert_v1alpha4_AzureStackHCIMachineTemplate_To_v1alpha3_AzureStackHCIMachineTemplate(src, dst, nil)
33+
}
34+
35+
func (src *AzureStackHCIMachineTemplateList) ConvertTo(dstRaw conversion.Hub) error {
36+
dst := dstRaw.(*infrav1alpha4.AzureStackHCIMachineTemplateList)
37+
return Convert_v1alpha3_AzureStackHCIMachineTemplateList_To_v1alpha4_AzureStackHCIMachineTemplateList(src, dst, nil)
38+
}
39+
40+
func (dst *AzureStackHCIMachineTemplateList) ConvertFrom(srcRaw conversion.Hub) error {
41+
src := srcRaw.(*infrav1alpha4.AzureStackHCIMachineTemplateList)
42+
return Convert_v1alpha4_AzureStackHCIMachineTemplateList_To_v1alpha3_AzureStackHCIMachineTemplateList(src, dst, nil)
43+
}

0 commit comments

Comments
 (0)