Skip to content

Commit 4cb9377

Browse files
authored
Merge pull request #1249 from vincepri/kbv2
🎉 Migrate repo to Kubebuilder v2
2 parents b7be135 + 4e9e7b5 commit 4cb9377

File tree

157 files changed

+4258
-805
lines changed

Some content is hidden

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

157 files changed

+4258
-805
lines changed

BUILD.bazel

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
12
load("@bazel_gazelle//:def.bzl", "gazelle")
23
load("//build:run_in_workspace_with_goroot.bzl", "workspace_binary")
34

@@ -20,3 +21,25 @@ workspace_binary(
2021
args = ["run --fast=false"],
2122
cmd = "@com_github_golangci_golangci-lint//cmd/golangci-lint",
2223
)
24+
25+
go_library(
26+
name = "go_default_library",
27+
srcs = ["main.go"],
28+
importpath = "sigs.k8s.io/cluster-api",
29+
visibility = ["//visibility:private"],
30+
deps = [
31+
"//api/v1alpha2:go_default_library",
32+
"//controllers:go_default_library",
33+
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
34+
"//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library",
35+
"//vendor/k8s.io/klog:go_default_library",
36+
"//vendor/k8s.io/klog/klogr:go_default_library",
37+
"//vendor/sigs.k8s.io/controller-runtime:go_default_library",
38+
],
39+
)
40+
41+
go_binary(
42+
name = "cluster-api-manager",
43+
embed = [":go_default_library"],
44+
visibility = ["//visibility:public"],
45+
)

Dockerfile

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,25 @@
1313
# limitations under the License.
1414

1515
# Build the manager binary
16-
FROM golang:1.12.6 as builder
16+
FROM golang:1.12.7 as builder
1717

1818
ARG ARCH
1919

2020
# Copy in the go src
2121
WORKDIR ${GOPATH}/src/sigs.k8s.io/cluster-api
22-
COPY pkg/ pkg/
23-
COPY cmd/ cmd/
22+
COPY pkg/ pkg/
23+
COPY cmd/ cmd/
24+
COPY api/ api/
25+
COPY controllers/ controllers/
2426
COPY vendor/ vendor/
2527
COPY go.mod go.mod
2628
COPY go.sum go.sum
29+
COPY main.go main.go
2730

2831
# Build
2932
RUN CGO_ENABLED=0 GOOS=linux GOARCH=${ARCH} GO111MODULE=on GOFLAGS="-mod=vendor" \
3033
go build -a -ldflags '-extldflags "-static"' \
31-
-o manager sigs.k8s.io/cluster-api/cmd/manager
34+
-o manager .
3235

3336
# Copy the controller-manager into a thin image
3437
FROM gcr.io/distroless/static:latest

Makefile

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,16 +101,17 @@ generate: ## Generate code
101101
.PHONY: generate-deepcopy
102102
generate-deepcopy: ## Runs controller-gen to generate deepcopy files
103103
go run vendor/sigs.k8s.io/controller-tools/cmd/controller-gen/main.go \
104-
object:headerFile=./hack/boilerplate/boilerplate.generatego.txt \
105-
paths=./pkg/...
104+
object:headerFile=./hack/boilerplate/boilerplate.generatego.txt \
105+
paths=./api/...
106106

107107
.PHONY: generate-manifests
108108
generate-manifests: ## Generate manifests e.g. CRD, RBAC etc.
109109
go run vendor/sigs.k8s.io/controller-tools/cmd/controller-gen/main.go \
110-
paths=./pkg/... \
110+
paths=./api/... \
111+
paths=./pkg/controller/... \
111112
crd:trivialVersions=true \
112113
rbac:roleName=manager-role \
113-
output:crd:dir=./config/crds
114+
output:crd:dir=./config/crd/bases
114115
## Copy files in CI folders.
115116
cp -f ./config/rbac/role*.yaml ./config/ci/rbac/
116117
cp -f ./config/manager/manager*.yaml ./config/ci/manager/

PROJECT

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1-
version: "1"
1+
version: "2"
22
domain: x-k8s.io
33
repo: sigs.k8s.io/cluster-api
4+
resources:
5+
- group: cluster
6+
version: v1alpha2
7+
kind: Cluster
8+
- group: cluster
9+
version: v1alpha2
10+
kind: Machine
11+
- group: cluster
12+
version: v1alpha2
13+
kind: MachineSet
14+
- group: cluster
15+
version: v1alpha2
16+
kind: MachineDeployment
Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
1+
load("@io_bazel_rules_go//go:def.bzl", "go_library")
22

