Skip to content

Commit df5acd2

Browse files
authored
Merge pull request #7 from etcd-io/api_group_20241122
Change the api group from `clusters.etcd.io` to `operator.etcd.io`
2 parents ccbf648 + 83bbf01 commit df5acd2

17 files changed

+77
-81
lines changed

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,10 +170,10 @@ ENVTEST ?= $(LOCALBIN)/setup-envtest
170170
GOLANGCI_LINT = $(LOCALBIN)/golangci-lint
171171

172172
## Tool Versions
173-
KUSTOMIZE_VERSION ?= v5.4.3
173+
KUSTOMIZE_VERSION ?= v5.5.0
174174
CONTROLLER_TOOLS_VERSION ?= v0.16.4
175175
ENVTEST_VERSION ?= release-0.19
176-
GOLANGCI_LINT_VERSION ?= v1.59.1
176+
GOLANGCI_LINT_VERSION ?= v1.61.0
177177

178178
.PHONY: kustomize
179179
kustomize: $(KUSTOMIZE) ## Download kustomize locally if necessary.

PROJECT

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ resources:
1313
namespaced: true
1414
controller: true
1515
domain: etcd.io
16-
group: clusters
16+
group: operator
1717
kind: EtcdCluster
1818
path: go.etcd.io/etcd-operator/api/v1alpha1
1919
version: v1alpha1

api/v1alpha1/groupversion_info.go

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

17-
// Package v1alpha1 contains API Schema definitions for the clusters v1alpha1 API group.
17+
// Package v1alpha1 contains API Schema definitions for the operator v1alpha1 API group.
1818
// +kubebuilder:object:generate=true
19-
// +groupName=clusters.etcd.io
19+
// +groupName=operator.etcd.io
2020
package v1alpha1
2121

