Skip to content

Commit 13c03f4

Browse files
authored
Merge pull request #5 from dippynark/update-to-capi-v0.3.14
Update to Cluster API v0.3.14
2 parents 4792edf + 5445702 commit 13c03f4

Some content is hidden

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

41 files changed

+5371
-825
lines changed

.gitignore

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,2 @@
1-
2-
# Binaries for programs and plugins
3-
*.exe
4-
*.exe~
5-
*.dll
6-
*.so
7-
*.dylib
8-
bin
9-
10-
# Test binary, build with `go test -c`
11-
*.test
12-
13-
# Output of the go coverage tool, specifically when used with LiteIDE
14-
*.out
15-
16-
# Kubernetes Generated files - skip generated files, except for vendored files
17-
18-
!vendor/**/zz_generated.*
19-
20-
# editor and IDE paraphernalia
21-
.idea
22-
*.swp
23-
*.swo
24-
*~
1+
/bin/
2+
/artifacts/

Makefile

Lines changed: 53 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
# Image URL to use all building/pushing image targets
2-
IMG ?= dippynark/cluster-api-kubernetes-controller:dev
2+
IMG ?= docker.io/dippynark/cluster-api-kubernetes-controller:dev
33
# We set maxDescLen=0 to drop descriptions for fields in CRD OpenAPI schema, otherwise annotations
44
# become too large when applying the kubernetesmachine and kubernetesmachinetemplate CRDs
55
# https://github.com/coreos/prometheus-operator/issues/535
66
# https://github.com/kubernetes-sigs/controller-tools/blob/0dd9d80ad4b98900d6066141dd4233354b25e3f3/pkg/crd/gen.go#L56-L61
77
CRD_OPTIONS ?= "crd:crdVersions=v1,maxDescLen=0"
88

9-
CONTROLLER_TOOLS_VERSION = v0.2.8
9+
CONTROLLER_TOOLS_VERSION = v0.5.0
1010

11-
# Make sure to update e2e/e2e.conf if either of these variables are changed
12-
CAPI_VERSION = v0.3.3
13-
CERT_MANAGER_VERSION = v0.11.1
11+
CAPI_VERSION = v0.3.14
12+
CERT_MANAGER_VERSION = v0.16.1
13+
KUBERNETES_VERSION = v1.17.0
1414

1515
# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
1616
ifeq (,$(shell go env GOBIN))
@@ -64,23 +64,8 @@ vet:
6464
test: generate fmt vet manifests
6565
go test $(shell go list ./... | grep -v /e2e) -coverprofile cover.out
6666

67-
SKIP_RESOURCE_CLEANUP ?= false
68-
e2e: docker-build
69-
cd config/manager && kustomize edit set image controller=${IMG}
70-
go test ./e2e -v -ginkgo.v -ginkgo.trace -count=1 -timeout=20m -tags=e2e -skip-resource-cleanup=$(SKIP_RESOURCE_CLEANUP)
71-
72-
e2e_pull:
73-
docker pull gcr.io/k8s-staging-cluster-api/cluster-api-controller:$(CAPI_VERSION)
74-
docker pull gcr.io/k8s-staging-cluster-api/kubeadm-bootstrap-controller:$(CAPI_VERSION)
75-
docker pull gcr.io/k8s-staging-cluster-api/kubeadm-control-plane-controller:$(CAPI_VERSION)
76-
docker pull quay.io/jetstack/cert-manager-webhook:$(CERT_MANAGER_VERSION)
77-
docker pull quay.io/jetstack/cert-manager-controller:$(CERT_MANAGER_VERSION)
78-
docker pull quay.io/jetstack/cert-manager-cainjector:$(CERT_MANAGER_VERSION)
79-
docker pull kindest/node:v1.17.0
80-
8167
release: manifests
8268
cd config/manager && kustomize edit set image controller=${IMG}
83-
kustomize build config/kubeadm-control-plane-rbac > release/kubeadm-control-plane-rbac.yaml
8469
kustomize build config > release/infrastructure-components.yaml
8570

