Skip to content

Commit

Permalink
[ISSUE-553] Update crds baremetal (#571)
Browse files Browse the repository at this point in the history
* * generate crds for operator and deployment
* install controller-gen from go.mod

Signed-off-by: romank <[email protected]>

* * add documentation for crds generation routine

Signed-off-by: romank <[email protected]>

* * add controller-tools to go.mod

Signed-off-by: romank <[email protected]>

* * get versions back

Signed-off-by: romank <[email protected]>

* * generate only csi-baremetal CRDs

Signed-off-by: romank <[email protected]>

* add install target

Signed-off-by: romank <[email protected]>

* * remove controller-gen install target

Signed-off-by: romank <[email protected]>

* fix api version

* go mod tidy

* try build locally

* update deps

* download deps before building

* get, install and build controller-tools as target for make

* fix version in readme.md
  • Loading branch information
rkiselenko authored Oct 12, 2021
1 parent 74ce1a4 commit e7cd655
Show file tree
Hide file tree
Showing 8 changed files with 113 additions and 52 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,4 @@ test/kind/kind
.vscode
# python
__pycache__
bin/controller-gen
34 changes: 17 additions & 17 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -86,29 +86,29 @@ install-protoc:
install-compile-proto: install-protoc compile-proto

install-controller-gen:
# Generate deepcopy functions for Volume
${GO_ENV_VARS} go get sigs.k8s.io/controller-tools/cmd/[email protected]
# Build controller-gen from go.mod
${GO_ENV_VARS} go mod download sigs.k8s.io/controller-tools
${GO_ENV_VARS} go build -mod='' -o ./bin/ sigs.k8s.io/controller-tools/cmd/controller-gen

compile-proto:
mkdir -p api/generated/v1/
protoc -I=api/v1 --go_out=plugins=grpc:api/generated/v1 api/v1/*.proto

generate-deepcopy:
# Generate deepcopy functions for CRD
controller-gen object paths=api/v1/volumecrd/volume_types.go paths=api/v1/volumecrd/groupversion_info.go output:dir=api/v1/volumecrd
controller-gen object paths=api/v1/availablecapacitycrd/availablecapacity_types.go paths=api/v1/availablecapacitycrd/groupversion_info.go output:dir=api/v1/availablecapacitycrd
controller-gen object paths=api/v1/acreservationcrd/availablecapacityreservation_types.go paths=api/v1/acreservationcrd/groupversion_info.go output:dir=api/v1/acreservationcrd
controller-gen object paths=api/v1/drivecrd/drive_types.go paths=api/v1/drivecrd/groupversion_info.go output:dir=api/v1/drivecrd
controller-gen object paths=api/v1/lvgcrd/logicalvolumegroup_types.go paths=api/v1/lvgcrd/groupversion_info.go output:dir=api/v1/lvgcrd
controller-gen object paths=api/v1/nodecrd/node_types.go paths=api/v1/nodecrd/groupversion_info.go output:dir=api/v1/nodecrd

generate-crds:
# Generate CRDs based on Volume and AvailableCapacity type and group info
controller-gen crd:trivialVersions=true paths=api/v1/availablecapacitycrd/availablecapacity_types.go paths=api/v1/availablecapacitycrd/groupversion_info.go output:crd:dir=${DRIVER_CHART_PATH}/crds
controller-gen crd:trivialVersions=true paths=api/v1/acreservationcrd/availablecapacityreservation_types.go paths=api/v1/acreservationcrd/groupversion_info.go output:crd:dir=${DRIVER_CHART_PATH}/crds
controller-gen crd:trivialVersions=true paths=api/v1/volumecrd/volume_types.go paths=api/v1/volumecrd/groupversion_info.go output:crd:dir=${DRIVER_CHART_PATH}/crds
controller-gen crd:trivialVersions=true paths=api/v1/drivecrd/drive_types.go paths=api/v1/drivecrd/groupversion_info.go output:crd:dir=${DRIVER_CHART_PATH}/crds
controller-gen crd:trivialVersions=true paths=api/v1/lvgcrd/logicalvolumegroup_types.go paths=api/v1/lvgcrd/groupversion_info.go output:crd:dir=${DRIVER_CHART_PATH}/crds
controller-gen crd:trivialVersions=true paths=api/v1/nodecrd/node_types.go paths=api/v1/nodecrd/groupversion_info.go output:crd:dir=${OPERATOR_CHART_PATH}/crds
$(CONTROLLER_GEN_BIN) object paths=api/v1/volumecrd/volume_types.go paths=api/v1/volumecrd/groupversion_info.go output:dir=api/v1/volumecrd
$(CONTROLLER_GEN_BIN) object paths=api/v1/availablecapacitycrd/availablecapacity_types.go paths=api/v1/availablecapacitycrd/groupversion_info.go output:dir=api/v1/availablecapacitycrd
$(CONTROLLER_GEN_BIN) object paths=api/v1/acreservationcrd/availablecapacityreservation_types.go paths=api/v1/acreservationcrd/groupversion_info.go output:dir=api/v1/acreservationcrd
$(CONTROLLER_GEN_BIN) object paths=api/v1/drivecrd/drive_types.go paths=api/v1/drivecrd/groupversion_info.go output:dir=api/v1/drivecrd
$(CONTROLLER_GEN_BIN) object paths=api/v1/lvgcrd/logicalvolumegroup_types.go paths=api/v1/lvgcrd/groupversion_info.go output:dir=api/v1/lvgcrd
$(CONTROLLER_GEN_BIN) object paths=api/v1/nodecrd/node_types.go paths=api/v1/nodecrd/groupversion_info.go output:dir=api/v1/nodecrd

generate-baremetal-crds:
$(CONTROLLER_GEN_BIN) $(CRD_OPTIONS) paths=api/v1/availablecapacitycrd/availablecapacity_types.go paths=api/v1/availablecapacitycrd/groupversion_info.go output:crd:dir=$(CSI_CHART_CRDS_PATH)
$(CONTROLLER_GEN_BIN) $(CRD_OPTIONS) paths=api/v1/acreservationcrd/availablecapacityreservation_types.go paths=api/v1/acreservationcrd/groupversion_info.go output:crd:dir=$(CSI_CHART_CRDS_PATH)
$(CONTROLLER_GEN_BIN) $(CRD_OPTIONS) paths=api/v1/volumecrd/volume_types.go paths=api/v1/volumecrd/groupversion_info.go output:crd:dir=$(CSI_CHART_CRDS_PATH)
$(CONTROLLER_GEN_BIN) $(CRD_OPTIONS) paths=api/v1/drivecrd/drive_types.go paths=api/v1/drivecrd/groupversion_info.go output:crd:dir=$(CSI_CHART_CRDS_PATH)
$(CONTROLLER_GEN_BIN) $(CRD_OPTIONS) paths=api/v1/lvgcrd/logicalvolumegroup_types.go paths=api/v1/lvgcrd/groupversion_info.go output:crd:dir=$(CSI_CHART_CRDS_PATH)
$(CONTROLLER_GEN_BIN) $(CRD_OPTIONS) paths=api/v1/nodecrd/node_types.go paths=api/v1/nodecrd/groupversion_info.go output:crd:dir=$(CSI_CHART_CRDS_PATH)

generate-api: compile-proto generate-crds generate-deepcopy
Empty file added bin/.gitkeep
Empty file.
2 changes: 1 addition & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ Installation process

- To install execute `make install-compile-proto`

- *controller-gen 0.2.2*
- *controller-gen 0.5.0*

- To install execute `make install-controller-gen`

Expand Down
14 changes: 14 additions & 0 deletions docs/crds-generation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# CRDs generation routine

CRDs generated in this repository and placed to the [`csi-baremetal-operator`](https://github.com/dell/csi-baremetal-operator) repository (charts folder).

All charts crds generated with [`controller-tools`](https://github.com/kubernetes-sigs/controller-tools).

### **Don't edit crds manually**

Please dont use `omitempty` tag in the structs.

Use right annotation for your structs so validations would be applied on the install step.

Refer to [`CRD Validation`](https://book.kubebuilder.io/reference/markers/crd-validation.html) documentation for more info.

18 changes: 6 additions & 12 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,36 +3,29 @@ module github.com/dell/csi-baremetal
go 1.15

require (
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d // indirect
github.com/antonfisher/nested-logrus-formatter v1.0.3
github.com/container-storage-interface/spec v1.2.0
github.com/coreos/rkt v1.30.0
github.com/fsnotify/fsnotify v1.4.9
github.com/go-kit/log v0.1.0 // indirect
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect
github.com/golang/protobuf v1.3.2
github.com/golang/protobuf v1.4.2
github.com/google/go-cmp v0.5.5 // indirect
github.com/google/uuid v1.1.1
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
github.com/jpillora/backoff v1.0.0 // indirect
github.com/json-iterator/go v1.1.11 // indirect
github.com/julienschmidt/httprouter v1.3.0 // indirect
github.com/kubernetes-csi/csi-test/v3 v3.1.0
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect
github.com/nxadm/tail v1.4.8 // indirect
github.com/onsi/ginkgo v1.12.1
github.com/onsi/gomega v1.10.0
github.com/onsi/ginkgo v1.14.1
github.com/onsi/gomega v1.10.2
github.com/pkg/errors v0.9.1 // indirect
github.com/prometheus/client_golang v1.5.1
github.com/prometheus/common v0.10.0 // indirect
github.com/prometheus/procfs v0.6.0 // indirect
github.com/sirupsen/logrus v1.6.0
github.com/stretchr/testify v1.7.0
// ./bin/mockery --dir=/usr/share/go/pkg/mod/k8s.io/client-go\@v0.18.19/kubernetes/typed/core/v1/ --name=EventInterface
github.com/vektra/mockery/v2 v2.9.4 // indirect
github.com/ugorji/go v1.1.4 // indirect
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781
golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40 // indirect
google.golang.org/grpc v1.26.0
google.golang.org/protobuf v1.26.0-rc.1 // indirect
gopkg.in/yaml.v2 v2.4.0
gotest.tools v2.2.0+incompatible
k8s.io/api v1.18.19
Expand All @@ -42,6 +35,7 @@ require (
k8s.io/kubernetes v1.18.19
k8s.io/utils v0.0.0-20210802155522-efc7438f0176
sigs.k8s.io/controller-runtime v0.6.0
sigs.k8s.io/controller-tools v0.5.0 // indirect
)

replace (
Expand Down
Loading

0 comments on commit e7cd655

Please sign in to comment.