e2e: add -clusterid=... for selecting a Ceph cluster

The Ceph cluster-id is usually detected with `ceph fsid`. This is not
always correct, as the the Ceph cluster can also be configured by name.
If the -clusterid=... is passed, it will be used instead of trying to
detect it with `ceph fsid`.

Signed-off-by: Niels de Vos <ndevos@redhat.com>
This commit is contained in:
Niels de Vos 2022-04-08 13:14:15 +02:00 committed by mergify[bot]
parent e30364cb4d
commit b82af7559b
3 changed files with 23 additions and 16 deletions

View File

@ -87,22 +87,23 @@ Thanks to [minikube](../scripts/minikube.sh) script for the handy `deploy-rook`
In addition to standard go tests parameters, the following custom parameters In addition to standard go tests parameters, the following custom parameters
are available while running tests: are available while running tests:
| flag | description | | flag | description |
| ----------------- | ----------------------------------------------------------------------------- | | ----------------- | ------------------------------------------------------------------------------------------------- |
| deploy-timeout | Timeout to wait for created kubernetes resources (default: 10 minutes) | | deploy-timeout | Timeout to wait for created kubernetes resources (default: 10 minutes) |
| deploy-cephfs | Deploy cephFS CSI driver as part of E2E (default: true) | | deploy-cephfs | Deploy cephFS CSI driver as part of E2E (default: true) |
| deploy-rbd | Deploy rbd CSI driver as part of E2E (default: true) | | deploy-rbd | Deploy rbd CSI driver as part of E2E (default: true) |
| test-cephfs | Test cephFS CSI driver as part of E2E (default: true) | | test-cephfs | Test cephFS CSI driver as part of E2E (default: true) |
| upgrade-testing | Perform upgrade testing (default: false) | | upgrade-testing | Perform upgrade testing (default: false) |
| upgrade-version | Target version for upgrade testing (default: "v3.5.1") | | upgrade-version | Target version for upgrade testing (default: "v3.5.1") |
| test-rbd | Test rbd CSI driver as part of E2E (default: true) | | test-rbd | Test rbd CSI driver as part of E2E (default: true) |
| cephcsi-namespace | The namespace in which cephcsi driver will be created (default: "default") | | cephcsi-namespace | The namespace in which cephcsi driver will be created (default: "default") |
| rook-namespace | The namespace in which rook operator is installed (default: "rook-ceph") | | rook-namespace | The namespace in which rook operator is installed (default: "rook-ceph") |
| kubeconfig | Path to kubeconfig containing embedded authinfo (default: $HOME/.kube/config) | | kubeconfig | Path to kubeconfig containing embedded authinfo (default: $HOME/.kube/config) |
| timeout | Panic test binary after duration d (default 0, timeout disabled) | | timeout | Panic test binary after duration d (default 0, timeout disabled) |
| v | Verbose: print additional output | | v | Verbose: print additional output |
| is-openshift | Run in OpenShift compatibility mode, skips certain new feature tests | | is-openshift | Run in OpenShift compatibility mode, skips certain new feature tests |
| filesystem | Name of the CephFS filesystem (default: "myfs") | | filesystem | Name of the CephFS filesystem (default: "myfs") |
| clusterid | Use the Ceph cluster id in the StorageClasses and SnapshotClasses (default: `ceph fsid` detected) |
## E2E for snapshot ## E2E for snapshot

View File

@ -45,6 +45,7 @@ func init() {
flag.StringVar(&rookNamespace, "rook-namespace", "rook-ceph", "namespace in which rook is deployed") flag.StringVar(&rookNamespace, "rook-namespace", "rook-ceph", "namespace in which rook is deployed")
flag.BoolVar(&isOpenShift, "is-openshift", false, "disables certain checks on OpenShift") flag.BoolVar(&isOpenShift, "is-openshift", false, "disables certain checks on OpenShift")
flag.StringVar(&fileSystemName, "filesystem", "myfs", "CephFS filesystem to use") flag.StringVar(&fileSystemName, "filesystem", "myfs", "CephFS filesystem to use")
flag.StringVar(&clusterID, "clusterid", "", "Ceph cluster ID to use (defaults to `ceph fsid` detection)")
setDefaultKubeconfig() setDefaultKubeconfig()
// Register framework flags, then handle flags // Register framework flags, then handle flags

View File

@ -79,6 +79,7 @@ var (
radosNamespace string radosNamespace string
poll = 2 * time.Second poll = 2 * time.Second
isOpenShift bool isOpenShift bool
clusterID string
) )
func getMons(ns string, c kubernetes.Interface) ([]string, error) { func getMons(ns string, c kubernetes.Interface) ([]string, error) {
@ -122,6 +123,10 @@ func getMonsHash(mons string) string {
} }
func getClusterID(f *framework.Framework) (string, error) { func getClusterID(f *framework.Framework) (string, error) {
if clusterID != "" {
return clusterID, nil
}
fsID, stdErr, err := execCommandInToolBoxPod(f, "ceph fsid", rookNamespace) fsID, stdErr, err := execCommandInToolBoxPod(f, "ceph fsid", rookNamespace)
if err != nil { if err != nil {
return "", fmt.Errorf("failed getting clusterID through toolbox: %w", err) return "", fmt.Errorf("failed getting clusterID through toolbox: %w", err)