@@ -23,21 +23,21 @@ package resources
2323import (
2424 "context"
2525
26- "github.com/arangodb/kube-arangodb/pkg/util/globals"
27-
28- "github.com/arangodb/kube-arangodb/pkg/deployment/patch"
29- "github.com/arangodb/kube-arangodb/pkg/util/collection"
30- inspectorInterface "github.com/arangodb/kube-arangodb/pkg/util/k8sutil/inspector"
3126 monitoring "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1"
27+ "github.com/rs/zerolog/log"
28+ core "k8s.io/api/core/v1"
29+ policyv1 "k8s.io/api/policy/v1"
30+ policyv1beta1 "k8s.io/api/policy/v1beta1"
31+ meta "k8s.io/apimachinery/pkg/apis/meta/v1"
3232 "k8s.io/apimachinery/pkg/types"
3333
3434 "github.com/arangodb/kube-arangodb/pkg/apis/deployment"
3535 api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1"
36+ "github.com/arangodb/kube-arangodb/pkg/deployment/patch"
37+ "github.com/arangodb/kube-arangodb/pkg/util/collection"
38+ "github.com/arangodb/kube-arangodb/pkg/util/globals"
3639 "github.com/arangodb/kube-arangodb/pkg/util/k8sutil"
37- "github.com/rs/zerolog/log"
38- core "k8s.io/api/core/v1"
39- policy "k8s.io/api/policy/v1beta1"
40- meta "k8s.io/apimachinery/pkg/apis/meta/v1"
40+ inspectorInterface "github.com/arangodb/kube-arangodb/pkg/util/k8sutil/inspector"
4141)
4242
4343type PatchFunc func (name string , d []byte ) error
@@ -98,8 +98,15 @@ func (r *Resources) EnsureAnnotations(ctx context.Context, cachedStatus inspecto
9898
9999 patchPDB := func (name string , d []byte ) error {
100100 return globals .GetGlobalTimeouts ().Kubernetes ().RunWithTimeout (ctx , func (ctxChild context.Context ) error {
101+ if _ , err := cachedStatus .PodDisruptionBudget ().V1 (); err == nil {
102+ _ , err = cachedStatus .PodDisruptionBudgetsModInterface ().V1 ().Patch (ctxChild , name ,
103+ types .JSONPatchType , d , meta.PatchOptions {})
104+ return err
105+ }
106+
101107 _ , err := cachedStatus .PodDisruptionBudgetsModInterface ().V1Beta1 ().Patch (ctxChild , name ,
102108 types .JSONPatchType , d , meta.PatchOptions {})
109+
103110 return err
104111 })
105112 }
@@ -206,15 +213,29 @@ func ensureServicesAnnotations(patch PatchFunc, cachedStatus inspectorInterface.
206213 return nil
207214}
208215
209- func ensurePdbsAnnotations (patch PatchFunc , cachedStatus inspectorInterface.Inspector , kind , name , namespace string , spec api.DeploymentSpec ) error {
210- i , err := cachedStatus .PodDisruptionBudget ().V1Beta1 ()
216+ func ensurePdbsAnnotations (patch PatchFunc , cachedStatus inspectorInterface.Inspector , kind , name , namespace string ,
217+ spec api.DeploymentSpec ) error {
218+ if inspector , err := cachedStatus .PodDisruptionBudget ().V1 (); err == nil {
219+ if err := inspector .Iterate (func (podDisruptionBudget * policyv1.PodDisruptionBudget ) error {
220+ ensureAnnotationsMap (podDisruptionBudget .Kind , podDisruptionBudget , spec , patch )
221+ return nil
222+ }, func (podDisruptionBudget * policyv1.PodDisruptionBudget ) bool {
223+ return k8sutil .IsChildResource (kind , name , namespace , podDisruptionBudget )
224+ }); err != nil {
225+ return err
226+ }
227+
228+ return nil
229+ }
230+
231+ inspector , err := cachedStatus .PodDisruptionBudget ().V1Beta1 ()
211232 if err != nil {
212233 return err
213234 }
214- if err := i .Iterate (func (podDisruptionBudget * policy .PodDisruptionBudget ) error {
235+ if err := inspector .Iterate (func (podDisruptionBudget * policyv1beta1 .PodDisruptionBudget ) error {
215236 ensureAnnotationsMap (podDisruptionBudget .Kind , podDisruptionBudget , spec , patch )
216237 return nil
217- }, func (podDisruptionBudget * policy .PodDisruptionBudget ) bool {
238+ }, func (podDisruptionBudget * policyv1beta1 .PodDisruptionBudget ) bool {
218239 return k8sutil .IsChildResource (kind , name , namespace , podDisruptionBudget )
219240 }); err != nil {
220241 return err
0 commit comments