Skip to content

Commit

Permalink
chore: migrate to policy/v1
Browse files Browse the repository at this point in the history
  • Loading branch information
yz89122 committed Oct 5, 2023
1 parent 760d584 commit cf635e2
Show file tree
Hide file tree
Showing 19 changed files with 90 additions and 90 deletions.
2 changes: 1 addition & 1 deletion deploy/manager/dev/10_controller_pdb.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: policy/v1beta1
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: scylla-manager-controller
Expand Down
2 changes: 1 addition & 1 deletion deploy/manager/prod/10_controller_pdb.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: policy/v1beta1
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: scylla-manager-controller
Expand Down
2 changes: 1 addition & 1 deletion deploy/operator/10_operator.pdb.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: policy/v1beta1
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: scylla-operator
Expand Down
2 changes: 1 addition & 1 deletion deploy/operator/10_webhookserver.pdb.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: policy/v1beta1
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: webhook-server
Expand Down
2 changes: 1 addition & 1 deletion examples/common/manager.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ metadata:
name: scylla-manager

---
apiVersion: policy/v1beta1
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: scylla-manager-controller
Expand Down
4 changes: 2 additions & 2 deletions examples/common/operator.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2436,7 +2436,7 @@ spec:
selfSigned: {}

---
apiVersion: policy/v1beta1
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: scylla-operator
Expand Down Expand Up @@ -2489,7 +2489,7 @@ webhooks:
- scyllaclusters

