Skip to content

Commit df77c16

Browse files
Applying: Misc fixes in makefile to use go install tool and use a separarte metadata for oci provider (#105)
1 parent e340d5d commit df77c16

File tree

5 files changed

+66
-77
lines changed

5 files changed

+66
-77
lines changed

Makefile

Lines changed: 52 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,10 @@ ALL_ARCH = amd64 arm64
2828
TOOLS_DIR := hack/tools
2929
TOOLS_BIN_DIR := $(abspath $(TOOLS_DIR)/bin)
3030

31-
GINKGO_VER := v1.16.5
32-
GINKGO_BIN := ginkgo
33-
3431
GINKGO_NODES ?= 3
3532
GINKGO_NOCOLOR ?= false
3633
GINKGO_ARGS ?=
37-
KUSTOMIZE_VER := v4.4.0
38-
KUSTOMIZE_BIN := kustomize
3934
ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
40-
KUSTOMIZE := $(TOOLS_BIN_DIR)/$(KUSTOMIZE_BIN)-$(KUSTOMIZE_VER)
4135
E2E_DATA_DIR ?= $(ROOT_DIR)/test/e2e/data
4236
OCI_TEMPLATES := $(E2E_DATA_DIR)/infrastructure-oci
4337
E2E_CONF_FILE ?= $(ROOT_DIR)/test/e2e/config/e2e_conf.yaml
@@ -67,14 +61,24 @@ ENVSUBST_VER := v2.0.0-20210730161058-179042472c46
6761
ENVSUBST_BIN := envsubst
6862
ENVSUBST := $(TOOLS_BIN_DIR)/$(ENVSUBST_BIN)-$(ENVSUBST_VER)
6963

70-
KUSTOMIZE_VER := v4.5.2
71-
KUSTOMIZE_BIN := kustomize
72-
KUSTOMIZE := $(TOOLS_BIN_DIR)/$(KUSTOMIZE_BIN)-$(KUSTOMIZE_VER)
73-
7464
KUBECTL_VER := v1.22.9
7565
KUBECTL_BIN := kubectl
7666
KUBECTL := $(TOOLS_BIN_DIR)/$(KUBECTL_BIN)-$(KUBECTL_VER)
7767

68+
BIN_DIR=$(shell pwd)/bin
69+
70+
KUSTOMIZE_BIN := kustomize
71+
KUSTOMIZE := $(BIN_DIR)/$(KUSTOMIZE_BIN)
72+
73+
GOLANGCI_LINT_BIN := golangci-lint
74+
GOLANGCI_LINT := $(BIN_DIR)/$(GOLANGCI_LINT_BIN)
75+
76+
GINKGO_BIN := ginkgo
77+
GINKGO := $(BIN_DIR)/$(GINKGO_BIN)
78+
79+
CONTROLLER_GEN_BIN = controller-gen
80+
CONTROLLER_GEN := $(BIN_DIR)/$(CONTROLLER_GEN_BIN)
81+
7882
# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
7983
ifeq (,$(shell go env GOBIN))
8084
GOBIN=$(shell go env GOPATH)/bin
@@ -108,14 +112,14 @@ help: ## Display this help.
108112

109113
##@ Development
110114

111-
manifests: controller-gen ## Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects.
115+
manifests: $(CONTROLLER_GEN) ## Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects.
112116
$(CONTROLLER_GEN) $(CRD_OPTIONS) \
113117
rbac:roleName=manager-role webhook \
114118
paths="./api/..." \
115119
paths="./exp/api/..." \
116120
output:crd:artifacts:config=config/crd/bases
117121

118-
generate: controller-gen ## Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
122+
generate: $(CONTROLLER_GEN) ## Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
119123
$(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths="./api/..." paths="./exp/api/..."
120124

121125
fmt: ## Run go fmt against code.
@@ -143,7 +147,7 @@ run: manifests generate fmt vet ## Run a controller from your host.
143147
## Linting
144148
## --------------------------------------
145149

146-
lint: golangci-lint
150+
lint: $(GOLANGCI_LINT)
147151
$(GOLANGCI_LINT) run -v --timeout 300s --fast=false
148152

149153
## --------------------------------------
@@ -204,50 +208,19 @@ docker-push-manifest: ## Push the fat manifest docker image.
204208

205209
##@ Deployment
206210

207-
install: manifests kustomize ## Install CRDs into the K8s cluster specified in ~/.kube/config.
211+
install: manifests $(KUSTOMIZE) ## Install CRDs into the K8s cluster specified in ~/.kube/config.
208212
$(KUSTOMIZE) build config/crd | kubectl apply -f -
209213

210-
uninstall: manifests kustomize ## Uninstall CRDs from the K8s cluster specified in ~/.kube/config.
214+
uninstall: manifests $(KUSTOMIZE) ## Uninstall CRDs from the K8s cluster specified in ~/.kube/config.
211215
$(KUSTOMIZE) build config/crd | kubectl delete -f -
212216

213-
deploy: manifests kustomize ## Deploy controller to the K8s cluster specified in ~/.kube/config.
217+
deploy: manifests $(KUSTOMIZE) ## Deploy controller to the K8s cluster specified in ~/.kube/config.
214218
cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG}
215219
$(KUSTOMIZE) build config/default | kubectl apply -f -
216220

217221
undeploy: ## Undeploy controller from the K8s cluster specified in ~/.kube/config.
218222
$(KUSTOMIZE) build config/default | kubectl delete -f -
219223

220-
221-
CONTROLLER_GEN = $(shell pwd)/bin/controller-gen
222-
controller-gen: ## Download controller-gen locally if necessary.
223-
$(call go-get-tool,$(CONTROLLER_GEN),sigs.k8s.io/controller-tools/cmd/controller-gen@v0.7.0)
224-
225-
KUSTOMIZE = $(shell pwd)/bin/kustomize
226-
kustomize: ## Download kustomize locally if necessary.
227-
$(call go-get-tool,$(KUSTOMIZE),sigs.k8s.io/kustomize/kustomize/v3@v3.8.7)
228-
229-
GINKGO := $(shell pwd)/bin/ginkgo
230-
ginkgo: ## Build ginkgo.
231-
$(call go-get-tool,$(GINKGO),github.com/onsi/ginkgo/ginkgo@v1.16.5)
232-
233-
GOLANGCI_LINT := $(shell pwd)/bin/golangci-lint
234-
golangci-lint: ## Build golanci-lint.
235-
$(call go-get-tool,$(GOLANGCI_LINT),github.com/golangci/golangci-lint/cmd/golangci-lint@v1.44.0)
236-
237-
# go-get-tool will 'go get' any package $2 and install it to $1.
238-
PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))
239-
define go-get-tool
240-
@[ -f $(1) ] || { \
241-
set -e ;\
242-
TMP_DIR=$$(mktemp -d) ;\
243-
cd $$TMP_DIR ;\
244-
go mod init tmp ;\
245-
echo "Downloading $(2)" ;\
246-
GOBIN=$(PROJECT_DIR)/bin go get $(2) ;\
247-
rm -rf $$TMP_DIR ;\
248-
}
249-
endef
250-
251224
MDBOOK = /tmp/mdbook
252225
.PHONY: build-book
253226
build-book: ## Download mdbook locally if necessary.
@@ -262,27 +235,27 @@ serve-book: build-book ## Build and serve the book with live-reloading enabled
262235
## --------------------------------------
263236

