Skip to content

Commit

Permalink
Revendor github.com/gardener/machine-controller-manager@v0.48.1 (ga…
Browse files Browse the repository at this point in the history
…rdener#7599)

* Revendor `github.com/gardener/machine-controller-manager@v0.48.1`

* Adapt code to removed `.status.node` field

See gardener/machine-controller-manager#745

* Delete deprecated provider-specific `MachineClass` CRDs

* Maintain CRDs

* Revert "Delete deprecated provider-specific `MachineClass` CRDs"

This reverts commit f56ca6f.

The in-tree providers are only removed with mcm@v0.49+.

* Revert "Maintain CRDs"

This reverts commit 468e562.

* Address PR review feedback
  • Loading branch information
rfranzke authored and andrerun committed Jul 6, 2023
1 parent 0cee943 commit be60fe2
Show file tree
Hide file tree
Showing 12 changed files with 45 additions and 31 deletions.
2 changes: 1 addition & 1 deletion extensions/pkg/controller/worker/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ func addStateUpdatingController(mgr manager.Manager, options controller.Options,

machinePredicates = []predicate.Predicate{
predicate.Or(
MachineStatusHasChanged(),
MachineNodeInfoHasChanged(),
predicate.GenerationChangedPredicate{},
),
}
Expand Down
7 changes: 4 additions & 3 deletions extensions/pkg/controller/worker/predicate.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,9 @@ import (
"sigs.k8s.io/controller-runtime/pkg/predicate"
)

// MachineStatusHasChanged is a predicate deciding whether the status of a Machine has been changed.
func MachineStatusHasChanged() predicate.Predicate {
// MachineNodeInfoHasChanged is a predicate deciding whether the information about the backing node of a Machine has
// been changed.
func MachineNodeInfoHasChanged() predicate.Predicate {
statusHasChanged := func(oldObj client.Object, newObj client.Object) bool {
oldMachine, ok := oldObj.(*machinev1alpha1.Machine)
if !ok {
Expand All @@ -35,7 +36,7 @@ func MachineStatusHasChanged() predicate.Predicate {
}

return oldMachine.Spec.ProviderID != newMachine.Spec.ProviderID ||
oldMachine.Status.Node != newMachine.Status.Node
oldMachine.Labels[machinev1alpha1.NodeLabelKey] != newMachine.Labels[machinev1alpha1.NodeLabelKey]
}

return predicate.Funcs{
Expand Down
30 changes: 20 additions & 10 deletions extensions/pkg/controller/worker/predicate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,14 @@ import (
machinev1alpha1 "github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/controller-runtime/pkg/event"

"github.com/gardener/gardener/extensions/pkg/controller/worker"
)

var _ = Describe("Worker Predicates", func() {
Describe("#MachineStatusHasChanged", func() {
Describe("#MachineNodeInfoHasChanged", func() {
var (
oldMachine *machinev1alpha1.Machine
newMachine *machinev1alpha1.Machine
Expand Down Expand Up @@ -53,26 +54,35 @@ var _ = Describe("Worker Predicates", func() {
}
})

It("should notice the change of the Node in the Status", func() {
predicate := worker.MachineStatusHasChanged()
newMachine.Status.Node = "ip.10-256-18-291.cluster.node"
It("should notice the change of the provider id", func() {
predicate := worker.MachineNodeInfoHasChanged()
newMachine.Spec.ProviderID = "foo"
Expect(predicate.Create(createEvent)).To(BeTrue())
Expect(predicate.Update(updateEvent)).To(BeTrue())
Expect(predicate.Delete(deleteEvent)).To(BeTrue())
Expect(predicate.Generic(genericEvent)).To(BeFalse())
})

It("should not react when there are no changes of the Node in the Status", func() {
predicate := worker.MachineStatusHasChanged()
oldMachine.Status.Node = "ip.10-256-18-291.cluster.node"
newMachine.Status.Node = "ip.10-256-18-291.cluster.node"
It("should notice the change of the node label", func() {
predicate := worker.MachineNodeInfoHasChanged()
metav1.SetMetaDataLabel(&newMachine.ObjectMeta, "node", "ip.10-256-18-291.cluster.node")
Expect(predicate.Create(createEvent)).To(BeTrue())
Expect(predicate.Update(updateEvent)).To(BeTrue())
Expect(predicate.Delete(deleteEvent)).To(BeTrue())
Expect(predicate.Generic(genericEvent)).To(BeFalse())
})

It("should not react when there are no changes of the node label", func() {
predicate := worker.MachineNodeInfoHasChanged()
metav1.SetMetaDataLabel(&oldMachine.ObjectMeta, "node", "ip.10-256-18-291.cluster.node")
metav1.SetMetaDataLabel(&newMachine.ObjectMeta, "node", "ip.10-256-18-291.cluster.node")
Expect(predicate.Create(createEvent)).To(BeTrue())
Expect(predicate.Update(updateEvent)).To(BeFalse())
Expect(predicate.Delete(deleteEvent)).To(BeTrue())
Expect(predicate.Generic(genericEvent)).To(BeFalse())
})
It("should not react when there is not specified Node in the Status", func() {
predicate := worker.MachineStatusHasChanged()
It("should not react when there is not specified node label", func() {
predicate := worker.MachineNodeInfoHasChanged()
Expect(predicate.Create(createEvent)).To(BeTrue())
Expect(predicate.Update(updateEvent)).To(BeFalse())
Expect(predicate.Delete(deleteEvent)).To(BeTrue())
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ require (
github.com/gardener/dependency-watchdog v0.7.0
github.com/gardener/etcd-druid v0.15.3
github.com/gardener/hvpa-controller/api v0.5.0
github.com/gardener/machine-controller-manager v0.45.0
github.com/gardener/machine-controller-manager v0.48.1
github.com/go-logr/logr v1.2.3
github.com/gogo/protobuf v1.3.2
github.com/golang/mock v1.6.0
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -244,8 +244,8 @@ github.com/gardener/hvpa-controller v0.0.0-20191014062307-fad3bdf06a25/go.mod h1
github.com/gardener/hvpa-controller/api v0.5.0 h1:f4F3O7YUrenwh4S3TgPREPiB287JjjUiUL18OqPLyAA=
github.com/gardener/hvpa-controller/api v0.5.0/go.mod h1:QQl3ELkCaki+8RhXl0FZMfvnm0WCGwGJlGmrxJj6lvM=
github.com/gardener/machine-controller-manager v0.27.0/go.mod h1:zlIxuLQMtRO+aXOFsG6qtYkBmggbWY82K7MSO051ARU=
github.com/gardener/machine-controller-manager v0.45.0 h1:rpf0PHRXJMGY93oMruNP+tnMawKJXhhzCACyNJsT8Lo=
github.com/gardener/machine-controller-manager v0.45.0/go.mod h1:+4j/6ab3jqbM6tM6FPtlajYgaJHM0xZ44ErOjCBlsP8=
github.com/gardener/machine-controller-manager v0.48.1 h1:Oxr5e6gRm7P40Ds4nGlga/0nmfF7cH4rOfjthR6Mm38=
github.com/gardener/machine-controller-manager v0.48.1/go.mod h1:Axeu1Oh3agySk0oR4T+FUNax41Ni2K8tuksu8KRHuh0=
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions vendor/modules.txt
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,8 @@ github.com/gardener/etcd-druid/pkg/utils
# github.com/gardener/hvpa-controller/api v0.5.0
## explicit; go 1.15
github.com/gardener/hvpa-controller/api/v1alpha1
# github.com/gardener/machine-controller-manager v0.45.0
## explicit; go 1.17
# github.com/gardener/machine-controller-manager v0.48.1
## explicit; go 1.19
github.com/gardener/machine-controller-manager/pkg/apis/machine
github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1
# github.com/ghodss/yaml v1.0.0
Expand Down

0 comments on commit be60fe2

Please sign in to comment.