Changes to e2e to accomodate client-go changes and RunKubectlInput

With client-go v1.18.0 there is a change where Signatures on methods
in generated clientsets, dynamic, metadata, and scale clients have been
modified to accept context.Context as a first argument.
Signatures of Create, Update, and Patch methods have been updated to accept
CreateOptions, UpdateOptions and PatchOptions respectively.
Signatures of Delete and DeleteCollection methods now accept DeleteOptions
by value instead of by reference

The framework.RunkubectlInput now accepts namespace as the first parameter
which is also accommodated with this PR.

Signed-off-by: Humble Chirammal hchiramm@redhat.com
This commit is contained in:
Humble Chirammal 2020-04-14 12:29:04 +05:30 committed by mergify[bot]
parent 60a394b397
commit 4c96ad3c85
7 changed files with 73 additions and 70 deletions

View File

@ -4,7 +4,6 @@ import (
"fmt" "fmt"
. "github.com/onsi/ginkgo" // nolint . "github.com/onsi/ginkgo" // nolint
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log" e2elog "k8s.io/kubernetes/test/e2e/framework/log"
@ -30,7 +29,7 @@ func deployCephfsPlugin() {
if err != nil { if err != nil {
e2elog.Logf("failed to read content from %s %v", cephfsDirPath+cephfsProvisionerRBAC, err) e2elog.Logf("failed to read content from %s %v", cephfsDirPath+cephfsProvisionerRBAC, err)
} }
_, err = framework.RunKubectlInput(data, "--ignore-not-found=true", ns, "delete", "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, "--ignore-not-found=true", ns, "delete", "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to delete provisioner rbac %s %v", cephfsDirPath+cephfsProvisionerRBAC, err) e2elog.Logf("failed to delete provisioner rbac %s %v", cephfsDirPath+cephfsProvisionerRBAC, err)
} }
@ -39,7 +38,7 @@ func deployCephfsPlugin() {
if err != nil { if err != nil {
e2elog.Logf("failed to read content from %s %v", cephfsDirPath+cephfsNodePluginRBAC, err) e2elog.Logf("failed to read content from %s %v", cephfsDirPath+cephfsNodePluginRBAC, err)
} }
_, err = framework.RunKubectlInput(data, "delete", "--ignore-not-found=true", ns, "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, "delete", "--ignore-not-found=true", ns, "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to delete nodeplugin rbac %s %v", cephfsDirPath+cephfsNodePluginRBAC, err) e2elog.Logf("failed to delete nodeplugin rbac %s %v", cephfsDirPath+cephfsNodePluginRBAC, err)
@ -57,7 +56,7 @@ func createORDeleteCephfsResouces(action string) {
if err != nil { if err != nil {
e2elog.Logf("failed to read content from %s %v", cephfsDirPath+cephfsProvisioner, err) e2elog.Logf("failed to read content from %s %v", cephfsDirPath+cephfsProvisioner, err)
} }
_, err = framework.RunKubectlInput(data, action, ns, "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, action, ns, "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to %s cephfs provisioner %v", action, err) e2elog.Logf("failed to %s cephfs provisioner %v", action, err)
} }
@ -66,7 +65,7 @@ func createORDeleteCephfsResouces(action string) {
if err != nil { if err != nil {
e2elog.Logf("failed to read content from %s %v", cephfsDirPath+cephfsProvisionerRBAC, err) e2elog.Logf("failed to read content from %s %v", cephfsDirPath+cephfsProvisionerRBAC, err)
} }
_, err = framework.RunKubectlInput(data, action, ns, "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, action, ns, "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to %s cephfs provisioner rbac %v", action, err) e2elog.Logf("failed to %s cephfs provisioner rbac %v", action, err)
} }
@ -75,7 +74,7 @@ func createORDeleteCephfsResouces(action string) {
if err != nil { if err != nil {
e2elog.Logf("failed to read content from %s %v", cephfsDirPath+cephfsProvisionerPSP, err) e2elog.Logf("failed to read content from %s %v", cephfsDirPath+cephfsProvisionerPSP, err)
} }
_, err = framework.RunKubectlInput(data, action, ns, "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, action, ns, "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to %s cephfs provisioner psp %v", action, err) e2elog.Logf("failed to %s cephfs provisioner psp %v", action, err)
} }
@ -84,7 +83,7 @@ func createORDeleteCephfsResouces(action string) {
if err != nil { if err != nil {
e2elog.Logf("failed to read content from %s %v", cephfsDirPath+cephfsNodePlugin, err) e2elog.Logf("failed to read content from %s %v", cephfsDirPath+cephfsNodePlugin, err)
} }
_, err = framework.RunKubectlInput(data, action, ns, "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, action, ns, "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to %s cephfs nodeplugin %v", action, err) e2elog.Logf("failed to %s cephfs nodeplugin %v", action, err)
} }
@ -93,7 +92,7 @@ func createORDeleteCephfsResouces(action string) {
if err != nil { if err != nil {
e2elog.Logf("failed to read content from %s %v", cephfsDirPath+cephfsNodePluginRBAC, err) e2elog.Logf("failed to read content from %s %v", cephfsDirPath+cephfsNodePluginRBAC, err)
} }
_, err = framework.RunKubectlInput(data, action, ns, "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, action, ns, "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to %s cephfs nodeplugin rbac %v", action, err) e2elog.Logf("failed to %s cephfs nodeplugin rbac %v", action, err)
} }
@ -102,7 +101,7 @@ func createORDeleteCephfsResouces(action string) {
if err != nil { if err != nil {
e2elog.Logf("failed to read content from %s %v", cephfsDirPath+cephfsNodePluginPSP, err) e2elog.Logf("failed to read content from %s %v", cephfsDirPath+cephfsNodePluginPSP, err)
} }
_, err = framework.RunKubectlInput(data, action, ns, "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, action, ns, "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to %s cephfs nodeplugin psp %v", action, err) e2elog.Logf("failed to %s cephfs nodeplugin psp %v", action, err)
} }

View File

@ -1,6 +1,7 @@
package e2e package e2e
import ( import (
"context"
"strings" "strings"
. "github.com/onsi/gomega" // nolint . "github.com/onsi/gomega" // nolint
@ -21,7 +22,7 @@ var (
func deployVault(c kubernetes.Interface, deployTimeout int) { func deployVault(c kubernetes.Interface, deployTimeout int) {
// hack to make helm E2E pass as helm charts creates this configmap as part // hack to make helm E2E pass as helm charts creates this configmap as part
// of cephcsi deployment // of cephcsi deployment
_, err := framework.RunKubectl("delete", "cm", "ceph-csi-encryption-kms-config", "--namespace", cephCSINamespace, "--ignore-not-found=true") _, err := framework.RunKubectl(cephCSINamespace, "delete", "cm", "ceph-csi-encryption-kms-config", "--namespace", cephCSINamespace, "--ignore-not-found=true")
Expect(err).Should(BeNil()) Expect(err).Should(BeNil())
createORDeleteVault("create") createORDeleteVault("create")
@ -29,7 +30,7 @@ func deployVault(c kubernetes.Interface, deployTimeout int) {
LabelSelector: "app=vault", LabelSelector: "app=vault",
} }
pods, err := c.CoreV1().Pods(cephCSINamespace).List(opt) pods, err := c.CoreV1().Pods(cephCSINamespace).List(context.TODO(), opt)
Expect(err).Should(BeNil()) Expect(err).Should(BeNil())
Expect(len(pods.Items)).Should(Equal(1)) Expect(len(pods.Items)).Should(Equal(1))
name := pods.Items[0].Name name := pods.Items[0].Name
@ -50,7 +51,7 @@ func createORDeleteVault(action string) {
data = strings.ReplaceAll(data, "vault.default", "vault."+cephCSINamespace) data = strings.ReplaceAll(data, "vault.default", "vault."+cephCSINamespace)
data = strings.ReplaceAll(data, "value: default", "value: "+cephCSINamespace) data = strings.ReplaceAll(data, "value: default", "value: "+cephCSINamespace)
_, err = framework.RunKubectlInput(data, action, ns, "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, action, ns, "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to %s vault statefulset %v", action, err) e2elog.Logf("failed to %s vault statefulset %v", action, err)
} }
@ -59,7 +60,7 @@ func createORDeleteVault(action string) {
if err != nil { if err != nil {
e2elog.Logf("failed to read content from %s %v", vaultExamplePath+vaultRBACPath, err) e2elog.Logf("failed to read content from %s %v", vaultExamplePath+vaultRBACPath, err)
} }
_, err = framework.RunKubectlInput(data, action, ns, "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, action, ns, "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to %s vault statefulset %v", action, err) e2elog.Logf("failed to %s vault statefulset %v", action, err)
} }
@ -69,7 +70,7 @@ func createORDeleteVault(action string) {
e2elog.Logf("failed to read content from %s %v", vaultExamplePath+vaultConfigPath, err) e2elog.Logf("failed to read content from %s %v", vaultExamplePath+vaultConfigPath, err)
} }
data = strings.ReplaceAll(data, "default", cephCSINamespace) data = strings.ReplaceAll(data, "default", cephCSINamespace)
_, err = framework.RunKubectlInput(data, action, ns, "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, action, ns, "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to %s vault config map %v", action, err) e2elog.Logf("failed to %s vault config map %v", action, err)
} }
@ -78,7 +79,7 @@ func createORDeleteVault(action string) {
if err != nil { if err != nil {
e2elog.Logf("failed to read content from %s %v", vaultExamplePath+vaultPSPPath, err) e2elog.Logf("failed to read content from %s %v", vaultExamplePath+vaultPSPPath, err)
} }
_, err = framework.RunKubectlInput(data, action, ns, "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, action, ns, "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to %s vault psp %v", action, err) e2elog.Logf("failed to %s vault psp %v", action, err)
} }

View File

@ -13,6 +13,7 @@ limitations under the License.
package e2e package e2e
import ( import (
"context"
"fmt" "fmt"
"strconv" "strconv"
"strings" "strings"
@ -28,7 +29,7 @@ func logsCSIPods(label string, c clientset.Interface) {
opt := metav1.ListOptions{ opt := metav1.ListOptions{
LabelSelector: label, LabelSelector: label,
} }
podList, err := c.CoreV1().Pods(cephCSINamespace).List(opt) podList, err := c.CoreV1().Pods(cephCSINamespace).List(context.TODO(), opt)
if err != nil { if err != nil {
e2elog.Logf("failed to list pods with selector %s %v", label, err) e2elog.Logf("failed to list pods with selector %s %v", label, err)
return return
@ -62,7 +63,7 @@ func getPreviousPodLogs(c clientset.Interface, namespace, podName, containerName
Name(podName).SubResource("log"). Name(podName).SubResource("log").
Param("container", containerName). Param("container", containerName).
Param("previous", strconv.FormatBool(true)). Param("previous", strconv.FormatBool(true)).
Do(). Do(context.TODO()).
Raw() Raw()
if err != nil { if err != nil {
return "", err return "", err

View File

@ -5,7 +5,6 @@ import (
"strings" "strings"
. "github.com/onsi/ginkgo" // nolint . "github.com/onsi/ginkgo" // nolint
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log" e2elog "k8s.io/kubernetes/test/e2e/framework/log"
@ -31,7 +30,7 @@ func deployRBDPlugin() {
if err != nil { if err != nil {
e2elog.Logf("failed to read content from %s %v", rbdDirPath+rbdProvisionerRBAC, err) e2elog.Logf("failed to read content from %s %v", rbdDirPath+rbdProvisionerRBAC, err)
} }
_, err = framework.RunKubectlInput(data, "--ignore-not-found=true", ns, "delete", "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, "--ignore-not-found=true", ns, "delete", "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to delete provisioner rbac %s %v", rbdDirPath+rbdProvisionerRBAC, err) e2elog.Logf("failed to delete provisioner rbac %s %v", rbdDirPath+rbdProvisionerRBAC, err)
} }
@ -40,7 +39,7 @@ func deployRBDPlugin() {
if err != nil { if err != nil {
e2elog.Logf("failed to read content from %s %v", rbdDirPath+rbdNodePluginRBAC, err) e2elog.Logf("failed to read content from %s %v", rbdDirPath+rbdNodePluginRBAC, err)
} }
_, err = framework.RunKubectlInput(data, "delete", "--ignore-not-found=true", ns, "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, "delete", "--ignore-not-found=true", ns, "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to delete nodeplugin rbac %s %v", rbdDirPath+rbdNodePluginRBAC, err) e2elog.Logf("failed to delete nodeplugin rbac %s %v", rbdDirPath+rbdNodePluginRBAC, err)
} }
@ -57,7 +56,7 @@ func createORDeleteRbdResouces(action string) {
if err != nil { if err != nil {
e2elog.Logf("failed to read content from %s %v", rbdDirPath+rbdProvisioner, err) e2elog.Logf("failed to read content from %s %v", rbdDirPath+rbdProvisioner, err)
} }
_, err = framework.RunKubectlInput(data, action, ns, "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, action, ns, "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to %s rbd provisioner %v", action, err) e2elog.Logf("failed to %s rbd provisioner %v", action, err)
} }
@ -66,7 +65,7 @@ func createORDeleteRbdResouces(action string) {
if err != nil { if err != nil {
e2elog.Logf("failed to read content from %s %v", rbdDirPath+rbdProvisionerRBAC, err) e2elog.Logf("failed to read content from %s %v", rbdDirPath+rbdProvisionerRBAC, err)
} }
_, err = framework.RunKubectlInput(data, action, ns, "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, action, ns, "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to %s provisioner rbac %v", action, err) e2elog.Logf("failed to %s provisioner rbac %v", action, err)
} }
@ -75,7 +74,7 @@ func createORDeleteRbdResouces(action string) {
if err != nil { if err != nil {
e2elog.Logf("failed to read content from %s %v", rbdDirPath+rbdProvisionerPSP, err) e2elog.Logf("failed to read content from %s %v", rbdDirPath+rbdProvisionerPSP, err)
} }
_, err = framework.RunKubectlInput(data, action, "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, action, "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to %s provisioner psp %v", action, err) e2elog.Logf("failed to %s provisioner psp %v", action, err)
} }
@ -84,7 +83,7 @@ func createORDeleteRbdResouces(action string) {
if err != nil { if err != nil {
e2elog.Logf("failed to read content from %s %v", rbdDirPath+rbdNodePlugin, err) e2elog.Logf("failed to read content from %s %v", rbdDirPath+rbdNodePlugin, err)
} }
_, err = framework.RunKubectlInput(data, action, ns, "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, action, ns, "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to %s nodeplugin %v", action, err) e2elog.Logf("failed to %s nodeplugin %v", action, err)
} }
@ -93,7 +92,7 @@ func createORDeleteRbdResouces(action string) {
if err != nil { if err != nil {
e2elog.Logf("failed to read content from %s %v", rbdDirPath+rbdNodePluginRBAC, err) e2elog.Logf("failed to read content from %s %v", rbdDirPath+rbdNodePluginRBAC, err)
} }
_, err = framework.RunKubectlInput(data, action, ns, "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, action, ns, "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to %s nodeplugin rbac %v", action, err) e2elog.Logf("failed to %s nodeplugin rbac %v", action, err)
} }
@ -102,7 +101,7 @@ func createORDeleteRbdResouces(action string) {
if err != nil { if err != nil {
e2elog.Logf("failed to read content from %s %v", rbdDirPath+rbdNodePluginPSP, err) e2elog.Logf("failed to read content from %s %v", rbdDirPath+rbdNodePluginPSP, err)
} }
_, err = framework.RunKubectlInput(data, action, ns, "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, action, ns, "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to %s nodeplugin psp %v", action, err) e2elog.Logf("failed to %s nodeplugin psp %v", action, err)
} }

View File

@ -1,6 +1,7 @@
package e2e package e2e
import ( import (
"context"
"fmt" "fmt"
"strings" "strings"
"time" "time"
@ -22,21 +23,21 @@ func expandPVCSize(c kubernetes.Interface, pvc *v1.PersistentVolumeClaim, size s
updatedPVC := pvc.DeepCopy() updatedPVC := pvc.DeepCopy()
var err error var err error
updatedPVC, err = c.CoreV1().PersistentVolumeClaims(pvc.Namespace).Get(pvcName, metav1.GetOptions{}) updatedPVC, err = c.CoreV1().PersistentVolumeClaims(pvc.Namespace).Get(context.TODO(), pvcName, metav1.GetOptions{})
if err != nil { if err != nil {
return fmt.Errorf("error fetching pvc %q with %v", pvcName, err) return fmt.Errorf("error fetching pvc %q with %v", pvcName, err)
} }
timeout := time.Duration(t) * time.Minute timeout := time.Duration(t) * time.Minute
updatedPVC.Spec.Resources.Requests[v1.ResourceStorage] = resource.MustParse(size) updatedPVC.Spec.Resources.Requests[v1.ResourceStorage] = resource.MustParse(size)
_, err = c.CoreV1().PersistentVolumeClaims(updatedPVC.Namespace).Update(updatedPVC) _, err = c.CoreV1().PersistentVolumeClaims(updatedPVC.Namespace).Update(context.TODO(), updatedPVC, metav1.UpdateOptions{})
Expect(err).Should(BeNil()) Expect(err).Should(BeNil())
start := time.Now() start := time.Now()
e2elog.Logf("Waiting up to %v to be in Resized state", pvc) e2elog.Logf("Waiting up to %v to be in Resized state", pvc)
return wait.PollImmediate(poll, timeout, func() (bool, error) { return wait.PollImmediate(poll, timeout, func() (bool, error) {
e2elog.Logf("waiting for PVC %s (%d seconds elapsed)", updatedPVC.Name, int(time.Since(start).Seconds())) e2elog.Logf("waiting for PVC %s (%d seconds elapsed)", updatedPVC.Name, int(time.Since(start).Seconds()))
updatedPVC, err = c.CoreV1().PersistentVolumeClaims(updatedPVC.Namespace).Get(pvcName, metav1.GetOptions{}) updatedPVC, err = c.CoreV1().PersistentVolumeClaims(updatedPVC.Namespace).Get(context.TODO(), pvcName, metav1.GetOptions{})
if err != nil { if err != nil {
e2elog.Logf("Error getting pvc in namespace: '%s': %v", updatedPVC.Namespace, err) e2elog.Logf("Error getting pvc in namespace: '%s': %v", updatedPVC.Namespace, err)
if testutils.IsRetryableAPIError(err) { if testutils.IsRetryableAPIError(err) {
@ -92,7 +93,7 @@ func resizePVCAndValidateSize(pvcPath, appPath string, f *framework.Framework) e
LabelSelector: "app=resize-pvc", LabelSelector: "app=resize-pvc",
} }
pvc, err = f.ClientSet.CoreV1().PersistentVolumeClaims(pvc.Namespace).Get(pvc.Name, metav1.GetOptions{}) pvc, err = f.ClientSet.CoreV1().PersistentVolumeClaims(pvc.Namespace).Get(context.TODO(), pvc.Name, metav1.GetOptions{})
if err != nil { if err != nil {
return err return err
} }

View File

@ -1,6 +1,7 @@
package e2e package e2e
import ( import (
"context"
"fmt" "fmt"
"strings" "strings"
@ -115,14 +116,14 @@ func validateRBDStaticPV(f *framework.Framework, appPath string, isBlock bool) e
pv := getStaticPV(pvName, rbdImageName, size, "csi-rbd-secret", cephCSINamespace, sc, "rbd.csi.ceph.com", isBlock, opt) pv := getStaticPV(pvName, rbdImageName, size, "csi-rbd-secret", cephCSINamespace, sc, "rbd.csi.ceph.com", isBlock, opt)
_, err := c.CoreV1().PersistentVolumes().Create(pv) _, err := c.CoreV1().PersistentVolumes().Create(context.TODO(), pv, metav1.CreateOptions{})
if err != nil { if err != nil {
return fmt.Errorf("PV Create API error: %v", err) return fmt.Errorf("PV Create API error: %v", err)
} }
pvc := getStaticPVC(pvcName, pvName, size, ns, sc, isBlock) pvc := getStaticPVC(pvcName, pvName, size, ns, sc, isBlock)
_, err = c.CoreV1().PersistentVolumeClaims(pvc.Namespace).Create(pvc) _, err = c.CoreV1().PersistentVolumeClaims(pvc.Namespace).Create(context.TODO(), pvc, metav1.CreateOptions{})
if err != nil { if err != nil {
return fmt.Errorf("PVC Create API error: %v", err) return fmt.Errorf("PVC Create API error: %v", err)
} }
@ -144,12 +145,12 @@ func validateRBDStaticPV(f *framework.Framework, appPath string, isBlock bool) e
return err return err
} }
err = c.CoreV1().PersistentVolumeClaims(pvc.Namespace).Delete(pvc.Name, &metav1.DeleteOptions{}) err = c.CoreV1().PersistentVolumeClaims(pvc.Namespace).Delete(context.TODO(), pvc.Name, metav1.DeleteOptions{})
if err != nil { if err != nil {
return err return err
} }
err = c.CoreV1().PersistentVolumes().Delete(pv.Name, &metav1.DeleteOptions{}) err = c.CoreV1().PersistentVolumes().Delete(context.TODO(), pv.Name, metav1.DeleteOptions{})
if err != nil { if err != nil {
return err return err
} }

View File

@ -1,6 +1,7 @@
package e2e package e2e
import ( import (
"context"
"encoding/base64" "encoding/base64"
"encoding/json" "encoding/json"
"fmt" "fmt"
@ -74,13 +75,13 @@ func createNamespace(c clientset.Interface, name string) error {
Name: name, Name: name,
}, },
} }
_, err := c.CoreV1().Namespaces().Create(ns) _, err := c.CoreV1().Namespaces().Create(context.TODO(), ns, metav1.CreateOptions{})
if err != nil && !apierrs.IsAlreadyExists(err) { if err != nil && !apierrs.IsAlreadyExists(err) {
return err return err
} }
return wait.PollImmediate(poll, timeout, func() (bool, error) { return wait.PollImmediate(poll, timeout, func() (bool, error) {
_, err := c.CoreV1().Namespaces().Get(name, metav1.GetOptions{}) _, err := c.CoreV1().Namespaces().Get(context.TODO(), name, metav1.GetOptions{})
if err != nil { if err != nil {
e2elog.Logf("Error getting namespace: '%s': %v", name, err) e2elog.Logf("Error getting namespace: '%s': %v", name, err)
if apierrs.IsNotFound(err) { if apierrs.IsNotFound(err) {
@ -97,12 +98,12 @@ func createNamespace(c clientset.Interface, name string) error {
func deleteNamespace(c clientset.Interface, name string) error { func deleteNamespace(c clientset.Interface, name string) error {
timeout := time.Duration(deployTimeout) * time.Minute timeout := time.Duration(deployTimeout) * time.Minute
err := c.CoreV1().Namespaces().Delete(name, nil) err := c.CoreV1().Namespaces().Delete(context.TODO(), name, metav1.DeleteOptions{})
if err != nil && !apierrs.IsNotFound(err) { if err != nil && !apierrs.IsNotFound(err) {
Fail(err.Error()) Fail(err.Error())
} }
return wait.PollImmediate(poll, timeout, func() (bool, error) { return wait.PollImmediate(poll, timeout, func() (bool, error) {
_, err = c.CoreV1().Namespaces().Get(name, metav1.GetOptions{}) _, err = c.CoreV1().Namespaces().Get(context.TODO(), name, metav1.GetOptions{})
if err != nil { if err != nil {
if apierrs.IsNotFound(err) { if apierrs.IsNotFound(err) {
return true, nil return true, nil
@ -131,7 +132,7 @@ func waitForDaemonSets(name, ns string, c clientset.Interface, t int) error {
e2elog.Logf("Waiting up to %v for all daemonsets in namespace '%s' to start", timeout, ns) e2elog.Logf("Waiting up to %v for all daemonsets in namespace '%s' to start", timeout, ns)
return wait.PollImmediate(poll, timeout, func() (bool, error) { return wait.PollImmediate(poll, timeout, func() (bool, error) {
ds, err := c.AppsV1().DaemonSets(ns).Get(name, metav1.GetOptions{}) ds, err := c.AppsV1().DaemonSets(ns).Get(context.TODO(), name, metav1.GetOptions{})
if err != nil { if err != nil {
e2elog.Logf("Error getting daemonsets in namespace: '%s': %v", ns, err) e2elog.Logf("Error getting daemonsets in namespace: '%s': %v", ns, err)
if strings.Contains(err.Error(), "not found") { if strings.Contains(err.Error(), "not found") {
@ -163,7 +164,7 @@ func waitForDeploymentComplete(name, ns string, c clientset.Interface, t int) er
) )
timeout := time.Duration(t) * time.Minute timeout := time.Duration(t) * time.Minute
err = wait.PollImmediate(poll, timeout, func() (bool, error) { err = wait.PollImmediate(poll, timeout, func() (bool, error) {
deployment, err = c.AppsV1().Deployments(ns).Get(name, metav1.GetOptions{}) deployment, err = c.AppsV1().Deployments(ns).Get(context.TODO(), name, metav1.GetOptions{})
if err != nil { if err != nil {
return false, err return false, err
} }
@ -191,7 +192,7 @@ func waitForDeploymentComplete(name, ns string, c clientset.Interface, t int) er
func getCommandInPodOpts(f *framework.Framework, c, ns string, opt *metav1.ListOptions) framework.ExecOptions { func getCommandInPodOpts(f *framework.Framework, c, ns string, opt *metav1.ListOptions) framework.ExecOptions {
cmd := []string{"/bin/sh", "-c", c} cmd := []string{"/bin/sh", "-c", c}
podList, err := f.PodClientNS(ns).List(*opt) podList, err := f.PodClientNS(ns).List(context.TODO(), *opt)
framework.ExpectNoError(err) framework.ExpectNoError(err)
Expect(podList.Items).NotTo(BeNil()) Expect(podList.Items).NotTo(BeNil())
Expect(err).Should(BeNil()) Expect(err).Should(BeNil())
@ -231,7 +232,7 @@ func getMons(ns string, c kubernetes.Interface) []string {
opt := metav1.ListOptions{ opt := metav1.ListOptions{
LabelSelector: "app=rook-ceph-mon", LabelSelector: "app=rook-ceph-mon",
} }
svcList, err := c.CoreV1().Services(ns).List(opt) svcList, err := c.CoreV1().Services(ns).List(context.TODO(), opt)
Expect(err).Should(BeNil()) Expect(err).Should(BeNil())
services := make([]string, 0) services := make([]string, 0)
for i := range svcList.Items { for i := range svcList.Items {
@ -289,7 +290,7 @@ func createCephfsStorageClass(c kubernetes.Interface, f *framework.Framework, en
fsID = strings.Trim(fsID, "\n") fsID = strings.Trim(fsID, "\n")
sc.Namespace = cephCSINamespace sc.Namespace = cephCSINamespace
sc.Parameters["clusterID"] = fsID sc.Parameters["clusterID"] = fsID
_, err := c.StorageV1().StorageClasses().Create(&sc) _, err := c.StorageV1().StorageClasses().Create(context.TODO(), &sc, metav1.CreateOptions{})
Expect(err).Should(BeNil()) Expect(err).Should(BeNil())
} }
@ -319,7 +320,7 @@ func createRBDStorageClass(c kubernetes.Interface, f *framework.Framework, param
sc.Parameters[k] = v sc.Parameters[k] = v
} }
sc.Namespace = cephCSINamespace sc.Namespace = cephCSINamespace
_, err := c.StorageV1().StorageClasses().Create(&sc) _, err := c.StorageV1().StorageClasses().Create(context.TODO(), &sc, metav1.CreateOptions{})
Expect(err).Should(BeNil()) Expect(err).Should(BeNil())
} }
@ -353,7 +354,7 @@ func createRBDStorageClass(c kubernetes.Interface, f *framework.Framework, param
func deleteConfigMap(pluginPath string) { func deleteConfigMap(pluginPath string) {
path := pluginPath + configMap path := pluginPath + configMap
_, err := framework.RunKubectl("delete", "-f", path, ns) _, err := framework.RunKubectl(cephCSINamespace, "delete", "-f", path, ns)
if err != nil { if err != nil {
e2elog.Logf("failed to delete configmap %v", err) e2elog.Logf("failed to delete configmap %v", err)
} }
@ -388,14 +389,14 @@ func createConfigMap(pluginPath string, c kubernetes.Interface, f *framework.Fra
cm.Namespace = cephCSINamespace cm.Namespace = cephCSINamespace
// if the configmap is present update it,during cephcsi helm charts // if the configmap is present update it,during cephcsi helm charts
// deployment empty configmap gets created we need to override it // deployment empty configmap gets created we need to override it
_, err = c.CoreV1().ConfigMaps(cephCSINamespace).Get(cm.Name, metav1.GetOptions{}) _, err = c.CoreV1().ConfigMaps(cephCSINamespace).Get(context.TODO(), cm.Name, metav1.GetOptions{})
if err == nil { if err == nil {
_, updateErr := c.CoreV1().ConfigMaps(cephCSINamespace).Update(&cm) _, updateErr := c.CoreV1().ConfigMaps(cephCSINamespace).Update(context.TODO(), &cm, metav1.UpdateOptions{})
Expect(updateErr).Should(BeNil()) Expect(updateErr).Should(BeNil())
} }
if apierrs.IsNotFound(err) { if apierrs.IsNotFound(err) {
_, err = c.CoreV1().ConfigMaps(cephCSINamespace).Create(&cm) _, err = c.CoreV1().ConfigMaps(cephCSINamespace).Create(context.TODO(), &cm, metav1.CreateOptions{})
} }
Expect(err).Should(BeNil()) Expect(err).Should(BeNil())
@ -426,7 +427,7 @@ func createCephfsSecret(c kubernetes.Interface, f *framework.Framework) {
delete(sc.StringData, "userID") delete(sc.StringData, "userID")
delete(sc.StringData, "userKey") delete(sc.StringData, "userKey")
sc.Namespace = cephCSINamespace sc.Namespace = cephCSINamespace
_, err := c.CoreV1().Secrets(cephCSINamespace).Create(&sc) _, err := c.CoreV1().Secrets(cephCSINamespace).Create(context.TODO(), &sc, metav1.CreateOptions{})
Expect(err).Should(BeNil()) Expect(err).Should(BeNil())
} }
@ -441,7 +442,7 @@ func createRBDSecret(c kubernetes.Interface, f *framework.Framework) {
sc.StringData["userID"] = "admin" sc.StringData["userID"] = "admin"
sc.StringData["userKey"] = adminKey sc.StringData["userKey"] = adminKey
sc.Namespace = cephCSINamespace sc.Namespace = cephCSINamespace
_, err := c.CoreV1().Secrets(cephCSINamespace).Create(&sc) _, err := c.CoreV1().Secrets(cephCSINamespace).Create(context.TODO(), &sc, metav1.CreateOptions{})
Expect(err).Should(BeNil()) Expect(err).Should(BeNil())
err = updateSecretForEncryption(c) err = updateSecretForEncryption(c)
@ -452,26 +453,26 @@ func createRBDSecret(c kubernetes.Interface, f *framework.Framework) {
// include the encyption key // include the encyption key
// TODO in cephcsi we need to create own users in ceph cluster and use it for E2E // TODO in cephcsi we need to create own users in ceph cluster and use it for E2E
func updateSecretForEncryption(c kubernetes.Interface) error { func updateSecretForEncryption(c kubernetes.Interface) error {
secrets, err := c.CoreV1().Secrets(rookNamespace).Get(rbdProvisionerSecretName, metav1.GetOptions{}) secrets, err := c.CoreV1().Secrets(rookNamespace).Get(context.TODO(), rbdProvisionerSecretName, metav1.GetOptions{})
if err != nil { if err != nil {
return err return err
} }
secrets.Data["encryptionPassphrase"] = []byte("test_passphrase") secrets.Data["encryptionPassphrase"] = []byte("test_passphrase")
_, err = c.CoreV1().Secrets(rookNamespace).Update(secrets) _, err = c.CoreV1().Secrets(rookNamespace).Update(context.TODO(), secrets, metav1.UpdateOptions{})
if err != nil { if err != nil {
return err return err
} }
secrets, err = c.CoreV1().Secrets(rookNamespace).Get(rbdNodePluginSecretName, metav1.GetOptions{}) secrets, err = c.CoreV1().Secrets(rookNamespace).Get(context.TODO(), rbdNodePluginSecretName, metav1.GetOptions{})
if err != nil { if err != nil {
return err return err
} }
secrets.Data["encryptionPassphrase"] = []byte("test_passphrase") secrets.Data["encryptionPassphrase"] = []byte("test_passphrase")
_, err = c.CoreV1().Secrets(rookNamespace).Update(secrets) _, err = c.CoreV1().Secrets(rookNamespace).Update(context.TODO(), secrets, metav1.UpdateOptions{})
if err != nil { if err != nil {
return err return err
} }
@ -483,7 +484,7 @@ func deleteResource(scPath string) {
if err != nil { if err != nil {
e2elog.Logf("failed to read content from %s %v", scPath, err) e2elog.Logf("failed to read content from %s %v", scPath, err)
} }
_, err = framework.RunKubectlInput(data, ns, "delete", "-f", "-") _, err = framework.RunKubectlInput(cephCSINamespace, data, ns, "delete", "-f", "-")
if err != nil { if err != nil {
e2elog.Logf("failed to delete %s %v", scPath, err) e2elog.Logf("failed to delete %s %v", scPath, err)
} }
@ -503,7 +504,7 @@ func createPVCAndvalidatePV(c kubernetes.Interface, pvc *v1.PersistentVolumeClai
timeout := time.Duration(t) * time.Minute timeout := time.Duration(t) * time.Minute
pv := &v1.PersistentVolume{} pv := &v1.PersistentVolume{}
var err error var err error
_, err = c.CoreV1().PersistentVolumeClaims(pvc.Namespace).Create(pvc) _, err = c.CoreV1().PersistentVolumeClaims(pvc.Namespace).Create(context.TODO(), pvc, metav1.CreateOptions{})
Expect(err).Should(BeNil()) Expect(err).Should(BeNil())
name := pvc.Name name := pvc.Name
start := time.Now() start := time.Now()
@ -511,7 +512,7 @@ func createPVCAndvalidatePV(c kubernetes.Interface, pvc *v1.PersistentVolumeClai
return wait.PollImmediate(poll, timeout, func() (bool, error) { return wait.PollImmediate(poll, timeout, func() (bool, error) {
e2elog.Logf("waiting for PVC %s (%d seconds elapsed)", pvc.Name, int(time.Since(start).Seconds())) e2elog.Logf("waiting for PVC %s (%d seconds elapsed)", pvc.Name, int(time.Since(start).Seconds()))
pvc, err = c.CoreV1().PersistentVolumeClaims(pvc.Namespace).Get(name, metav1.GetOptions{}) pvc, err = c.CoreV1().PersistentVolumeClaims(pvc.Namespace).Get(context.TODO(), name, metav1.GetOptions{})
if err != nil { if err != nil {
e2elog.Logf("Error getting pvc in namespace: '%s': %v", pvc.Namespace, err) e2elog.Logf("Error getting pvc in namespace: '%s': %v", pvc.Namespace, err)
if testutils.IsRetryableAPIError(err) { if testutils.IsRetryableAPIError(err) {
@ -527,7 +528,7 @@ func createPVCAndvalidatePV(c kubernetes.Interface, pvc *v1.PersistentVolumeClai
return false, nil return false, nil
} }
pv, err = c.CoreV1().PersistentVolumes().Get(pvc.Spec.VolumeName, metav1.GetOptions{}) pv, err = c.CoreV1().PersistentVolumes().Get(context.TODO(), pvc.Spec.VolumeName, metav1.GetOptions{})
if err != nil { if err != nil {
return false, err return false, err
} }
@ -549,16 +550,16 @@ func deletePVCAndValidatePV(c kubernetes.Interface, pvc *v1.PersistentVolumeClai
var err error var err error
e2elog.Logf("Deleting PersistentVolumeClaim %v on namespace %v", name, nameSpace) e2elog.Logf("Deleting PersistentVolumeClaim %v on namespace %v", name, nameSpace)
pvc, err = c.CoreV1().PersistentVolumeClaims(nameSpace).Get(name, metav1.GetOptions{}) pvc, err = c.CoreV1().PersistentVolumeClaims(nameSpace).Get(context.TODO(), name, metav1.GetOptions{})
if err != nil { if err != nil {
return err return err
} }
pv, err := c.CoreV1().PersistentVolumes().Get(pvc.Spec.VolumeName, metav1.GetOptions{}) pv, err := c.CoreV1().PersistentVolumes().Get(context.TODO(), pvc.Spec.VolumeName, metav1.GetOptions{})
if err != nil { if err != nil {
return err return err
} }
err = c.CoreV1().PersistentVolumeClaims(nameSpace).Delete(name, &metav1.DeleteOptions{}) err = c.CoreV1().PersistentVolumeClaims(nameSpace).Delete(context.TODO(), name, metav1.DeleteOptions{})
if err != nil { if err != nil {
return fmt.Errorf("delete of PVC %v failed: %v", name, err) return fmt.Errorf("delete of PVC %v failed: %v", name, err)
} }
@ -566,7 +567,7 @@ func deletePVCAndValidatePV(c kubernetes.Interface, pvc *v1.PersistentVolumeClai
return wait.PollImmediate(poll, timeout, func() (bool, error) { return wait.PollImmediate(poll, timeout, func() (bool, error) {
// Check that the PVC is really deleted. // Check that the PVC is really deleted.
e2elog.Logf("waiting for PVC %s in state %s to be deleted (%d seconds elapsed)", name, pvc.Status.String(), int(time.Since(start).Seconds())) e2elog.Logf("waiting for PVC %s in state %s to be deleted (%d seconds elapsed)", name, pvc.Status.String(), int(time.Since(start).Seconds()))
pvc, err = c.CoreV1().PersistentVolumeClaims(nameSpace).Get(name, metav1.GetOptions{}) pvc, err = c.CoreV1().PersistentVolumeClaims(nameSpace).Get(context.TODO(), name, metav1.GetOptions{})
if err == nil { if err == nil {
return false, nil return false, nil
} }
@ -575,7 +576,7 @@ func deletePVCAndValidatePV(c kubernetes.Interface, pvc *v1.PersistentVolumeClai
} }
// Examine the pv.ClaimRef and UID. Expect nil values. // Examine the pv.ClaimRef and UID. Expect nil values.
_, err = c.CoreV1().PersistentVolumes().Get(pv.Name, metav1.GetOptions{}) _, err = c.CoreV1().PersistentVolumes().Get(context.TODO(), pv.Name, metav1.GetOptions{})
if err == nil { if err == nil {
return false, nil return false, nil
} }
@ -598,7 +599,7 @@ func loadApp(path string) (*v1.Pod, error) {
} }
func createApp(c kubernetes.Interface, app *v1.Pod, timeout int) error { func createApp(c kubernetes.Interface, app *v1.Pod, timeout int) error {
_, err := c.CoreV1().Pods(app.Namespace).Create(app) _, err := c.CoreV1().Pods(app.Namespace).Create(context.TODO(), app, metav1.CreateOptions{})
if err != nil { if err != nil {
return err return err
} }
@ -610,7 +611,7 @@ func waitForPodInRunningState(name, ns string, c kubernetes.Interface, t int) er
start := time.Now() start := time.Now()
e2elog.Logf("Waiting up to %v to be in Running state", name) e2elog.Logf("Waiting up to %v to be in Running state", name)
return wait.PollImmediate(poll, timeout, func() (bool, error) { return wait.PollImmediate(poll, timeout, func() (bool, error) {
pod, err := c.CoreV1().Pods(ns).Get(name, metav1.GetOptions{}) pod, err := c.CoreV1().Pods(ns).Get(context.TODO(), name, metav1.GetOptions{})
if err != nil { if err != nil {
return false, err return false, err
} }
@ -627,14 +628,14 @@ func waitForPodInRunningState(name, ns string, c kubernetes.Interface, t int) er
func deletePod(name, ns string, c kubernetes.Interface, t int) error { func deletePod(name, ns string, c kubernetes.Interface, t int) error {
timeout := time.Duration(t) * time.Minute timeout := time.Duration(t) * time.Minute
err := c.CoreV1().Pods(ns).Delete(name, &metav1.DeleteOptions{}) err := c.CoreV1().Pods(ns).Delete(context.TODO(), name, metav1.DeleteOptions{})
if err != nil { if err != nil {
return err return err
} }
start := time.Now() start := time.Now()
e2elog.Logf("Waiting for pod %v to be deleted", name) e2elog.Logf("Waiting for pod %v to be deleted", name)
return wait.PollImmediate(poll, timeout, func() (bool, error) { return wait.PollImmediate(poll, timeout, func() (bool, error) {
_, err := c.CoreV1().Pods(ns).Get(name, metav1.GetOptions{}) _, err := c.CoreV1().Pods(ns).Get(context.TODO(), name, metav1.GetOptions{})
if apierrs.IsNotFound(err) { if apierrs.IsNotFound(err) {
return true, nil return true, nil
@ -726,12 +727,12 @@ func validatePVCAndAppBinding(pvcPath, appPath string, f *framework.Framework) {
func getImageInfoFromPVC(pvcNamespace, pvcName string, f *framework.Framework) (string, string, error) { func getImageInfoFromPVC(pvcNamespace, pvcName string, f *framework.Framework) (string, string, error) {
c := f.ClientSet.CoreV1() c := f.ClientSet.CoreV1()
pvc, err := c.PersistentVolumeClaims(pvcNamespace).Get(pvcName, metav1.GetOptions{}) pvc, err := c.PersistentVolumeClaims(pvcNamespace).Get(context.TODO(), pvcName, metav1.GetOptions{})
if err != nil { if err != nil {
return "", "", err return "", "", err
} }
pv, err := c.PersistentVolumes().Get(pvc.Spec.VolumeName, metav1.GetOptions{}) pv, err := c.PersistentVolumes().Get(context.TODO(), pvc.Spec.VolumeName, metav1.GetOptions{})
if err != nil { if err != nil {
return "", "", err return "", "", err
} }
@ -827,7 +828,7 @@ func validateEncryptedPVCAndAppBinding(pvcPath, appPath, kms string, f *framewor
} }
func deletePodWithLabel(label, ns string, skipNotFound bool) error { func deletePodWithLabel(label, ns string, skipNotFound bool) error {
_, err := framework.RunKubectl("delete", "po", "-l", label, fmt.Sprintf("--ignore-not-found=%t", skipNotFound), fmt.Sprintf("--namespace=%s", ns)) _, err := framework.RunKubectl(cephCSINamespace, "delete", "po", "-l", label, fmt.Sprintf("--ignore-not-found=%t", skipNotFound), fmt.Sprintf("--namespace=%s", ns))
if err != nil { if err != nil {
e2elog.Logf("failed to delete pod %v", err) e2elog.Logf("failed to delete pod %v", err)
} }