264237
.PHONY: generate-e2e-templates ## Generate OCI infrastructure templates for e2e test suite.
265-
generate-e2e-templates: kustomize
266-
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template --load_restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template.yaml
267-
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-alternative-region --load_restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-alternative-region.yaml
268-
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-bare-metal --load_restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-bare-metal.yaml
269-
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-md-remediation --load_restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-md-remediation.yaml
270-
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-kcp-remediation --load_restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-kcp-remediation.yaml
271-
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-node-drain --load_restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-node-drain.yaml
272-
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-antrea --load_restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-antrea.yaml
273-
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-oracle-linux --load_restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-oracle-linux.yaml
274-
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-custom-networking-seclist --load_restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-custom-networking-seclist.yaml
275-
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-custom-networking-nsg --load_restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-custom-networking-nsg.yaml
276-
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-multiple-node-nsg --load_restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-multiple-node-nsg.yaml
277-
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-cluster-class --load_restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-cluster-class.yaml
278-
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-local-vcn-peering --load_restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-local-vcn-peering.yaml
279-
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-remote-vcn-peering --load_restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-remote-vcn-peering.yaml
280-
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-externally-managed-vcn --load_restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-externally-managed-vcn.yaml
281-
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-machine-pool --load_restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-machine-pool.yaml
238+
generate-e2e-templates: $(KUSTOMIZE)
239+
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template --load-restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template.yaml
240+
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-alternative-region --load-restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-alternative-region.yaml
241+
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-bare-metal --load-restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-bare-metal.yaml
242+
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-md-remediation --load-restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-md-remediation.yaml
243+
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-kcp-remediation --load-restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-kcp-remediation.yaml
244+
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-node-drain --load-restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-node-drain.yaml
245+
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-antrea --load-restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-antrea.yaml
246+
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-oracle-linux --load-restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-oracle-linux.yaml
247+
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-custom-networking-seclist --load-restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-custom-networking-seclist.yaml
248+
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-custom-networking-nsg --load-restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-custom-networking-nsg.yaml
249+
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-multiple-node-nsg --load-restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-multiple-node-nsg.yaml
250+
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-cluster-class --load-restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-cluster-class.yaml
251+
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-local-vcn-peering --load-restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-local-vcn-peering.yaml
252+
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-remote-vcn-peering --load-restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-remote-vcn-peering.yaml
253+
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-externally-managed-vcn --load-restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-externally-managed-vcn.yaml
254+
$(KUSTOMIZE) build $(OCI_TEMPLATES)/v1beta1/cluster-template-machine-pool --load-restrictor LoadRestrictionsNone > $(OCI_TEMPLATES)/v1beta1/cluster-template-machine-pool.yaml
282255

