Skip to content

Commit 2aa5209

Browse files
authored
switch to policy API v1 for PDBs (#2008)
* switch to policy API v1 for PDBs * update e2e test dependencies * use kind 0.14.0 * bump K8s client in e2e docker image * bump e2e tests-runner
1 parent a119772 commit 2aa5209

File tree

15 files changed

+42
-42
lines changed

15 files changed

+42
-42
lines changed

e2e/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ RUN apt-get update \
1616
curl \
1717
vim \
1818
&& pip3 install --no-cache-dir -r requirements.txt \
19-
&& curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.22.0/bin/linux/amd64/kubectl \
19+
&& curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.24.3/bin/linux/amd64/kubectl \
2020
&& chmod +x ./kubectl \
2121
&& mv ./kubectl /usr/local/bin/kubectl \
2222
&& apt-get clean \

e2e/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ tools:
4747
# install pinned version of 'kind'
4848
# go install must run outside of a dir with a (module-based) Go project !
4949
# otherwise go install updates project's dependencies and/or behaves differently
50-
cd "/tmp" && GO111MODULE=on go install sigs.k8s.io/kind@v0.11.1
50+
cd "/tmp" && GO111MODULE=on go install sigs.k8s.io/kind@v0.14.0
5151

5252
e2etest: tools copy clean
5353
./run.sh main

e2e/exec_into_env.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
export cluster_name="postgres-operator-e2e-tests"
44
export kubeconfig_path="/tmp/kind-config-${cluster_name}"
55
export operator_image="registry.opensource.zalan.do/acid/postgres-operator:latest"
6-
export e2e_test_runner_image="registry.opensource.zalan.do/acid/postgres-operator-e2e-tests-runner:0.3"
6+
export e2e_test_runner_image="registry.opensource.zalan.do/acid/postgres-operator-e2e-tests-runner:0.4"
77

88
docker run -it --entrypoint /bin/bash --network=host -e "TERM=xterm-256color" \
99
--mount type=bind,source="$(readlink -f ${kubeconfig_path})",target=/root/.kube/config \

e2e/requirements.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
kubernetes==11.0.0
2-
timeout_decorator==0.4.1
3-
pyyaml==5.4.1
1+
kubernetes==24.2.0
2+
timeout_decorator==0.5.0
3+
pyyaml==6.0

e2e/run.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ IFS=$'\n\t'
99
readonly cluster_name="postgres-operator-e2e-tests"
1010
readonly kubeconfig_path="/tmp/kind-config-${cluster_name}"
1111
readonly spilo_image="registry.opensource.zalan.do/acid/spilo-14-e2e:0.1"
12-
readonly e2e_test_runner_image="registry.opensource.zalan.do/acid/postgres-operator-e2e-tests-runner:0.3"
12+
readonly e2e_test_runner_image="registry.opensource.zalan.do/acid/postgres-operator-e2e-tests-runner:0.4"
1313

1414
export GOPATH=${GOPATH-~/go}
1515
export PATH=${GOPATH}/bin:$PATH

e2e/tests/k8s_api.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def __init__(self):
2525
self.apps_v1 = client.AppsV1Api()
2626
self.batch_v1_beta1 = client.BatchV1beta1Api()
2727
self.custom_objects_api = client.CustomObjectsApi()
28-
self.policy_v1_beta1 = client.PolicyV1beta1Api()
28+
self.policy_v1 = client.PolicyV1Api()
2929
self.storage_v1_api = client.StorageV1Api()
3030

3131

@@ -179,7 +179,7 @@ def count_deployments_with_label(self, labels, namespace='default'):
179179
return len(self.api.apps_v1.list_namespaced_deployment(namespace, label_selector=labels).items)
180180

181181
def count_pdbs_with_label(self, labels, namespace='default'):
182-
return len(self.api.policy_v1_beta1.list_namespaced_pod_disruption_budget(
182+
return len(self.api.policy_v1.list_namespaced_pod_disruption_budget(
183183
namespace, label_selector=labels).items)
184184

185185
def count_running_pods(self, labels='application=spilo,cluster-name=acid-minimal-cluster', namespace='default'):
@@ -471,7 +471,7 @@ def count_deployments_with_label(self, labels, namespace='default'):
471471
return len(self.api.apps_v1.list_namespaced_deployment(namespace, label_selector=labels).items)
472472

473473
def count_pdbs_with_label(self, labels, namespace='default'):
474-
return len(self.api.policy_v1_beta1.list_namespaced_pod_disruption_budget(
474+
return len(self.api.policy_v1.list_namespaced_pod_disruption_budget(
475475
namespace, label_selector=labels).items)
476476

477477
def count_running_pods(self, labels='application=spilo,cluster-name=acid-minimal-cluster', namespace='default'):

pkg/cluster/cluster.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import (
2929
"github.com/zalando/postgres-operator/pkg/util/volumes"
3030
appsv1 "k8s.io/api/apps/v1"
3131
v1 "k8s.io/api/core/v1"
32-
policybeta1 "k8s.io/api/policy/v1beta1"
32+
policyv1 "k8s.io/api/policy/v1"
3333
rbacv1 "k8s.io/api/rbac/v1"
3434
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3535
"k8s.io/apimachinery/pkg/types"
@@ -61,7 +61,7 @@ type kubeResources struct {
6161
Endpoints map[PostgresRole]*v1.Endpoints
6262
Secrets map[types.UID]*v1.Secret
6363
Statefulset *appsv1.StatefulSet
64-
PodDisruptionBudget *policybeta1.PodDisruptionBudget
64+
PodDisruptionBudget *policyv1.PodDisruptionBudget
6565
//Pods are treated separately
6666
//PVCs are treated separately
6767
}

pkg/cluster/k8sres.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313

1414
appsv1 "k8s.io/api/apps/v1"
1515
v1 "k8s.io/api/core/v1"
16-
policybeta1 "k8s.io/api/policy/v1beta1"
16+
policyv1 "k8s.io/api/policy/v1"
1717
apierrors "k8s.io/apimachinery/pkg/api/errors"
1818
"k8s.io/apimachinery/pkg/api/resource"
1919
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -1983,7 +1983,7 @@ func (c *Cluster) generateStandbyEnvironment(description *acidv1.StandbyDescript
19831983
return result
19841984
}
19851985

1986-
func (c *Cluster) generatePodDisruptionBudget() *policybeta1.PodDisruptionBudget {
1986+
func (c *Cluster) generatePodDisruptionBudget() *policyv1.PodDisruptionBudget {
19871987
minAvailable := intstr.FromInt(1)
19881988
pdbEnabled := c.OpConfig.EnablePodDisruptionBudget
19891989

@@ -1992,14 +1992,14 @@ func (c *Cluster) generatePodDisruptionBudget() *policybeta1.PodDisruptionBudget
19921992
minAvailable = intstr.FromInt(0)
19931993
}
19941994

1995-
return &policybeta1.PodDisruptionBudget{
1995+
return &policyv1.PodDisruptionBudget{
19961996
ObjectMeta: metav1.ObjectMeta{
19971997
Name: c.podDisruptionBudgetName(),
19981998
Namespace: c.Namespace,
19991999
Labels: c.labelsSet(true),
20002000
Annotations: c.annotationsSet(nil),
20012001
},
2002-
Spec: policybeta1.PodDisruptionBudgetSpec{
2002+
Spec: policyv1.PodDisruptionBudgetSpec{
20032003
MinAvailable: &minAvailable,
20042004
Selector: &metav1.LabelSelector{
20052005
MatchLabels: c.roleLabelsSet(false, Master),

pkg/cluster/k8sres_test.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121

2222
appsv1 "k8s.io/api/apps/v1"
2323
v1 "k8s.io/api/core/v1"
24-
policyv1beta1 "k8s.io/api/policy/v1beta1"
24+
policyv1 "k8s.io/api/policy/v1"
2525
k8serrors "k8s.io/apimachinery/pkg/api/errors"
2626
"k8s.io/apimachinery/pkg/api/resource"
2727
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -1979,7 +1979,7 @@ func TestSidecars(t *testing.T) {
19791979
func TestGeneratePodDisruptionBudget(t *testing.T) {
19801980
tests := []struct {
19811981
c *Cluster
1982-
out policyv1beta1.PodDisruptionBudget
1982+
out policyv1.PodDisruptionBudget
19831983
}{
19841984
// With multiple instances.
19851985
{
@@ -1991,13 +1991,13 @@ func TestGeneratePodDisruptionBudget(t *testing.T) {
19911991
Spec: acidv1.PostgresSpec{TeamID: "myapp", NumberOfInstances: 3}},
19921992
logger,
19931993
eventRecorder),
1994-
policyv1beta1.PodDisruptionBudget{
1994+
policyv1.PodDisruptionBudget{
19951995
ObjectMeta: metav1.ObjectMeta{
19961996
Name: "postgres-myapp-database-pdb",
19971997
Namespace: "myapp",
19981998
Labels: map[string]string{"team": "myapp", "cluster-name": "myapp-database"},
19991999
},
2000-
Spec: policyv1beta1.PodDisruptionBudgetSpec{
2000+
Spec: policyv1.PodDisruptionBudgetSpec{
20012001
MinAvailable: util.ToIntStr(1),
20022002
Selector: &metav1.LabelSelector{
20032003
MatchLabels: map[string]string{"spilo-role": "master", "cluster-name": "myapp-database"},
@@ -2015,13 +2015,13 @@ func TestGeneratePodDisruptionBudget(t *testing.T) {
20152015
Spec: acidv1.PostgresSpec{TeamID: "myapp", NumberOfInstances: 0}},
20162016
logger,
20172017
eventRecorder),
2018-
policyv1beta1.PodDisruptionBudget{
2018+
policyv1.PodDisruptionBudget{
20192019
ObjectMeta: metav1.ObjectMeta{
20202020
Name: "postgres-myapp-database-pdb",
20212021
Namespace: "myapp",
20222022
Labels: map[string]string{"team": "myapp", "cluster-name": "myapp-database"},
20232023
},
2024-
Spec: policyv1beta1.PodDisruptionBudgetSpec{
2024+
Spec: policyv1.PodDisruptionBudgetSpec{
20252025
MinAvailable: util.ToIntStr(0),
20262026
Selector: &metav1.LabelSelector{
20272027
MatchLabels: map[string]string{"spilo-role": "master", "cluster-name": "myapp-database"},
@@ -2039,13 +2039,13 @@ func TestGeneratePodDisruptionBudget(t *testing.T) {
20392039
Spec: acidv1.PostgresSpec{TeamID: "myapp", NumberOfInstances: 3}},
20402040
logger,
20412041
eventRecorder),
2042-
policyv1beta1.PodDisruptionBudget{
2042+
policyv1.PodDisruptionBudget{
20432043
ObjectMeta: metav1.ObjectMeta{
20442044
Name: "postgres-myapp-database-pdb",
20452045
Namespace: "myapp",
20462046
Labels: map[string]string{"team": "myapp", "cluster-name": "myapp-database"},
20472047
},
2048-
Spec: policyv1beta1.PodDisruptionBudgetSpec{
2048+
Spec: policyv1.PodDisruptionBudgetSpec{
20492049
MinAvailable: util.ToIntStr(0),
20502050
Selector: &metav1.LabelSelector{
20512051
MatchLabels: map[string]string{"spilo-role": "master", "cluster-name": "myapp-database"},
@@ -2063,13 +2063,13 @@ func TestGeneratePodDisruptionBudget(t *testing.T) {
20632063
Spec: acidv1.PostgresSpec{TeamID: "myapp", NumberOfInstances: 3}},
20642064
logger,
20652065
eventRecorder),
2066-
policyv1beta1.PodDisruptionBudget{
2066+
policyv1.PodDisruptionBudget{
20672067
ObjectMeta: metav1.ObjectMeta{
20682068
Name: "postgres-myapp-database-databass-budget",
20692069
Namespace: "myapp",
20702070
Labels: map[string]string{"team": "myapp", "cluster-name": "myapp-database"},
20712071
},
2072-
Spec: policyv1beta1.PodDisruptionBudgetSpec{
2072+
Spec: policyv1.PodDisruptionBudgetSpec{
20732073
MinAvailable: util.ToIntStr(1),
20742074
Selector: &metav1.LabelSelector{
20752075
MatchLabels: map[string]string{"spilo-role": "master", "cluster-name": "myapp-database"},

pkg/cluster/resources.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
appsv1 "k8s.io/api/apps/v1"
1010
batchv1beta1 "k8s.io/api/batch/v1beta1"
1111
v1 "k8s.io/api/core/v1"
12-
policybeta1 "k8s.io/api/policy/v1beta1"
12+
policyv1 "k8s.io/api/policy/v1"
1313
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1414
"k8s.io/apimachinery/pkg/types"
1515

@@ -404,7 +404,7 @@ func (c *Cluster) generateEndpointSubsets(role PostgresRole) []v1.EndpointSubset
404404
return result
405405
}
406406

407-
func (c *Cluster) createPodDisruptionBudget() (*policybeta1.PodDisruptionBudget, error) {
407+
func (c *Cluster) createPodDisruptionBudget() (*policyv1.PodDisruptionBudget, error) {
408408
podDisruptionBudgetSpec := c.generatePodDisruptionBudget()
409409
podDisruptionBudget, err := c.KubeClient.
410410
PodDisruptionBudgets(podDisruptionBudgetSpec.Namespace).
@@ -418,7 +418,7 @@ func (c *Cluster) createPodDisruptionBudget() (*policybeta1.PodDisruptionBudget,
418418
return podDisruptionBudget, nil
419419
}
420420

421-
func (c *Cluster) updatePodDisruptionBudget(pdb *policybeta1.PodDisruptionBudget) error {
421+
func (c *Cluster) updatePodDisruptionBudget(pdb *policyv1.PodDisruptionBudget) error {
422422
if c.PodDisruptionBudget == nil {
423423
return fmt.Errorf("there is no pod disruption budget in the cluster")
424424
}
@@ -602,6 +602,6 @@ func (c *Cluster) GetStatefulSet() *appsv1.StatefulSet {
602602
}
603603

604604
// GetPodDisruptionBudget returns cluster's kubernetes PodDisruptionBudget
605-
func (c *Cluster) GetPodDisruptionBudget() *policybeta1.PodDisruptionBudget {
605+
func (c *Cluster) GetPodDisruptionBudget() *policyv1.PodDisruptionBudget {
606606
return c.PodDisruptionBudget
607607
}

0 commit comments

Comments
 (0)