Skip to content

Commit cdc750a

Browse files
Merge pull request #42 from stakater/update-kubebuilder-v3
Bump operator sdk v1.7.0
2 parents 0a3e0c4 + 5edc192 commit cdc750a

Some content is hidden

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

53 files changed

+761
-686
lines changed

.github/workflows/push.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ on:
88
env:
99
DOCKER_FILE_PATH: Dockerfile
1010
GOLANG_VERSION: 1.16
11-
OPERATOR_SDK_VERSION: "1.2.0"
11+
OPERATOR_SDK_VERSION: "1.7.0"
1212
KUSTOMIZE_VERSION: "3.5.4"
1313
KUBERNETES_VERSION: "1.20.2"
1414
KIND_VERSION: "0.10.0"

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,5 @@ bin
2222
*.swp
2323
*.swo
2424
*~
25-
.local
25+
.local
26+
testbin

Makefile

Lines changed: 30 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ BUNDLE_METADATA_OPTS ?= $(BUNDLE_CHANNELS) $(BUNDLE_DEFAULT_CHANNEL)
1616
# Image URL to use all building/pushing image targets
1717
IMG ?= stakater/slack-operator:v$(VERSION)
1818
# Produce CRDs that work back to Kubernetes 1.11 (no version conversion)
19-
CRD_OPTIONS ?= "crd:trivialVersions=true"
19+
CRD_OPTIONS ?= "crd:trivialVersions=true,crdVersions=v1,preserveUnknownFields=false"
2020

2121
# GOLANGCI_LINT env
2222
GOLANGCI_LINT = _output/tools/golangci-lint
@@ -32,9 +32,13 @@ endif
3232

3333
all: manager
3434

35-
# Run tests
36-
test: generate fmt vet manifests
37-
go test ./... -coverprofile cover.out
35+
36+
ENVTEST_ASSETS_DIR=$(shell pwd)/testbin
37+
test: manifests generate fmt vet ## Run tests.
38+
mkdir -p ${ENVTEST_ASSETS_DIR}
39+
test -f ${ENVTEST_ASSETS_DIR}/setup-envtest.sh || curl -sSLo ${ENVTEST_ASSETS_DIR}/setup-envtest.sh https://raw.githubusercontent.com/kubernetes-sigs/controller-runtime/v0.7.2/hack/setup-envtest.sh
40+
source ${ENVTEST_ASSETS_DIR}/setup-envtest.sh; fetch_envtest_tools $(ENVTEST_ASSETS_DIR); setup_envtest_env $(ENVTEST_ASSETS_DIR); go test ./... -coverprofile cover.out
41+
3842

3943
# Build manager binary
4044
manager: generate fmt vet
@@ -75,43 +79,36 @@ generate: controller-gen
7579

7680
# Build the docker image
7781
docker-build: test
78-
docker build . -t ${IMG}
82+
docker build -t ${IMG} .
7983

8084
# Push the docker image
8185
docker-push:
8286
docker push ${IMG}
8387

8488
# find or download controller-gen
8589
# download controller-gen if necessary
86-
controller-gen:
87-
ifeq (, $(shell which controller-gen))
88-
@{ \
89-
set -e ;\
90-
CONTROLLER_GEN_TMP_DIR=$$(mktemp -d) ;\
91-
cd $$CONTROLLER_GEN_TMP_DIR ;\
92-
go mod init tmp ;\
93-
go get sigs.k8s.io/controller-tools/cmd/[email protected] ;\
94-
rm -rf $$CONTROLLER_GEN_TMP_DIR ;\
95-
}
96-
CONTROLLER_GEN=$(GOBIN)/controller-gen
97-
else
98-
CONTROLLER_GEN=$(shell which controller-gen)
99-
endif
10090

101-
kustomize:
102-
ifeq (, $(shell which kustomize))
103-
@{ \
104-
set -e ;\
105-
KUSTOMIZE_GEN_TMP_DIR=$$(mktemp -d) ;\
106-
cd $$KUSTOMIZE_GEN_TMP_DIR ;\
107-
go mod init tmp ;\
108-
go get sigs.k8s.io/kustomize/kustomize/[email protected] ;\
109-
rm -rf $$KUSTOMIZE_GEN_TMP_DIR ;\
110-
}
111-
KUSTOMIZE=$(GOBIN)/kustomize
112-
else
113-
KUSTOMIZE=$(shell which kustomize)
114-
endif
91+
CONTROLLER_GEN = $(shell pwd)/bin/controller-gen
92+
controller-gen: ## Download controller-gen locally if necessary.
93+
$(call go-get-tool,$(CONTROLLER_GEN),sigs.k8s.io/controller-tools/cmd/[email protected])
94+
95+
KUSTOMIZE = $(shell pwd)/bin/kustomize
96+
kustomize: ## Download kustomize locally if necessary.
97+
$(call go-get-tool,$(KUSTOMIZE),sigs.k8s.io/kustomize/kustomize/[email protected])
98+
99+
# go-get-tool will 'go get' any package $2 and install it to $1.
100+
PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))
101+
define go-get-tool
102+
@[ -f $(1) ] || { \
103+
set -e ;\
104+
TMP_DIR=$$(mktemp -d) ;\
105+
cd $$TMP_DIR ;\
106+
go mod init tmp ;\
107+
echo "Downloading $(2)" ;\
108+
GOBIN=$(PROJECT_DIR)/bin go get $(2) ;\
109+
rm -rf $$TMP_DIR ;\
110+
}
111+
endef
115112

