From e96ceba5ea94b191ee12ae5381fa1d601324058e Mon Sep 17 00:00:00 2001 From: Gergely Brautigam <182850+Skarlso@users.noreply.github.com> Date: Wed, 29 Mar 2023 14:04:47 +0200 Subject: [PATCH] rename all the things --- Makefile | 2 +- PROJECT | 8 +- README.md | 14 +-- Tiltfile | 6 +- .../{gitsync_types.go => sync_types.go} | 30 +++---- api/v1alpha1/zz_generated.deepcopy.go | 86 ++++++++----------- ....yaml => delivery.ocm.software_syncs.yaml} | 16 ++-- config/crd/kustomization.yaml | 2 +- ...itsyncs.yaml => cainjection_in_syncs.yaml} | 2 +- ...in_gitsyncs.yaml => webhook_in_syncs.yaml} | 2 +- config/manager/deployment.yaml | 14 +-- config/manager/kustomization.yaml | 4 +- config/prometheus/kustomization.yaml | 2 - config/prometheus/monitor.yaml | 26 ------ config/rbac/leader_election_role.yaml | 2 +- config/rbac/leader_election_role_binding.yaml | 10 +-- config/rbac/role.yaml | 26 +++--- config/rbac/role_binding.yaml | 6 +- config/rbac/service_account.yaml | 2 +- ...editor_role.yaml => sync_editor_role.yaml} | 14 +-- ...viewer_role.yaml => sync_viewer_role.yaml} | 14 +-- ...tsync.yaml => delivery_v1alpha1_sync.yaml} | 8 +- controllers/suite_test.go | 2 +- ...tsync_controller.go => sync_controller.go} | 28 +++--- ...roller_test.go => sync_controller_test.go} | 30 +++---- go.mod | 2 +- goreleaser.dockerfile | 2 +- hack/boilerplate.go.txt | 18 +--- main.go | 12 +-- pkg/providers/gogit/git.go | 2 +- pkg/version/generate/release_generate.go | 2 +- 31 files changed, 171 insertions(+), 223 deletions(-) rename api/v1alpha1/{gitsync_types.go => sync_types.go} (76%) rename config/crd/bases/{delivery.ocm.software_gitsyncs.yaml => delivery.ocm.software_syncs.yaml} (95%) rename config/crd/patches/{cainjection_in_gitsyncs.yaml => cainjection_in_syncs.yaml} (86%) rename config/crd/patches/{webhook_in_gitsyncs.yaml => webhook_in_syncs.yaml} (90%) delete mode 100644 config/prometheus/kustomization.yaml delete mode 100644 config/prometheus/monitor.yaml rename config/rbac/{gitsync_editor_role.yaml => sync_editor_role.yaml} (60%) rename config/rbac/{gitsync_viewer_role.yaml => sync_viewer_role.yaml} (58%) rename config/samples/{delivery_v1alpha1_gitsync.yaml => delivery_v1alpha1_sync.yaml} (78%) rename controllers/{gitsync_controller.go => sync_controller.go} (86%) rename controllers/{gitsync_controller_test.go => sync_controller_test.go} (72%) diff --git a/Makefile b/Makefile index 67109b2..7d41be6 100644 --- a/Makefile +++ b/Makefile @@ -43,7 +43,7 @@ help: ## Display this help. .PHONY: manifests manifests: controller-gen ## Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects. - $(CONTROLLER_GEN) rbac:roleName=git-sync-controller-manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases + $(CONTROLLER_GEN) rbac:roleName=git-controller-manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases .PHONY: generate generate: controller-gen ## Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations. diff --git a/PROJECT b/PROJECT index fd26a8c..5507a1f 100644 --- a/PROJECT +++ b/PROJECT @@ -1,8 +1,8 @@ domain: ocm.software layout: - go.kubebuilder.io/v3 -projectName: git-sync-controller -repo: github.com/open-component-model/git-sync-controller +projectName: git-controller +repo: github.com/open-component-model/git-controller resources: - api: crdVersion: v1 @@ -10,7 +10,7 @@ resources: controller: true domain: ocm.software group: delivery - kind: GitSync - path: github.com/open-component-model/git-sync-controller/api/v1alpha1 + kind: Sync + path: github.com/open-component-model/git-controller/api/v1alpha1 version: v1alpha1 version: "3" diff --git a/README.md b/README.md index 3b0bd08..a5fe5a3 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# git-sync-controller +# git-controller // TODO(user): Add simple overview of use/purpose ## Description @@ -16,15 +16,15 @@ kubectl apply -f config/samples/ ``` 2. Build and push your image to the location specified by `IMG`: - + ```sh -make docker-build docker-push IMG=/git-sync-controller:tag +make docker-build docker-push IMG=/git-controller:tag ``` - + 3. Deploy the controller to the cluster with the image specified by `IMG`: ```sh -make deploy IMG=/git-sync-controller:tag +make deploy IMG=/git-controller:tag ``` ### Uninstall CRDs @@ -47,8 +47,8 @@ make undeploy ### How it works This project aims to follow the Kubernetes [Operator pattern](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) -It uses [Controllers](https://kubernetes.io/docs/concepts/architecture/controller/) -which provides a reconcile function responsible for synchronizing resources untile the desired state is reached on the cluster +It uses [Controllers](https://kubernetes.io/docs/concepts/architecture/controller/) +which provides a reconcile function responsible for synchronizing resources untile the desired state is reached on the cluster ### Test It Out 1. Install the CRDs into the cluster: diff --git a/Tiltfile b/Tiltfile index 96c6ed4..473b9b6 100644 --- a/Tiltfile +++ b/Tiltfile @@ -13,7 +13,7 @@ install = kustomize('config/default') # running process. objects = decode_yaml_stream(install) for o in objects: - if o.get('kind') == 'Deployment' and o.get('metadata').get('name') == 'git-sync-controller': + if o.get('kind') == 'Deployment' and o.get('metadata').get('name') == 'git-controller': o['spec']['template']['spec']['securityContext']['runAsNonRoot'] = False break @@ -33,7 +33,7 @@ load('ext://restart_process', 'docker_build_with_restart') # Once done, rebuilding now should be a lot faster since only the relevant # binary is rebuilt and the hot swat wrapper takes care of the rest. local_resource( - 'git-sync-controller-binary', + 'git-controller-binary', 'CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/manager ./', deps = [ "main.go", @@ -54,7 +54,7 @@ local_resource( entrypoint = ['/manager'] dockerfile = 'tilt.dockerfile' docker_build_with_restart( - 'ghcr.io/open-component-model/git-sync-controller', + 'ghcr.io/open-component-model/git-controller', '.', dockerfile = dockerfile, entrypoint = entrypoint, diff --git a/api/v1alpha1/gitsync_types.go b/api/v1alpha1/sync_types.go similarity index 76% rename from api/v1alpha1/gitsync_types.go rename to api/v1alpha1/sync_types.go index 1cc2bdb..bba2e6c 100644 --- a/api/v1alpha1/gitsync_types.go +++ b/api/v1alpha1/sync_types.go @@ -24,8 +24,8 @@ type CommitTemplate struct { Message string `json:"message"` } -// GitSyncSpec defines the desired state of GitSync -type GitSyncSpec struct { +// SyncSpec defines the desired state of Sync +type SyncSpec struct { SnapshotRef Ref `json:"snapshotRef"` Interval metav1.Duration `json:"interval"` URL string `json:"url"` @@ -36,8 +36,8 @@ type GitSyncSpec struct { Prune bool `json:"prune,omitempty"` } -// GitSyncStatus defines the observed state of GitSync -type GitSyncStatus struct { +// SyncStatus defines the observed state of Sync +type SyncStatus struct { Digest string `json:"digest,omitempty"` // ObservedGeneration is the last reconciled generation. @@ -50,42 +50,42 @@ type GitSyncStatus struct { } // GetConditions returns the conditions of the ComponentVersion. -func (in *GitSync) GetConditions() []metav1.Condition { +func (in *Sync) GetConditions() []metav1.Condition { return in.Status.Conditions } // SetConditions sets the conditions of the ComponentVersion. -func (in *GitSync) SetConditions(conditions []metav1.Condition) { +func (in *Sync) SetConditions(conditions []metav1.Condition) { in.Status.Conditions = conditions } // GetRequeueAfter returns the duration after which the ComponentVersion must be // reconciled again. -func (in GitSync) GetRequeueAfter() time.Duration { +func (in Sync) GetRequeueAfter() time.Duration { return in.Spec.Interval.Duration } //+kubebuilder:object:root=true //+kubebuilder:subresource:status -// GitSync is the Schema for the gitsyncs API -type GitSync struct { +// Sync is the Schema for the syncs API +type Sync struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - Spec GitSyncSpec `json:"spec,omitempty"` - Status GitSyncStatus `json:"status,omitempty"` + Spec SyncSpec `json:"spec,omitempty"` + Status SyncStatus `json:"status,omitempty"` } //+kubebuilder:object:root=true -// GitSyncList contains a list of GitSync -type GitSyncList struct { +// SyncList contains a list of Sync +type SyncList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` - Items []GitSync `json:"items"` + Items []Sync `json:"items"` } func init() { - SchemeBuilder.Register(&GitSync{}, &GitSyncList{}) + SchemeBuilder.Register(&Sync{}, &SyncList{}) } diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go index aecb9ea..a336ea6 100644 --- a/api/v1alpha1/zz_generated.deepcopy.go +++ b/api/v1alpha1/zz_generated.deepcopy.go @@ -1,21 +1,9 @@ //go:build !ignore_autogenerated // +build !ignore_autogenerated -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// SPDX-FileCopyrightText: 2022 SAP SE or an SAP affiliate company and Open Component Model contributors. +// +// SPDX-License-Identifier: Apache-2.0 // Code generated by controller-gen. DO NOT EDIT. @@ -42,7 +30,22 @@ func (in *CommitTemplate) DeepCopy() *CommitTemplate { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GitSync) DeepCopyInto(out *GitSync) { +func (in *Ref) DeepCopyInto(out *Ref) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ref. +func (in *Ref) DeepCopy() *Ref { + if in == nil { + return nil + } + out := new(Ref) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Sync) DeepCopyInto(out *Sync) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) @@ -50,18 +53,18 @@ func (in *GitSync) DeepCopyInto(out *GitSync) { in.Status.DeepCopyInto(&out.Status) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitSync. -func (in *GitSync) DeepCopy() *GitSync { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Sync. +func (in *Sync) DeepCopy() *Sync { if in == nil { return nil } - out := new(GitSync) + out := new(Sync) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *GitSync) DeepCopyObject() runtime.Object { +func (in *Sync) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -69,31 +72,31 @@ func (in *GitSync) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GitSyncList) DeepCopyInto(out *GitSyncList) { +func (in *SyncList) DeepCopyInto(out *SyncList) { *out = *in out.TypeMeta = in.TypeMeta in.ListMeta.DeepCopyInto(&out.ListMeta) if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]GitSync, len(*in)) + *out = make([]Sync, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitSyncList. -func (in *GitSyncList) DeepCopy() *GitSyncList { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncList. +func (in *SyncList) DeepCopy() *SyncList { if in == nil { return nil } - out := new(GitSyncList) + out := new(SyncList) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *GitSyncList) DeepCopyObject() runtime.Object { +func (in *SyncList) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -101,7 +104,7 @@ func (in *GitSyncList) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GitSyncSpec) DeepCopyInto(out *GitSyncSpec) { +func (in *SyncSpec) DeepCopyInto(out *SyncSpec) { *out = *in out.SnapshotRef = in.SnapshotRef out.Interval = in.Interval @@ -113,18 +116,18 @@ func (in *GitSyncSpec) DeepCopyInto(out *GitSyncSpec) { } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitSyncSpec. -func (in *GitSyncSpec) DeepCopy() *GitSyncSpec { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncSpec. +func (in *SyncSpec) DeepCopy() *SyncSpec { if in == nil { return nil } - out := new(GitSyncSpec) + out := new(SyncSpec) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GitSyncStatus) DeepCopyInto(out *GitSyncStatus) { +func (in *SyncStatus) DeepCopyInto(out *SyncStatus) { *out = *in if in.Conditions != nil { in, out := &in.Conditions, &out.Conditions @@ -135,27 +138,12 @@ func (in *GitSyncStatus) DeepCopyInto(out *GitSyncStatus) { } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitSyncStatus. -func (in *GitSyncStatus) DeepCopy() *GitSyncStatus { - if in == nil { - return nil - } - out := new(GitSyncStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Ref) DeepCopyInto(out *Ref) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ref. -func (in *Ref) DeepCopy() *Ref { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncStatus. +func (in *SyncStatus) DeepCopy() *SyncStatus { if in == nil { return nil } - out := new(Ref) + out := new(SyncStatus) in.DeepCopyInto(out) return out } diff --git a/config/crd/bases/delivery.ocm.software_gitsyncs.yaml b/config/crd/bases/delivery.ocm.software_syncs.yaml similarity index 95% rename from config/crd/bases/delivery.ocm.software_gitsyncs.yaml rename to config/crd/bases/delivery.ocm.software_syncs.yaml index ee759a0..e3942c0 100644 --- a/config/crd/bases/delivery.ocm.software_gitsyncs.yaml +++ b/config/crd/bases/delivery.ocm.software_syncs.yaml @@ -5,20 +5,20 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.9.2 creationTimestamp: null - name: gitsyncs.delivery.ocm.software + name: syncs.delivery.ocm.software spec: group: delivery.ocm.software names: - kind: GitSync - listKind: GitSyncList - plural: gitsyncs - singular: gitsync + kind: Sync + listKind: SyncList + plural: syncs + singular: sync scope: Namespaced versions: - name: v1alpha1 schema: openAPIV3Schema: - description: GitSync is the Schema for the gitsyncs API + description: Sync is the Schema for the syncs API properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -33,7 +33,7 @@ spec: metadata: type: object spec: - description: GitSyncSpec defines the desired state of GitSync + description: SyncSpec defines the desired state of Sync properties: authRef: description: Ref defines a name and namespace ref to any object. @@ -92,7 +92,7 @@ spec: - url type: object status: - description: GitSyncStatus defines the observed state of GitSync + description: SyncStatus defines the observed state of Sync properties: conditions: items: diff --git a/config/crd/kustomization.yaml b/config/crd/kustomization.yaml index b2ece32..c894074 100644 --- a/config/crd/kustomization.yaml +++ b/config/crd/kustomization.yaml @@ -2,7 +2,7 @@ # since it depends on service name and namespace that are out of this kustomize package. # It should be run by config/default resources: -- bases/delivery.ocm.software_gitsyncs.yaml +- bases/delivery.ocm.software_syncs.yaml #+kubebuilder:scaffold:crdkustomizeresource # the following config is for teaching kustomize how to do kustomization for CRDs. diff --git a/config/crd/patches/cainjection_in_gitsyncs.yaml b/config/crd/patches/cainjection_in_syncs.yaml similarity index 86% rename from config/crd/patches/cainjection_in_gitsyncs.yaml rename to config/crd/patches/cainjection_in_syncs.yaml index 291f04a..302b301 100644 --- a/config/crd/patches/cainjection_in_gitsyncs.yaml +++ b/config/crd/patches/cainjection_in_syncs.yaml @@ -4,4 +4,4 @@ kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: $(CERTIFICATE_NAMESPACE)/$(CERTIFICATE_NAME) - name: gitsyncs.delivery.ocm.software + name: syncs.delivery.ocm.software diff --git a/config/crd/patches/webhook_in_gitsyncs.yaml b/config/crd/patches/webhook_in_syncs.yaml similarity index 90% rename from config/crd/patches/webhook_in_gitsyncs.yaml rename to config/crd/patches/webhook_in_syncs.yaml index f5cb48a..c5f2cc4 100644 --- a/config/crd/patches/webhook_in_gitsyncs.yaml +++ b/config/crd/patches/webhook_in_syncs.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: - name: gitsyncs.delivery.ocm.software + name: syncs.delivery.ocm.software spec: conversion: strategy: Webhook diff --git a/config/manager/deployment.yaml b/config/manager/deployment.yaml index 9ee2bfc..97a05fb 100644 --- a/config/manager/deployment.yaml +++ b/config/manager/deployment.yaml @@ -2,27 +2,27 @@ apiVersion: v1 kind: Namespace metadata: labels: - app: git-sync-controller + app: git-controller name: ocm-system --- apiVersion: apps/v1 kind: Deployment metadata: - name: git-sync-controller + name: git-controller namespace: ocm-system labels: - app: git-sync-controller + app: git-controller spec: selector: matchLabels: - app: git-sync-controller + app: git-controller replicas: 1 template: metadata: annotations: kubectl.kubernetes.io/default-container: manager labels: - app: git-sync-controller + app: git-controller spec: securityContext: runAsNonRoot: true @@ -32,7 +32,7 @@ spec: args: - --leader-elect - --oci-registry-addr=registry.ocm-system.svc.cluster.local:5000 - image: open-component-model/git-sync-controller:latest + image: open-component-model/git-controller:latest name: manager securityContext: allowPrivilegeEscalation: false @@ -58,5 +58,5 @@ spec: requests: cpu: 10m memory: 64Mi - serviceAccountName: git-sync-controller + serviceAccountName: git-controller terminationGracePeriodSeconds: 10 diff --git a/config/manager/kustomization.yaml b/config/manager/kustomization.yaml index dc2f5ec..17cca91 100644 --- a/config/manager/kustomization.yaml +++ b/config/manager/kustomization.yaml @@ -6,6 +6,6 @@ images: - name: controller newName: controller newTag: latest -- name: open-component-model/git-sync-controller - newName: ghcr.io/open-component-model/git-sync-controller +- name: open-component-model/git-controller + newName: ghcr.io/open-component-model/git-controller newTag: latest diff --git a/config/prometheus/kustomization.yaml b/config/prometheus/kustomization.yaml deleted file mode 100644 index ed13716..0000000 --- a/config/prometheus/kustomization.yaml +++ /dev/null @@ -1,2 +0,0 @@ -resources: -- monitor.yaml diff --git a/config/prometheus/monitor.yaml b/config/prometheus/monitor.yaml deleted file mode 100644 index ceb4a2c..0000000 --- a/config/prometheus/monitor.yaml +++ /dev/null @@ -1,26 +0,0 @@ - -# Prometheus Monitor Service (Metrics) -apiVersion: monitoring.coreos.com/v1 -kind: ServiceMonitor -metadata: - labels: - control-plane: controller-manager - app.kubernetes.io/name: servicemonitor - app.kubernetes.io/instance: controller-manager-metrics-monitor - app.kubernetes.io/component: metrics - app.kubernetes.io/created-by: git-sync-controller - app.kubernetes.io/part-of: git-sync-controller - app.kubernetes.io/managed-by: kustomize - name: controller-manager-metrics-monitor - namespace: system -spec: - endpoints: - - path: /metrics - port: https - scheme: https - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - tlsConfig: - insecureSkipVerify: true - selector: - matchLabels: - control-plane: controller-manager diff --git a/config/rbac/leader_election_role.yaml b/config/rbac/leader_election_role.yaml index 34fc0f1..8060841 100644 --- a/config/rbac/leader_election_role.yaml +++ b/config/rbac/leader_election_role.yaml @@ -2,7 +2,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: - name: git-sync-leader-election-role + name: git-leader-election-role rules: - apiGroups: - "" diff --git a/config/rbac/leader_election_role_binding.yaml b/config/rbac/leader_election_role_binding.yaml index 4083b80..aa5e0fb 100644 --- a/config/rbac/leader_election_role_binding.yaml +++ b/config/rbac/leader_election_role_binding.yaml @@ -5,15 +5,15 @@ metadata: app.kubernetes.io/name: rolebinding app.kubernetes.io/instance: leader-election-rolebinding app.kubernetes.io/component: rbac - app.kubernetes.io/created-by: git-sync-controller - app.kubernetes.io/part-of: git-sync-controller + app.kubernetes.io/created-by: git-controller + app.kubernetes.io/part-of: git-controller app.kubernetes.io/managed-by: kustomize - name: git-sync-leader-election-rolebinding + name: git-leader-election-rolebinding roleRef: apiGroup: rbac.authorization.k8s.io kind: Role - name: git-sync-leader-election-role + name: git-leader-election-role subjects: - kind: ServiceAccount - name: git-sync-controller + name: git-controller namespace: ocm-system diff --git a/config/rbac/role.yaml b/config/rbac/role.yaml index fe9c130..d8e52ca 100644 --- a/config/rbac/role.yaml +++ b/config/rbac/role.yaml @@ -3,7 +3,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: creationTimestamp: null - name: git-sync-controller-manager-role + name: git-controller-manager-role rules: - apiGroups: - "" @@ -16,7 +16,7 @@ rules: - apiGroups: - delivery.ocm.software resources: - - gitsyncs + - ocmresources verbs: - create - delete @@ -28,13 +28,19 @@ rules: - apiGroups: - delivery.ocm.software resources: - - gitsyncs/finalizers + - snapshots verbs: + - create + - delete + - get + - list + - patch - update + - watch - apiGroups: - delivery.ocm.software resources: - - gitsyncs/status + - snapshots/status verbs: - get - patch @@ -42,7 +48,7 @@ rules: - apiGroups: - delivery.ocm.software resources: - - ocmresources + - syncs verbs: - create - delete @@ -54,19 +60,13 @@ rules: - apiGroups: - delivery.ocm.software resources: - - snapshots + - syncs/finalizers verbs: - - create - - delete - - get - - list - - patch - update - - watch - apiGroups: - delivery.ocm.software resources: - - snapshots/status + - syncs/status verbs: - get - patch diff --git a/config/rbac/role_binding.yaml b/config/rbac/role_binding.yaml index dbf2bc8..16e62c9 100644 --- a/config/rbac/role_binding.yaml +++ b/config/rbac/role_binding.yaml @@ -1,12 +1,12 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: git-sync-controller-manager-rolebinding + name: git-controller-manager-rolebinding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: git-sync-controller-manager-role + name: git-controller-manager-role subjects: - kind: ServiceAccount - name: git-sync-controller + name: git-controller namespace: ocm-system diff --git a/config/rbac/service_account.yaml b/config/rbac/service_account.yaml index 3bb3c3e..64ff279 100644 --- a/config/rbac/service_account.yaml +++ b/config/rbac/service_account.yaml @@ -1,5 +1,5 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: git-sync-controller + name: git-controller namespace: ocm-system diff --git a/config/rbac/gitsync_editor_role.yaml b/config/rbac/sync_editor_role.yaml similarity index 60% rename from config/rbac/gitsync_editor_role.yaml rename to config/rbac/sync_editor_role.yaml index e255497..71a5313 100644 --- a/config/rbac/gitsync_editor_role.yaml +++ b/config/rbac/sync_editor_role.yaml @@ -1,20 +1,20 @@ -# permissions for end users to edit gitsyncs. +# permissions for end users to edit syncs. apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: app.kubernetes.io/name: clusterrole - app.kubernetes.io/instance: gitsync-editor-role + app.kubernetes.io/instance: sync-editor-role app.kubernetes.io/component: rbac - app.kubernetes.io/created-by: git-sync-controller - app.kubernetes.io/part-of: git-sync-controller + app.kubernetes.io/created-by: git-controller + app.kubernetes.io/part-of: git-controller app.kubernetes.io/managed-by: kustomize - name: gitsync-editor-role + name: sync-editor-role rules: - apiGroups: - delivery.ocm.software resources: - - gitsyncs + - syncs verbs: - create - delete @@ -26,6 +26,6 @@ rules: - apiGroups: - delivery.ocm.software resources: - - gitsyncs/status + - syncs/status verbs: - get diff --git a/config/rbac/gitsync_viewer_role.yaml b/config/rbac/sync_viewer_role.yaml similarity index 58% rename from config/rbac/gitsync_viewer_role.yaml rename to config/rbac/sync_viewer_role.yaml index e12ab93..807f163 100644 --- a/config/rbac/gitsync_viewer_role.yaml +++ b/config/rbac/sync_viewer_role.yaml @@ -1,20 +1,20 @@ -# permissions for end users to view gitsyncs. +# permissions for end users to view syncs. apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: app.kubernetes.io/name: clusterrole - app.kubernetes.io/instance: gitsync-viewer-role + app.kubernetes.io/instance: sync-viewer-role app.kubernetes.io/component: rbac - app.kubernetes.io/created-by: git-sync-controller - app.kubernetes.io/part-of: git-sync-controller + app.kubernetes.io/created-by: git-controller + app.kubernetes.io/part-of: git-controller app.kubernetes.io/managed-by: kustomize - name: gitsync-viewer-role + name: sync-viewer-role rules: - apiGroups: - delivery.ocm.software resources: - - gitsyncs + - syncs verbs: - get - list @@ -22,6 +22,6 @@ rules: - apiGroups: - delivery.ocm.software resources: - - gitsyncs/status + - syncs/status verbs: - get diff --git a/config/samples/delivery_v1alpha1_gitsync.yaml b/config/samples/delivery_v1alpha1_sync.yaml similarity index 78% rename from config/samples/delivery_v1alpha1_gitsync.yaml rename to config/samples/delivery_v1alpha1_sync.yaml index 0518253..a38f790 100644 --- a/config/samples/delivery_v1alpha1_gitsync.yaml +++ b/config/samples/delivery_v1alpha1_sync.yaml @@ -1,16 +1,16 @@ apiVersion: delivery.ocm.software/v1alpha1 -kind: GitSync +kind: Sync metadata: - name: git-sync-sample + name: git-sample namespace: ocm-system spec: authRef: - name: git-sync-secret + name: git-secret namespace: ocm-system branch: main commitTemplate: email: - message: "Update made from git-sync-controller" + message: "Update made from git-controller" name: Gergely Brautigam interval: 10m0s subPath: ./application/podinfo diff --git a/controllers/suite_test.go b/controllers/suite_test.go index c109fdd..538444b 100644 --- a/controllers/suite_test.go +++ b/controllers/suite_test.go @@ -16,7 +16,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/client/fake" - "github.com/open-component-model/git-sync-controller/api/v1alpha1" + "github.com/open-component-model/git-controller/api/v1alpha1" ) type testEnv struct { diff --git a/controllers/gitsync_controller.go b/controllers/sync_controller.go similarity index 86% rename from controllers/gitsync_controller.go rename to controllers/sync_controller.go index fe053e5..a7c7c5b 100644 --- a/controllers/gitsync_controller.go +++ b/controllers/sync_controller.go @@ -24,21 +24,21 @@ import ( ocmv1 "github.com/open-component-model/ocm-controller/api/v1alpha1" - "github.com/open-component-model/git-sync-controller/api/v1alpha1" - providers "github.com/open-component-model/git-sync-controller/pkg" + "github.com/open-component-model/git-controller/api/v1alpha1" + providers "github.com/open-component-model/git-controller/pkg" ) -// GitSyncReconciler reconciles a GitSync object -type GitSyncReconciler struct { +// SyncReconciler reconciles a Sync object +type SyncReconciler struct { client.Client Scheme *runtime.Scheme Git providers.Git } -//+kubebuilder:rbac:groups=delivery.ocm.software,resources=gitsyncs,verbs=get;list;watch;create;update;patch;delete -//+kubebuilder:rbac:groups=delivery.ocm.software,resources=gitsyncs/status,verbs=get;update;patch -//+kubebuilder:rbac:groups=delivery.ocm.software,resources=gitsyncs/finalizers,verbs=update +//+kubebuilder:rbac:groups=delivery.ocm.software,resources=syncs,verbs=get;list;watch;create;update;patch;delete +//+kubebuilder:rbac:groups=delivery.ocm.software,resources=syncs/status,verbs=get;update;patch +//+kubebuilder:rbac:groups=delivery.ocm.software,resources=syncs/finalizers,verbs=update //+kubebuilder:rbac:groups=delivery.ocm.software,resources=ocmresources,verbs=get;list;watch;create;update;patch;delete //+kubebuilder:rbac:groups="",resources=secrets,verbs=get;list;watch //+kubebuilder:rbac:groups=delivery.ocm.software,resources=snapshots,verbs=get;list;watch;create;update;patch;delete @@ -46,7 +46,7 @@ type GitSyncReconciler struct { // Reconcile is part of the main kubernetes reconciliation loop which aims to // move the current state of the cluster closer to the desired state. -func (r *GitSyncReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { +func (r *SyncReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { var ( result ctrl.Result retErr error @@ -54,14 +54,14 @@ func (r *GitSyncReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct log := log.FromContext(ctx) log.V(4).Info("starting reconcile loop for snapshot") - obj := &v1alpha1.GitSync{} + obj := &v1alpha1.Sync{} if err := r.Get(ctx, req.NamespacedName, obj); err != nil { if apierrors.IsNotFound(err) { return ctrl.Result{}, nil } return ctrl.Result{}, fmt.Errorf("failed to get git sync object: %w", err) } - log.V(4).Info("found reconciling object", "gitSync", obj) + log.V(4).Info("found reconciling object", "sync", obj) // The replication controller doesn't need a shouldReconcile, because it should always reconcile, // that is its purpose. @@ -124,7 +124,7 @@ func (r *GitSyncReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct // it's important that this happens here so any residual status condition can be overwritten / set. if obj.Status.Digest != "" { - log.Info("GitSync object already synced; status contains digest information", "digest", obj.Status.Digest) + log.Info("Sync object already synced; status contains digest information", "digest", obj.Status.Digest) return ctrl.Result{}, nil } @@ -183,13 +183,13 @@ func (r *GitSyncReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct } // SetupWithManager sets up the controller with the Manager. -func (r *GitSyncReconciler) SetupWithManager(mgr ctrl.Manager) error { +func (r *SyncReconciler) SetupWithManager(mgr ctrl.Manager) error { return ctrl.NewControllerManagedBy(mgr). - For(&v1alpha1.GitSync{}). + For(&v1alpha1.Sync{}). Complete(r) } -func (r *GitSyncReconciler) parseAuthSecret(secret *corev1.Secret, opts *providers.PushOptions) { +func (r *SyncReconciler) parseAuthSecret(secret *corev1.Secret, opts *providers.PushOptions) { if _, ok := secret.Data["identity"]; ok { opts.Auth = &providers.Auth{ SSH: &providers.SSH{ diff --git a/controllers/gitsync_controller_test.go b/controllers/sync_controller_test.go similarity index 72% rename from controllers/gitsync_controller_test.go rename to controllers/sync_controller_test.go index 8b60a5c..d542754 100644 --- a/controllers/gitsync_controller_test.go +++ b/controllers/sync_controller_test.go @@ -15,11 +15,11 @@ import ( ocmv1 "github.com/open-component-model/ocm-controller/api/v1alpha1" - "github.com/open-component-model/git-sync-controller/api/v1alpha1" - "github.com/open-component-model/git-sync-controller/pkg" + "github.com/open-component-model/git-controller/api/v1alpha1" + "github.com/open-component-model/git-controller/pkg" ) -func TestGitSyncReconciler(t *testing.T) { +func TestSyncReconciler(t *testing.T) { snapshot := DefaultSnapshot.DeepCopy() secret := &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ @@ -31,12 +31,12 @@ func TestGitSyncReconciler(t *testing.T) { "password": []byte("password"), }, } - gitSync := &v1alpha1.GitSync{ + sync := &v1alpha1.Sync{ ObjectMeta: metav1.ObjectMeta{ - Name: "git-sync-test", + Name: "git-test", Namespace: "default", }, - Spec: v1alpha1.GitSyncSpec{ + Spec: v1alpha1.SyncSpec{ SnapshotRef: v1alpha1.Ref{ Name: snapshot.Name, Namespace: snapshot.Namespace, @@ -57,11 +57,11 @@ func TestGitSyncReconciler(t *testing.T) { }, } - client := env.FakeKubeClient(WithObjets(gitSync, snapshot, secret), WithAddToScheme(ocmv1.AddToScheme)) + client := env.FakeKubeClient(WithObjets(sync, snapshot, secret), WithAddToScheme(ocmv1.AddToScheme)) m := &mockGit{ digest: "test-digest", } - gsr := GitSyncReconciler{ + gsr := SyncReconciler{ Client: client, Scheme: env.scheme, Git: m, @@ -69,20 +69,20 @@ func TestGitSyncReconciler(t *testing.T) { _, err := gsr.Reconcile(context.Background(), ctrl.Request{ NamespacedName: types.NamespacedName{ - Namespace: gitSync.Namespace, - Name: gitSync.Name, + Namespace: sync.Namespace, + Name: sync.Name, }, }) require.NoError(t, err) err = client.Get(context.Background(), types.NamespacedName{ - Name: gitSync.Name, - Namespace: gitSync.Namespace, - }, gitSync) + Name: sync.Name, + Namespace: sync.Namespace, + }, sync) require.NoError(t, err) - assert.Equal(t, "test-digest", gitSync.Status.Digest) - assert.True(t, conditions.IsTrue(gitSync, meta.ReadyCondition)) + assert.Equal(t, "test-digest", sync.Status.Digest) + assert.True(t, conditions.IsTrue(sync, meta.ReadyCondition)) } type mockGit struct { diff --git a/go.mod b/go.mod index 8df21ae..6393d10 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/open-component-model/git-sync-controller +module github.com/open-component-model/git-controller go 1.20 diff --git a/goreleaser.dockerfile b/goreleaser.dockerfile index fd8f129..4aac16e 100644 --- a/goreleaser.dockerfile +++ b/goreleaser.dockerfile @@ -1,6 +1,6 @@ FROM gcr.io/distroless/static:nonroot WORKDIR / -COPY git-sync-controller /manager +COPY git-controller /manager USER 65532:65532 ENTRYPOINT ["/manager"] diff --git a/hack/boilerplate.go.txt b/hack/boilerplate.go.txt index 29c55ec..0129fcb 100644 --- a/hack/boilerplate.go.txt +++ b/hack/boilerplate.go.txt @@ -1,15 +1,3 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ \ No newline at end of file +// SPDX-FileCopyrightText: 2022 SAP SE or an SAP affiliate company and Open Component Model contributors. +// +// SPDX-License-Identifier: Apache-2.0 diff --git a/main.go b/main.go index 065aa17..9a1a281 100644 --- a/main.go +++ b/main.go @@ -20,16 +20,16 @@ import ( "sigs.k8s.io/controller-runtime/pkg/healthz" "sigs.k8s.io/controller-runtime/pkg/log/zap" - deliveryv1alpha1 "github.com/open-component-model/git-sync-controller/api/v1alpha1" - "github.com/open-component-model/git-sync-controller/controllers" - "github.com/open-component-model/git-sync-controller/pkg/providers/gogit" + deliveryv1alpha1 "github.com/open-component-model/git-controller/api/v1alpha1" + "github.com/open-component-model/git-controller/controllers" + "github.com/open-component-model/git-controller/pkg/providers/gogit" //+kubebuilder:scaffold:imports ) var ( scheme = runtime.NewScheme() setupLog = ctrl.Log.WithName("setup") - ociAgent = "git-sync-controller/v1alpha1" + ociAgent = "git-controller/v1alpha1" ) func init() { @@ -90,12 +90,12 @@ func main() { cache := oci.NewClient(ociRegistryAddr) gitClient := gogit.NewGoGit(ctrl.Log, cache) - if err = (&controllers.GitSyncReconciler{ + if err = (&controllers.SyncReconciler{ Client: mgr.GetClient(), Scheme: mgr.GetScheme(), Git: gitClient, }).SetupWithManager(mgr); err != nil { - setupLog.Error(err, "unable to create controller", "controller", "GitSync") + setupLog.Error(err, "unable to create controller", "controller", "Sync") os.Exit(1) } //+kubebuilder:scaffold:builder diff --git a/pkg/providers/gogit/git.go b/pkg/providers/gogit/git.go index b8a2dc5..12a34b9 100644 --- a/pkg/providers/gogit/git.go +++ b/pkg/providers/gogit/git.go @@ -22,7 +22,7 @@ import ( "github.com/open-component-model/ocm-controller/pkg/cache" "github.com/open-component-model/ocm-controller/pkg/ocm" - "github.com/open-component-model/git-sync-controller/pkg" + "github.com/open-component-model/git-controller/pkg" ) type Git struct { diff --git a/pkg/version/generate/release_generate.go b/pkg/version/generate/release_generate.go index cc8baa2..6259e7f 100644 --- a/pkg/version/generate/release_generate.go +++ b/pkg/version/generate/release_generate.go @@ -11,7 +11,7 @@ import ( "github.com/Masterminds/semver/v3" - "github.com/open-component-model/git-sync-controller/pkg/version" + "github.com/open-component-model/git-controller/pkg/version" ) func main() {