Skip to content

Commit f0e2906

Browse files
authored
move StatefulSet to apps/v1 (zalando#675)
1 parent e00b37f commit f0e2906

File tree

8 files changed

+47
-47
lines changed

8 files changed

+47
-47
lines changed

pkg/cluster/cluster.go

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

1414
"github.com/sirupsen/logrus"
15-
"k8s.io/api/apps/v1beta1"
15+
appsv1 "k8s.io/api/apps/v1"
1616
v1 "k8s.io/api/core/v1"
1717
policybeta1 "k8s.io/api/policy/v1beta1"
1818
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -52,7 +52,7 @@ type kubeResources struct {
5252
Services map[PostgresRole]*v1.Service
5353
Endpoints map[PostgresRole]*v1.Endpoints
5454
Secrets map[types.UID]*v1.Secret
55-
Statefulset *v1beta1.StatefulSet
55+
Statefulset *appsv1.StatefulSet
5656
PodDisruptionBudget *policybeta1.PodDisruptionBudget
5757
//Pods are treated separately
5858
//PVCs are treated separately
@@ -214,7 +214,7 @@ func (c *Cluster) Create() error {
214214

215215
service *v1.Service
216216
ep *v1.Endpoints
217-
ss *v1beta1.StatefulSet
217+
ss *appsv1.StatefulSet
218218
)
219219

220220
defer func() {
@@ -315,7 +315,7 @@ func (c *Cluster) Create() error {
315315
return nil
316316
}
317317

318-
func (c *Cluster) compareStatefulSetWith(statefulSet *v1beta1.StatefulSet) *compareStatefulsetResult {
318+
func (c *Cluster) compareStatefulSetWith(statefulSet *appsv1.StatefulSet) *compareStatefulsetResult {
319319
reasons := make([]string, 0)
320320
var match, needsRollUpdate, needsReplace bool
321321

pkg/cluster/k8sres.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77

88
"github.com/sirupsen/logrus"
99

10-
"k8s.io/api/apps/v1beta1"
10+
appsv1 "k8s.io/api/apps/v1"
1111
v1 "k8s.io/api/core/v1"
1212
policybeta1 "k8s.io/api/policy/v1beta1"
1313
"k8s.io/apimachinery/pkg/api/resource"
@@ -711,7 +711,7 @@ func makeResources(cpuRequest, memoryRequest, cpuLimit, memoryLimit string) acid
711711
}
712712
}
713713

714-
func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*v1beta1.StatefulSet, error) {
714+
func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*appsv1.StatefulSet, error) {
715715

716716
var (
717717
err error
@@ -917,25 +917,25 @@ func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*v1beta1.State
917917
// the operator has domain-specific logic on how to do rolling updates of PG clusters
918918
// so we do not use default rolling updates implemented by stateful sets
919919
// that leaves the legacy "OnDelete" update strategy as the only option
920-
updateStrategy := v1beta1.StatefulSetUpdateStrategy{Type: v1beta1.OnDeleteStatefulSetStrategyType}
920+
updateStrategy := appsv1.StatefulSetUpdateStrategy{Type: appsv1.OnDeleteStatefulSetStrategyType}
921921

922-
var podManagementPolicy v1beta1.PodManagementPolicyType
922+
var podManagementPolicy appsv1.PodManagementPolicyType
923923
if c.OpConfig.PodManagementPolicy == "ordered_ready" {
924-
podManagementPolicy = v1beta1.OrderedReadyPodManagement
924+
podManagementPolicy = appsv1.OrderedReadyPodManagement
925925
} else if c.OpConfig.PodManagementPolicy == "parallel" {
926-
podManagementPolicy = v1beta1.ParallelPodManagement
926+
podManagementPolicy = appsv1.ParallelPodManagement
927927
} else {
928928
return nil, fmt.Errorf("could not set the pod management policy to the unknown value: %v", c.OpConfig.PodManagementPolicy)
929929
}
930930

931-
statefulSet := &v1beta1.StatefulSet{
931+
statefulSet := &appsv1.StatefulSet{
932932
ObjectMeta: metav1.ObjectMeta{
933933
Name: c.statefulSetName(),
934934
Namespace: c.Namespace,
935935
Labels: c.labelsSet(true),
936936
Annotations: map[string]string{rollingUpdateStatefulsetAnnotationKey: "false"},
937937
},
938-
Spec: v1beta1.StatefulSetSpec{
938+
Spec: appsv1.StatefulSetSpec{
939939
Replicas: &numberOfInstances,
940940
Selector: c.labelsSelector(),
941941
ServiceName: c.serviceName(Master),

pkg/cluster/pod.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ import (
44
"fmt"
55
"math/rand"
66

7+
appsv1 "k8s.io/api/apps/v1"
78
v1 "k8s.io/api/core/v1"
89
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
910

1011
"github.com/zalando/postgres-operator/pkg/spec"
1112
"github.com/zalando/postgres-operator/pkg/util"
12-
"k8s.io/api/apps/v1beta1"
1313
)
1414

1515
func (c *Cluster) listPods() ([]v1.Pod, error) {
@@ -205,7 +205,7 @@ func (c *Cluster) MigrateMasterPod(podName spec.NamespacedName) error {
205205
}
206206
// we must have a statefulset in the cluster for the migration to work
207207
if c.Statefulset == nil {
208-
var sset *v1beta1.StatefulSet
208+
var sset *appsv1.StatefulSet
209209
if sset, err = c.KubeClient.StatefulSets(c.Namespace).Get(c.statefulSetName(),
210210
metav1.GetOptions{}); err != nil {
211211
return fmt.Errorf("could not retrieve cluster statefulset: %v", err)

pkg/cluster/resources.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"strconv"
66
"strings"
77

8-
"k8s.io/api/apps/v1beta1"
8+
appsv1 "k8s.io/api/apps/v1"
99
batchv1beta1 "k8s.io/api/batch/v1beta1"
1010
v1 "k8s.io/api/core/v1"
1111
policybeta1 "k8s.io/api/policy/v1beta1"
@@ -64,7 +64,7 @@ func (c *Cluster) listResources() error {
6464
return nil
6565
}
6666

67-
func (c *Cluster) createStatefulSet() (*v1beta1.StatefulSet, error) {
67+
func (c *Cluster) createStatefulSet() (*appsv1.StatefulSet, error) {
6868
c.setProcessName("creating statefulset")
6969
statefulSetSpec, err := c.generateStatefulSet(&c.Spec)
7070
if err != nil {
@@ -95,7 +95,7 @@ func getPodIndex(podName string) (int32, error) {
9595
return int32(res), nil
9696
}
9797

98-
func (c *Cluster) preScaleDown(newStatefulSet *v1beta1.StatefulSet) error {
98+
func (c *Cluster) preScaleDown(newStatefulSet *appsv1.StatefulSet) error {
9999
masterPod, err := c.getRolePods(Master)
100100
if err != nil {
101101
return fmt.Errorf("could not get master pod: %v", err)
@@ -135,7 +135,7 @@ func (c *Cluster) preScaleDown(newStatefulSet *v1beta1.StatefulSet) error {
135135

136136
// setRollingUpdateFlagForStatefulSet sets the indicator or the rolling update requirement
137137
// in the StatefulSet annotation.
138-
func (c *Cluster) setRollingUpdateFlagForStatefulSet(sset *v1beta1.StatefulSet, val bool) {
138+
func (c *Cluster) setRollingUpdateFlagForStatefulSet(sset *appsv1.StatefulSet, val bool) {
139139
anno := sset.GetAnnotations()
140140
if anno == nil {
141141
anno = make(map[string]string)
@@ -160,7 +160,7 @@ func (c *Cluster) applyRollingUpdateFlagforStatefulSet(val bool) error {
160160

161161
// getRollingUpdateFlagFromStatefulSet returns the value of the rollingUpdate flag from the passed
162162
// StatefulSet, reverting to the default value in case of errors
163-
func (c *Cluster) getRollingUpdateFlagFromStatefulSet(sset *v1beta1.StatefulSet, defaultValue bool) (flag bool) {
163+
func (c *Cluster) getRollingUpdateFlagFromStatefulSet(sset *appsv1.StatefulSet, defaultValue bool) (flag bool) {
164164
anno := sset.GetAnnotations()
165165
flag = defaultValue
166166

@@ -181,7 +181,7 @@ func (c *Cluster) getRollingUpdateFlagFromStatefulSet(sset *v1beta1.StatefulSet,
181181
// mergeRollingUpdateFlagUsingCache returns the value of the rollingUpdate flag from the passed
182182
// statefulset, however, the value can be cleared if there is a cached flag in the cluster that
183183
// is set to false (the discrepancy could be a result of a failed StatefulSet update)
184-
func (c *Cluster) mergeRollingUpdateFlagUsingCache(runningStatefulSet *v1beta1.StatefulSet) bool {
184+
func (c *Cluster) mergeRollingUpdateFlagUsingCache(runningStatefulSet *appsv1.StatefulSet) bool {
185185
var (
186186
cachedStatefulsetExists, clearRollingUpdateFromCache, podsRollingUpdateRequired bool
187187
)
@@ -207,7 +207,7 @@ func (c *Cluster) mergeRollingUpdateFlagUsingCache(runningStatefulSet *v1beta1.S
207207
return podsRollingUpdateRequired
208208
}
209209

210-
func (c *Cluster) updateStatefulSetAnnotations(annotations map[string]string) (*v1beta1.StatefulSet, error) {
210+
func (c *Cluster) updateStatefulSetAnnotations(annotations map[string]string) (*appsv1.StatefulSet, error) {
211211
c.logger.Debugf("updating statefulset annotations")
212212
patchData, err := metaAnnotationsPatch(annotations)
213213
if err != nil {
@@ -223,7 +223,7 @@ func (c *Cluster) updateStatefulSetAnnotations(annotations map[string]string) (*
223223
return result, nil
224224

225225
}
226-
func (c *Cluster) updateStatefulSet(newStatefulSet *v1beta1.StatefulSet) error {
226+
func (c *Cluster) updateStatefulSet(newStatefulSet *appsv1.StatefulSet) error {
227227
c.setProcessName("updating statefulset")
228228
if c.Statefulset == nil {
229229
return fmt.Errorf("there is no statefulset in the cluster")
@@ -264,7 +264,7 @@ func (c *Cluster) updateStatefulSet(newStatefulSet *v1beta1.StatefulSet) error {
264264
}
265265

266266
// replaceStatefulSet deletes an old StatefulSet and creates the new using spec in the PostgreSQL CRD.
267-
func (c *Cluster) replaceStatefulSet(newStatefulSet *v1beta1.StatefulSet) error {
267+
func (c *Cluster) replaceStatefulSet(newStatefulSet *appsv1.StatefulSet) error {
268268
c.setProcessName("replacing statefulset")
269269
if c.Statefulset == nil {
270270
return fmt.Errorf("there is no statefulset in the cluster")
@@ -676,7 +676,7 @@ func (c *Cluster) GetEndpointReplica() *v1.Endpoints {
676676
}
677677

678678
// GetStatefulSet returns cluster's kubernetes StatefulSet
679-
func (c *Cluster) GetStatefulSet() *v1beta1.StatefulSet {
679+
func (c *Cluster) GetStatefulSet() *appsv1.StatefulSet {
680680
return c.Statefulset
681681
}
682682

pkg/cluster/types.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"time"
55

66
acidv1 "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do/v1"
7-
"k8s.io/api/apps/v1beta1"
7+
appsv1 "k8s.io/api/apps/v1"
88
"k8s.io/api/core/v1"
99
policybeta1 "k8s.io/api/policy/v1beta1"
1010
"k8s.io/apimachinery/pkg/types"
@@ -60,7 +60,7 @@ type ClusterStatus struct {
6060
ReplicaService *v1.Service
6161
MasterEndpoint *v1.Endpoints
6262
ReplicaEndpoint *v1.Endpoints
63-
StatefulSet *v1beta1.StatefulSet
63+
StatefulSet *appsv1.StatefulSet
6464
PodDisruptionBudget *policybeta1.PodDisruptionBudget
6565

6666
CurrentProcess Process

pkg/cluster/util.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
"strings"
1212
"time"
1313

14-
"k8s.io/api/apps/v1beta1"
14+
appsv1 "k8s.io/api/apps/v1"
1515
v1 "k8s.io/api/core/v1"
1616
policybeta1 "k8s.io/api/policy/v1beta1"
1717
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -168,7 +168,7 @@ func (c *Cluster) logPDBChanges(old, new *policybeta1.PodDisruptionBudget, isUpd
168168
c.logger.Debugf("diff\n%s\n", util.PrettyDiff(old.Spec, new.Spec))
169169
}
170170

171-
func (c *Cluster) logStatefulSetChanges(old, new *v1beta1.StatefulSet, isUpdate bool, reasons []string) {
171+
func (c *Cluster) logStatefulSetChanges(old, new *appsv1.StatefulSet, isUpdate bool, reasons []string) {
172172
if isUpdate {
173173
c.logger.Infof("statefulset %q has been changed", util.NameFromMeta(old.ObjectMeta))
174174
} else {

pkg/util/k8sutil/k8sutil.go

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ import (
1616
apiextbeta1 "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1"
1717
apierrors "k8s.io/apimachinery/pkg/api/errors"
1818
"k8s.io/client-go/kubernetes"
19-
"k8s.io/client-go/kubernetes/typed/apps/v1beta1"
20-
v1core "k8s.io/client-go/kubernetes/typed/core/v1"
19+
appsv1 "k8s.io/client-go/kubernetes/typed/apps/v1"
20+
corev1 "k8s.io/client-go/kubernetes/typed/core/v1"
2121
policyv1beta1 "k8s.io/client-go/kubernetes/typed/policy/v1beta1"
2222
rbacv1beta1 "k8s.io/client-go/kubernetes/typed/rbac/v1beta1"
2323
"k8s.io/client-go/rest"
@@ -29,17 +29,17 @@ import (
2929

3030
// KubernetesClient describes getters for Kubernetes objects
3131
type KubernetesClient struct {
32-
v1core.SecretsGetter
33-
v1core.ServicesGetter
34-
v1core.EndpointsGetter
35-
v1core.PodsGetter
36-
v1core.PersistentVolumesGetter
37-
v1core.PersistentVolumeClaimsGetter
38-
v1core.ConfigMapsGetter
39-
v1core.NodesGetter
40-
v1core.NamespacesGetter
41-
v1core.ServiceAccountsGetter
42-
v1beta1.StatefulSetsGetter
32+
corev1.SecretsGetter
33+
corev1.ServicesGetter
34+
corev1.EndpointsGetter
35+
corev1.PodsGetter
36+
corev1.PersistentVolumesGetter
37+
corev1.PersistentVolumeClaimsGetter
38+
corev1.ConfigMapsGetter
39+
corev1.NodesGetter
40+
corev1.NamespacesGetter
41+
corev1.ServiceAccountsGetter
42+
appsv1.StatefulSetsGetter
4343
rbacv1beta1.RoleBindingsGetter
4444
policyv1beta1.PodDisruptionBudgetsGetter
4545
apiextbeta1.CustomResourceDefinitionsGetter
@@ -50,14 +50,14 @@ type KubernetesClient struct {
5050
}
5151

5252
type mockSecret struct {
53-
v1core.SecretInterface
53+
corev1.SecretInterface
5454
}
5555

5656
type MockSecretGetter struct {
5757
}
5858

5959
type mockConfigMap struct {
60-
v1core.ConfigMapInterface
60+
corev1.ConfigMapInterface
6161
}
6262

6363
type MockConfigMapsGetter struct {
@@ -101,7 +101,7 @@ func NewFromConfig(cfg *rest.Config) (KubernetesClient, error) {
101101
kubeClient.PersistentVolumesGetter = client.CoreV1()
102102
kubeClient.NodesGetter = client.CoreV1()
103103
kubeClient.NamespacesGetter = client.CoreV1()
104-
kubeClient.StatefulSetsGetter = client.AppsV1beta1()
104+
kubeClient.StatefulSetsGetter = client.AppsV1()
105105
kubeClient.PodDisruptionBudgetsGetter = client.PolicyV1beta1()
106106
kubeClient.RESTClient = client.CoreV1().RESTClient()
107107
kubeClient.RoleBindingsGetter = client.RbacV1beta1()
@@ -215,12 +215,12 @@ func (c *mockConfigMap) Get(name string, options metav1.GetOptions) (*v1.ConfigM
215215
}
216216

217217
// Secrets to be mocked
218-
func (c *MockSecretGetter) Secrets(namespace string) v1core.SecretInterface {
218+
func (c *MockSecretGetter) Secrets(namespace string) corev1.SecretInterface {
219219
return &mockSecret{}
220220
}
221221

222222
// ConfigMaps to be mocked
223-
func (c *MockConfigMapsGetter) ConfigMaps(namespace string) v1core.ConfigMapInterface {
223+
func (c *MockConfigMapsGetter) ConfigMaps(namespace string) corev1.ConfigMapInterface {
224224
return &mockConfigMap{}
225225
}
226226

ui/operator_ui/spiloutils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def request_delete(cluster, path, **kwargs):
8282
def resource_api_version(resource_type):
8383
return {
8484
'postgresqls': 'apis/acid.zalan.do/v1',
85-
'statefulsets': 'apis/apps/v1beta1',
85+
'statefulsets': 'apis/apps/v1',
8686
}.get(resource_type, 'api/v1')
8787

8888

0 commit comments

Comments
 (0)