crossplane

Форк
0
/
generate.go 
84 строки · 4.9 Кб
1
//go:build generate
2
// +build generate
3

4
/*
5
Copyright 2019 The Crossplane Authors.
6

7
Licensed under the Apache License, Version 2.0 (the "License");
8
you may not use this file except in compliance with the License.
9
You may obtain a copy of the License at
10

11
    http://www.apache.org/licenses/LICENSE-2.0
12

13
Unless required by applicable law or agreed to in writing, software
14
distributed under the License is distributed on an "AS IS" BASIS,
15
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
See the License for the specific language governing permissions and
17
limitations under the License.
18
*/
19

20
// NOTE(negz): See the below link for details on what is happening here.
21
// https://github.com/golang/go/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module
22

23
// Remove existing manifests
24
//go:generate rm -rf ../cluster/crds
25
//go:generate rm -rf ../cluster/webhookconfigurations/manifests.yaml
26

27
// Replicate identical API versions
28

29
//go:generate ../hack/duplicate_api_type.sh apiextensions/v1/composition_revision_types.go apiextensions/v1beta1
30
//go:generate ../hack/duplicate_api_type.sh apiextensions/v1/composition_common.go apiextensions/v1beta1
31
//go:generate ../hack/duplicate_api_type.sh apiextensions/v1/composition_patches.go apiextensions/v1beta1
32
//go:generate ../hack/duplicate_api_type.sh apiextensions/v1/composition_transforms.go apiextensions/v1beta1
33
//go:generate ../hack/duplicate_api_type.sh apiextensions/v1/composition_environment.go apiextensions/v1beta1
34

35
//go:generate ../hack/duplicate_api_type.sh pkg/meta/v1/configuration_types.go pkg/meta/v1alpha1
36
//go:generate ../hack/duplicate_api_type.sh pkg/meta/v1/provider_types.go pkg/meta/v1alpha1
37
//go:generate ../hack/duplicate_api_type.sh pkg/meta/v1/meta.go pkg/meta/v1alpha1
38
//go:generate ../hack/duplicate_api_type.sh pkg/meta/v1/meta.go pkg/meta/v1beta1
39

40
// NOTE(negz): We generate deepcopy methods and CRDs for each API group
41
// separately because there seems to be an undiagnosed bug in controller-runtime
42
// that causes some kubebuilder annotations to be ignored when we try to
43
// generate them all together in one command.
44

45
// Generate deepcopy methodsets and CRD manifests
46
//go:generate go run -tags generate sigs.k8s.io/controller-tools/cmd/controller-gen object:headerFile=../hack/boilerplate.go.txt paths=./pkg/v1alpha1;./pkg/v1beta1;./pkg/v1 crd:crdVersions=v1,generateEmbeddedObjectMeta=true output:artifacts:config=../cluster/crds
47
//go:generate go run -tags generate sigs.k8s.io/controller-tools/cmd/controller-gen object:headerFile=../hack/boilerplate.go.txt paths=./apiextensions/v1alpha1;./apiextensions/v1beta1;./apiextensions/v1 crd:crdVersions=v1 output:artifacts:config=../cluster/crds
48
//go:generate go run -tags generate sigs.k8s.io/controller-tools/cmd/controller-gen object:headerFile=../hack/boilerplate.go.txt paths=./secrets/... crd:crdVersions=v1 output:artifacts:config=../cluster/crds
49

50
// We generate the meta.pkg.crossplane.io types separately as the generated CRDs
51
// are never installed, only used for API documentation.
52
//go:generate go run -tags generate sigs.k8s.io/controller-tools/cmd/controller-gen object:headerFile=../hack/boilerplate.go.txt paths=./pkg/meta/... crd:crdVersions=v1 output:artifacts:config=../cluster/meta
53

54
// Generate webhook manifests
55
//go:generate go run -tags generate sigs.k8s.io/controller-tools/cmd/controller-gen webhook paths=./pkg/v1alpha1;./pkg/v1beta1;./pkg/v1;./apiextensions/v1alpha1;./apiextensions/v1beta1;./apiextensions/v1 output:artifacts:config=../cluster/webhookconfigurations
56

57
// Generate conversion code
58
//go:generate go run -tags generate github.com/jmattheis/goverter/cmd/goverter gen -build-tags="" ./apiextensions/v1
59
//go:generate go run -tags generate github.com/jmattheis/goverter/cmd/goverter gen -build-tags="" ./pkg/meta/v1alpha1
60

61
// Generate gRPC types and stubs.
62
//
63
// We use buf rather than the traditional protoc because it's pure go and can
64
// thus be invoked using go run from a pinned dependency. If we used protoc we'd
65
// need to install it via the Makefile, and there are not currently statically
66
// compiled binaries available for download (the release binaries for Linux are
67
// dynamically linked). See buf.gen.yaml for buf's configuration.
68
//
69
// We go install the required plugins because they need to be in $PATH for buf
70
// (or protoc) to invoke them.
71

72
//go:generate go install google.golang.org/protobuf/cmd/protoc-gen-go google.golang.org/grpc/cmd/protoc-gen-go-grpc
73
//go:generate go run github.com/bufbuild/buf/cmd/buf generate
74

75
package apis
76

77
import (
78
	_ "github.com/bufbuild/buf/cmd/buf"                 //nolint:typecheck
79
	_ "github.com/jmattheis/goverter/cmd/goverter"      //nolint:typecheck
80
	_ "google.golang.org/grpc/cmd/protoc-gen-go-grpc"   //nolint:typecheck
81
	_ "google.golang.org/protobuf/cmd/protoc-gen-go"    //nolint:typecheck
82
	_ "k8s.io/code-generator"                           //nolint:typecheck
83
	_ "sigs.k8s.io/controller-tools/cmd/controller-gen" //nolint:typecheck
84
)
85

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.