Skip to content

Commit

Permalink
remove node-ca daemon
Browse files Browse the repository at this point in the history
removes the node-ca daemon from fresh installs, as well as existing
(upgraded) clusters.
  • Loading branch information
flavianmissi committed Jul 3, 2023
1 parent 57078a8 commit d3d8696
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 385 deletions.
19 changes: 0 additions & 19 deletions bindata/assets.go

This file was deleted.

79 changes: 0 additions & 79 deletions bindata/nodecadaemon.yaml

This file was deleted.

70 changes: 21 additions & 49 deletions pkg/operator/nodecadaemon.go
Expand Up @@ -5,9 +5,8 @@ import (
"fmt"
"time"

appsv1 "k8s.io/api/apps/v1"
"k8s.io/apimachinery/pkg/api/errors"
utilerrors "k8s.io/apimachinery/pkg/util/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/apimachinery/pkg/util/wait"
appsv1informers "k8s.io/client-go/informers/apps/v1"
Expand Down Expand Up @@ -122,65 +121,38 @@ func (c *NodeCADaemonController) sync() error {
Status: operatorv1.ConditionUnknown,
}

dsObj, err := gen.Get()
_, err := gen.Get()
if errors.IsNotFound(err) {
availableCondition.Status = operatorv1.ConditionFalse
availableCondition.Reason = "NotFound"
availableCondition.Message = "The daemon set node-ca does not exist"
availableCondition.Status = operatorv1.ConditionTrue
availableCondition.Reason = "AsExpected"
availableCondition.Message = "The daemon set node-ca is removed"

progressingCondition.Status = operatorv1.ConditionTrue
progressingCondition.Reason = "NotFound"
progressingCondition.Message = "The daemon set node-ca does not exist"
progressingCondition.Status = operatorv1.ConditionFalse
progressingCondition.Reason = "AsExpected"
progressingCondition.Message = "The daemon set node-ca is removed"
} else if err != nil {
availableCondition.Reason = "Unknown"
availableCondition.Message = fmt.Sprintf("Unable to check daemon set availability: %s", err)
availableCondition.Message = fmt.Sprintf("Unable to check daemon set existence: %s", err)

progressingCondition.Reason = "Unknown"
progressingCondition.Message = fmt.Sprintf("Unable to check daemon set progress: %s", err)
progressingCondition.Message = fmt.Sprintf("Unable to check daemon set existence: %s", err)
} else {
ds := dsObj.(*appsv1.DaemonSet)
if ds.Status.NumberAvailable > 0 {
availableCondition.Status = operatorv1.ConditionTrue
availableCondition.Reason = "AsExpected"
availableCondition.Message = "The daemon set node-ca has available replicas"
} else {
availableCondition.Status = operatorv1.ConditionFalse
availableCondition.Reason = "NoAvailableReplicas"
availableCondition.Message = "The daemon set node-ca does not have available replicas"
gracePeriod := int64(0)
propagationPolicy := metav1.DeletePropagationForeground
opts := metav1.DeleteOptions{
GracePeriodSeconds: &gracePeriod,
PropagationPolicy: &propagationPolicy,
}
err := gen.Delete(opts)
if err != nil {
availableCondition.Reason = "Unknown"
availableCondition.Message = fmt.Sprintf("Unable to delete daemon set: %s", err)

if ds.Generation != ds.Status.ObservedGeneration {
progressingCondition.Status = operatorv1.ConditionTrue
progressingCondition.Reason = "Progressing"
progressingCondition.Message = "The daemon set node-ca is updating node pods"
} else if ds.Status.NumberUnavailable > 0 {
progressingCondition.Status = operatorv1.ConditionTrue
progressingCondition.Reason = "Unavailable"
progressingCondition.Message = "The daemon set node-ca is deploying node pods"
} else {
progressingCondition.Status = operatorv1.ConditionFalse
progressingCondition.Reason = "AsExpected"
progressingCondition.Message = "The daemon set node-ca is deployed"
progressingCondition.Reason = "Unknown"
progressingCondition.Message = fmt.Sprintf("Unable to delete daemon set: %s", err)
}
}

err = resource.ApplyMutator(gen)
if err != nil {
_, _, updateError := v1helpers.UpdateStatus(
ctx,
c.operatorClient,
v1helpers.UpdateConditionFn(availableCondition),
v1helpers.UpdateConditionFn(progressingCondition),
v1helpers.UpdateConditionFn(operatorv1.OperatorCondition{
Type: "NodeCADaemonControllerDegraded",
Status: operatorv1.ConditionTrue,
Reason: "Error",
Message: err.Error(),
}),
)
return utilerrors.NewAggregate([]error{err, updateError})
}

_, _, err = v1helpers.UpdateStatus(
ctx,
c.operatorClient,
Expand Down
48 changes: 3 additions & 45 deletions pkg/resource/nodecadaemon.go
Expand Up @@ -2,7 +2,6 @@ package resource

import (
"context"
"os"

appsv1 "k8s.io/api/apps/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
Expand All @@ -11,14 +10,9 @@ import (
appsv1listers "k8s.io/client-go/listers/apps/v1"
corev1listers "k8s.io/client-go/listers/core/v1"

operatorv1 "github.com/openshift/api/operator/v1"
"github.com/openshift/library-go/pkg/operator/events"
"github.com/openshift/library-go/pkg/operator/resource/resourceapply"
"github.com/openshift/library-go/pkg/operator/resource/resourcemerge"
"github.com/openshift/library-go/pkg/operator/resource/resourceread"
"github.com/openshift/library-go/pkg/operator/v1helpers"

assets "github.com/openshift/cluster-image-registry-operator/bindata"
"github.com/openshift/cluster-image-registry-operator/pkg/defaults"
)

Expand Down Expand Up @@ -59,51 +53,15 @@ func (ds *generatorNodeCADaemonSet) Get() (runtime.Object, error) {
}

func (ds *generatorNodeCADaemonSet) expected() *appsv1.DaemonSet {
daemonSet := resourceread.ReadDaemonSetV1OrDie(assets.MustAsset("nodecadaemon.yaml"))
daemonSet.Spec.Template.Spec.Containers[0].Image = os.Getenv("IMAGE")
return daemonSet
return nil
}

func (ds *generatorNodeCADaemonSet) Create() (runtime.Object, error) {
dep, _, err := ds.Update(nil)
return dep, err
return nil, nil
}

func (ds *generatorNodeCADaemonSet) Update(o runtime.Object) (runtime.Object, bool, error) {
desiredDaemonSet := ds.expected()

_, opStatus, _, err := ds.operatorClient.GetOperatorState()
if err != nil {
return nil, false, err
}
actualDaemonSet, updated, err := resourceapply.ApplyDaemonSet(
context.TODO(),
ds.client,
ds.eventRecorder,
desiredDaemonSet,
resourcemerge.ExpectedDaemonSetGeneration(desiredDaemonSet, opStatus.Generations),
)
if err != nil {
return o, updated, err
}

if updated {
updateStatusFn := func(newStatus *operatorv1.OperatorStatus) error {
resourcemerge.SetDaemonSetGeneration(&newStatus.Generations, actualDaemonSet)
return nil
}

_, _, err = v1helpers.UpdateStatus(
context.TODO(),
ds.operatorClient,
updateStatusFn,
)
if err != nil {
return actualDaemonSet, updated, err
}
}

return actualDaemonSet, updated, nil
return nil, false, nil
}

func (ds *generatorNodeCADaemonSet) Delete(opts metav1.DeleteOptions) error {
Expand Down
69 changes: 0 additions & 69 deletions pkg/resource/nodecadaemon_test.go

This file was deleted.

0 comments on commit d3d8696

Please sign in to comment.