2222
import (
@@ -26,7 +26,7 @@ import (
2626

2727
var (
2828
// GroupVersion is group version used to register these objects.
29-
GroupVersion = schema.GroupVersion{Group: "clusters.etcd.io", Version: "v1alpha1"}
29+
GroupVersion = schema.GroupVersion{Group: "operator.etcd.io", Version: "v1alpha1"}
3030

3131
// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
3232
SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

cmd/main.go

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import (
3535
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
3636
"sigs.k8s.io/controller-runtime/pkg/webhook"
3737

38-
clustersv1alpha1 "go.etcd.io/etcd-operator/api/v1alpha1"
38+
operatorv1alpha1 "go.etcd.io/etcd-operator/api/v1alpha1"
3939
"go.etcd.io/etcd-operator/internal/controller"
4040
// +kubebuilder:scaffold:imports
4141
)
@@ -48,7 +48,7 @@ var (
4848
func init() {
4949
utilruntime.Must(clientgoscheme.AddToScheme(scheme))
5050

51-
utilruntime.Must(clustersv1alpha1.AddToScheme(scheme))
51+
utilruntime.Must(operatorv1alpha1.AddToScheme(scheme))
5252
// +kubebuilder:scaffold:scheme
5353
}
5454

@@ -98,26 +98,24 @@ func main() {
9898

9999
// Metrics endpoint is enabled in 'config/default/kustomization.yaml'. The Metrics options configure the server.
100100
// More info:
101-
// - https://pkg.go.dev/sigs.k8s.io/[email protected].0/pkg/metrics/server
101+
// - https://pkg.go.dev/sigs.k8s.io/[email protected].1/pkg/metrics/server
102102
// - https://book.kubebuilder.io/reference/metrics.html
103103
metricsServerOptions := metricsserver.Options{
104104
BindAddress: metricsAddr,
105105
SecureServing: secureMetrics,
106-
// TODO(user): TLSOpts is used to allow configuring the TLS config used for the server. If certificates are
107-
// not provided, self-signed certificates will be generated by default. This option is not recommended for
108-
// production environments as self-signed certificates do not offer the same level of trust and security
109-
// as certificates issued by a trusted Certificate Authority (CA). The primary risk is potentially allowing
110-
// unauthorized access to sensitive metrics data. Consider replacing with CertDir, CertName, and KeyName
111-
// to provide certificates, ensuring the server communicates using trusted and secure certificates.
112-
TLSOpts: tlsOpts,
106+
TLSOpts: tlsOpts,
113107
}
114108

115109
if secureMetrics {
116110
// FilterProvider is used to protect the metrics endpoint with authn/authz.
117111
// These configurations ensure that only authorized users and service accounts
118112
// can access the metrics endpoint. The RBAC are configured in 'config/rbac/kustomization.yaml'. More info:
119-
// https://pkg.go.dev/sigs.k8s.io/[email protected].0/pkg/metrics/filters#WithAuthenticationAndAuthorization
113+
// https://pkg.go.dev/sigs.k8s.io/[email protected].1/pkg/metrics/filters#WithAuthenticationAndAuthorization
120114
metricsServerOptions.FilterProvider = filters.WithAuthenticationAndAuthorization
115+
116+
// TODO(user): If CertDir, CertName, and KeyName are not specified, controller-runtime will automatically
117+
// generate self-signed certificates for the metrics server. While convenient for development and testing,
118+
// this setup is not recommended for production.
121119
}
122120

123121
mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{

config/crd/bases/clusters.etcd.io_etcdclusters.yaml renamed to config/crd/bases/operator.etcd.io_etcdclusters.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ kind: CustomResourceDefinition
44
metadata:
55
annotations:
66
controller-gen.kubebuilder.io/version: v0.16.4
7-
name: etcdclusters.clusters.etcd.io
7+
name: etcdclusters.operator.etcd.io
88
spec:
9-
group: clusters.etcd.io
9+
group: operator.etcd.io
1010
names:
1111
kind: EtcdCluster
1212
listKind: EtcdClusterList

config/crd/kustomization.yaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# since it depends on service name and namespace that are out of this kustomize package.
33
# It should be run by config/default
44
resources:
5-
- bases/clusters.etcd.io_etcdclusters.yaml
5+
- bases/operator.etcd.io_etcdclusters.yaml
66
# +kubebuilder:scaffold:crdkustomizeresource
77

88
patches:
@@ -12,11 +12,9 @@ patches:
1212

1313
# [CERTMANAGER] To enable cert-manager, uncomment all the sections with [CERTMANAGER] prefix.
1414
# patches here are for enabling the CA injection for each CRD
15-
#- path: patches/cainjection_in_etcdclusters.yaml
1615
# +kubebuilder:scaffold:crdkustomizecainjectionpatch
1716

1817
# [WEBHOOK] To enable webhook, uncomment the following section
1918
# the following config is for teaching kustomize how to do kustomization for CRDs.
20-
2119
#configurations:
2220
#- kustomizeconfig.yaml

config/default/kustomization.yaml

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,41 @@ patches:
4848
# [CERTMANAGER] To enable cert-manager, uncomment all sections with 'CERTMANAGER' prefix.
4949
# Uncomment the following replacements to add the cert-manager CA injection annotations
5050
#replacements:
51+
# - source: # Uncomment the following block if you have any webhook
52+
# kind: Service
53+
# version: v1
54+
# name: webhook-service
55+
# fieldPath: .metadata.name # Name of the service
56+
# targets:
57+
# - select:
58+
# kind: Certificate
59+
# group: cert-manager.io
60+
# version: v1
61+
# fieldPaths:
62+
# - .spec.dnsNames.0
63+
# - .spec.dnsNames.1
64+
# options:
65+
# delimiter: '.'
66+
# index: 0
67+
# create: true
68+
# - source:
69+
# kind: Service
70+
# version: v1
71+
# name: webhook-service
72+
# fieldPath: .metadata.namespace # Namespace of the service
73+
# targets:
74+
# - select:
75+
# kind: Certificate
76+
# group: cert-manager.io
77+
# version: v1
78+
# fieldPaths:
79+
# - .spec.dnsNames.0
80+
# - .spec.dnsNames.1
81+
# options:
82+
# delimiter: '.'
83+
# index: 1
84+
# create: true
85+
#
5186
# - source: # Uncomment the following block if you have a ValidatingWebhook (--programmatic-validation)
5287
# kind: Certificate
5388
# group: cert-manager.io
@@ -140,38 +175,3 @@ patches:
140175
# delimiter: '/'
141176
# index: 1
142177
# create: true
143-
#
144-
# - source: # Uncomment the following block if you enable cert-manager
145-
# kind: Service
146-
# version: v1
147-
# name: webhook-service
148-
# fieldPath: .metadata.name # Name of the service
149-
# targets:
150-
# - select:
151-
# kind: Certificate
152-
# group: cert-manager.io
153-
# version: v1
154-
# fieldPaths:
155-
# - .spec.dnsNames.0
156-
# - .spec.dnsNames.1
157-
# options:
158-
# delimiter: '.'
159-
# index: 0
160-
# create: true
161-
# - source:
162-
# kind: Service
163-
# version: v1
164-
# name: webhook-service
165-
# fieldPath: .metadata.namespace # Namespace of the service
166-
# targets:
167-
# - select:
168-
# kind: Certificate
169-
# group: cert-manager.io
170-
# version: v1
171-
# fieldPaths:
172-
# - .spec.dnsNames.0
173-
# - .spec.dnsNames.1
174-
# options:
175-
# delimiter: '.'
176-
# index: 1
177-
# create: true

config/rbac/etcdcluster_editor_role.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ metadata:
88
name: etcdcluster-editor-role
99
rules:
1010
- apiGroups:
11-
- clusters.etcd.io
11+
- operator.etcd.io
1212
resources:
1313
- etcdclusters
1414
verbs:
@@ -20,7 +20,7 @@ rules:
2020
- update
2121
- watch
2222
- apiGroups:
23-
- clusters.etcd.io
23+
- operator.etcd.io
2424
resources:
2525
- etcdclusters/status
2626
verbs:

config/rbac/etcdcluster_viewer_role.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ metadata:
88
name: etcdcluster-viewer-role
99
rules:
1010
- apiGroups:
11-
- clusters.etcd.io
11+
- operator.etcd.io
1212
resources:
1313
- etcdclusters
1414
verbs:
1515
- get
1616
- list
1717
- watch
1818
- apiGroups:
19-
- clusters.etcd.io
19+
- operator.etcd.io
2020
resources:
2121
- etcdclusters/status
2222
verbs:

config/rbac/role.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ metadata:
55
name: manager-role
66
rules:
77
- apiGroups:
8-
- clusters.etcd.io
8+
- operator.etcd.io
99
resources:
1010
- etcdclusters
1111
verbs:
@@ -17,13 +17,13 @@ rules:
1717
- update
1818
- watch
1919
- apiGroups:
20-
- clusters.etcd.io
20+
- operator.etcd.io
2121
resources:
2222
- etcdclusters/finalizers
2323
verbs:
2424
- update
2525
- apiGroups:
26-
- clusters.etcd.io
26+
- operator.etcd.io
2727
resources:
2828
- etcdclusters/status
2929
verbs:

config/samples/kustomization.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
## Append samples of your project ##
22
resources:
3-
- clusters_v1alpha1_etcdcluster.yaml
3+
- operator_v1alpha1_etcdcluster.yaml
44
# +kubebuilder:scaffold:manifestskustomizesamples

config/samples/clusters_v1alpha1_etcdcluster.yaml renamed to config/samples/operator_v1alpha1_etcdcluster.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
apiVersion: clusters.etcd.io/v1alpha1
1+
apiVersion: operator.etcd.io/v1alpha1
22
kind: EtcdCluster
33
metadata:
44
labels:

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ require (
77
github.com/onsi/gomega v1.33.1
88
k8s.io/apimachinery v0.31.0
99
k8s.io/client-go v0.31.0
10-
sigs.k8s.io/controller-runtime v0.19.0
10+
sigs.k8s.io/controller-runtime v0.19.1
1111
)
1212

1313
require (

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,8 +241,8 @@ k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1
241241
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
242242
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 h1:2770sDpzrjjsAtVhSeUFseziht227YAWYHLGNM8QPwY=
243243
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
244-
sigs.k8s.io/controller-runtime v0.19.0 h1:nWVM7aq+Il2ABxwiCizrVDSlmDcshi9llbaFbC0ji/Q=
245-
sigs.k8s.io/controller-runtime v0.19.0/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4=
244+
sigs.k8s.io/controller-runtime v0.19.1 h1:Son+Q40+Be3QWb+niBXAg2vFiYWolDjjRfO8hn/cxOk=
245+
sigs.k8s.io/controller-runtime v0.19.1/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4=
246246
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
247247
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
248248
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=

internal/controller/etcdcluster_controller.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424
"sigs.k8s.io/controller-runtime/pkg/client"
2525
"sigs.k8s.io/controller-runtime/pkg/log"
2626

27-
clustersv1alpha1 "go.etcd.io/etcd-operator/api/v1alpha1"
27+
operatorv1alpha1 "go.etcd.io/etcd-operator/api/v1alpha1"
2828
)
2929

3030
// EtcdClusterReconciler reconciles a EtcdCluster object
@@ -33,9 +33,9 @@ type EtcdClusterReconciler struct {
3333
Scheme *runtime.Scheme
3434
}
3535

36-
// +kubebuilder:rbac:groups=clusters.etcd.io,resources=etcdclusters,verbs=get;list;watch;create;update;patch;delete
37-
// +kubebuilder:rbac:groups=clusters.etcd.io,resources=etcdclusters/status,verbs=get;update;patch
38-
// +kubebuilder:rbac:groups=clusters.etcd.io,resources=etcdclusters/finalizers,verbs=update
36+
// +kubebuilder:rbac:groups=operator.etcd.io,resources=etcdclusters,verbs=get;list;watch;create;update;patch;delete
37+
// +kubebuilder:rbac:groups=operator.etcd.io,resources=etcdclusters/status,verbs=get;update;patch
38+
// +kubebuilder:rbac:groups=operator.etcd.io,resources=etcdclusters/finalizers,verbs=update
3939

4040
// Reconcile is part of the main kubernetes reconciliation loop which aims to
4141
// move the current state of the cluster closer to the desired state.
@@ -45,7 +45,7 @@ type EtcdClusterReconciler struct {
4545
// the user.
4646
//
4747
// For more details, check Reconcile and its Result here:
48-
// - https://pkg.go.dev/sigs.k8s.io/[email protected].0/pkg/reconcile
48+
// - https://pkg.go.dev/sigs.k8s.io/[email protected].1/pkg/reconcile
4949
func (r *EtcdClusterReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
5050
_ = log.FromContext(ctx)
5151

@@ -57,7 +57,7 @@ func (r *EtcdClusterReconciler) Reconcile(ctx context.Context, req ctrl.Request)
5757
// SetupWithManager sets up the controller with the Manager.
5858
func (r *EtcdClusterReconciler) SetupWithManager(mgr ctrl.Manager) error {
5959
return ctrl.NewControllerManagedBy(mgr).
60-
For(&clustersv1alpha1.EtcdCluster{}).
60+
For(&operatorv1alpha1.EtcdCluster{}).
6161
Named("etcdcluster").
6262
Complete(r)
6363
}

internal/controller/etcdcluster_controller_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import (
2727

2828
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2929

30-
clustersv1alpha1 "go.etcd.io/etcd-operator/api/v1alpha1"
30+
operatorv1alpha1 "go.etcd.io/etcd-operator/api/v1alpha1"
3131
)
3232

3333
var _ = Describe("EtcdCluster Controller", func() {
@@ -40,13 +40,13 @@ var _ = Describe("EtcdCluster Controller", func() {
4040
Name: resourceName,
4141
Namespace: "default", // TODO(user):Modify as needed
4242
}
43-
etcdcluster := &clustersv1alpha1.EtcdCluster{}
43+
etcdcluster := &operatorv1alpha1.EtcdCluster{}
4444

4545
BeforeEach(func() {
4646
By("creating the custom resource for the Kind EtcdCluster")
4747
err := k8sClient.Get(ctx, typeNamespacedName, etcdcluster)
4848
if err != nil && errors.IsNotFound(err) {
49-
resource := &clustersv1alpha1.EtcdCluster{
49+
resource := &operatorv1alpha1.EtcdCluster{
5050
ObjectMeta: metav1.ObjectMeta{
5151
Name: resourceName,
5252
Namespace: "default",
@@ -59,7 +59,7 @@ var _ = Describe("EtcdCluster Controller", func() {
5959

6060
AfterEach(func() {
6161
// TODO(user): Cleanup logic after each test, like removing the resource instance.
62-
resource := &clustersv1alpha1.EtcdCluster{}
62+
resource := &operatorv1alpha1.EtcdCluster{}
6363
err := k8sClient.Get(ctx, typeNamespacedName, resource)
6464
Expect(err).NotTo(HaveOccurred())
6565

internal/controller/suite_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ import (
3333
logf "sigs.k8s.io/controller-runtime/pkg/log"
3434
"sigs.k8s.io/controller-runtime/pkg/log/zap"
3535

36-
clustersv1alpha1 "go.etcd.io/etcd-operator/api/v1alpha1"
36+
operatorv1alpha1 "go.etcd.io/etcd-operator/api/v1alpha1"
3737
// +kubebuilder:scaffold:imports
3838
)
3939

@@ -77,7 +77,7 @@ var _ = BeforeSuite(func() {
7777
Expect(err).NotTo(HaveOccurred())
7878
Expect(cfg).NotTo(BeNil())
7979

80-
err = clustersv1alpha1.AddToScheme(scheme.Scheme)
80+
err = operatorv1alpha1.AddToScheme(scheme.Scheme)
8181
Expect(err).NotTo(HaveOccurred())
8282

8383
// +kubebuilder:scaffold:scheme

0 commit comments

Comments
 (0)