diff --git a/Documentation/edgefs-cluster-crd.md b/Documentation/edgefs-cluster-crd.md index b1406401f1d74..0d712394d6e85 100644 --- a/Documentation/edgefs-cluster-crd.md +++ b/Documentation/edgefs-cluster-crd.md @@ -364,7 +364,7 @@ metadata: name: privileged-psp-user rules: - apiGroups: - - extensions + - apps resources: - podsecuritypolicies resourceNames: diff --git a/Documentation/rbac.md b/Documentation/rbac.md index 3a2e722688cdd..1172304cf1af8 100644 --- a/Documentation/rbac.md +++ b/Documentation/rbac.md @@ -83,7 +83,7 @@ metadata: name: privileged-psp-user rules: - apiGroups: - - extensions + - apps resources: - podsecuritypolicies resourceNames: diff --git a/cluster/charts/rook-ceph/templates/clusterrole.yaml b/cluster/charts/rook-ceph/templates/clusterrole.yaml index 58a24d471b922..5e7078b329c3f 100644 --- a/cluster/charts/rook-ceph/templates/clusterrole.yaml +++ b/cluster/charts/rook-ceph/templates/clusterrole.yaml @@ -25,7 +25,7 @@ rules: - update - delete - apiGroups: - - extensions + - apps resources: - deployments - daemonsets @@ -154,7 +154,7 @@ metadata: chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" rules: - apiGroups: - - extensions + - apps resources: - podsecuritypolicies resourceNames: diff --git a/cluster/charts/rook-ceph/templates/role.yaml b/cluster/charts/rook-ceph/templates/role.yaml index 45122d320c9a9..33b5ff4d782b1 100644 --- a/cluster/charts/rook-ceph/templates/role.yaml +++ b/cluster/charts/rook-ceph/templates/role.yaml @@ -22,7 +22,7 @@ rules: - update - delete - apiGroups: - - extensions + - apps resources: - daemonsets verbs: diff --git a/cluster/examples/kubernetes/ceph/operator.yaml b/cluster/examples/kubernetes/ceph/operator.yaml index 73cde2e5ed8bb..05e70e9bbe9c8 100755 --- a/cluster/examples/kubernetes/ceph/operator.yaml +++ b/cluster/examples/kubernetes/ceph/operator.yaml @@ -204,7 +204,7 @@ rules: - update - delete - apiGroups: - - extensions + - apps resources: - deployments - daemonsets @@ -241,7 +241,7 @@ rules: - update - delete - apiGroups: - - extensions + - apps resources: - daemonsets verbs: diff --git a/cluster/examples/kubernetes/ceph/upgrade-from-v0.8-replace.yaml b/cluster/examples/kubernetes/ceph/upgrade-from-v0.8-replace.yaml index 29d55d6019d3c..fea720ba9c4f1 100644 --- a/cluster/examples/kubernetes/ceph/upgrade-from-v0.8-replace.yaml +++ b/cluster/examples/kubernetes/ceph/upgrade-from-v0.8-replace.yaml @@ -41,7 +41,7 @@ rules: - update - delete - apiGroups: - - extensions + - apps resources: - deployments - daemonsets diff --git a/cluster/examples/kubernetes/edgefs/cluster.yaml b/cluster/examples/kubernetes/edgefs/cluster.yaml index 40503121c540f..9d63a00ba88ad 100644 --- a/cluster/examples/kubernetes/edgefs/cluster.yaml +++ b/cluster/examples/kubernetes/edgefs/cluster.yaml @@ -83,7 +83,7 @@ metadata: name: privileged-psp-user rules: - apiGroups: - - extensions + - apps resources: - podsecuritypolicies resourceNames: diff --git a/pkg/operator/ceph/agent/agent.go b/pkg/operator/ceph/agent/agent.go index 5aae8b309984f..a6d17c26666ed 100644 --- a/pkg/operator/ceph/agent/agent.go +++ b/pkg/operator/ceph/agent/agent.go @@ -27,7 +27,7 @@ import ( "github.com/coreos/pkg/capnslog" "github.com/rook/rook/pkg/operator/k8sutil" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" kserrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" @@ -103,13 +103,13 @@ func (a *Agent) createAgentDaemonSet(namespace, agentImage, serviceAccount strin } privileged := true - ds := &extensions.DaemonSet{ + ds := &apps.DaemonSet{ ObjectMeta: metav1.ObjectMeta{ Name: agentDaemonsetName, }, - Spec: extensions.DaemonSetSpec{ - UpdateStrategy: extensions.DaemonSetUpdateStrategy{ - Type: extensions.RollingUpdateDaemonSetStrategyType, + Spec: apps.DaemonSetSpec{ + UpdateStrategy: apps.DaemonSetUpdateStrategy{ + Type: apps.RollingUpdateDaemonSetStrategyType, }, Template: v1.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ @@ -235,13 +235,13 @@ func (a *Agent) createAgentDaemonSet(namespace, agentImage, serviceAccount strin } } - _, err = a.clientset.Extensions().DaemonSets(namespace).Create(ds) + _, err = a.clientset.AppsV1beta2().DaemonSets(namespace).Create(ds) if err != nil { if !kserrors.IsAlreadyExists(err) { return fmt.Errorf("failed to create rook-ceph-agent daemon set. %+v", err) } logger.Infof("rook-ceph-agent daemonset already exists, updating ...") - _, err = a.clientset.Extensions().DaemonSets(namespace).Update(ds) + _, err = a.clientset.AppsV1beta2().DaemonSets(namespace).Update(ds) if err != nil { return fmt.Errorf("failed to update rook-ceph-agent daemon set. %+v", err) } diff --git a/pkg/operator/ceph/agent/agent_test.go b/pkg/operator/ceph/agent/agent_test.go index 4ba0e658e2371..c3d62d71a950e 100644 --- a/pkg/operator/ceph/agent/agent_test.go +++ b/pkg/operator/ceph/agent/agent_test.go @@ -62,7 +62,7 @@ func TestStartAgentDaemonset(t *testing.T) { assert.Nil(t, err) // check daemonset parameters - agentDS, err := clientset.Extensions().DaemonSets(namespace).Get("rook-ceph-agent", metav1.GetOptions{}) + agentDS, err := clientset.AppsV1beta2().DaemonSets(namespace).Get("rook-ceph-agent", metav1.GetOptions{}) assert.Nil(t, err) assert.Equal(t, namespace, agentDS.Namespace) assert.Equal(t, "rook-ceph-agent", agentDS.Name) @@ -177,7 +177,7 @@ func TestStartAgentDaemonsetWithToleration(t *testing.T) { assert.Nil(t, err) // check daemonset toleration - agentDS, err := clientset.Extensions().DaemonSets(namespace).Get("rook-ceph-agent", metav1.GetOptions{}) + agentDS, err := clientset.AppsV1beta2().DaemonSets(namespace).Get("rook-ceph-agent", metav1.GetOptions{}) assert.Nil(t, err) assert.Equal(t, 1, len(agentDS.Spec.Template.Spec.Tolerations)) assert.Equal(t, "mysa", agentDS.Spec.Template.Spec.ServiceAccountName) diff --git a/pkg/operator/ceph/cluster/mgr/mgr.go b/pkg/operator/ceph/cluster/mgr/mgr.go index 45488cdc8f7dd..28f3774fb1bf1 100644 --- a/pkg/operator/ceph/cluster/mgr/mgr.go +++ b/pkg/operator/ceph/cluster/mgr/mgr.go @@ -126,7 +126,7 @@ func (c *Cluster) Start() error { // start the deployment d := c.makeDeployment(mgrConfig, dashboardPort) logger.Debugf("starting mgr deployment: %+v", d) - _, err := c.context.Clientset.ExtensionsV1beta1().Deployments(c.Namespace).Create(d) + _, err := c.context.Clientset.AppsV1beta2().Deployments(c.Namespace).Create(d) if err != nil { if !errors.IsAlreadyExists(err) { return fmt.Errorf("failed to create mgr deployment %s. %+v", resourceName, err) diff --git a/pkg/operator/ceph/cluster/mgr/mgr_test.go b/pkg/operator/ceph/cluster/mgr/mgr_test.go index c6b7d7de1605e..e4a2cccc9741f 100755 --- a/pkg/operator/ceph/cluster/mgr/mgr_test.go +++ b/pkg/operator/ceph/cluster/mgr/mgr_test.go @@ -29,13 +29,13 @@ import ( exectest "github.com/rook/rook/pkg/util/exec/test" "github.com/stretchr/testify/assert" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) func TestStartMGR(t *testing.T) { - var deploymentsUpdated *[]*extensions.Deployment + var deploymentsUpdated *[]*apps.Deployment updateDeploymentAndWait, deploymentsUpdated = testopk8s.UpdateDeploymentAndWaitStub() executor := &exectest.MockExecutor{ @@ -86,7 +86,7 @@ func validateStart(t *testing.T, c *Cluster) { } logger.Infof("Looking for cephmgr replica %d", i) daemonName := mgrNames[i] - _, err := c.context.Clientset.ExtensionsV1beta1().Deployments(c.Namespace).Get(fmt.Sprintf("rook-ceph-mgr-%s", daemonName), metav1.GetOptions{}) + _, err := c.context.Clientset.AppsV1beta2().Deployments(c.Namespace).Get(fmt.Sprintf("rook-ceph-mgr-%s", daemonName), metav1.GetOptions{}) assert.Nil(t, err) } diff --git a/pkg/operator/ceph/cluster/mgr/spec.go b/pkg/operator/ceph/cluster/mgr/spec.go index 704ac7033f73a..4c688c9fb5cd2 100644 --- a/pkg/operator/ceph/cluster/mgr/spec.go +++ b/pkg/operator/ceph/cluster/mgr/spec.go @@ -25,7 +25,7 @@ import ( opspec "github.com/rook/rook/pkg/operator/ceph/spec" "github.com/rook/rook/pkg/operator/k8sutil" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -33,7 +33,7 @@ const ( mgrDaemonCommand = "ceph-mgr" ) -func (c *Cluster) makeDeployment(mgrConfig *mgrConfig, port int) *extensions.Deployment { +func (c *Cluster) makeDeployment(mgrConfig *mgrConfig, port int) *apps.Deployment { podSpec := v1.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ Name: mgrConfig.ResourceName, @@ -61,16 +61,16 @@ func (c *Cluster) makeDeployment(mgrConfig *mgrConfig, port int) *extensions.Dep c.placement.ApplyToPodSpec(&podSpec.Spec) replicas := int32(1) - d := &extensions.Deployment{ + d := &apps.Deployment{ ObjectMeta: metav1.ObjectMeta{ Name: mgrConfig.ResourceName, Namespace: c.Namespace, }, - Spec: extensions.DeploymentSpec{ + Spec: apps.DeploymentSpec{ Template: podSpec, Replicas: &replicas, - Strategy: extensions.DeploymentStrategy{ - Type: extensions.RecreateDeploymentStrategyType, + Strategy: apps.DeploymentStrategy{ + Type: apps.RecreateDeploymentStrategyType, }, }, } diff --git a/pkg/operator/ceph/cluster/mon/health.go b/pkg/operator/ceph/cluster/mon/health.go index ecedce9eb5ff3..77f49b19666b5 100644 --- a/pkg/operator/ceph/cluster/mon/health.go +++ b/pkg/operator/ceph/cluster/mon/health.go @@ -301,7 +301,7 @@ func (c *Cluster) removeMon(daemonName string) error { var gracePeriod int64 propagation := metav1.DeletePropagationForeground options := &metav1.DeleteOptions{GracePeriodSeconds: &gracePeriod, PropagationPolicy: &propagation} - if err := c.context.Clientset.Extensions().Deployments(c.Namespace).Delete(resourceName, options); err != nil { + if err := c.context.Clientset.AppsV1beta2().Deployments(c.Namespace).Delete(resourceName, options); err != nil { if errors.IsNotFound(err) { logger.Infof("dead mon %s was already gone", resourceName) } else { diff --git a/pkg/operator/ceph/cluster/mon/health_test.go b/pkg/operator/ceph/cluster/mon/health_test.go index b007ce129ea7c..dd9eec31866ec 100644 --- a/pkg/operator/ceph/cluster/mon/health_test.go +++ b/pkg/operator/ceph/cluster/mon/health_test.go @@ -35,13 +35,13 @@ import ( "github.com/stretchr/testify/assert" "k8s.io/api/core/v1" "k8s.io/api/extensions/v1beta1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/kubelet/apis" ) func TestCheckHealth(t *testing.T) { - var deploymentsUpdated *[]*extensions.Deployment + var deploymentsUpdated *[]*apps.Deployment updateDeploymentAndWait, deploymentsUpdated = testopk8s.UpdateDeploymentAndWaitStub() executor := &exectest.MockExecutor{ @@ -94,7 +94,7 @@ func TestCheckHealth(t *testing.T) { } func TestCheckHealthNotFound(t *testing.T) { - var deploymentsUpdated *[]*extensions.Deployment + var deploymentsUpdated *[]*apps.Deployment updateDeploymentAndWait, deploymentsUpdated = testopk8s.UpdateDeploymentAndWaitStub() executor := &exectest.MockExecutor{ @@ -207,7 +207,7 @@ func TestCheckHealthTwoMonsOneNode(t *testing.T) { prefix := appName + "-" name := monNames[i] d := c.makeDeployment(&monConfig{ResourceName: prefix + name, DaemonName: name}, "node0") - _, err := clientset.ExtensionsV1beta1().Deployments(c.Namespace).Create(d) + _, err := clientset.AppsV1beta2().Deployments(c.Namespace).Create(d) assert.Nil(t, err) po := c.makeMonPod(&monConfig{ResourceName: prefix + name, DaemonName: name}, "node0") _, err = clientset.CoreV1().Pods(c.Namespace).Create(po) @@ -251,7 +251,7 @@ func TestCheckHealthTwoMonsOneNode(t *testing.T) { // check if mon b has been deleted var dlist *v1beta1.DeploymentList - dlist, err = clientset.ExtensionsV1beta1().Deployments(c.Namespace).List(metav1.ListOptions{}) + dlist, err = clientset.AppsV1beta2().Deployments(c.Namespace).List(metav1.ListOptions{}) assert.Nil(t, err) deleted := true for _, d := range dlist.Items { @@ -267,7 +267,7 @@ func TestCheckHealthTwoMonsOneNode(t *testing.T) { assert.Nil(t, err) // check that nothing has changed - dlist, err = clientset.ExtensionsV1beta1().Deployments(c.Namespace).List(metav1.ListOptions{}) + dlist, err = clientset.AppsV1beta2().Deployments(c.Namespace).List(metav1.ListOptions{}) assert.Nil(t, err) for _, d := range dlist.Items { @@ -364,7 +364,7 @@ func TestCheckMonsValid(t *testing.T) { } func TestAddRemoveMons(t *testing.T) { - var deploymentsUpdated *[]*extensions.Deployment + var deploymentsUpdated *[]*apps.Deployment updateDeploymentAndWait, deploymentsUpdated = testopk8s.UpdateDeploymentAndWaitStub() monQuorumResponse := clienttest.MonInQuorumResponse() diff --git a/pkg/operator/ceph/cluster/mon/mon.go b/pkg/operator/ceph/cluster/mon/mon.go index ceb91732fda5a..234cd5c15540c 100644 --- a/pkg/operator/ceph/cluster/mon/mon.go +++ b/pkg/operator/ceph/cluster/mon/mon.go @@ -556,13 +556,13 @@ func (c *Cluster) startMon(m *monConfig, hostname string) error { d := c.makeDeployment(m, hostname) logger.Debugf("Starting mon: %+v", d.Name) - _, err := c.context.Clientset.Extensions().Deployments(c.Namespace).Create(d) + _, err := c.context.Clientset.AppsV1beta2().Deployments(c.Namespace).Create(d) if err != nil { if !errors.IsAlreadyExists(err) { return fmt.Errorf("failed to create mon %s. %+v", m.ResourceName, err) } logger.Debugf("deployment for mon %s already exists. updating if needed", m.ResourceName) - p, err := c.context.Clientset.Extensions().Deployments(c.Namespace).Get(d.Name, metav1.GetOptions{}) + p, err := c.context.Clientset.AppsV1beta2().Deployments(c.Namespace).Get(d.Name, metav1.GetOptions{}) if err != nil { return fmt.Errorf("failed to update mon deployment %s. failed to inspect preexisting deployment. %+v", d.Name, err) } diff --git a/pkg/operator/ceph/cluster/mon/mon_test.go b/pkg/operator/ceph/cluster/mon/mon_test.go index ffb329380abb7..eaf4735e3b6be 100644 --- a/pkg/operator/ceph/cluster/mon/mon_test.go +++ b/pkg/operator/ceph/cluster/mon/mon_test.go @@ -158,7 +158,7 @@ func validateStart(t *testing.T, c *Cluster) { assert.Equal(t, 4, len(s.StringData)) // there is only one pod created. the other two won't be created since the first one doesn't start - _, err = c.context.Clientset.Extensions().Deployments(c.Namespace).Get("rook-ceph-mon-a", metav1.GetOptions{}) + _, err = c.context.Clientset.AppsV1beta2().Deployments(c.Namespace).Get("rook-ceph-mon-a", metav1.GetOptions{}) assert.Nil(t, err) } diff --git a/pkg/operator/ceph/cluster/mon/spec.go b/pkg/operator/ceph/cluster/mon/spec.go index e12b576ca970f..5b5e4ce22f582 100644 --- a/pkg/operator/ceph/cluster/mon/spec.go +++ b/pkg/operator/ceph/cluster/mon/spec.go @@ -26,7 +26,7 @@ import ( opspec "github.com/rook/rook/pkg/operator/ceph/spec" "github.com/rook/rook/pkg/operator/k8sutil" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/kubelet/apis" ) @@ -49,8 +49,8 @@ func (c *Cluster) getLabels(daemonName string) map[string]string { return labels } -func (c *Cluster) makeDeployment(monConfig *monConfig, hostname string) *extensions.Deployment { - d := &extensions.Deployment{ +func (c *Cluster) makeDeployment(monConfig *monConfig, hostname string) *apps.Deployment { + d := &apps.Deployment{ ObjectMeta: metav1.ObjectMeta{ Name: monConfig.ResourceName, Namespace: c.Namespace, @@ -61,14 +61,14 @@ func (c *Cluster) makeDeployment(monConfig *monConfig, hostname string) *extensi pod := c.makeMonPod(monConfig, hostname) replicaCount := int32(1) - d.Spec = extensions.DeploymentSpec{ + d.Spec = apps.DeploymentSpec{ Template: v1.PodTemplateSpec{ ObjectMeta: pod.ObjectMeta, Spec: pod.Spec, }, Replicas: &replicaCount, - Strategy: extensions.DeploymentStrategy{ - Type: extensions.RecreateDeploymentStrategyType, + Strategy: apps.DeploymentStrategy{ + Type: apps.RecreateDeploymentStrategyType, }, } diff --git a/pkg/operator/ceph/cluster/osd/osd.go b/pkg/operator/ceph/cluster/osd/osd.go index d32d21949a055..2b133eaf2be9f 100644 --- a/pkg/operator/ceph/cluster/osd/osd.go +++ b/pkg/operator/ceph/cluster/osd/osd.go @@ -34,7 +34,7 @@ import ( "github.com/rook/rook/pkg/util/display" batch "k8s.io/api/batch/v1" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/kubelet/apis" @@ -308,7 +308,7 @@ func (c *Cluster) startOSDDaemonsOnNode(nodeName string, config *provisionConfig logger.Warningf("failed to delete legacy osd deployment. %+v", err) } - _, err = c.context.Clientset.Extensions().Deployments(c.Namespace).Create(dp) + _, err = c.context.Clientset.AppsV1beta2().Deployments(c.Namespace).Create(dp) if err != nil { if !errors.IsAlreadyExists(err) { // we failed to create job, update the orchestration status for this node @@ -432,14 +432,14 @@ func (c *Cluster) cleanupRemovedNode(config *provisionConfig, nodeName, crushNam } } -func (c *Cluster) discoverStorageNodes() (map[string][]*extensions.Deployment, error) { +func (c *Cluster) discoverStorageNodes() (map[string][]*apps.Deployment, error) { listOpts := metav1.ListOptions{LabelSelector: fmt.Sprintf("app=%s", appName)} - osdDeployments, err := c.context.Clientset.Extensions().Deployments(c.Namespace).List(listOpts) + osdDeployments, err := c.context.Clientset.AppsV1beta2().Deployments(c.Namespace).List(listOpts) if err != nil { return nil, fmt.Errorf("failed to list osd deployment: %+v", err) } - discoveredNodes := map[string][]*extensions.Deployment{} + discoveredNodes := map[string][]*apps.Deployment{} for _, osdDeployment := range osdDeployments.Items { osdPodSpec := osdDeployment.Spec.Template.Spec @@ -450,7 +450,7 @@ func (c *Cluster) discoverStorageNodes() (map[string][]*extensions.Deployment, e } if _, ok := discoveredNodes[nodeName]; !ok { - discoveredNodes[nodeName] = []*extensions.Deployment{} + discoveredNodes[nodeName] = []*apps.Deployment{} } logger.Debugf("adding osd %s to node %s", osdDeployment.Name, nodeName) @@ -461,7 +461,7 @@ func (c *Cluster) discoverStorageNodes() (map[string][]*extensions.Deployment, e return discoveredNodes, nil } -func (c *Cluster) isSafeToRemoveNode(nodeName string, osdDeployments []*extensions.Deployment) error { +func (c *Cluster) isSafeToRemoveNode(nodeName string, osdDeployments []*apps.Deployment) error { if err := client.IsClusterClean(c.context, c.Namespace); err != nil { // the cluster isn't clean, it's not safe to remove this node return err @@ -518,7 +518,7 @@ func (c *Cluster) isSafeToRemoveNode(nodeName string, osdDeployments []*extensio return nil } -func getIDFromDeployment(deployment *extensions.Deployment) int { +func getIDFromDeployment(deployment *apps.Deployment) int { if idstr, ok := deployment.Labels[osdLabelKey]; ok { id, err := strconv.Atoi(idstr) if err != nil { diff --git a/pkg/operator/ceph/cluster/osd/osd_test.go b/pkg/operator/ceph/cluster/osd/osd_test.go index 60c1ddb440ce7..b643a6f3df835 100644 --- a/pkg/operator/ceph/cluster/osd/osd_test.go +++ b/pkg/operator/ceph/cluster/osd/osd_test.go @@ -31,7 +31,7 @@ import ( "github.com/stretchr/testify/require" "k8s.io/api/core/v1" corev1 "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/watch" @@ -94,13 +94,13 @@ func TestLegacyDeployment(t *testing.T) { rookalpha.StorageScopeSpec{}, "", rookalpha.Placement{}, false, v1.ResourceRequirements{}, metav1.OwnerReference{}) osdID := 23 - d := &extensions.Deployment{ObjectMeta: metav1.ObjectMeta{Name: fmt.Sprintf(legacyAppNameFmt, osdID), Namespace: c.Namespace}} - _, err := clientset.Extensions().Deployments(c.Namespace).Create(d) + d := &apps.Deployment{ObjectMeta: metav1.ObjectMeta{Name: fmt.Sprintf(legacyAppNameFmt, osdID), Namespace: c.Namespace}} + _, err := clientset.AppsV1beta2().Deployments(c.Namespace).Create(d) require.Nil(t, err) // delete the deployment assert.Nil(t, c.deleteDeploymentWithLegacyName(osdID)) - deployments, err := clientset.Extensions().Deployments(c.Namespace).List(metav1.ListOptions{}) + deployments, err := clientset.AppsV1beta2().Deployments(c.Namespace).List(metav1.ListOptions{}) assert.Nil(t, err) assert.Equal(t, 0, len(deployments.Items)) @@ -108,11 +108,11 @@ func TestLegacyDeployment(t *testing.T) { assert.Nil(t, c.deleteDeploymentWithLegacyName(osdID)) // don't delete the newer deployment name - d = &extensions.Deployment{ObjectMeta: metav1.ObjectMeta{Name: fmt.Sprintf(osdAppNameFmt, osdID), Namespace: c.Namespace}} - _, err = clientset.Extensions().Deployments(c.Namespace).Create(d) + d = &apps.Deployment{ObjectMeta: metav1.ObjectMeta{Name: fmt.Sprintf(osdAppNameFmt, osdID), Namespace: c.Namespace}} + _, err = clientset.AppsV1beta2().Deployments(c.Namespace).Create(d) require.Nil(t, err) assert.Nil(t, c.deleteDeploymentWithLegacyName(osdID)) - deployments, err = clientset.Extensions().Deployments(c.Namespace).List(metav1.ListOptions{}) + deployments, err = clientset.AppsV1beta2().Deployments(c.Namespace).List(metav1.ListOptions{}) assert.Nil(t, err) assert.Equal(t, 1, len(deployments.Items)) } @@ -257,7 +257,7 @@ func TestAddRemoveNode(t *testing.T) { } func TestGetIDFromDeployment(t *testing.T) { - d := &extensions.Deployment{ObjectMeta: metav1.ObjectMeta{Name: "foo"}} + d := &apps.Deployment{ObjectMeta: metav1.ObjectMeta{Name: "foo"}} d.Labels = map[string]string{"ceph-osd-id": "0"} assert.Equal(t, 0, getIDFromDeployment(d)) diff --git a/pkg/operator/ceph/cluster/osd/spec.go b/pkg/operator/ceph/cluster/osd/spec.go index 347c25b628c6b..9f23081060e70 100644 --- a/pkg/operator/ceph/cluster/osd/spec.go +++ b/pkg/operator/ceph/cluster/osd/spec.go @@ -32,7 +32,7 @@ import ( "github.com/rook/rook/pkg/operator/k8sutil" batch "k8s.io/api/batch/v1" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/kubelet/apis" ) @@ -77,7 +77,7 @@ func (c *Cluster) makeJob(nodeName string, devices []rookalpha.Device, } func (c *Cluster) makeDeployment(nodeName string, devices []rookalpha.Device, selection rookalpha.Selection, resources v1.ResourceRequirements, - storeConfig config.StoreConfig, metadataDevice, location string, osd OSDInfo) (*extensions.Deployment, error) { + storeConfig config.StoreConfig, metadataDevice, location string, osd OSDInfo) (*apps.Deployment, error) { replicaCount := int32(1) volumeMounts := opspec.CephVolumeMounts() @@ -209,7 +209,7 @@ func (c *Cluster) makeDeployment(nodeName string, devices []rookalpha.Device, se if c.HostNetwork { DNSPolicy = v1.DNSClusterFirstWithHostNet } - deployment := &extensions.Deployment{ + deployment := &apps.Deployment{ ObjectMeta: metav1.ObjectMeta{ Name: fmt.Sprintf(osdAppNameFmt, osd.ID), Namespace: c.Namespace, @@ -219,9 +219,9 @@ func (c *Cluster) makeDeployment(nodeName string, devices []rookalpha.Device, se osdLabelKey: fmt.Sprintf("%d", osd.ID), }, }, - Spec: extensions.DeploymentSpec{ - Strategy: extensions.DeploymentStrategy{ - Type: extensions.RecreateDeploymentStrategyType, + Spec: apps.DeploymentSpec{ + Strategy: apps.DeploymentStrategy{ + Type: apps.RecreateDeploymentStrategyType, }, Template: v1.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ diff --git a/pkg/operator/ceph/cluster/osd/status.go b/pkg/operator/ceph/cluster/osd/status.go index 49b73a6896a2d..e18b6c23dfc11 100644 --- a/pkg/operator/ceph/cluster/osd/status.go +++ b/pkg/operator/ceph/cluster/osd/status.go @@ -27,7 +27,7 @@ import ( "github.com/rook/rook/pkg/util" "k8s.io/api/core/v1" corev1 "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/watch" @@ -274,8 +274,8 @@ func IsRemovingNode(devices string) bool { return devices == "none" } -func (c *Cluster) findRemovedNodes() (map[string][]*extensions.Deployment, error) { - removedNodes := map[string][]*extensions.Deployment{} +func (c *Cluster) findRemovedNodes() (map[string][]*apps.Deployment, error) { + removedNodes := map[string][]*apps.Deployment{} // first discover the storage nodes that are still running discoveredNodes, err := c.discoverStorageNodes() diff --git a/pkg/operator/ceph/cluster/rbd/mirror.go b/pkg/operator/ceph/cluster/rbd/mirror.go index 80508510d958e..25c9866d772b2 100644 --- a/pkg/operator/ceph/cluster/rbd/mirror.go +++ b/pkg/operator/ceph/cluster/rbd/mirror.go @@ -83,7 +83,7 @@ func (m *Mirroring) Start() error { // Start the deployment deployment := m.makeDeployment(resourceName, daemonName) - if _, err := m.context.Clientset.ExtensionsV1beta1().Deployments(m.Namespace).Create(deployment); err != nil { + if _, err := m.context.Clientset.AppsV1beta2().Deployments(m.Namespace).Create(deployment); err != nil { if !errors.IsAlreadyExists(err) { return fmt.Errorf("failed to create %s deployment. %+v", resourceName, err) } @@ -104,7 +104,7 @@ func (m *Mirroring) Start() error { func (m *Mirroring) removeExtraMirrors() error { opts := metav1.ListOptions{LabelSelector: fmt.Sprintf("app=%s", appName)} - d, err := m.context.Clientset.ExtensionsV1beta1().Deployments(m.Namespace).List(opts) + d, err := m.context.Clientset.AppsV1beta2().Deployments(m.Namespace).List(opts) if err != nil { return fmt.Errorf("failed to get mirrors. %+v", err) } @@ -130,7 +130,7 @@ func (m *Mirroring) removeExtraMirrors() error { var gracePeriod int64 propagation := metav1.DeletePropagationForeground deleteOpts := metav1.DeleteOptions{GracePeriodSeconds: &gracePeriod, PropagationPolicy: &propagation} - if err = m.context.Clientset.ExtensionsV1beta1().Deployments(m.Namespace).Delete(deploy.Name, &deleteOpts); err != nil { + if err = m.context.Clientset.AppsV1beta2().Deployments(m.Namespace).Delete(deploy.Name, &deleteOpts); err != nil { logger.Warningf("failed to delete rbd mirror %s. %+v", daemonName, err) } diff --git a/pkg/operator/ceph/cluster/rbd/mirror_test.go b/pkg/operator/ceph/cluster/rbd/mirror_test.go index 48a995e51bd2d..f81b8c46a5743 100644 --- a/pkg/operator/ceph/cluster/rbd/mirror_test.go +++ b/pkg/operator/ceph/cluster/rbd/mirror_test.go @@ -61,7 +61,7 @@ func TestRBDMirror(t *testing.T) { assert.False(t, keysCreated[fullDaemonName("c")]) opts := metav1.ListOptions{} - d, err := clientset.ExtensionsV1beta1().Deployments(c.Namespace).List(opts) + d, err := clientset.AppsV1beta2().Deployments(c.Namespace).List(opts) assert.Equal(t, 2, len(d.Items)) for _, de := range d.Items { daemonName := de.Name[len(de.Name)-1:] diff --git a/pkg/operator/ceph/cluster/rbd/spec.go b/pkg/operator/ceph/cluster/rbd/spec.go index 544dab734342b..c131de2723f19 100644 --- a/pkg/operator/ceph/cluster/rbd/spec.go +++ b/pkg/operator/ceph/cluster/rbd/spec.go @@ -22,11 +22,11 @@ import ( opspec "github.com/rook/rook/pkg/operator/ceph/spec" "github.com/rook/rook/pkg/operator/k8sutil" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func (m *Mirroring) makeDeployment(resourceName, daemonName string) *extensions.Deployment { +func (m *Mirroring) makeDeployment(resourceName, daemonName string) *apps.Deployment { podSpec := v1.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ Name: resourceName, @@ -50,12 +50,12 @@ func (m *Mirroring) makeDeployment(resourceName, daemonName string) *extensions. m.placement.ApplyToPodSpec(&podSpec.Spec) replicas := int32(1) - d := &extensions.Deployment{ + d := &apps.Deployment{ ObjectMeta: metav1.ObjectMeta{ Name: resourceName, Namespace: m.Namespace, }, - Spec: extensions.DeploymentSpec{Template: podSpec, Replicas: &replicas}, + Spec: apps.DeploymentSpec{Template: podSpec, Replicas: &replicas}, } k8sutil.SetOwnerRef(m.context.Clientset, m.Namespace, &d.ObjectMeta, &m.ownerRef) return d diff --git a/pkg/operator/ceph/file/filesystem_test.go b/pkg/operator/ceph/file/filesystem_test.go index f136f744accbd..b33d18315f97f 100644 --- a/pkg/operator/ceph/file/filesystem_test.go +++ b/pkg/operator/ceph/file/filesystem_test.go @@ -32,7 +32,7 @@ import ( exectest "github.com/rook/rook/pkg/util/exec/test" "github.com/stretchr/testify/assert" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -67,7 +67,7 @@ func TestValidateSpec(t *testing.T) { } func TestCreateFilesystem(t *testing.T) { - var deploymentsUpdated *[]*extensions.Deployment + var deploymentsUpdated *[]*apps.Deployment updateDeploymentAndWait, deploymentsUpdated = testopk8s.UpdateDeploymentAndWaitStub() configDir, _ := ioutil.TempDir("", "") @@ -204,11 +204,11 @@ func contains(arr []string, str string) bool { } func validateStart(t *testing.T, context *clusterd.Context, fs cephv1.CephFilesystem) { - r, err := context.Clientset.ExtensionsV1beta1().Deployments(fs.Namespace).Get("rook-ceph-mds-myfs-a", metav1.GetOptions{}) + r, err := context.Clientset.AppsV1beta2().Deployments(fs.Namespace).Get("rook-ceph-mds-myfs-a", metav1.GetOptions{}) assert.Nil(t, err) assert.Equal(t, "rook-ceph-mds-myfs-a", r.Name) - r, err = context.Clientset.ExtensionsV1beta1().Deployments(fs.Namespace).Get("rook-ceph-mds-myfs-b", metav1.GetOptions{}) + r, err = context.Clientset.AppsV1beta2().Deployments(fs.Namespace).Get("rook-ceph-mds-myfs-b", metav1.GetOptions{}) assert.Nil(t, err) assert.Equal(t, "rook-ceph-mds-myfs-b", r.Name) } diff --git a/pkg/operator/ceph/file/mds.go b/pkg/operator/ceph/file/mds.go index 5602920557bcc..067d418c08d14 100644 --- a/pkg/operator/ceph/file/mds.go +++ b/pkg/operator/ceph/file/mds.go @@ -27,7 +27,7 @@ import ( mdsdaemon "github.com/rook/rook/pkg/daemon/ceph/mds" "github.com/rook/rook/pkg/operator/k8sutil" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -81,7 +81,7 @@ type mdsConfig struct { func (c *cluster) deleteLegacyMdsDeployment() bool { legacyName := fmt.Sprintf("%s-%s", AppName, c.fs.Name) // rook-ceph-mds- logger.Debugf("getting legacy mds deployment %s for filesystem %s if it exists", legacyName, c.fs.Name) - _, err := c.context.Clientset.Extensions().Deployments(c.fs.Namespace).Get(legacyName, metav1.GetOptions{}) + _, err := c.context.Clientset.AppsV1beta2().Deployments(c.fs.Namespace).Get(legacyName, metav1.GetOptions{}) if err != nil && errors.IsNotFound(err) { logger.Infof("legacy mds deployment %s not found, no update needed", legacyName) return false @@ -140,7 +140,7 @@ func (c *cluster) start() error { // start the deployment d := c.makeDeployment(mdsConfig) logger.Debugf("starting mds: %+v", d) - _, err := c.context.Clientset.ExtensionsV1beta1().Deployments(c.fs.Namespace).Create(d) + _, err := c.context.Clientset.AppsV1beta2().Deployments(c.fs.Namespace).Create(d) if err != nil { if !errors.IsAlreadyExists(err) { return fmt.Errorf("failed to create mds deployment %s: %+v", mdsConfig.ResourceName, err) @@ -281,7 +281,7 @@ func deleteMdsCluster(context *clusterd.Context, namespace, fsName string) error return nil } -func getMdsDeployments(context *clusterd.Context, namespace, fsName string) (*extensions.DeploymentList, error) { +func getMdsDeployments(context *clusterd.Context, namespace, fsName string) (*apps.DeploymentList, error) { fsLabelSelector := fmt.Sprintf("rook_file_system=%s", fsName) deps, err := k8sutil.GetDeployments(context.Clientset, namespace, fsLabelSelector) if err != nil { @@ -290,7 +290,7 @@ func getMdsDeployments(context *clusterd.Context, namespace, fsName string) (*ex return deps, nil } -func deleteMdsDeployment(context *clusterd.Context, namespace string, deployment *extensions.Deployment) error { +func deleteMdsDeployment(context *clusterd.Context, namespace string, deployment *apps.Deployment) error { errCount := 0 // Delete the mds deployment @@ -298,7 +298,7 @@ func deleteMdsDeployment(context *clusterd.Context, namespace string, deployment var gracePeriod int64 propagation := metav1.DeletePropagationForeground options := &metav1.DeleteOptions{GracePeriodSeconds: &gracePeriod, PropagationPolicy: &propagation} - if err := context.Clientset.ExtensionsV1beta1().Deployments(namespace).Delete(deployment.GetName(), options); err != nil { + if err := context.Clientset.AppsV1beta2().Deployments(namespace).Delete(deployment.GetName(), options); err != nil { errCount++ logger.Errorf("failed to delete mds deployment %s: %+v", deployment.GetName(), err) } diff --git a/pkg/operator/ceph/file/spec.go b/pkg/operator/ceph/file/spec.go index 9ca6cff2eae60..0934a4d58fdd3 100644 --- a/pkg/operator/ceph/file/spec.go +++ b/pkg/operator/ceph/file/spec.go @@ -24,7 +24,7 @@ import ( opspec "github.com/rook/rook/pkg/operator/ceph/spec" "github.com/rook/rook/pkg/operator/k8sutil" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -32,7 +32,7 @@ const ( mdsDaemonCommand = "ceph-mds" ) -func (c *cluster) makeDeployment(mdsConfig *mdsConfig) *extensions.Deployment { +func (c *cluster) makeDeployment(mdsConfig *mdsConfig) *apps.Deployment { podSpec := v1.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ Name: mdsConfig.ResourceName, @@ -57,16 +57,16 @@ func (c *cluster) makeDeployment(mdsConfig *mdsConfig) *extensions.Deployment { c.fs.Spec.MetadataServer.Placement.ApplyToPodSpec(&podSpec.Spec) replicas := int32(1) - d := &extensions.Deployment{ + d := &apps.Deployment{ ObjectMeta: metav1.ObjectMeta{ Name: mdsConfig.ResourceName, Namespace: c.fs.Namespace, }, - Spec: extensions.DeploymentSpec{ + Spec: apps.DeploymentSpec{ Template: podSpec, Replicas: &replicas, - Strategy: extensions.DeploymentStrategy{ - Type: extensions.RecreateDeploymentStrategyType, + Strategy: apps.DeploymentStrategy{ + Type: apps.RecreateDeploymentStrategyType, }, }, } diff --git a/pkg/operator/ceph/file/spec_test.go b/pkg/operator/ceph/file/spec_test.go index 54f1569ecbd7c..2d0420d508ba0 100644 --- a/pkg/operator/ceph/file/spec_test.go +++ b/pkg/operator/ceph/file/spec_test.go @@ -29,12 +29,12 @@ import ( testop "github.com/rook/rook/pkg/operator/test" "github.com/stretchr/testify/assert" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func testDeploymentObject(hostNetwork bool) *extensions.Deployment { +func testDeploymentObject(hostNetwork bool) *apps.Deployment { fs := cephv1.CephFilesystem{ ObjectMeta: metav1.ObjectMeta{Name: "myfs", Namespace: "ns"}, Spec: cephv1.FilesystemSpec{ diff --git a/pkg/operator/ceph/nfs/nfs.go b/pkg/operator/ceph/nfs/nfs.go index 47edd2d6306af..b483e4b03ad41 100644 --- a/pkg/operator/ceph/nfs/nfs.go +++ b/pkg/operator/ceph/nfs/nfs.go @@ -59,7 +59,7 @@ func (c *CephNFSController) createCephNFS(n cephv1.CephNFS) error { // start the deployment deployment := c.makeDeployment(n, name, configName) - _, err = c.context.Clientset.ExtensionsV1beta1().Deployments(n.Namespace).Create(deployment) + _, err = c.context.Clientset.AppsV1beta2().Deployments(n.Namespace).Create(deployment) if err != nil { if !errors.IsAlreadyExists(err) { return fmt.Errorf("failed to create ganesha deployment. %+v", err) diff --git a/pkg/operator/ceph/nfs/spec.go b/pkg/operator/ceph/nfs/spec.go index 9ff47735f3579..535b2aeade76e 100644 --- a/pkg/operator/ceph/nfs/spec.go +++ b/pkg/operator/ceph/nfs/spec.go @@ -26,7 +26,7 @@ import ( opspec "github.com/rook/rook/pkg/operator/ceph/spec" "github.com/rook/rook/pkg/operator/k8sutil" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" @@ -76,10 +76,10 @@ func (c *CephNFSController) createCephNFSService(n cephv1.CephNFS, name string) return nil } -func (c *CephNFSController) makeDeployment(n cephv1.CephNFS, name, configName string) *extensions.Deployment { +func (c *CephNFSController) makeDeployment(n cephv1.CephNFS, name, configName string) *apps.Deployment { binariesEnvVar, binariesVolume, binariesMount := k8sutil.BinariesMountInfo() - deployment := &extensions.Deployment{ + deployment := &apps.Deployment{ ObjectMeta: metav1.ObjectMeta{ Name: instanceName(n, name), Namespace: n.Namespace, @@ -119,7 +119,7 @@ func (c *CephNFSController) makeDeployment(n cephv1.CephNFS, name, configName st // Multiple replicas of the nfs service would be handled by creating a service and a new deployment for each one, rather than increasing the pod count here replicas := int32(1) - deployment.Spec = extensions.DeploymentSpec{Template: podTemplateSpec, Replicas: &replicas} + deployment.Spec = apps.DeploymentSpec{Template: podTemplateSpec, Replicas: &replicas} return deployment } diff --git a/pkg/operator/ceph/object/rgw.go b/pkg/operator/ceph/object/rgw.go index 2a533a659ca87..2fe06159c288f 100644 --- a/pkg/operator/ceph/object/rgw.go +++ b/pkg/operator/ceph/object/rgw.go @@ -176,7 +176,7 @@ func (c *config) deleteStore() error { // Check if the object store exists depending on either the deployment or the daemonset func (c *config) storeExists() (bool, error) { - _, err := c.context.Clientset.ExtensionsV1beta1().Deployments(c.store.Namespace).Get(c.instanceName(), metav1.GetOptions{}) + _, err := c.context.Clientset.AppsV1beta2().Deployments(c.store.Namespace).Get(c.instanceName(), metav1.GetOptions{}) if err == nil { // the deployment was found return true, nil @@ -185,7 +185,7 @@ func (c *config) storeExists() (bool, error) { return false, err } - _, err = c.context.Clientset.ExtensionsV1beta1().DaemonSets(c.store.Namespace).Get(c.instanceName(), metav1.GetOptions{}) + _, err = c.context.Clientset.AppsV1beta2().DaemonSets(c.store.Namespace).Get(c.instanceName(), metav1.GetOptions{}) if err == nil { // the daemonset was found return true, nil diff --git a/pkg/operator/ceph/object/rgw_test.go b/pkg/operator/ceph/object/rgw_test.go index 6760530001305..ba458e6b497e5 100644 --- a/pkg/operator/ceph/object/rgw_test.go +++ b/pkg/operator/ceph/object/rgw_test.go @@ -65,18 +65,18 @@ func TestStartRGW(t *testing.T) { func validateStart(t *testing.T, c *config, clientset *fake.Clientset, allNodes bool) { if !allNodes { - r, err := clientset.ExtensionsV1beta1().Deployments(c.store.Namespace).Get(c.instanceName(), metav1.GetOptions{}) + r, err := clientset.AppsV1beta2().Deployments(c.store.Namespace).Get(c.instanceName(), metav1.GetOptions{}) assert.Nil(t, err) assert.Equal(t, c.instanceName(), r.Name) - _, err = clientset.ExtensionsV1beta1().DaemonSets(c.store.Namespace).Get(c.instanceName(), metav1.GetOptions{}) + _, err = clientset.AppsV1beta2().DaemonSets(c.store.Namespace).Get(c.instanceName(), metav1.GetOptions{}) assert.True(t, errors.IsNotFound(err)) } else { - r, err := clientset.ExtensionsV1beta1().DaemonSets(c.store.Namespace).Get(c.instanceName(), metav1.GetOptions{}) + r, err := clientset.AppsV1beta2().DaemonSets(c.store.Namespace).Get(c.instanceName(), metav1.GetOptions{}) assert.Nil(t, err) assert.Equal(t, c.instanceName(), r.Name) - _, err = clientset.ExtensionsV1beta1().Deployments(c.store.Namespace).Get(c.instanceName(), metav1.GetOptions{}) + _, err = clientset.AppsV1beta2().Deployments(c.store.Namespace).Get(c.instanceName(), metav1.GetOptions{}) assert.True(t, errors.IsNotFound(err)) } diff --git a/pkg/operator/ceph/object/spec.go b/pkg/operator/ceph/object/spec.go index 82fba4d39d710..01816bc2f23c5 100644 --- a/pkg/operator/ceph/object/spec.go +++ b/pkg/operator/ceph/object/spec.go @@ -26,30 +26,30 @@ import ( opspec "github.com/rook/rook/pkg/operator/ceph/spec" "github.com/rook/rook/pkg/operator/k8sutil" v1 "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" ) func (c *config) startDeployment() error { - d := &extensions.Deployment{ + d := &apps.Deployment{ ObjectMeta: metav1.ObjectMeta{ Name: c.instanceName(), Namespace: c.store.Namespace, }, - Spec: extensions.DeploymentSpec{ + Spec: apps.DeploymentSpec{ Template: c.makeRGWPodSpec(), Replicas: &c.store.Spec.Gateway.Instances, - Strategy: extensions.DeploymentStrategy{ - Type: extensions.RecreateDeploymentStrategyType, + Strategy: apps.DeploymentStrategy{ + Type: apps.RecreateDeploymentStrategyType, }, }, } k8sutil.SetOwnerRefs(c.context.Clientset, c.store.Namespace, &d.ObjectMeta, c.ownerRefs) logger.Debugf("starting mds deployment: %+v", d) - _, err := c.context.Clientset.ExtensionsV1beta1().Deployments(c.store.Namespace).Create(d) + _, err := c.context.Clientset.AppsV1beta2().Deployments(c.store.Namespace).Create(d) if err != nil { if !errors.IsAlreadyExists(err) { return fmt.Errorf("failed to create rgw deployment %s: %+v", c.instanceName(), err) @@ -57,7 +57,7 @@ func (c *config) startDeployment() error { logger.Infof("deployment for rgw %s already exists. updating if needed", c.instanceName()) // There may be a *lot* of rgws, and they are stateless, so don't bother waiting until the // entire deployment is updated to move on. - _, err := c.context.Clientset.Extensions().Deployments(c.store.Namespace).Update(d) + _, err := c.context.Clientset.AppsV1beta2().Deployments(c.store.Namespace).Update(d) if err != nil { return fmt.Errorf("failed to update rgw deployment %s. %+v", c.instanceName(), err) } @@ -67,14 +67,14 @@ func (c *config) startDeployment() error { } func (c *config) startDaemonset() error { - d := &extensions.DaemonSet{ + d := &apps.DaemonSet{ ObjectMeta: metav1.ObjectMeta{ Name: c.instanceName(), Namespace: c.store.Namespace, }, - Spec: extensions.DaemonSetSpec{ - UpdateStrategy: extensions.DaemonSetUpdateStrategy{ - Type: extensions.RollingUpdateDaemonSetStrategyType, + Spec: apps.DaemonSetSpec{ + UpdateStrategy: apps.DaemonSetUpdateStrategy{ + Type: apps.RollingUpdateDaemonSetStrategyType, }, Template: c.makeRGWPodSpec(), }, @@ -82,7 +82,7 @@ func (c *config) startDaemonset() error { k8sutil.SetOwnerRefs(c.context.Clientset, c.store.Namespace, &d.ObjectMeta, c.ownerRefs) logger.Debugf("starting rgw daemonset: %+v", d) - _, err := c.context.Clientset.ExtensionsV1beta1().DaemonSets(c.store.Namespace).Create(d) + _, err := c.context.Clientset.AppsV1beta2().DaemonSets(c.store.Namespace).Create(d) if err != nil { if !errors.IsAlreadyExists(err) { return fmt.Errorf("failed to create rgw daemonset %s: %+v", c.instanceName(), err) @@ -92,7 +92,7 @@ func (c *config) startDaemonset() error { // entire daemonset is updated to move on. // TODO: is the above statement safe to assume? // TODO: Are there any steps for RGW that need to happen before the daemons upgrade? - _, err := c.context.Clientset.Extensions().DaemonSets(c.store.Namespace).Update(d) + _, err := c.context.Clientset.AppsV1beta2().DaemonSets(c.store.Namespace).Update(d) if err != nil { return fmt.Errorf("failed to update rgw daemonset %s. %+v", c.instanceName(), err) } diff --git a/pkg/operator/discover/discover.go b/pkg/operator/discover/discover.go index 664645c5bfe28..7b26e89251bce 100644 --- a/pkg/operator/discover/discover.go +++ b/pkg/operator/discover/discover.go @@ -31,7 +31,7 @@ import ( "github.com/rook/rook/pkg/operator/k8sutil" "github.com/rook/rook/pkg/util/sys" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" kserrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" @@ -73,13 +73,13 @@ func (d *Discover) Start(namespace, discoverImage, securityAccount string) error func (d *Discover) createDiscoverDaemonSet(namespace, discoverImage, securityAccount string) error { privileged := true - ds := &extensions.DaemonSet{ + ds := &apps.DaemonSet{ ObjectMeta: metav1.ObjectMeta{ Name: discoverDaemonsetName, }, - Spec: extensions.DaemonSetSpec{ - UpdateStrategy: extensions.DaemonSetUpdateStrategy{ - Type: extensions.RollingUpdateDaemonSetStrategyType, + Spec: apps.DaemonSetSpec{ + UpdateStrategy: apps.DaemonSetUpdateStrategy{ + Type: apps.RollingUpdateDaemonSetStrategyType, }, Template: v1.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ @@ -165,13 +165,13 @@ func (d *Discover) createDiscoverDaemonSet(namespace, discoverImage, securityAcc } } - _, err := d.clientset.Extensions().DaemonSets(namespace).Create(ds) + _, err := d.clientset.AppsV1beta2().DaemonSets(namespace).Create(ds) if err != nil { if !kserrors.IsAlreadyExists(err) { return fmt.Errorf("failed to create rook-discover daemon set. %+v", err) } logger.Infof("rook-discover daemonset already exists, updating ...") - _, err = d.clientset.Extensions().DaemonSets(namespace).Update(ds) + _, err = d.clientset.AppsV1beta2().DaemonSets(namespace).Update(ds) if err != nil { return fmt.Errorf("failed to update rook-discover daemon set. %+v", err) } diff --git a/pkg/operator/discover/discover_test.go b/pkg/operator/discover/discover_test.go index 55c11b4c0d537..97a165a88bae9 100644 --- a/pkg/operator/discover/discover_test.go +++ b/pkg/operator/discover/discover_test.go @@ -50,7 +50,7 @@ func TestStartDiscoveryDaemonset(t *testing.T) { assert.Nil(t, err) // check daemonset parameters - agentDS, err := clientset.Extensions().DaemonSets(namespace).Get("rook-discover", metav1.GetOptions{}) + agentDS, err := clientset.AppsV1beta2().DaemonSets(namespace).Get("rook-discover", metav1.GetOptions{}) assert.Nil(t, err) assert.Equal(t, namespace, agentDS.Namespace) assert.Equal(t, "rook-discover", agentDS.Name) diff --git a/pkg/operator/edgefs/cluster/mgr/mgr.go b/pkg/operator/edgefs/cluster/mgr/mgr.go index 40a3df9a46225..8431979b3b9ea 100644 --- a/pkg/operator/edgefs/cluster/mgr/mgr.go +++ b/pkg/operator/edgefs/cluster/mgr/mgr.go @@ -28,7 +28,7 @@ import ( "github.com/rook/rook/pkg/clusterd" "github.com/rook/rook/pkg/operator/k8sutil" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -115,7 +115,7 @@ func (c *Cluster) Start(rookImage string) error { logger.Infof("Mgr Image is %s", rookImage) // start the deployment deployment := c.makeDeployment(appName, c.Namespace, rookImage, 1) - if _, err := c.context.Clientset.ExtensionsV1beta1().Deployments(c.Namespace).Create(deployment); err != nil { + if _, err := c.context.Clientset.AppsV1beta2().Deployments(c.Namespace).Create(deployment); err != nil { if !errors.IsAlreadyExists(err) { return fmt.Errorf("failed to create %s deployment. %+v", appName, err) } @@ -250,7 +250,7 @@ func (c *Cluster) makeUiService(name string) *v1.Service { return svc } -func (c *Cluster) makeDeployment(name, clusterName, rookImage string, replicas int32) *extensions.Deployment { +func (c *Cluster) makeDeployment(name, clusterName, rookImage string, replicas int32) *apps.Deployment { volumes := []v1.Volume{} if c.dataVolumeSize.Value() > 0 { @@ -305,12 +305,12 @@ func (c *Cluster) makeDeployment(name, clusterName, rookImage string, replicas i } c.placement.ApplyToPodSpec(&podSpec.Spec) - d := &extensions.Deployment{ + d := &apps.Deployment{ ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: c.Namespace, }, - Spec: extensions.DeploymentSpec{Template: podSpec, Replicas: &replicas}, + Spec: apps.DeploymentSpec{Template: podSpec, Replicas: &replicas}, } k8sutil.SetOwnerRef(c.context.Clientset, c.Namespace, &d.ObjectMeta, &c.ownerRef) return d diff --git a/pkg/operator/edgefs/cluster/mgr/mgr_test.go b/pkg/operator/edgefs/cluster/mgr/mgr_test.go index 60cf3daacf429..6b75d55ab2c2e 100644 --- a/pkg/operator/edgefs/cluster/mgr/mgr_test.go +++ b/pkg/operator/edgefs/cluster/mgr/mgr_test.go @@ -62,7 +62,7 @@ func TestStartMGR(t *testing.T) { func validateStart(t *testing.T, c *Cluster) { - _, err := c.context.Clientset.ExtensionsV1beta1().Deployments(c.Namespace).Get("rook-edgefs-mgr", metav1.GetOptions{}) + _, err := c.context.Clientset.AppsV1beta2().Deployments(c.Namespace).Get("rook-edgefs-mgr", metav1.GetOptions{}) assert.Nil(t, err) _, err = c.context.Clientset.CoreV1().Services(c.Namespace).Get("rook-edgefs-mgr", metav1.GetOptions{}) diff --git a/pkg/operator/edgefs/iscsi/iscsi.go b/pkg/operator/edgefs/iscsi/iscsi.go index 765363a02d05e..a8e6694eb679e 100644 --- a/pkg/operator/edgefs/iscsi/iscsi.go +++ b/pkg/operator/edgefs/iscsi/iscsi.go @@ -25,7 +25,7 @@ import ( "github.com/rook/rook/pkg/clusterd" "github.com/rook/rook/pkg/operator/k8sutil" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -77,7 +77,7 @@ func (c *ISCSIController) CreateOrUpdate(s edgefsv1alpha1.ISCSI, update bool, ow // start the deployment deployment := c.makeDeployment(s.Name, s.Namespace, c.rookImage, s.Spec) - if _, err := c.context.Clientset.ExtensionsV1beta1().Deployments(s.Namespace).Create(deployment); err != nil { + if _, err := c.context.Clientset.AppsV1beta2().Deployments(s.Namespace).Create(deployment); err != nil { if !errors.IsAlreadyExists(err) { return fmt.Errorf("failed to create %s deployment. %+v", appName, err) } @@ -122,7 +122,7 @@ func (c *ISCSIController) makeISCSIService(name, svcname, namespace string, iscs return svc } -func (c *ISCSIController) makeDeployment(svcname, namespace, rookImage string, iscsiSpec edgefsv1alpha1.ISCSISpec) *extensions.Deployment { +func (c *ISCSIController) makeDeployment(svcname, namespace, rookImage string, iscsiSpec edgefsv1alpha1.ISCSISpec) *apps.Deployment { name := instanceName(svcname) volumes := []v1.Volume{} @@ -171,12 +171,12 @@ func (c *ISCSIController) makeDeployment(svcname, namespace, rookImage string, i iscsiSpec.Placement.ApplyToPodSpec(&podSpec.Spec) instancesCount := int32(1) - d := &extensions.Deployment{ + d := &apps.Deployment{ ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: namespace, }, - Spec: extensions.DeploymentSpec{Template: podSpec, Replicas: &instancesCount}, + Spec: apps.DeploymentSpec{Template: podSpec, Replicas: &instancesCount}, } k8sutil.SetOwnerRef(c.context.Clientset, namespace, &d.ObjectMeta, &c.ownerRef) return d @@ -317,7 +317,7 @@ func instanceName(svcname string) string { // Check if the ISCSI service exists func serviceExists(context *clusterd.Context, s edgefsv1alpha1.ISCSI) (bool, error) { - _, err := context.Clientset.ExtensionsV1beta1().Deployments(s.Namespace).Get(instanceName(s.Name), metav1.GetOptions{}) + _, err := context.Clientset.AppsV1beta2().Deployments(s.Namespace).Get(instanceName(s.Name), metav1.GetOptions{}) if err == nil { // the deployment was found return true, nil diff --git a/pkg/operator/edgefs/nfs/nfs.go b/pkg/operator/edgefs/nfs/nfs.go index 6f5cf532ecd57..a9c38fa5e54d0 100644 --- a/pkg/operator/edgefs/nfs/nfs.go +++ b/pkg/operator/edgefs/nfs/nfs.go @@ -24,7 +24,7 @@ import ( "github.com/rook/rook/pkg/clusterd" "github.com/rook/rook/pkg/operator/k8sutil" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -69,7 +69,7 @@ func (c *NFSController) CreateOrUpdate(s edgefsv1alpha1.NFS, update bool, ownerR // start the deployment deployment := c.makeDeployment(s.Name, s.Namespace, c.rookImage, s.Spec) - if _, err := c.context.Clientset.ExtensionsV1beta1().Deployments(s.Namespace).Create(deployment); err != nil { + if _, err := c.context.Clientset.AppsV1beta2().Deployments(s.Namespace).Create(deployment); err != nil { if !errors.IsAlreadyExists(err) { return fmt.Errorf("failed to create %s deployment. %+v", appName, err) } @@ -125,7 +125,7 @@ func (c *NFSController) makeNFSService(name, svcname, namespace string) *v1.Serv return svc } -func (c *NFSController) makeDeployment(svcname, namespace, rookImage string, nfsSpec edgefsv1alpha1.NFSSpec) *extensions.Deployment { +func (c *NFSController) makeDeployment(svcname, namespace, rookImage string, nfsSpec edgefsv1alpha1.NFSSpec) *apps.Deployment { name := instanceName(svcname) volumes := []v1.Volume{} @@ -173,12 +173,12 @@ func (c *NFSController) makeDeployment(svcname, namespace, rookImage string, nfs // apply current NFS CRD options to pod's specification nfsSpec.Placement.ApplyToPodSpec(&podSpec.Spec) - d := &extensions.Deployment{ + d := &apps.Deployment{ ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: namespace, }, - Spec: extensions.DeploymentSpec{Template: podSpec, Replicas: &nfsSpec.Instances}, + Spec: apps.DeploymentSpec{Template: podSpec, Replicas: &nfsSpec.Instances}, } k8sutil.SetOwnerRef(c.context.Clientset, namespace, &d.ObjectMeta, &c.ownerRef) return d @@ -312,7 +312,7 @@ func instanceName(svcname string) string { // Check if the NFS service exists func serviceExists(context *clusterd.Context, s edgefsv1alpha1.NFS) (bool, error) { - _, err := context.Clientset.ExtensionsV1beta1().Deployments(s.Namespace).Get(instanceName(s.Name), metav1.GetOptions{}) + _, err := context.Clientset.AppsV1beta2().Deployments(s.Namespace).Get(instanceName(s.Name), metav1.GetOptions{}) if err == nil { // the deployment was found return true, nil diff --git a/pkg/operator/edgefs/s3/s3.go b/pkg/operator/edgefs/s3/s3.go index 481adf574f90a..2c12890e107c9 100644 --- a/pkg/operator/edgefs/s3/s3.go +++ b/pkg/operator/edgefs/s3/s3.go @@ -24,7 +24,7 @@ import ( "github.com/rook/rook/pkg/clusterd" "github.com/rook/rook/pkg/operator/k8sutil" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -82,7 +82,7 @@ func (c *S3Controller) CreateOrUpdate(s edgefsv1alpha1.S3, update bool, ownerRef // start the deployment deployment := c.makeDeployment(s.Name, s.Namespace, c.rookImage, s.Spec) - if _, err := c.context.Clientset.ExtensionsV1beta1().Deployments(s.Namespace).Create(deployment); err != nil { + if _, err := c.context.Clientset.AppsV1beta2().Deployments(s.Namespace).Create(deployment); err != nil { if !errors.IsAlreadyExists(err) { return fmt.Errorf("failed to create %s deployment. %+v", appName, err) } @@ -128,7 +128,7 @@ func (c *S3Controller) makeS3Service(name, svcname, namespace string, s3Spec edg return svc } -func (c *S3Controller) makeDeployment(svcname, namespace, rookImage string, s3Spec edgefsv1alpha1.S3Spec) *extensions.Deployment { +func (c *S3Controller) makeDeployment(svcname, namespace, rookImage string, s3Spec edgefsv1alpha1.S3Spec) *apps.Deployment { name := instanceName(svcname) volumes := []v1.Volume{} @@ -198,12 +198,12 @@ func (c *S3Controller) makeDeployment(svcname, namespace, rookImage string, s3Sp // apply current S3 CRD options to pod's specification s3Spec.Placement.ApplyToPodSpec(&podSpec.Spec) - d := &extensions.Deployment{ + d := &apps.Deployment{ ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: namespace, }, - Spec: extensions.DeploymentSpec{Template: podSpec, Replicas: &s3Spec.Instances}, + Spec: apps.DeploymentSpec{Template: podSpec, Replicas: &s3Spec.Instances}, } k8sutil.SetOwnerRef(c.context.Clientset, namespace, &d.ObjectMeta, &c.ownerRef) return d @@ -341,7 +341,7 @@ func instanceName(svcname string) string { // Check if the S3 service exists func serviceExists(context *clusterd.Context, s edgefsv1alpha1.S3) (bool, error) { - _, err := context.Clientset.ExtensionsV1beta1().Deployments(s.Namespace).Get(instanceName(s.Name), metav1.GetOptions{}) + _, err := context.Clientset.AppsV1beta2().Deployments(s.Namespace).Get(instanceName(s.Name), metav1.GetOptions{}) if err == nil { // the deployment was found return true, nil diff --git a/pkg/operator/edgefs/s3x/s3x.go b/pkg/operator/edgefs/s3x/s3x.go index 01d5cd8d8dfc3..dc47bd7bf8cff 100644 --- a/pkg/operator/edgefs/s3x/s3x.go +++ b/pkg/operator/edgefs/s3x/s3x.go @@ -24,7 +24,7 @@ import ( "github.com/rook/rook/pkg/clusterd" "github.com/rook/rook/pkg/operator/k8sutil" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -82,7 +82,7 @@ func (c *S3XController) CreateOrUpdate(s edgefsv1alpha1.S3X, update bool, ownerR // start the deployment deployment := c.makeDeployment(s.Name, s.Namespace, c.rookImage, s.Spec) - if _, err := c.context.Clientset.ExtensionsV1beta1().Deployments(s.Namespace).Create(deployment); err != nil { + if _, err := c.context.Clientset.AppsV1beta2().Deployments(s.Namespace).Create(deployment); err != nil { if !errors.IsAlreadyExists(err) { return fmt.Errorf("failed to create %s deployment. %+v", appName, err) } @@ -128,7 +128,7 @@ func (c *S3XController) makeS3XService(name, svcname, namespace string, s3xSpec return svc } -func (c *S3XController) makeDeployment(svcname, namespace, rookImage string, s3xSpec edgefsv1alpha1.S3XSpec) *extensions.Deployment { +func (c *S3XController) makeDeployment(svcname, namespace, rookImage string, s3xSpec edgefsv1alpha1.S3XSpec) *apps.Deployment { name := instanceName(svcname) volumes := []v1.Volume{} @@ -198,12 +198,12 @@ func (c *S3XController) makeDeployment(svcname, namespace, rookImage string, s3x // apply current S3X CRD options to pod's specification s3xSpec.Placement.ApplyToPodSpec(&podSpec.Spec) - d := &extensions.Deployment{ + d := &apps.Deployment{ ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: namespace, }, - Spec: extensions.DeploymentSpec{Template: podSpec, Replicas: &s3xSpec.Instances}, + Spec: apps.DeploymentSpec{Template: podSpec, Replicas: &s3xSpec.Instances}, } k8sutil.SetOwnerRef(c.context.Clientset, namespace, &d.ObjectMeta, &c.ownerRef) return d @@ -341,7 +341,7 @@ func instanceName(svcname string) string { // Check if the S3X service exists func serviceExists(context *clusterd.Context, s edgefsv1alpha1.S3X) (bool, error) { - _, err := context.Clientset.ExtensionsV1beta1().Deployments(s.Namespace).Get(instanceName(s.Name), metav1.GetOptions{}) + _, err := context.Clientset.AppsV1beta2().Deployments(s.Namespace).Get(instanceName(s.Name), metav1.GetOptions{}) if err == nil { // the deployment was found return true, nil diff --git a/pkg/operator/k8sutil/deployment.go b/pkg/operator/k8sutil/deployment.go index 481716e1698c7..4bebe5c165f16 100644 --- a/pkg/operator/k8sutil/deployment.go +++ b/pkg/operator/k8sutil/deployment.go @@ -20,21 +20,21 @@ import ( "time" "github.com/rook/rook/pkg/clusterd" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" ) // GetDeploymentImage returns the version of the image running in the pod spec for the desired container func GetDeploymentImage(clientset kubernetes.Interface, namespace, name, container string) (string, error) { - d, err := clientset.Extensions().Deployments(namespace).Get(name, metav1.GetOptions{}) + d, err := clientset.AppsV1beta2().Deployments(namespace).Get(name, metav1.GetOptions{}) if err != nil { return "", fmt.Errorf("failed to find deployment %s. %v", name, err) } return GetDeploymentSpecImage(clientset, *d, container, false) } -func GetDeploymentSpecImage(clientset kubernetes.Interface, d extensions.Deployment, container string, initContainer bool) (string, error) { +func GetDeploymentSpecImage(clientset kubernetes.Interface, d apps.Deployment, container string, initContainer bool) (string, error) { image, err := GetSpecContainerImage(d.Spec.Template.Spec, container, initContainer) if err != nil { return "", err @@ -48,7 +48,7 @@ func WaitForDeploymentImage(clientset kubernetes.Interface, namespace, label, co sleepTime := 3 attempts := 30 for i := 0; i < attempts; i++ { - deployments, err := clientset.Extensions().Deployments(namespace).List(metav1.ListOptions{LabelSelector: label}) + deployments, err := clientset.AppsV1beta2().Deployments(namespace).List(metav1.ListOptions{LabelSelector: label}) if err != nil { return fmt.Errorf("failed to list deployments with label %s. %v", label, err) } @@ -80,14 +80,14 @@ func WaitForDeploymentImage(clientset kubernetes.Interface, namespace, label, co return nil } -func UpdateDeploymentAndWait(context *clusterd.Context, deployment *extensions.Deployment, namespace string) error { - original, err := context.Clientset.Extensions().Deployments(namespace).Get(deployment.Name, metav1.GetOptions{}) +func UpdateDeploymentAndWait(context *clusterd.Context, deployment *apps.Deployment, namespace string) error { + original, err := context.Clientset.AppsV1beta2().Deployments(namespace).Get(deployment.Name, metav1.GetOptions{}) if err != nil { return fmt.Errorf("failed to get deployment %s. %+v", deployment.Name, err) } logger.Infof("updating deployment %s", deployment.Name) - if _, err := context.Clientset.Extensions().Deployments(namespace).Update(deployment); err != nil { + if _, err := context.Clientset.AppsV1beta2().Deployments(namespace).Update(deployment); err != nil { return fmt.Errorf("failed to update deployment %s. %+v", deployment.Name, err) } @@ -100,7 +100,7 @@ func UpdateDeploymentAndWait(context *clusterd.Context, deployment *extensions.D } for i := 0; i < attempts; i++ { // check for the status of the deployment - d, err := context.Clientset.Extensions().Deployments(namespace).Get(deployment.Name, metav1.GetOptions{}) + d, err := context.Clientset.AppsV1beta2().Deployments(namespace).Get(deployment.Name, metav1.GetOptions{}) if err != nil { return fmt.Errorf("failed to get deployment %s. %+v", deployment.Name, err) } @@ -119,9 +119,9 @@ func UpdateDeploymentAndWait(context *clusterd.Context, deployment *extensions.D // GetDeployments returns a list of deployment names labels matching a given selector // example of a label selector might be "app=rook-ceph-mon, mon!=b" // more: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ -func GetDeployments(clientset kubernetes.Interface, namespace, labelSelector string) (*extensions.DeploymentList, error) { +func GetDeployments(clientset kubernetes.Interface, namespace, labelSelector string) (*apps.DeploymentList, error) { listOptions := metav1.ListOptions{LabelSelector: labelSelector} - deployments, err := clientset.Extensions().Deployments(namespace).List(listOptions) + deployments, err := clientset.AppsV1beta2().Deployments(namespace).List(listOptions) if err != nil { return nil, fmt.Errorf("failed to list deployments with labelSelector %s: %v", labelSelector, err) } diff --git a/pkg/operator/k8sutil/pod.go b/pkg/operator/k8sutil/pod.go index 9e32b3ec44a7a..8d4c0fcf3aeb0 100644 --- a/pkg/operator/k8sutil/pod.go +++ b/pkg/operator/k8sutil/pod.go @@ -222,10 +222,10 @@ func GetPodLog(clientset kubernetes.Interface, namespace string, labelSelector s func DeleteDeployment(clientset kubernetes.Interface, namespace, name string) error { logger.Debugf("removing %s deployment if it exists", name) deleteAction := func(options *metav1.DeleteOptions) error { - return clientset.ExtensionsV1beta1().Deployments(namespace).Delete(name, options) + return clientset.AppsV1beta2().Deployments(namespace).Delete(name, options) } getAction := func() error { - _, err := clientset.ExtensionsV1beta1().Deployments(namespace).Get(name, metav1.GetOptions{}) + _, err := clientset.AppsV1beta2().Deployments(namespace).Get(name, metav1.GetOptions{}) return err } return deleteResourceAndWait(namespace, name, "deployment", deleteAction, getAction) @@ -234,10 +234,10 @@ func DeleteDeployment(clientset kubernetes.Interface, namespace, name string) er // DeleteReplicaSet makes a best effort at deleting a deployment and its pods, then waits for them to be deleted func DeleteReplicaSet(clientset kubernetes.Interface, namespace, name string) error { deleteAction := func(options *metav1.DeleteOptions) error { - return clientset.ExtensionsV1beta1().ReplicaSets(namespace).Delete(name, options) + return clientset.AppsV1beta2().ReplicaSets(namespace).Delete(name, options) } getAction := func() error { - _, err := clientset.ExtensionsV1beta1().ReplicaSets(namespace).Get(name, metav1.GetOptions{}) + _, err := clientset.AppsV1beta2().ReplicaSets(namespace).Get(name, metav1.GetOptions{}) return err } return deleteResourceAndWait(namespace, name, "replicaset", deleteAction, getAction) @@ -247,10 +247,10 @@ func DeleteReplicaSet(clientset kubernetes.Interface, namespace, name string) er func DeleteDaemonset(clientset kubernetes.Interface, namespace, name string) error { logger.Infof("removing %s daemonset if it exists", name) deleteAction := func(options *metav1.DeleteOptions) error { - return clientset.ExtensionsV1beta1().DaemonSets(namespace).Delete(name, options) + return clientset.AppsV1beta2().DaemonSets(namespace).Delete(name, options) } getAction := func() error { - _, err := clientset.ExtensionsV1beta1().DaemonSets(namespace).Get(name, metav1.GetOptions{}) + _, err := clientset.AppsV1beta2().DaemonSets(namespace).Get(name, metav1.GetOptions{}) return err } return deleteResourceAndWait(namespace, name, "daemonset", deleteAction, getAction) diff --git a/pkg/operator/k8sutil/test/deployment.go b/pkg/operator/k8sutil/test/deployment.go index 389b2393773b3..fcc823682a05d 100644 --- a/pkg/operator/k8sutil/test/deployment.go +++ b/pkg/operator/k8sutil/test/deployment.go @@ -2,7 +2,7 @@ package test import ( "github.com/rook/rook/pkg/clusterd" - extensions "k8s.io/api/extensions/v1beta1" + apps "k8s.io/api/apps/v1beta2" ) // UpdateDeploymentAndWaitStub returns a stub replacement for the UpdateDeploymentAndWait function @@ -14,11 +14,11 @@ import ( // returns a pointer to this slice which the calling func may use to verify the expected contents of // deploymentsUpdated based on expected behavior. func UpdateDeploymentAndWaitStub() ( - stubFunc func(context *clusterd.Context, deployment *extensions.Deployment, namespace string) error, - deploymentsUpdated *[]*extensions.Deployment, + stubFunc func(context *clusterd.Context, deployment *apps.Deployment, namespace string) error, + deploymentsUpdated *[]*apps.Deployment, ) { - deploymentsUpdated = &[]*extensions.Deployment{} - stubFunc = func(context *clusterd.Context, deployment *extensions.Deployment, namespace string) error { + deploymentsUpdated = &[]*apps.Deployment{} + stubFunc = func(context *clusterd.Context, deployment *apps.Deployment, namespace string) error { *deploymentsUpdated = append(*deploymentsUpdated, deployment) return nil } @@ -26,7 +26,7 @@ func UpdateDeploymentAndWaitStub() ( } // DeploymentNamesUpdated converts a deploymentsUpdated slice into a string slice of deployment names -func DeploymentNamesUpdated(deploymentsUpdated *[]*extensions.Deployment) []string { +func DeploymentNamesUpdated(deploymentsUpdated *[]*apps.Deployment) []string { ns := []string{} for _, d := range *deploymentsUpdated { ns = append(ns, d.GetName()) @@ -35,6 +35,6 @@ func DeploymentNamesUpdated(deploymentsUpdated *[]*extensions.Deployment) []stri } // ClearDeploymentsUpdated clears the deploymentsUpdated list -func ClearDeploymentsUpdated(deploymentsUpdated *[]*extensions.Deployment) { - *deploymentsUpdated = []*extensions.Deployment{} +func ClearDeploymentsUpdated(deploymentsUpdated *[]*apps.Deployment) { + *deploymentsUpdated = []*apps.Deployment{} } diff --git a/tests/framework/installer/ceph_manifests.go b/tests/framework/installer/ceph_manifests.go index c9de26f8e3b10..db3e3035fe126 100644 --- a/tests/framework/installer/ceph_manifests.go +++ b/tests/framework/installer/ceph_manifests.go @@ -255,7 +255,7 @@ rules: - update - delete - apiGroups: - - extensions + - apps resources: - daemonsets verbs: @@ -291,7 +291,7 @@ rules: - update - delete - apiGroups: - - extensions + - apps resources: - deployments - daemonsets diff --git a/tests/framework/installer/ceph_manifests_v0.9.go b/tests/framework/installer/ceph_manifests_v0.9.go index 5991eee2b9c9b..0452a743a51a5 100644 --- a/tests/framework/installer/ceph_manifests_v0.9.go +++ b/tests/framework/installer/ceph_manifests_v0.9.go @@ -215,7 +215,7 @@ rules: - update - delete - apiGroups: - - extensions + - apps resources: - daemonsets verbs: @@ -251,7 +251,7 @@ rules: - update - delete - apiGroups: - - extensions + - apps resources: - deployments - daemonsets