---
apiVersion: policy/v1beta1
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: webhook-server
Expand Down
2 changes: 1 addition & 1 deletion helm/scylla-manager/templates/controller_pdb.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: policy/v1beta1
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: scylla-manager-controller
Expand Down
2 changes: 1 addition & 1 deletion helm/scylla-operator/templates/operator.pdb.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{{- if gt .Values.replicas 1.0 }}
apiVersion: policy/v1beta1
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: scylla-operator
Expand Down
2 changes: 1 addition & 1 deletion helm/scylla-operator/templates/webhookserver.pdb.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{{- if gt .Values.webhookServerReplicas 1.0 }}
apiVersion: policy/v1beta1
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: webhook-server
Expand Down
2 changes: 1 addition & 1 deletion pkg/cmd/operator/operator.go
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ func (o *OperatorOptions) run(ctx context.Context, streams genericclioptions.IOS
kubeInformers.Core().V1().Services(),
kubeInformers.Core().V1().Secrets(),
kubeInformers.Apps().V1().StatefulSets(),
kubeInformers.Policy().V1beta1().PodDisruptionBudgets(),
kubeInformers.Policy().V1().PodDisruptionBudgets(),
scyllaInformers.Scylla().V1().ScyllaClusters(),
o.OperatorImage,
)
Expand Down
20 changes: 10 additions & 10 deletions pkg/controller/scyllacluster/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import (
"github.com/scylladb/scylla-operator/pkg/scheme"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
policyv1beta1 "k8s.io/api/policy/v1beta1"
policyv1 "k8s.io/api/policy/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
Expand All @@ -23,12 +23,12 @@ import (
"k8s.io/apimachinery/pkg/util/wait"
appsv1informers "k8s.io/client-go/informers/apps/v1"
corev1informers "k8s.io/client-go/informers/core/v1"
policyv1beta1informers "k8s.io/client-go/informers/policy/v1beta1"
policyv1informers "k8s.io/client-go/informers/policy/v1"
"k8s.io/client-go/kubernetes"
corev1client "k8s.io/client-go/kubernetes/typed/core/v1"
appsv1listers "k8s.io/client-go/listers/apps/v1"
corev1listers "k8s.io/client-go/listers/core/v1"
policyv1beta1listers "k8s.io/client-go/listers/policy/v1beta1"
policyv1listers "k8s.io/client-go/listers/policy/v1"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/util/workqueue"
Expand Down Expand Up @@ -61,7 +61,7 @@ type Controller struct {
serviceLister corev1listers.ServiceLister
secretLister corev1listers.SecretLister
statefulSetLister appsv1listers.StatefulSetLister
pdbLister policyv1beta1listers.PodDisruptionBudgetLister
pdbLister policyv1listers.PodDisruptionBudgetLister
scyllaLister scyllav1listers.ScyllaClusterLister

cachesToSync []cache.InformerSynced
Expand All @@ -78,7 +78,7 @@ func NewController(
serviceInformer corev1informers.ServiceInformer,
secretInformer corev1informers.SecretInformer,
statefulSetInformer appsv1informers.StatefulSetInformer,
pdbInformer policyv1beta1informers.PodDisruptionBudgetInformer,
pdbInformer policyv1informers.PodDisruptionBudgetInformer,
scyllaClusterInformer scyllav1informers.ScyllaClusterInformer,
operatorImage string,
) (*Controller, error) {
Expand Down Expand Up @@ -515,14 +515,14 @@ func (scc *Controller) deleteStatefulSet(obj interface{}) {
}

func (scc *Controller) addPodDisruptionBudget(obj interface{}) {
pdb := obj.(*policyv1beta1.PodDisruptionBudget)
pdb := obj.(*policyv1.PodDisruptionBudget)
klog.V(4).InfoS("Observed addition of PodDisruptionBudget", "PodDisruptionBudget", klog.KObj(pdb))
scc.enqueueOwner(pdb)
}

func (scc *Controller) updatePodDisruptionBudget(old, cur interface{}) {
oldPDB := old.(*policyv1beta1.PodDisruptionBudget)
currentPDB := cur.(*policyv1beta1.PodDisruptionBudget)
oldPDB := old.(*policyv1.PodDisruptionBudget)
currentPDB := cur.(*policyv1.PodDisruptionBudget)

if currentPDB.UID != oldPDB.UID {
key, err := keyFunc(oldPDB)
Expand All @@ -541,14 +541,14 @@ func (scc *Controller) updatePodDisruptionBudget(old, cur interface{}) {
}

func (scc *Controller) deletePodDisruptionBudget(obj interface{}) {
pdb, ok := obj.(*policyv1beta1.PodDisruptionBudget)
pdb, ok := obj.(*policyv1.PodDisruptionBudget)
if !ok {
tombstone, ok := obj.(cache.DeletedFinalStateUnknown)
if !ok {
utilruntime.HandleError(fmt.Errorf("couldn't get object from tombstone %#v", obj))
return
}
pdb, ok = tombstone.Obj.(*policyv1beta1.PodDisruptionBudget)
pdb, ok = tombstone.Obj.(*policyv1.PodDisruptionBudget)
if !ok {
utilruntime.HandleError(fmt.Errorf("tombstone contained object that is not a PodDisruptionBudget %#v", obj))
return
Expand Down
8 changes: 4 additions & 4 deletions pkg/controller/scyllacluster/resource.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
"github.com/scylladb/scylla-operator/pkg/naming"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
"k8s.io/api/policy/v1beta1"
policyv1 "k8s.io/api/policy/v1"
"k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
Expand Down Expand Up @@ -600,9 +600,9 @@ func agentContainer(r scyllav1.RackSpec, c *scyllav1.ScyllaCluster) corev1.Conta
return cnt
}

func MakePodDisruptionBudget(c *scyllav1.ScyllaCluster) *v1beta1.PodDisruptionBudget {
func MakePodDisruptionBudget(c *scyllav1.ScyllaCluster) *policyv1.PodDisruptionBudget {
maxUnavailable := intstr.FromInt(1)
return &v1beta1.PodDisruptionBudget{
return &policyv1.PodDisruptionBudget{
ObjectMeta: metav1.ObjectMeta{
Name: naming.PodDisruptionBudgetName(c),
Namespace: c.Namespace,
Expand All @@ -611,7 +611,7 @@ func MakePodDisruptionBudget(c *scyllav1.ScyllaCluster) *v1beta1.PodDisruptionBu
},
Labels: naming.ClusterLabels(c),
},
Spec: v1beta1.PodDisruptionBudgetSpec{
Spec: policyv1.PodDisruptionBudgetSpec{
MaxUnavailable: &maxUnavailable,
Selector: metav1.SetAsLabelSelector(naming.ClusterLabels(c)),
},
Expand Down
4 changes: 2 additions & 2 deletions pkg/controller/scyllacluster/sync.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
"github.com/scylladb/scylla-operator/pkg/naming"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
policyv1beta1 "k8s.io/api/policy/v1beta1"
policyv1 "k8s.io/api/policy/v1"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
Expand Down Expand Up @@ -151,7 +151,7 @@ func (scc *Controller) getSecrets(ctx context.Context, sc *scyllav1.ScyllaCluste
return cm.ClaimSecrets(secrets)
}

func (scc *Controller) getPDBs(ctx context.Context, sc *scyllav1.ScyllaCluster) (map[string]*policyv1beta1.PodDisruptionBudget, error) {
func (scc *Controller) getPDBs(ctx context.Context, sc *scyllav1.ScyllaCluster) (map[string]*policyv1.PodDisruptionBudget, error) {
// List all Pdbs to find even those that no longer match our selector.
// They will be orphaned in ClaimPdbs().
pdbs, err := scc.pdbLister.PodDisruptionBudgets(sc.Namespace).List(labels.Everything())
Expand Down
8 changes: 4 additions & 4 deletions pkg/controller/scyllacluster/sync_pdb.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (

scyllav1 "github.com/scylladb/scylla-operator/pkg/api/scylla/v1"
"github.com/scylladb/scylla-operator/pkg/resourceapply"
policyv1beta1 "k8s.io/api/policy/v1beta1"
policyv1 "k8s.io/api/policy/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
utilerrors "k8s.io/apimachinery/pkg/util/errors"
)
Expand All @@ -15,7 +15,7 @@ func (scc *Controller) syncPodDisruptionBudgets(
ctx context.Context,
sc *scyllav1.ScyllaCluster,
status *scyllav1.ScyllaClusterStatus,
pdbs map[string]*policyv1beta1.PodDisruptionBudget,
pdbs map[string]*policyv1.PodDisruptionBudget,
) (*scyllav1.ScyllaClusterStatus, error) {
var err error

Expand All @@ -34,7 +34,7 @@ func (scc *Controller) syncPodDisruptionBudgets(
}

propagationPolicy := metav1.DeletePropagationBackground
err = scc.kubeClient.PolicyV1beta1().PodDisruptionBudgets(pdb.Namespace).Delete(ctx, pdb.Name, metav1.DeleteOptions{
err = scc.kubeClient.PolicyV1().PodDisruptionBudgets(pdb.Namespace).Delete(ctx, pdb.Name, metav1.DeleteOptions{
Preconditions: &metav1.Preconditions{
UID: &pdb.UID,
},
Expand All @@ -48,7 +48,7 @@ func (scc *Controller) syncPodDisruptionBudgets(
}

// TODO: Remove forced ownership in v1.5 (#672)
_, _, err = resourceapply.ApplyPodDisruptionBudget(ctx, scc.kubeClient.PolicyV1beta1(), scc.pdbLister, scc.eventRecorder, requiredPDB, true)
_, _, err = resourceapply.ApplyPodDisruptionBudget(ctx, scc.kubeClient.PolicyV1(), scc.pdbLister, scc.eventRecorder, requiredPDB, true)
if err != nil {
return status, fmt.Errorf("can't apply pdb: %w", err)
}
Expand Down
16 changes: 8 additions & 8 deletions pkg/controllertools/pdbmanager.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"fmt"

kubecontroller "github.com/scylladb/scylla-operator/pkg/thirdparty/k8s.io/kubernetes/pkg/controller"
policyv1beta1 "k8s.io/api/policy/v1beta1"
policyv1 "k8s.io/api/policy/v1"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
Expand All @@ -29,7 +29,7 @@ type RealPodDisruptionBudgetControl struct {
var _ PodDisruptionBudgetControlInterface = &RealPodDisruptionBudgetControl{}

func (r RealPodDisruptionBudgetControl) PatchPodDisruptionBudget(ctx context.Context, namespace, name string, pt types.PatchType, data []byte, options metav1.PatchOptions) error {
_, err := r.KubeClient.PolicyV1beta1().PodDisruptionBudgets(namespace).Patch(ctx, name, pt, data, options)
_, err := r.KubeClient.PolicyV1().PodDisruptionBudgets(namespace).Patch(ctx, name, pt, data, options)
return err
}

Expand Down Expand Up @@ -60,18 +60,18 @@ func NewPodDisruptionBudgetControllerRefManager(
}
}

func (m *PodDisruptionBudgetControllerRefManager) ClaimPodDisruptionBudgets(podDisruptionBudgets []*policyv1beta1.PodDisruptionBudget) (map[string]*policyv1beta1.PodDisruptionBudget, error) {
func (m *PodDisruptionBudgetControllerRefManager) ClaimPodDisruptionBudgets(podDisruptionBudgets []*policyv1.PodDisruptionBudget) (map[string]*policyv1.PodDisruptionBudget, error) {
match := func(obj metav1.Object) bool {
return m.Selector.Matches(labels.Set(obj.GetLabels()))
}
adopt := func(obj metav1.Object) error {
return m.AdoptPodDisruptionBudget(obj.(*policyv1beta1.PodDisruptionBudget))
return m.AdoptPodDisruptionBudget(obj.(*policyv1.PodDisruptionBudget))
}
release := func(obj metav1.Object) error {
return m.ReleasePodDisruptionBudget(obj.(*policyv1beta1.PodDisruptionBudget))
return m.ReleasePodDisruptionBudget(obj.(*policyv1.PodDisruptionBudget))
}

claimedMap := make(map[string]*policyv1beta1.PodDisruptionBudget, len(podDisruptionBudgets))
claimedMap := make(map[string]*policyv1.PodDisruptionBudget, len(podDisruptionBudgets))
var errors []error
for _, podDisruptionBudget := range podDisruptionBudgets {
ok, err := m.ClaimObject(podDisruptionBudget, match, adopt, release)
Expand All @@ -86,7 +86,7 @@ func (m *PodDisruptionBudgetControllerRefManager) ClaimPodDisruptionBudgets(podD
return claimedMap, utilerrors.NewAggregate(errors)
}

func (m *PodDisruptionBudgetControllerRefManager) AdoptPodDisruptionBudget(podDisruptionBudget *policyv1beta1.PodDisruptionBudget) error {
func (m *PodDisruptionBudgetControllerRefManager) AdoptPodDisruptionBudget(podDisruptionBudget *policyv1.PodDisruptionBudget) error {
err := m.CanAdopt()
if err != nil {
return fmt.Errorf("can't adopt PodDisruptionBudget %v/%v (%v): %v", podDisruptionBudget.Namespace, podDisruptionBudget.Name, podDisruptionBudget.UID, err)
Expand All @@ -102,7 +102,7 @@ func (m *PodDisruptionBudgetControllerRefManager) AdoptPodDisruptionBudget(podDi
return m.PodDisruptionBudgetControl.PatchPodDisruptionBudget(m.ctx, podDisruptionBudget.Namespace, podDisruptionBudget.Name, types.StrategicMergePatchType, patchBytes, metav1.PatchOptions{})
}

func (m *PodDisruptionBudgetControllerRefManager) ReleasePodDisruptionBudget(podDisruptionBudget *policyv1beta1.PodDisruptionBudget) error {
func (m *PodDisruptionBudgetControllerRefManager) ReleasePodDisruptionBudget(podDisruptionBudget *policyv1.PodDisruptionBudget) error {
klog.V(2).InfoS("Patching PodDisruptionBudget to remove its controllerRef",
"PodDisruptionBudget",
klog.KObj(podDisruptionBudget),
Expand Down
14 changes: 7 additions & 7 deletions pkg/resourceapply/policy.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ import (
"fmt"

"github.com/scylladb/scylla-operator/pkg/naming"
policyv1beta1 "k8s.io/api/policy/v1beta1"
policyv1 "k8s.io/api/policy/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
policyv1beta1client "k8s.io/client-go/kubernetes/typed/policy/v1beta1"
policyv1beta1listers "k8s.io/client-go/listers/policy/v1beta1"
policyv1client "k8s.io/client-go/kubernetes/typed/policy/v1"
policyv1listers "k8s.io/client-go/listers/policy/v1"
"k8s.io/client-go/tools/record"
"k8s.io/klog/v2"
)
Expand All @@ -21,12 +21,12 @@ import (
// would be adopted but the old objects may not have correct labels that we need to fix in the new version.
func ApplyPodDisruptionBudget(
ctx context.Context,
client policyv1beta1client.PodDisruptionBudgetsGetter,
lister policyv1beta1listers.PodDisruptionBudgetLister,
client policyv1client.PodDisruptionBudgetsGetter,
lister policyv1listers.PodDisruptionBudgetLister,
recorder record.EventRecorder,
required *policyv1beta1.PodDisruptionBudget,
required *policyv1.PodDisruptionBudget,
forceOwnership bool,
) (*policyv1beta1.PodDisruptionBudget, bool, error) {
) (*policyv1.PodDisruptionBudget, bool, error) {
requiredControllerRef := metav1.GetControllerOfNoCopy(required)
if requiredControllerRef == nil {
return nil, false, fmt.Errorf("poddisruptionbudget %q is missing controllerRef", naming.ObjRef(required))
Expand Down
Loading

0 comments on commit cf635e2

Please sign in to comment.