8671
# Generate code
@@ -111,3 +96,51 @@ CONTROLLER_GEN=$(GOBIN)/controller-gen
11196
else
11297
CONTROLLER_GEN=$(shell which controller-gen)
11398
endif
99+
100+
# e2e testing
101+
102+
BIN_DIR := bin
103+
GINKGO := $(BIN_DIR)/ginkgo
104+
$(GINKGO):
105+
go build -tags=tools -o $(GINKGO) github.com/onsi/ginkgo/ginkgo
106+
107+
ARTIFACTS ?= $(CURDIR)/artifacts
108+
E2E_CONF_FILE ?= $(CURDIR)/e2e/config/capk.yaml
109+
SKIP_RESOURCE_CLEANUP ?= false
110+
USE_EXISTING_CLUSTER ?= false
111+
.PHONY: e2e
112+
e2e: $(GINKGO) docker-build e2e_template
113+
cd config/manager && kustomize edit set image controller=${IMG}
114+
$(GINKGO) -v -trace -tags=e2e ./e2e -- \
115+
-e2e.artifacts-folder="$(ARTIFACTS)" \
116+
-e2e.config="$(E2E_CONF_FILE)" \
117+
-e2e.skip-resource-cleanup=$(SKIP_RESOURCE_CLEANUP) \
118+
-e2e.use-existing-cluster=$(USE_EXISTING_CLUSTER)
119+
120+
e2e_template:
121+
sed -i 's#$(shell echo $(IMG) | awk -F : '{print $$1}'):.*#$(IMG)#' $(E2E_CONF_FILE)
122+
sed -i 's#KUBERNETES_VERSION: .*#KUBERNETES_VERSION: "$(KUBERNETES_VERSION)"#' $(E2E_CONF_FILE)
123+
sed -i 's#gcr.io/k8s-staging-cluster-api/cluster-api-controller:.*#gcr.io/k8s-staging-cluster-api/cluster-api-controller:$(CAPI_VERSION)#' $(E2E_CONF_FILE)
124+
sed -i 's#gcr.io/k8s-staging-cluster-api/kubeadm-bootstrap-controlle:.*#gcr.io/k8s-staging-cluster-api/kubeadm-bootstrap-controlle:$(CAPI_VERSION)#' $(E2E_CONF_FILE)
125+
sed -i 's#gcr.io/k8s-staging-cluster-api/kubeadm-control-plane-controller:.*#gcr.io/k8s-staging-cluster-api/kubeadm-control-plane-controller:$(CAPI_VERSION)#' $(E2E_CONF_FILE)
126+
sed -i 's#quay.io/jetstack/cert-manager-webhook:.*#quay.io/jetstack/cert-manager-webhook:$(CERT_MANAGER_VERSION)#' $(E2E_CONF_FILE)
127+
sed -i 's#quay.io/jetstack/cert-manager-controller:.*#quay.io/jetstack/cert-manager-controller:$(CERT_MANAGER_VERSION)#' $(E2E_CONF_FILE)
128+
sed -i 's#quay.io/jetstack/cert-manager-cainjector:.*#quay.io/jetstack/cert-manager-cainjector:$(CERT_MANAGER_VERSION)#' $(E2E_CONF_FILE)
129+
sed -i 's#kindest/node:.*#kindest/node:$(KUBERNETES_VERSION)#' $(E2E_CONF_FILE)
130+
131+
e2e_pull:
132+
docker pull gcr.io/k8s-staging-cluster-api/cluster-api-controller:$(CAPI_VERSION)
133+
docker pull gcr.io/k8s-staging-cluster-api/kubeadm-bootstrap-controller:$(CAPI_VERSION)
134+
docker pull gcr.io/k8s-staging-cluster-api/kubeadm-control-plane-controller:$(CAPI_VERSION)
135+
docker pull quay.io/jetstack/cert-manager-webhook:$(CERT_MANAGER_VERSION)
136+
docker pull quay.io/jetstack/cert-manager-controller:$(CERT_MANAGER_VERSION)
137+
docker pull quay.io/jetstack/cert-manager-cainjector:$(CERT_MANAGER_VERSION)
138+
docker pull kindest/node:$(KUBERNETES_VERSION)
139+
140+
DATA_DIR = e2e/data
141+
e2e_data:
142+
# Download Calico for CNI implementation
143+
curl https://docs.projectcalico.org/manifests/calico.yaml -o $(DATA_DIR)/cni/calico/calico.yaml
144+
# Copy release template
145+
cp release/cluster-template.yaml $(DATA_DIR)/infrastructure-kubernetes/cluster-template/cluster-template.yaml
146+
kustomize build $(DATA_DIR)/infrastructure-kubernetes/cluster-template > $(DATA_DIR)/infrastructure-kubernetes/cluster-template.yaml