283256
.PHONY: test-e2e-run
284-
test-e2e-run: generate-e2e-templates ginkgo $(ENVSUBST) ## Run e2e tests
285-
envsubst < $(E2E_CONF_FILE) > $(E2E_CONF_FILE_ENVSUBST) && \
257+
test-e2e-run: generate-e2e-templates $(GINKGO) $(ENVSUBST) ## Run e2e tests
258+
$(ENVSUBST) < $(E2E_CONF_FILE) > $(E2E_CONF_FILE_ENVSUBST) && \
286259
$(GINKGO) -v -trace -tags=e2e -focus="$(GINKGO_FOCUS)" -skip=$(GINKGO_SKIP) -nodes=$(GINKGO_NODES) --noColor=$(GINKGO_NOCOLOR) $(GINKGO_ARGS) ./test/e2e -- \
287260
-e2e.artifacts-folder="$(ARTIFACTS)" \
288261
-e2e.config="$(E2E_CONF_FILE_ENVSUBST)" \
@@ -327,7 +300,7 @@ release: clean-release ## Builds and push container images using the latest git
327300
$(MAKE) release-metadata
328301

329302
.PHONY: release-manifests
330-
release-manifests: kustomize $(RELEASE_DIR) ## Builds the manifests to publish with a release
303+
release-manifests: $(KUSTOMIZE) $(RELEASE_DIR) ## Builds the manifests to publish with a release
331304
$(KUSTOMIZE) build config/default > $(RELEASE_DIR)/infrastructure-components.yaml
332305

333306
.PHONY: release-templates
@@ -350,15 +323,23 @@ GOARCH := $(shell go env GOARCH)
350323
install-tools: $(ENVSUBST) $(KUSTOMIZE) $(KUBECTL)
351324

352325
envsubst: $(ENVSUBST) ## Build a local copy of envsubst.
353-
kustomize: $(KUSTOMIZE) ## Build a local copy of kustomize.
354326
kubectl: $(KUBECTL) ## Build a local copy of kubectl.
355327