116113
# Generate bundle manifests and metadata, then validate generated files.
117114
.PHONY: bundle

PROJECT

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,23 @@
11
domain: stakater.com
2-
layout: go.kubebuilder.io/v2
2+
layout:
3+
- go.kubebuilder.io/v3
4+
plugins:
5+
manifests.sdk.operatorframework.io/v2: {}
6+
scorecard.sdk.operatorframework.io/v2: {}
37
projectName: slack-operator
48
repo: github.com/stakater/slack-operator
59
resources:
6-
- group: slack
10+
- api:
11+
crdVersion: v1
12+
namespaced: true
13+
controller: true
14+
domain: stakater.com
15+
group: slack
716
kind: Channel
17+
path: github.com/stakater/slack-operator/api/v1alpha1
818
version: v1alpha1
9-
version: 3-alpha
10-
plugins:
11-
go.operator-sdk.io/v2-alpha: {}
19+
webhooks:
20+
defaulting: true
21+
validation: true
22+
webhookVersion: v1
23+
version: "3"

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ data:
3838
- To install certman
3939
4040
```terminal
41-
$ kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v0.16.1/cert-manager.yaml
41+
$ kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v1.3.1/cert-manager.yaml
4242
```
4343

4444
- Deploy operator

api/v1alpha1/channel_webhook.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func (r *Channel) SetupWebhookWithManager(mgr ctrl.Manager) error {
3636

3737
// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN!
3838

39-
// +kubebuilder:webhook:path=/mutate-slack-stakater-com-v1alpha1-channel,mutating=true,failurePolicy=fail,groups=slack.stakater.com,resources=channels,verbs=create;update,versions=v1alpha1,name=mchannel.kb.io
39+
// +kubebuilder:webhook:path=/mutate-slack-stakater-com-v1alpha1-channel,mutating=true,failurePolicy=fail,sideEffects=None,groups=slack.stakater.com,resources=channels,verbs=create;update,versions=v1alpha1,name=mchannel.kb.io,admissionReviewVersions={v1,v1beta1}
4040

4141
var _ webhook.Defaulter = &Channel{}
4242

@@ -48,7 +48,7 @@ func (r *Channel) Default() {
4848
}
4949

5050
// TODO(user): change verbs to "verbs=create;update;delete" if you want to enable deletion validation.
51-
// +kubebuilder:webhook:verbs=create;update,path=/validate-slack-stakater-com-v1alpha1-channel,mutating=false,failurePolicy=fail,groups=slack.stakater.com,resources=channels,versions=v1alpha1,name=vchannel.kb.io
51+
// +kubebuilder:webhook:verbs=create;update,path=/validate-slack-stakater-com-v1alpha1-channel,mutating=false,failurePolicy=fail,sideEffects=None,groups=slack.stakater.com,resources=channels,versions=v1alpha1,name=vchannel.kb.io,admissionReviewVersions={v1,v1beta1}
5252

5353
var _ webhook.Validator = &Channel{}
5454

api/v1alpha1/webhook_suite_test.go

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/*
2+
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package v1alpha1
18+
19+
import (
20+
"testing"
21+
22+
. "github.com/onsi/ginkgo"
23+
. "github.com/onsi/gomega"
24+
25+
//+kubebuilder:scaffold:imports
26+
27+
"sigs.k8s.io/controller-runtime/pkg/envtest/printer"
28+
logf "sigs.k8s.io/controller-runtime/pkg/log"
29+
"sigs.k8s.io/controller-runtime/pkg/log/zap"
30+
)
31+
32+
// These tests use Ginkgo (BDD-style Go testing framework). Refer to
33+
// http://onsi.github.io/ginkgo/ to learn more about Ginkgo.
34+
35+
func TestAPIs(t *testing.T) {
36+
RegisterFailHandler(Fail)
37+
38+
RunSpecsWithDefaultAndCustomReporters(t,
39+
"Webhook Suite",
40+
[]Reporter{printer.NewlineReporter{}})
41+
}
42+
43+
var _ = BeforeSuite(func() {
44+
logf.SetLogger(zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true)))
45+
46+
}, 60)
47+
48+
var _ = AfterSuite(func() {
49+
50+
})

bundle.Dockerfile

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
11
FROM scratch
22

3+
# Core bundle labels.
34
LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1
45
LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/
56
LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/
67
LABEL operators.operatorframework.io.bundle.package.v1=slack-operator
78
LABEL operators.operatorframework.io.bundle.channels.v1=alpha
8-
LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.2.0
9+
LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.7.0
910
LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1
10-
LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v2
11-
LABEL operators.operatorframework.io.test.config.v1=tests/scorecard/
11+
LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v3
12+
13+
# Labels for testing.
1214
LABEL operators.operatorframework.io.test.mediatype.v1=scorecard+v1
15+
LABEL operators.operatorframework.io.test.config.v1=tests/scorecard/
16+
17+
# Copy files to locations specified by labels.
1318
COPY bundle/manifests /manifests/
1419
COPY bundle/metadata /metadata/
1520
COPY bundle/tests/scorecard /tests/scorecard/
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
apiVersion: v1
2+
kind: ServiceAccount
3+
metadata:
4+
creationTimestamp: null
5+
name: slack-operator-controller-manager
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: ClusterRole
3+
metadata:
4+
creationTimestamp: null
5+
name: slack-operator-metrics-reader
6+
rules:
7+
- nonResourceURLs:
8+
- /metrics
9+
verbs:
10+
- get

0 commit comments

Comments
 (0)