README.md

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,9 @@ On GKE this can be accomplished as follows:
3131
# The GKE Ubuntu image includes the ipip kernel module
3232
# Calico handles loading the module if necessary
3333
# https://github.com/projectcalico/felix/blob/9469e77e0fa530523be915dfaa69cc42d30b8317/dataplane/linux/ipip_mgr.go#L107-L110
34-
gcloud beta container clusters create management \
34+
gcloud container clusters create management \
3535
--image-type=UBUNTU \
36-
--machine-type=n1-standard-4 \
37-
--cluster-version=1.16
36+
--machine-type=n1-standard-4
3837

3938
# Allow IP-in-IP traffic between outer cluster Nodes from inner cluster Pods
4039
CLUSTER_CIDR=`gcloud container clusters describe management --format="value(clusterIpv4Cidr)"`
@@ -51,7 +50,7 @@ kubectl apply -f hack/forward-ipencap.yaml
5150
```sh
5251
# Install clusterctl
5352
# https://cluster-api.sigs.k8s.io/user/quick-start.html#install-clusterctl
54-
CLUSTER_API_VERSION=v0.3.3
53+
CLUSTER_API_VERSION=v0.3.14
5554
curl -L https://github.com/kubernetes-sigs/cluster-api/releases/download/$CLUSTER_API_VERSION/clusterctl-`uname -s | tr '[:upper:]' '[:lower:]'`-amd64 -o clusterctl
5655
chmod +x ./clusterctl
5756
sudo mv ./clusterctl /usr/local/bin/clusterctl
@@ -67,11 +66,6 @@ EOF
6766

6867
# Initialise
6968
clusterctl init --infrastructure kubernetes
70-
# Apply kubadm control plane RBAC
71-
# TODO: use aggregation label when available
72-
# https://github.com/kubernetes-sigs/cluster-api/pull/2685
73-
CLUSTER_API_KUBERNETES_PROVIDER_VERSION=v0.3.1
74-
kubectl apply -f https://github.com/dippynark/cluster-api-provider-kubernetes/releases/download/$CLUSTER_API_KUBERNETES_PROVIDER_VERSION/kubeadm-control-plane-rbac.yaml
7569
```
7670

7771
### Configuration

api/v1alpha2/kubernetesmachine_webhook.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ func (r *KubernetesMachine) SetupWebhookWithManager(mgr ctrl.Manager) error {
3131
Complete()
3232
}
3333

34-
// +kubebuilder:webhook:path=/mutate-infrastructure-lukeaddison-co-uk-v1alpha2-kubernetesmachine,mutating=true,failurePolicy=fail,matchPolicy=Equivalent,groups=infrastructure.lukeaddison.co.uk,resources=kubernetesmachines,verbs=create;update,versions=v1alpha2,name=mkubernetesmachine.kb.io
34+
// +kubebuilder:webhook:path=/mutate-infrastructure-lukeaddison-co-uk-v1alpha2-kubernetesmachine,mutating=true,failurePolicy=fail,matchPolicy=Equivalent,groups=infrastructure.lukeaddison.co.uk,resources=kubernetesmachines,verbs=create;update,versions=v1alpha2,name=mkubernetesmachine.kb.io,sideEffects=None,admissionReviewVersions=v1beta1
3535

3636
var _ webhook.Defaulter = &KubernetesMachine{}
3737

api/v1alpha3/kubernetesmachine_webhook.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ func (r *KubernetesMachine) SetupWebhookWithManager(mgr ctrl.Manager) error {
3131
Complete()
3232
}
3333

34-
// +kubebuilder:webhook:path=/mutate-infrastructure-lukeaddison-co-uk-v1alpha3-kubernetesmachine,mutating=true,failurePolicy=fail,matchPolicy=Equivalent,groups=infrastructure.lukeaddison.co.uk,resources=kubernetesmachines,verbs=create;update,versions=v1alpha3,name=mkubernetesmachine.kb.io
34+
// +kubebuilder:webhook:path=/mutate-infrastructure-lukeaddison-co-uk-v1alpha3-kubernetesmachine,mutating=true,failurePolicy=fail,matchPolicy=Equivalent,groups=infrastructure.lukeaddison.co.uk,resources=kubernetesmachines,verbs=create;update,versions=v1alpha3,name=mkubernetesmachine.kb.io,sideEffects=None,admissionReviewVersions=v1beta1
3535