328+
$(CONTROLLER_GEN): ## Download controller-gen locally if necessary.
329+
GOBIN=$(BIN_DIR)/ $(GO_INSTALL) sigs.k8s.io/controller-tools/cmd/controller-gen $(CONTROLLER_GEN_BIN) v0.7.0
330+
331+
$(KUSTOMIZE): ## Download kustomize locally if necessary.
332+
GOBIN=$(BIN_DIR)/ $(GO_INSTALL) sigs.k8s.io/kustomize/kustomize/v4 $(KUSTOMIZE_BIN) v4.5.2
333+
334+
$(GINKGO): ## Build ginkgo.
335+
GOBIN=$(BIN_DIR)/ $(GO_INSTALL) github.com/onsi/ginkgo/ginkgo $(GINKGO_BIN) v1.16.5
336+
337+
$(GOLANGCI_LINT): ## Build golanci-lint.
338+
GOBIN=$(BIN_DIR)/ $(GO_INSTALL) github.com/golangci/golangci-lint/cmd/golangci-lint $(GOLANGCI_LINT_BIN) v1.44.0
339+
356340
$(ENVSUBST): ## Build envsubst from tools folder.
357341
GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) github.com/drone/envsubst/v2/cmd/envsubst $(ENVSUBST_BIN) $(ENVSUBST_VER)
358342

359-
$(KUSTOMIZE): ## Build kustomize from tools folder.
360-
GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) sigs.k8s.io/kustomize/kustomize/v4 $(KUSTOMIZE_BIN) $(KUSTOMIZE_VER)
361-
362343
$(KUBECTL): ## Build kubectl from tools folder.
363344
mkdir -p $(TOOLS_BIN_DIR)
364345
rm -f "$(TOOLS_BIN_DIR)/$(KUBECTL_BIN)*"

test/e2e/ccm_helpers.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,9 @@ func createService(svcName string, svcNamespace string, labels map[string]string
8888
ObjectMeta: metav1.ObjectMeta{
8989
Namespace: svcNamespace,
9090
Name: svcName,
91+
Annotations: map[string]string{
92+
"service.beta.kubernetes.io/oci-load-balancer-internal": "true",
93+
},
9194
},
9295
Spec: serviceSpec,
9396
}

test/e2e/config/e2e_conf.yaml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ providers:
88
- name: cluster-api
99
type: CoreProvider
1010
versions:
11-
- name: v1.0.2
11+
- name: v1.1.0
1212
value: https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.1.0/core-components.yaml
1313
type: url
1414
files:
@@ -21,7 +21,7 @@ providers:
2121
- name: kubeadm
2222
type: BootstrapProvider
2323
versions:
24-
- name: v1.0.0
24+
- name: v1.1.0
2525
value: https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.1.0/bootstrap-components.yaml
2626
type: url
2727
files:
@@ -34,7 +34,7 @@ providers:
3434
- name: kubeadm
3535
type: ControlPlaneProvider
3636
versions:
37-
- name: v1.0.0
37+
- name: v1.1.0
3838
value: https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.1.0/control-plane-components.yaml
3939
type: url
4040
files:
@@ -70,8 +70,7 @@ providers:
7070
- sourcePath: "../data/infrastructure-oci/v1beta1/cluster-template-remote-vcn-peering.yaml"
7171
- sourcePath: "../data/infrastructure-oci/v1beta1/cluster-template-externally-managed-vcn.yaml"
7272
- sourcePath: "../data/infrastructure-oci/v1beta1/cluster-template-machine-pool.yaml"
73-
- sourcePath: "../data/shared/v1beta1/metadata.yaml"
74-
73+
- sourcePath: "../data/infrastructure-oci/v1beta1/metadata.yaml"
7574

7675
variables:
7776
KUBERNETES_VERSION: "v1.22.5"
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: clusterctl.cluster.x-k8s.io/v1alpha3
2+
kind: Metadata
3+
releaseSeries:
4+
- major: 1
5+
minor: 0
6+
contract: v1beta1

test/e2e/data/shared/v1beta1/metadata.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ apiVersion: clusterctl.cluster.x-k8s.io/v1alpha3
22
kind: Metadata
33
releaseSeries:
44
- major: 1
5-
minor: 0
5+
minor: 1
66
contract: v1beta1

0 commit comments

Comments
 (0)