From a27951f63dd500a28e73db043aec0dbfcc5f81fc Mon Sep 17 00:00:00 2001 From: John Collier Date: Mon, 7 Dec 2020 13:12:47 -0500 Subject: [PATCH 1/2] Use oc in integration tests Signed-off-by: John Collier --- tests/integration/pkg/client/{kubectl.go => oc.go} | 12 ++++++------ .../integration/pkg/tests/devfileregistry_tests.go | 14 +++++++------- 2 files changed, 13 insertions(+), 13 deletions(-) rename tests/integration/pkg/client/{kubectl.go => oc.go} (60%) diff --git a/tests/integration/pkg/client/kubectl.go b/tests/integration/pkg/client/oc.go similarity index 60% rename from tests/integration/pkg/client/kubectl.go rename to tests/integration/pkg/client/oc.go index c1448ec..f236692 100644 --- a/tests/integration/pkg/client/kubectl.go +++ b/tests/integration/pkg/client/oc.go @@ -20,9 +20,9 @@ import ( "github.com/devfile/registry-operator/tests/integration/pkg/config" ) -// KubectlApplyResource applies resources on the cluster, corresponding to the specified file(s) -func (w *K8sClient) KubectlApplyResource(filePath string) (err error) { - cmd := exec.Command("kubectl", "apply", "--namespace", config.Namespace, "-f", filePath) +// OcApplyResource applies resources on the cluster, corresponding to the specified file(s) +func (w *K8sClient) OcApplyResource(filePath string) (err error) { + cmd := exec.Command("oc", "apply", "--namespace", config.Namespace, "-f", filePath) outBytes, err := cmd.CombinedOutput() output := string(outBytes) if err != nil && !strings.Contains(output, "AlreadyExists") { @@ -31,9 +31,9 @@ func (w *K8sClient) KubectlApplyResource(filePath string) (err error) { return err } -// KubectlDeleteResource deletes the resources from the cluster that the specified file(s) correspond to -func (w *K8sClient) KubectlDeleteResource(filePath string) (err error) { - cmd := exec.Command("kubectl", "delete", "--namespace", config.Namespace, "-f", filePath) +// OcDeleteResource deletes the resources from the cluster that the specified file(s) correspond to +func (w *K8sClient) OcDeleteResource(filePath string) (err error) { + cmd := exec.Command("oc", "delete", "--namespace", config.Namespace, "-f", filePath) outBytes, err := cmd.CombinedOutput() output := string(outBytes) if err != nil && !strings.Contains(output, "AlreadyExists") { diff --git a/tests/integration/pkg/tests/devfileregistry_tests.go b/tests/integration/pkg/tests/devfileregistry_tests.go index d5d7865..42a9e2b 100644 --- a/tests/integration/pkg/tests/devfileregistry_tests.go +++ b/tests/integration/pkg/tests/devfileregistry_tests.go @@ -32,7 +32,7 @@ var _ = ginkgo.Describe("[Create Devfile Registry resource]", func() { label := "devfileregistry_cr=" + crName // Deploy the devfileregistry resource for this test case and wait for the pod to be running - err := K8sClient.KubectlApplyResource("tests/integration/examples/create/devfileregistry.yaml") + err := K8sClient.OcApplyResource("tests/integration/examples/create/devfileregistry.yaml") if err != nil { ginkgo.Fail("Failed to create devfileregistry instance: " + err.Error()) return @@ -55,7 +55,7 @@ var _ = ginkgo.Describe("[Create Devfile Registry resource]", func() { }) var _ = ginkgo.AfterEach(func() { - K8sClient.KubectlDeleteResource("tests/integration/examples/create/devfileregistry.yaml") + K8sClient.OcDeleteResource("tests/integration/examples/create/devfileregistry.yaml") }) }) @@ -65,7 +65,7 @@ var _ = ginkgo.Describe("[Create Devfile Registry resource with TLS enabled]", f label := "devfileregistry_cr=" + crName // Deploy the devfileregistry resource for this test case and wait for the pod to be running - err := K8sClient.KubectlApplyResource("tests/integration/examples/create/devfileregistry-tls.yaml") + err := K8sClient.OcApplyResource("tests/integration/examples/create/devfileregistry-tls.yaml") if err != nil { ginkgo.Fail("Failed to create devfileregistry instance: " + err.Error()) return @@ -91,7 +91,7 @@ var _ = ginkgo.Describe("[Create Devfile Registry resource with TLS enabled]", f }) var _ = ginkgo.AfterEach(func() { - K8sClient.KubectlDeleteResource("tests/integration/examples/create/devfileregistry-tls.yaml") + K8sClient.OcDeleteResource("tests/integration/examples/create/devfileregistry-tls.yaml") }) }) @@ -101,7 +101,7 @@ var _ = ginkgo.Describe("[Update Devfile Registry resource]", func() { label := "devfileregistry_cr=" + crName // Deploy the devfileregistry resource for this test case and wait for the pod to be running - err := K8sClient.KubectlApplyResource("tests/integration/examples/update/devfileregistry-old.yaml") + err := K8sClient.OcApplyResource("tests/integration/examples/update/devfileregistry-old.yaml") if err != nil { ginkgo.Fail("Failed to create devfileregistry instance: " + err.Error()) return @@ -123,7 +123,7 @@ var _ = ginkgo.Describe("[Update Devfile Registry resource]", func() { gomega.Expect(err).NotTo(gomega.HaveOccurred()) // Update the devfileregistry resource for this test case - err = K8sClient.KubectlApplyResource("tests/integration/examples/update/devfileregistry-new.yaml") + err = K8sClient.OcApplyResource("tests/integration/examples/update/devfileregistry-new.yaml") if err != nil { ginkgo.Fail("Failed to create devfileregistry instance: " + err.Error()) return @@ -140,6 +140,6 @@ var _ = ginkgo.Describe("[Update Devfile Registry resource]", func() { }) var _ = ginkgo.AfterEach(func() { - K8sClient.KubectlDeleteResource("tests/integration/examples/update/devfileregistry-new.yaml") + K8sClient.OcDeleteResource("tests/integration/examples/update/devfileregistry-new.yaml") }) }) From 9af3aaf34336391775e1a5b52b48ea56b72ac5f1 Mon Sep 17 00:00:00 2001 From: John Collier Date: Mon, 7 Dec 2020 13:39:13 -0500 Subject: [PATCH 2/2] Update makefile to support oc if available Signed-off-by: John Collier --- Makefile | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index d15e561..1c9db5b 100644 --- a/Makefile +++ b/Makefile @@ -24,6 +24,17 @@ else GOBIN=$(shell go env GOBIN) endif +# Check if oc or kubectl are installed and determine which of the two to use +ifeq (,$(shell which kubectl)) +ifeq (,$(shell which oc)) +$(error oc or kubectl is required to proceed) +else +K8S_CLI := oc +endif +else +K8S_CLI := kubectl +endif + all: manager # Run tests @@ -48,17 +59,17 @@ run: generate fmt vet manifests # Install CRDs into a cluster install: manifests kustomize - $(KUSTOMIZE) build config/crd | kubectl apply -f - + $(KUSTOMIZE) build config/crd | $(K8S_CLI) apply -f - # Uninstall operator and CRDs from a cluster uninstall: manifests kustomize - $(KUSTOMIZE) build config/default | kubectl delete -f - - #$(KUSTOMIZE) build config/crd | kubectl delete -f - + $(KUSTOMIZE) build config/default | $(K8S_CLI) delete -f - + #$(KUSTOMIZE) build config/crd | $(K8S_CLI) delete -f - # Deploy controller in the configured Kubernetes cluster in ~/.kube/config deploy: manifests kustomize cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG} - $(KUSTOMIZE) build config/default | kubectl apply -f - + $(KUSTOMIZE) build config/default | $(K8S_CLI) apply -f - # Generate manifests e.g. CRD, RBAC etc. manifests: controller-gen