33
go_library(
44
name = "go_default_library",
@@ -7,15 +7,14 @@ go_library(
77
"cluster_types.go",
88
"common_types.go",
99
"defaults.go",
10-
"doc.go",
10+
"groupversion_info.go",
1111
"machine_phase_types.go",
1212
"machine_types.go",
1313
"machinedeployment_types.go",
1414
"machineset_types.go",
15-
"register.go",
1615
"zz_generated.deepcopy.go",
1716
],
18-
importpath = "sigs.k8s.io/cluster-api/pkg/apis/cluster/v1alpha2",
17+
importpath = "sigs.k8s.io/cluster-api/api/v1alpha2",
1918
visibility = ["//visibility:public"],
2019
deps = [
2120
"//pkg/errors:go_default_library",
@@ -30,26 +29,3 @@ go_library(
3029
"//vendor/sigs.k8s.io/controller-runtime/pkg/scheme:go_default_library",
3130
],
3231
)
33-
34-
go_test(
35-
name = "go_default_test",
36-
srcs = [
37-
"cluster_types_test.go",
38-
"machine_types_test.go",
39-
"machinedeployment_types_test.go",
40-
"machineset_types_test.go",
41-
"v1alpha2_suite_test.go",
42-
],
43-
embed = [":go_default_library"],
44-
deps = [
45-
"//vendor/github.com/onsi/gomega:go_default_library",
46-
"//vendor/golang.org/x/net/context:go_default_library",
47-
"//vendor/k8s.io/api/core/v1:go_default_library",
48-
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
49-
"//vendor/k8s.io/apimachinery/pkg/types:go_default_library",
50-
"//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library",
51-
"//vendor/k8s.io/client-go/rest:go_default_library",
52-
"//vendor/sigs.k8s.io/controller-runtime/pkg/client:go_default_library",
53-
"//vendor/sigs.k8s.io/controller-runtime/pkg/envtest:go_default_library",
54-
],
55-
)

pkg/apis/cluster/v1alpha2/cluster_types.go renamed to api/v1alpha2/cluster_types.go

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -27,25 +27,6 @@ const (
2727
ClusterAnnotationControlPlaneReady = "cluster.x-k8s.io/control-plane-ready"
2828
)
2929

30-
// +genclient
31-
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
32-
33-
/// [Cluster]
34-
// Cluster is the Schema for the clusters API
35-
// +k8s:openapi-gen=true
36-
// +kubebuilder:resource:path=clusters,shortName=cl
37-
// +kubebuilder:storageversion
38-
// +kubebuilder:subresource:status
39-
type Cluster struct {
40-
metav1.TypeMeta `json:",inline"`
41-
metav1.ObjectMeta `json:"metadata,omitempty"`
42-
43-
Spec ClusterSpec `json:"spec,omitempty"`
44-
Status ClusterStatus `json:"status,omitempty"`
45-
}
46-
47-
/// [Cluster]
48-
4930
/// [ClusterSpec]
5031
// ClusterSpec defines the desired state of Cluster
5132
type ClusterSpec struct {
@@ -148,7 +129,21 @@ type APIEndpoint struct {
148129

149130
/// [APIEndpoint]
150131

151-
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
132+
// +kubebuilder:object:root=true
133+
// +kubebuilder:resource:path=clusters,shortName=cl,scope=Namespaced
134+
// +kubebuilder:storageversion
135+
// +kubebuilder:subresource:status
136+
137+
// Cluster is the Schema for the clusters API
138+
type Cluster struct {
139+
metav1.TypeMeta `json:",inline"`
140+
metav1.ObjectMeta `json:"metadata,omitempty"`
141+
142+
Spec ClusterSpec `json:"spec,omitempty"`
143+
Status ClusterStatus `json:"status,omitempty"`
144+
}
145+
146+
// +kubebuilder:object:root=true
152147

153148
// ClusterList contains a list of Cluster
154149
type ClusterList struct {
File renamed without changes.
File renamed without changes.

pkg/apis/cluster/v1alpha2/register.go renamed to api/v1alpha2/groupversion_info.go

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,8 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
// NOTE: Boilerplate only. Ignore this file.
18-
1917
// Package v1alpha2 contains API Schema definitions for the cluster v1alpha2 API group
20-
// +k8s:openapi-gen=true
21-
// +k8s:deepcopy-gen=package,register
22-
// +k8s:conversion-gen=sigs.k8s.io/cluster-api/pkg/apis/cluster
23-
// +k8s:defaulter-gen=TypeMeta
18+
// +kubebuilder:object:generate=true
2419
// +groupName=cluster.x-k8s.io
2520
package v1alpha2
2621

@@ -30,17 +25,12 @@ import (
3025
)
3126

3227
var (
33-
// SchemeGroupVersion is group version used to register these objects
34-
SchemeGroupVersion = schema.GroupVersion{Group: "cluster.x-k8s.io", Version: "v1alpha2"}
28+
// GroupVersion is group version used to register these objects
29+
GroupVersion = schema.GroupVersion{Group: "cluster.x-k8s.io", Version: "v1alpha2"}
3530

3631
// SchemeBuilder is used to add go types to the GroupVersionKind scheme
37-
SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
32+
SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}
3833

39-
// AddToScheme is required by pkg/client/...
34+
// AddToScheme adds the types in this group-version to the given scheme.
4035
AddToScheme = SchemeBuilder.AddToScheme
4136
)
42-
43-
// Resource is required by pkg/client/listers/...
44-
func Resource(resource string) schema.GroupResource {
45-
return SchemeGroupVersion.WithResource(resource).GroupResource()
46-
}

0 commit comments

Comments
 (0)