3636
var _ webhook.Defaulter = &KubernetesMachine{}
3737

config/crd/bases/infrastructure.lukeaddison.co.uk_kubernetesclusters.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1
44
kind: CustomResourceDefinition
55
metadata:
66
annotations:
7-
controller-gen.kubebuilder.io/version: v0.2.8
7+
controller-gen.kubebuilder.io/version: v0.5.0
88
creationTimestamp: null
99
name: kubernetesclusters.infrastructure.lukeaddison.co.uk
1010
spec:

config/crd/bases/infrastructure.lukeaddison.co.uk_kubernetesmachines.yaml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1
44
kind: CustomResourceDefinition
55
metadata:
66
annotations:
7-
controller-gen.kubebuilder.io/version: v0.2.8
7+
controller-gen.kubebuilder.io/version: v0.5.0
88
creationTimestamp: null
99
name: kubernetesmachines.infrastructure.lukeaddison.co.uk
1010
spec:
@@ -589,6 +589,7 @@ spec:
589589
name:
590590
type: string
591591
protocol:
592+
default: TCP
592593
type: string
593594
required:
594595
- containerPort
@@ -1149,6 +1150,7 @@ spec:
11491150
name:
11501151
type: string
11511152
protocol:
1153+
default: TCP
11521154
type: string
11531155
required:
11541156
- containerPort
@@ -1709,6 +1711,7 @@ spec:
17091711
name:
17101712
type: string
17111713
protocol:
1714+
default: TCP
17121715
type: string
17131716
required:
17141717
- containerPort
@@ -3423,6 +3426,7 @@ spec:
34233426
name:
34243427
type: string
34253428
protocol:
3429+
default: TCP
34263430
type: string
34273431
required:
34283432
- containerPort
@@ -3983,6 +3987,7 @@ spec:
39833987
name:
39843988
type: string
39853989
protocol:
3990+
default: TCP
39863991
type: string
39873992
required:
39883993
- containerPort
@@ -4543,6 +4548,7 @@ spec:
45434548
name:
45444549
type: string
45454550
protocol:
4551+
default: TCP
45464552
type: string
45474553
required:
45484554
- containerPort

config/crd/bases/infrastructure.lukeaddison.co.uk_kubernetesmachinetemplates.yaml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1
44
kind: CustomResourceDefinition
55
metadata:
66
annotations:
7-
controller-gen.kubebuilder.io/version: v0.2.8
7+
controller-gen.kubebuilder.io/version: v0.5.0
88
creationTimestamp: null
99
name: kubernetesmachinetemplates.infrastructure.lukeaddison.co.uk
1010
spec:
@@ -581,6 +581,7 @@ spec:
581581
name:
582582
type: string
583583
protocol:
584+
default: TCP
584585
type: string
585586
required:
586587
- containerPort
@@ -1141,6 +1142,7 @@ spec:
11411142
name:
11421143
type: string
11431144
protocol:
1145+
default: TCP
11441146
type: string
11451147
required:
11461148
- containerPort
@@ -1701,6 +1703,7 @@ spec:
17011703
name:
17021704
type: string
17031705
protocol:
1706+
default: TCP
17041707
type: string
17051708
required:
17061709
- containerPort
@@ -3400,6 +3403,7 @@ spec:
34003403
name:
34013404
type: string
34023405
protocol:
3406+
default: TCP
34033407
type: string
34043408
required:
34053409
- containerPort
@@ -3960,6 +3964,7 @@ spec:
39603964
name:
39613965
type: string
39623966
protocol:
3967+
default: TCP
39633968
type: string
39643969
required:
39653970
- containerPort
@@ -4520,6 +4525,7 @@ spec:
45204525
name:
45214526
type: string
45224527
protocol:
4528+
default: TCP
45234529
type: string
45244530
required:
45254531
- containerPort

config/kubeadm-control-plane-rbac/kustomization.yaml

Lines changed: 0 additions & 2 deletions
This file was deleted.

config/kubeadm-control-plane-rbac/rbac.yaml

Lines changed: 0 additions & 39 deletions
This file was deleted.

0 commit comments

Comments
 (0)