Skip to content

Commit

Permalink
extract field owner and namespace
Browse files Browse the repository at this point in the history
  • Loading branch information
lindnerby committed Jul 11, 2024
1 parent 149bd25 commit 2c7ac4e
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 42 deletions.
31 changes: 0 additions & 31 deletions internal/declarative/v2/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (
"strconv"
"time"

apimetav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
k8slabels "k8s.io/apimachinery/pkg/labels"
"k8s.io/client-go/rest"
Expand All @@ -20,15 +19,12 @@ import (
)

const (
FieldOwnerDefault = "declarative.kyma-project.io/applier"
EventRecorderDefault = "declarative.kyma-project.io/events"
DefaultInMemoryParseTTL = 24 * time.Hour
)

func DefaultOptions() *Options {
return (&Options{}).Apply(
WithNamespace(apimetav1.NamespaceDefault, false),
WithFieldOwner(FieldOwnerDefault),
WithPostRenderTransform(
ManagedByDeclarativeV2,
watchedByOwnedBy,
Expand Down Expand Up @@ -56,11 +52,7 @@ type Options struct {
ManifestCache
CustomReadyCheck ReadyCheck

Namespace string
CreateNamespace bool

ServerSideApply bool
FieldOwner client.FieldOwner

PostRenderTransforms []ObjectTransform

Expand All @@ -85,29 +77,6 @@ func (o *Options) Apply(options ...Option) *Options {
return o
}

type WithNamespaceOption struct {
name string
createIfMissing bool
}

func WithNamespace(name string, createIfMissing bool) WithNamespaceOption {
return WithNamespaceOption{
name: name,
createIfMissing: createIfMissing,
}
}

func (o WithNamespaceOption) Apply(options *Options) {
options.Namespace = o.name
options.CreateNamespace = o.createIfMissing
}

type WithFieldOwner client.FieldOwner

func (o WithFieldOwner) Apply(options *Options) {
options.FieldOwner = client.FieldOwner(o)
}

type WithManagerOption struct {
manager.Manager
}
Expand Down
23 changes: 12 additions & 11 deletions internal/declarative/v2/reconciler.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,11 @@ var (
)

const (
namespaceNotBeRemoved = "kyma-system"
CustomResourceManagerFinalizer = "resource.kyma-project.io/finalizer"
SyncedOCIRefAnnotation = "sync-oci-ref"
defaultFinalizer = "declarative.kyma-project.io/finalizer"
namespaceNotBeRemoved = "kyma-system"
CustomResourceManagerFinalizer = "resource.kyma-project.io/finalizer"
SyncedOCIRefAnnotation = "sync-oci-ref"
defaultFinalizer = "declarative.kyma-project.io/finalizer"
defaultFieldOwner client.FieldOwner = "declarative.kyma-project.io/applier"
)

func NewFromManager(mgr manager.Manager, prototype Object, requeueIntervals queue.RequeueIntervals,
Expand Down Expand Up @@ -312,7 +313,7 @@ func (r *Reconciler) renderResources(
var err error
var target, current ResourceList

converter := NewResourceToInfoConverter(ResourceInfoConverter(clnt), r.Namespace)
converter := NewResourceToInfoConverter(ResourceInfoConverter(clnt), apimetav1.NamespaceDefault)

if target, err = r.renderTargetResources(ctx, clnt, converter, obj, spec); err != nil {
obj.SetStatus(status.WithState(shared.StateError).WithErr(err))
Expand All @@ -339,7 +340,7 @@ func (r *Reconciler) syncResources(ctx context.Context, clnt Client, obj Object,
) error {
status := obj.GetStatus()

if err := ConcurrentSSA(clnt, r.FieldOwner).Run(ctx, target); err != nil {
if err := ConcurrentSSA(clnt, defaultFieldOwner).Run(ctx, target); err != nil {
obj.SetStatus(status.WithState(shared.StateError).WithErr(err))
return err
}
Expand Down Expand Up @@ -595,12 +596,12 @@ func (r *Reconciler) getTargetClient(ctx context.Context, obj Object) (Client, e
r.AddClient(clientsCacheKey, clnt)
}

if r.Namespace != apimetav1.NamespaceNone && r.Namespace != apimetav1.NamespaceDefault {
if apimetav1.NamespaceDefault != apimetav1.NamespaceNone && apimetav1.NamespaceDefault != apimetav1.NamespaceDefault {

Check failure on line 599 in internal/declarative/v2/reconciler.go

View workflow job for this annotation

GitHub Actions / lint

dupSubExpr: suspicious identical LHS and RHS for `!=` operator (gocritic)
err := clnt.Patch(
ctx, &apicorev1.Namespace{
TypeMeta: apimetav1.TypeMeta{APIVersion: "v1", Kind: "Namespace"},
ObjectMeta: apimetav1.ObjectMeta{Name: r.Namespace},
}, client.Apply, client.ForceOwnership, r.FieldOwner,
ObjectMeta: apimetav1.ObjectMeta{Name: apimetav1.NamespaceDefault},
}, client.Apply, client.ForceOwnership, defaultFieldOwner,
)
if err != nil {
return nil, fmt.Errorf("failed to patch namespace: %w", err)
Expand Down Expand Up @@ -651,7 +652,7 @@ func (r *Reconciler) finishReconcile(ctx context.Context, obj Object,
func (r *Reconciler) patchStatusIfDiffExist(ctx context.Context, obj Object, previousStatus shared.Status) error {
if hasStatusDiff(obj.GetStatus(), previousStatus) {
resetNonPatchableField(obj)
if err := r.Status().Patch(ctx, obj, client.Apply, client.ForceOwnership, r.FieldOwner); err != nil {
if err := r.Status().Patch(ctx, obj, client.Apply, client.ForceOwnership, defaultFieldOwner); err != nil {
return fmt.Errorf("failed to patch status: %w", err)
}
}
Expand All @@ -668,7 +669,7 @@ func (r *Reconciler) ssaSpec(ctx context.Context, obj client.Object,
) (ctrl.Result, error) {
resetNonPatchableField(obj)
r.ManifestMetrics.RecordRequeueReason(requeueReason, queue.IntendedRequeue)
if err := r.Patch(ctx, obj, client.Apply, client.ForceOwnership, r.FieldOwner); err != nil {
if err := r.Patch(ctx, obj, client.Apply, client.ForceOwnership, defaultFieldOwner); err != nil {
r.Event(obj, "Warning", "PatchObject", err.Error())
return ctrl.Result{}, fmt.Errorf("failed to patch object: %w", err)
}
Expand Down

0 comments on commit 2c7ac4e

Please sign in to comment.