From 6cae709dbac561c0cd5fdddc087d69749f8f153c Mon Sep 17 00:00:00 2001
From: Kostiantyn Kalynovskyi <kkalinovskiy@gmail.com>
Date: Tue, 9 Feb 2021 16:58:21 +0000
Subject: [PATCH] Remove clusterctl command related functionality

It is not used anywhere anymore as commands themselves were
deprecated and removed in favor of clusterctl move and init
executors.

Change-Id: I526f75d95b70754034f0846edfc9d3e468648ced
---
 cmd/cluster/init.go                           |  95 -------------
 cmd/cluster/init_test.go                      |  35 -----
 cmd/cluster/move.go                           |  63 ---------
 cmd/cluster/move_test.go                      |  35 -----
 .../cluster-init-cmd-with-help.golden         |  51 -------
 .../cluster-move-cmd-with-help.golden         |  18 ---
 pkg/clusterctl/cmd/command.go                 | 107 ---------------
 pkg/clusterctl/cmd/command_test.go            | 126 ------------------
 .../cmd/testdata/airshipconfig.yaml           |  22 ---
 pkg/clusterctl/cmd/testdata/kubeconfig.yaml   |  19 ---
 pkg/clusterctl/cmd/testdata/metadata.yaml     |   2 -
 .../initinfra/invalid-clusterctl.yaml         |  22 ---
 .../ephemeral/initinfra/kustomization.yaml    |   2 -
 .../cmd/testdata/phases/cluster-map.yaml      |  11 --
 .../cmd/testdata/phases/executors.yaml        |   6 -
 .../cmd/testdata/phases/kustomization.yaml    |   4 -
 .../cmd/testdata/phases/phases.yaml           |  12 --
 .../valid/ephemeral/initinfra/clusterctl.yaml |  22 ---
 .../ephemeral/initinfra/kustomization.yaml    |   2 -
 19 files changed, 654 deletions(-)
 delete mode 100644 cmd/cluster/init.go
 delete mode 100755 cmd/cluster/init_test.go
 delete mode 100644 cmd/cluster/move.go
 delete mode 100755 cmd/cluster/move_test.go
 delete mode 100644 cmd/cluster/testdata/TestNewClusterInitCmdGoldenOutput/cluster-init-cmd-with-help.golden
 delete mode 100644 cmd/cluster/testdata/TestNewClusterMoveCmdGoldenOutput/cluster-move-cmd-with-help.golden
 delete mode 100644 pkg/clusterctl/cmd/command.go
 delete mode 100644 pkg/clusterctl/cmd/command_test.go
 delete mode 100644 pkg/clusterctl/cmd/testdata/airshipconfig.yaml
 delete mode 100644 pkg/clusterctl/cmd/testdata/kubeconfig.yaml
 delete mode 100755 pkg/clusterctl/cmd/testdata/metadata.yaml
 delete mode 100644 pkg/clusterctl/cmd/testdata/no-clusterctl/ephemeral/initinfra/invalid-clusterctl.yaml
 delete mode 100644 pkg/clusterctl/cmd/testdata/no-clusterctl/ephemeral/initinfra/kustomization.yaml
 delete mode 100755 pkg/clusterctl/cmd/testdata/phases/cluster-map.yaml
 delete mode 100755 pkg/clusterctl/cmd/testdata/phases/executors.yaml
 delete mode 100755 pkg/clusterctl/cmd/testdata/phases/kustomization.yaml
 delete mode 100755 pkg/clusterctl/cmd/testdata/phases/phases.yaml
 delete mode 100644 pkg/clusterctl/cmd/testdata/valid/ephemeral/initinfra/clusterctl.yaml
 delete mode 100644 pkg/clusterctl/cmd/testdata/valid/ephemeral/initinfra/kustomization.yaml

diff --git a/cmd/cluster/init.go b/cmd/cluster/init.go
deleted file mode 100644
index f73ebb9d3..000000000
--- a/cmd/cluster/init.go
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package cluster
-
-import (
-	"github.com/spf13/cobra"
-
-	clusterctlcmd "opendev.org/airship/airshipctl/pkg/clusterctl/cmd"
-	"opendev.org/airship/airshipctl/pkg/config"
-)
-
-const (
-	initLong = `
-Initialize cluster-api providers based on airshipctl document set.
-document set must contain document of Kind: Clusterctl in phase initinfra.
-Path to initinfra phase is defined in the initinfra phase document located
-in the manifest repository.
-Clusterctl document example:
----
-apiVersion: airshipit.org/v1alpha1
-kind: Clusterctl
-metadata:
-  labels:
-    airshipit.org/deploy-k8s: "false"
-  name: clusterctl-v1
-init-options:
-  core-provider: "cluster-api:v0.3.3"
-  bootstrap-providers:
-    - "kubeadm:v0.3.3"
-  infrastructure-providers:
-    - "metal3:v0.3.1"
-  control-plane-providers:
-    - "kubeadm:v0.3.3"
-providers:
-  - name: "metal3"
-    type: "InfrastructureProvider"
-    versions:
-      v0.3.1: manifests/function/capm3/v0.3.1
-  - name: "kubeadm"
-    type: "BootstrapProvider"
-    versions:
-      v0.3.3: manifests/function/cabpk/v0.3.3
-  - name: "cluster-api"
-    type: "CoreProvider"
-    versions:
-      v0.3.3: manifests/function/capi/v0.3.3
-  - name: "kubeadm"
-    type: "ControlPlaneProvider"
-    versions:
-      v0.3.3: manifests/function/cacpk/v0.3.3
-`
-
-	initExample = `
-# Initialize clusterctl providers and components
-airshipctl cluster init
-`
-)
-
-// NewInitCommand creates a command to deploy cluster-api
-func NewInitCommand(cfgFactory config.Factory) *cobra.Command {
-	var kubeconfig string
-	initCmd := &cobra.Command{
-		Use:     "init",
-		Short:   "Deploy cluster-api provider components",
-		Long:    initLong,
-		Example: initExample,
-		RunE: func(cmd *cobra.Command, args []string) error {
-			command, err := clusterctlcmd.NewCommand(cfgFactory, kubeconfig)
-			if err != nil {
-				return err
-			}
-			return command.Init()
-		},
-	}
-
-	initCmd.Flags().StringVar(
-		&kubeconfig,
-		"kubeconfig",
-		"",
-		"Path to kubeconfig associated with cluster being managed")
-
-	return initCmd
-}
diff --git a/cmd/cluster/init_test.go b/cmd/cluster/init_test.go
deleted file mode 100755
index ed944be90..000000000
--- a/cmd/cluster/init_test.go
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
-     https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-package cluster_test
-
-import (
-	"testing"
-
-	"opendev.org/airship/airshipctl/cmd/cluster"
-	"opendev.org/airship/airshipctl/testutil"
-)
-
-func TestNewClusterInitCmd(t *testing.T) {
-	tests := []*testutil.CmdTest{
-		{
-			Name:    "cluster-init-cmd-with-help",
-			CmdLine: "--help",
-			Cmd:     cluster.NewInitCommand(nil),
-		},
-	}
-	for _, testcase := range tests {
-		testutil.RunTest(t, testcase)
-	}
-}
diff --git a/cmd/cluster/move.go b/cmd/cluster/move.go
deleted file mode 100644
index 2b4dac836..000000000
--- a/cmd/cluster/move.go
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package cluster
-
-import (
-	"github.com/spf13/cobra"
-
-	clusterctlcmd "opendev.org/airship/airshipctl/pkg/clusterctl/cmd"
-	"opendev.org/airship/airshipctl/pkg/config"
-)
-
-const (
-	moveLong = `
-Move Cluster API objects, provider specific objects and all dependencies to the target cluster.
-
-Note: The destination cluster MUST have the required provider components installed.
-`
-
-	moveExample = `
-Move Cluster API objects, provider specific objects and all dependencies to the target cluster.
-
-  airshipctl cluster move --target-context <context name>
-`
-)
-
-// NewMoveCommand creates a command to move capi and bmo resources to the target cluster
-func NewMoveCommand(cfgFactory config.Factory) *cobra.Command {
-	var toKubeconfigContext, kubeconfig string
-	moveCmd := &cobra.Command{
-		Use:     "move",
-		Short:   "Move Cluster API objects, provider specific objects and all dependencies to the target cluster",
-		Long:    moveLong[1:],
-		Example: moveExample,
-		RunE: func(cmd *cobra.Command, args []string) error {
-			command, err := clusterctlcmd.NewCommand(cfgFactory, kubeconfig)
-			if err != nil {
-				return err
-			}
-			return command.Move(toKubeconfigContext)
-		},
-	}
-
-	moveCmd.Flags().StringVar(
-		&kubeconfig,
-		"kubeconfig",
-		"",
-		"Path to kubeconfig associated with cluster being managed")
-	moveCmd.Flags().StringVar(&toKubeconfigContext, "target-context", "",
-		"Context to be used within the kubeconfig file for the target cluster. If empty, current context will be used.")
-	return moveCmd
-}
diff --git a/cmd/cluster/move_test.go b/cmd/cluster/move_test.go
deleted file mode 100755
index 5386cc947..000000000
--- a/cmd/cluster/move_test.go
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
-     https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-package cluster_test
-
-import (
-	"testing"
-
-	"opendev.org/airship/airshipctl/cmd/cluster"
-	"opendev.org/airship/airshipctl/testutil"
-)
-
-func TestNewClusterMoveCmd(t *testing.T) {
-	tests := []*testutil.CmdTest{
-		{
-			Name:    "cluster-move-cmd-with-help",
-			CmdLine: "--help",
-			Cmd:     cluster.NewMoveCommand(nil),
-		},
-	}
-	for _, testcase := range tests {
-		testutil.RunTest(t, testcase)
-	}
-}
diff --git a/cmd/cluster/testdata/TestNewClusterInitCmdGoldenOutput/cluster-init-cmd-with-help.golden b/cmd/cluster/testdata/TestNewClusterInitCmdGoldenOutput/cluster-init-cmd-with-help.golden
deleted file mode 100644
index 395394552..000000000
--- a/cmd/cluster/testdata/TestNewClusterInitCmdGoldenOutput/cluster-init-cmd-with-help.golden
+++ /dev/null
@@ -1,51 +0,0 @@
-
-Initialize cluster-api providers based on airshipctl document set.
-document set must contain document of Kind: Clusterctl in phase initinfra.
-Path to initinfra phase is defined in the initinfra phase document located
-in the manifest repository.
-Clusterctl document example:
----
-apiVersion: airshipit.org/v1alpha1
-kind: Clusterctl
-metadata:
-  labels:
-    airshipit.org/deploy-k8s: "false"
-  name: clusterctl-v1
-init-options:
-  core-provider: "cluster-api:v0.3.3"
-  bootstrap-providers:
-    - "kubeadm:v0.3.3"
-  infrastructure-providers:
-    - "metal3:v0.3.1"
-  control-plane-providers:
-    - "kubeadm:v0.3.3"
-providers:
-  - name: "metal3"
-    type: "InfrastructureProvider"
-    versions:
-      v0.3.1: manifests/function/capm3/v0.3.1
-  - name: "kubeadm"
-    type: "BootstrapProvider"
-    versions:
-      v0.3.3: manifests/function/cabpk/v0.3.3
-  - name: "cluster-api"
-    type: "CoreProvider"
-    versions:
-      v0.3.3: manifests/function/capi/v0.3.3
-  - name: "kubeadm"
-    type: "ControlPlaneProvider"
-    versions:
-      v0.3.3: manifests/function/cacpk/v0.3.3
-
-Usage:
-  init [flags]
-
-Examples:
-
-# Initialize clusterctl providers and components
-airshipctl cluster init
-
-
-Flags:
-  -h, --help                help for init
-      --kubeconfig string   Path to kubeconfig associated with cluster being managed
diff --git a/cmd/cluster/testdata/TestNewClusterMoveCmdGoldenOutput/cluster-move-cmd-with-help.golden b/cmd/cluster/testdata/TestNewClusterMoveCmdGoldenOutput/cluster-move-cmd-with-help.golden
deleted file mode 100644
index ff99a15ce..000000000
--- a/cmd/cluster/testdata/TestNewClusterMoveCmdGoldenOutput/cluster-move-cmd-with-help.golden
+++ /dev/null
@@ -1,18 +0,0 @@
-Move Cluster API objects, provider specific objects and all dependencies to the target cluster.
-
-Note: The destination cluster MUST have the required provider components installed.
-
-Usage:
-  move [flags]
-
-Examples:
-
-Move Cluster API objects, provider specific objects and all dependencies to the target cluster.
-
-  airshipctl cluster move --target-context <context name>
-
-
-Flags:
-  -h, --help                    help for move
-      --kubeconfig string       Path to kubeconfig associated with cluster being managed
-      --target-context string   Context to be used within the kubeconfig file for the target cluster. If empty, current context will be used.
diff --git a/pkg/clusterctl/cmd/command.go b/pkg/clusterctl/cmd/command.go
deleted file mode 100644
index a3b653f2c..000000000
--- a/pkg/clusterctl/cmd/command.go
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
-     https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-package cmd
-
-import (
-	airshipv1 "opendev.org/airship/airshipctl/pkg/api/v1alpha1"
-	"opendev.org/airship/airshipctl/pkg/clusterctl/client"
-	"opendev.org/airship/airshipctl/pkg/config"
-	"opendev.org/airship/airshipctl/pkg/document"
-	"opendev.org/airship/airshipctl/pkg/log"
-	"opendev.org/airship/airshipctl/pkg/phase"
-)
-
-// Command adds a layer to clusterctl interface with airshipctl context
-type Command struct {
-	kubeconfigPath    string
-	kubeconfigContext string
-	documentRoot      string
-	client            client.Interface
-	options           *airshipv1.Clusterctl
-}
-
-// NewCommand returns instance of Command
-func NewCommand(cfgFactory config.Factory, kubeconfig string) (*Command, error) {
-	cfg, err := cfgFactory()
-	if err != nil {
-		return nil, err
-	}
-	bundle, err := getBundle(cfg)
-	if err != nil {
-		return nil, err
-	}
-	root, err := cfg.CurrentContextTargetPath()
-	if err != nil {
-		return nil, err
-	}
-	options, err := clusterctlOptions(bundle)
-	if err != nil {
-		return nil, err
-	}
-	client, err := client.NewClient(root, log.DebugEnabled(), options)
-	if err != nil {
-		return nil, err
-	}
-
-	return &Command{
-		kubeconfigPath:    kubeconfig,
-		documentRoot:      root,
-		client:            client,
-		options:           options,
-		kubeconfigContext: cfg.CurrentContext,
-	}, nil
-}
-
-// Init runs clusterctl init
-func (c *Command) Init() error {
-	log.Printf("config %s \n context %s", c.kubeconfigPath, c.kubeconfigContext)
-	return c.client.Init(c.kubeconfigPath, c.kubeconfigContext)
-}
-
-func clusterctlOptions(bundle document.Bundle) (*airshipv1.Clusterctl, error) {
-	cctl := &airshipv1.Clusterctl{}
-	selector, err := document.NewSelector().ByObject(cctl, airshipv1.Scheme)
-	if err != nil {
-		return nil, err
-	}
-
-	doc, err := bundle.SelectOne(selector)
-	if err != nil {
-		return nil, err
-	}
-
-	if err := doc.ToAPIObject(cctl, airshipv1.Scheme); err != nil {
-		return nil, err
-	}
-
-	return cctl, nil
-}
-
-func getBundle(conf *config.Config) (document.Bundle, error) {
-	helper, err := phase.NewHelper(conf)
-	if err != nil {
-		return nil, err
-	}
-	return document.NewBundleByPath(helper.PhaseBundleRoot())
-}
-
-// Move runs clusterctl move
-func (c *Command) Move(toKubeconfigContext string) error {
-	if c.options.MoveOptions != nil {
-		return c.client.Move(c.kubeconfigPath, c.kubeconfigContext,
-			c.kubeconfigPath, toKubeconfigContext, c.options.MoveOptions.Namespace)
-	}
-	return c.client.Move(c.kubeconfigPath, c.kubeconfigContext, c.kubeconfigPath, toKubeconfigContext, "")
-}
diff --git a/pkg/clusterctl/cmd/command_test.go b/pkg/clusterctl/cmd/command_test.go
deleted file mode 100644
index df03c70d9..000000000
--- a/pkg/clusterctl/cmd/command_test.go
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
-     https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-package cmd
-
-import (
-	"testing"
-
-	"github.com/stretchr/testify/assert"
-	"github.com/stretchr/testify/require"
-
-	"opendev.org/airship/airshipctl/pkg/config"
-)
-
-const (
-	manifestName = "dummy_manifest"
-	validContext = "dummy_cluster"
-)
-
-// TODO (kkalynovskyi) expand test cases
-func TestNewCommand(t *testing.T) {
-	airshipConfigPath := "testdata/airshipconfig.yaml"
-	cfg, err := config.CreateFactory(&airshipConfigPath)()
-	require.NoError(t, err)
-
-	tests := []struct {
-		name           string
-		expectErr      bool
-		currentContext string
-		manifests      map[string]*config.Manifest
-	}{
-		{
-			name:           "default success",
-			currentContext: validContext,
-			manifests: map[string]*config.Manifest{
-				manifestName: {
-					TargetPath:          "testdata",
-					PhaseRepositoryName: "primary",
-					MetadataPath:        "metadata.yaml",
-					Repositories: map[string]*config.Repository{
-						"primary": {},
-					},
-				},
-			},
-		},
-		{
-			name:           "Bundle build failure",
-			currentContext: validContext,
-			expectErr:      true,
-			manifests: map[string]*config.Manifest{
-				manifestName: {
-					TargetPath:          "testdata",
-					PhaseRepositoryName: "primary",
-					Repositories: map[string]*config.Repository{
-						"primary": {},
-					},
-				},
-			},
-		},
-		{
-			name:           "invalid clusterctl kind",
-			currentContext: validContext,
-			expectErr:      true,
-			manifests: map[string]*config.Manifest{
-				manifestName: {
-					TargetPath:          "testdata",
-					PhaseRepositoryName: "primary",
-					Repositories: map[string]*config.Repository{
-						"primary": {},
-					},
-				},
-			},
-		},
-		{
-			name:      "no phase repo",
-			expectErr: true,
-			manifests: map[string]*config.Manifest{
-				manifestName: {},
-			},
-		},
-		{
-			name:           "cant find context",
-			currentContext: "invalid-context",
-			expectErr:      true,
-			manifests: map[string]*config.Manifest{
-				manifestName: {
-					TargetPath:          "testdata",
-					PhaseRepositoryName: "primary",
-					Repositories: map[string]*config.Repository{
-						"primary": {},
-					},
-				},
-			},
-		},
-	}
-	for _, tt := range tests {
-		expectErr := tt.expectErr
-		manifests := tt.manifests
-		cfg.Manifests = manifests
-		context := tt.currentContext
-		t.Run(tt.name, func(t *testing.T) {
-			cfg.Manifests = manifests
-			cfg.CurrentContext = context
-			command, err := NewCommand(func() (*config.Config, error) {
-				return cfg, nil
-			}, "")
-			if expectErr {
-				assert.Error(t, err)
-				assert.Nil(t, command)
-			} else {
-				require.NoError(t, err)
-			}
-		})
-	}
-}
diff --git a/pkg/clusterctl/cmd/testdata/airshipconfig.yaml b/pkg/clusterctl/cmd/testdata/airshipconfig.yaml
deleted file mode 100644
index 33ad2ad95..000000000
--- a/pkg/clusterctl/cmd/testdata/airshipconfig.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
-apiVersion: airshipit.org/v1alpha1
-contexts:
-  dummy_cluster:
-    contextKubeconf: dummycluster_ephemeral
-    manifest: dummy_manifest
-currentContext: dummy_cluster
-kind: Config
-manifests:
-  dummy_manifest:
-    phaseRepositoryName: primary
-    repositories:
-      primary:
-        auth:
-          sshKey: testdata/test-key.pem
-          type: ssh-key
-        checkout:
-          branch: ""
-          force: false
-          remoteRef: ""
-          tag: v1.0.1
-        url: http://dummy.url.com/primary.git
-    targetPath: testdata
diff --git a/pkg/clusterctl/cmd/testdata/kubeconfig.yaml b/pkg/clusterctl/cmd/testdata/kubeconfig.yaml
deleted file mode 100644
index b0d205918..000000000
--- a/pkg/clusterctl/cmd/testdata/kubeconfig.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-apiVersion: v1
-clusters:
-- cluster:
-    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN5RENDQWJDZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRFNU1Ea3lPVEUzTURNd09Wb1hEVEk1TURreU5qRTNNRE13T1Zvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTUZyCkdxM0kyb2dZci81Y01Udy9Na1pORTNWQURzdEdyU240WjU2TDhPUGhMcUhDN2t1dno2dVpES3dCSGtGeTBNK2MKRXIzd2piUGE1aTV5NmkyMGtxSHBVMjdPZTA0dzBXV2s4N0RSZVlWaGNoZVJHRXoraWt3SndIcGRmMjJVemZNKwpkSDBzaUhuMVd6UnovYk4za3hMUzJlMnZ2U1Y3bmNubk1YRUd4OXV0MUY0NThHeWxxdmxXTUlWMzg5Q2didXFDCkcwcFdiMTBLM0RVZWdiT25Xa1FmSm5sTWRRVVZDUVdZZEZaaklrcWtkWi9hVTRobkNEV01oZXNWRnFNaDN3VVAKczhQay9BNWh1ZFFPbnFRNDVIWXZLdjZ5RjJWcDUyWExBRUx3NDJ4aVRKZlh0V1h4eHR6cU4wY1lyL2VxeS9XMQp1YVVGSW5xQjFVM0JFL1oxbmFrQ0F3RUFBYU1qTUNFd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFKUUVKQVBLSkFjVDVuK3dsWGJsdU9mS0J3c2gKZTI4R1c5R2QwM0N0NGF3RzhzMXE1ZHNua2tpZmVTUENHVFZ1SXF6UTZDNmJaSk9SMDMvVEl5ejh6NDJnaitDVApjWUZXZkltM2RKTnpRL08xWkdySXZZNWdtcWJtWDlpV0JaU24rRytEOGxubzd2aGMvY0tBRFR5OTMvVU92MThuCkdhMnIrRGJJcHcyTWVBVEl2elpxRS9RWlVSQ25DMmdjUFhTVzFqN2h4R3o1a3ZNcGVDZTdQYVUvdVFvblVHSWsKZ2t6ZzI4NHQvREhUUzc4N1V1SUg5cXBaV09yTFNMOGFBeUxQUHhWSXBteGZmbWRETE9TS2VUemRlTmxoSitUMwowQlBVaHBQTlJBNTNJN0hRQjhVUDR2elNONTkzZ1VFbVlFQ2Jic2RYSzB6ZVR6SDdWWHR2Zmd5WTVWWT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
-    server: https://127.0.0.1:6443
-  name: dummycluster_ephemeral
-contexts:
-- context:
-    cluster: dummycluster_ephemeral
-    user: kubernetes-admin
-  name: dummy_cluster
-current-context: dummy_cluster
-kind: Config
-preferences: {}
-users:
-- name: kubernetes-admin
-  user:
-    client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM4akNDQWRxZ0F3SUJBZ0lJQXhEdzk2RUY4SXN3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB4T1RBNU1qa3hOekF6TURsYUZ3MHlNREE1TWpneE56QXpNVEphTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXV6R0pZdlBaNkRvaTQyMUQKSzhXSmFaQ25OQWQycXo1cC8wNDJvRnpRUGJyQWd6RTJxWVZrek9MOHhBVmVSN1NONXdXb1RXRXlGOEVWN3JyLwo0K0hoSEdpcTVQbXF1SUZ5enpuNi9JWmM4alU5eEVmenZpa2NpckxmVTR2UlhKUXdWd2dBU05sMkFXQUloMmRECmRUcmpCQ2ZpS1dNSHlqMFJiSGFsc0J6T3BnVC9IVHYzR1F6blVRekZLdjJkajVWMU5rUy9ESGp5UlJKK0VMNlEKQlltR3NlZzVQNE5iQzllYnVpcG1NVEFxL0p1bU9vb2QrRmpMMm5acUw2Zkk2ZkJ0RjVPR2xwQ0IxWUo4ZnpDdApHUVFaN0hUSWJkYjJ0cDQzRlZPaHlRYlZjSHFUQTA0UEoxNSswV0F5bVVKVXo4WEE1NDRyL2J2NzRKY0pVUkZoCmFyWmlRd0lEQVFBQm95Y3dKVEFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFMMmhIUmVibEl2VHJTMFNmUVg1RG9ueVVhNy84aTg1endVWApSd3dqdzFuS0U0NDJKbWZWRGZ5b0hRYUM4Ti9MQkxyUXM0U0lqU1JYdmFHU1dSQnRnT1RRV21Db1laMXdSbjdwCndDTXZQTERJdHNWWm90SEZpUFl2b1lHWFFUSXA3YlROMmg1OEJaaEZ3d25nWUovT04zeG1rd29IN1IxYmVxWEYKWHF1TTluekhESk41VlZub1lQR09yRHMwWlg1RnNxNGtWVU0wVExNQm9qN1ZIRDhmU0E5RjRYNU4yMldsZnNPMAo4aksrRFJDWTAyaHBrYTZQQ0pQS0lNOEJaMUFSMG9ZakZxT0plcXpPTjBqcnpYWHh4S2pHVFVUb1BldVA5dCtCCjJOMVA1TnI4a2oxM0lrend5Q1NZclFVN09ZM3ltZmJobHkrcXZxaFVFa014MlQ1SkpmQT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
-    client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcFFJQkFBS0NBUUVBdXpHSll2UFo2RG9pNDIxREs4V0phWkNuTkFkMnF6NXAvMDQyb0Z6UVBickFnekUyCnFZVmt6T0w4eEFWZVI3U041d1dvVFdFeUY4RVY3cnIvNCtIaEhHaXE1UG1xdUlGeXp6bjYvSVpjOGpVOXhFZnoKdmlrY2lyTGZVNHZSWEpRd1Z3Z0FTTmwyQVdBSWgyZERkVHJqQkNmaUtXTUh5ajBSYkhhbHNCek9wZ1QvSFR2MwpHUXpuVVF6Rkt2MmRqNVYxTmtTL0RIanlSUkorRUw2UUJZbUdzZWc1UDROYkM5ZWJ1aXBtTVRBcS9KdW1Pb29kCitGakwyblpxTDZmSTZmQnRGNU9HbHBDQjFZSjhmekN0R1FRWjdIVEliZGIydHA0M0ZWT2h5UWJWY0hxVEEwNFAKSjE1KzBXQXltVUpVejhYQTU0NHIvYnY3NEpjSlVSRmhhclppUXdJREFRQUJBb0lCQVFDU0pycjlaeVpiQ2dqegpSL3VKMFZEWCt2aVF4c01BTUZyUjJsOE1GV3NBeHk1SFA4Vk4xYmc5djN0YUVGYnI1U3hsa3lVMFJRNjNQU25DCm1uM3ZqZ3dVQWlScllnTEl5MGk0UXF5VFBOU1V4cnpTNHRxTFBjM3EvSDBnM2FrNGZ2cSsrS0JBUUlqQnloamUKbnVFc1JpMjRzT3NESlM2UDE5NGlzUC9yNEpIM1M5bFZGbkVuOGxUR2c0M1kvMFZoMXl0cnkvdDljWjR5ZUNpNwpjMHFEaTZZcXJZaFZhSW9RRW1VQjdsbHRFZkZzb3l4VDR6RTE5U3pVbkRoMmxjYTF1TzhqcmI4d2xHTzBoQ2JyClB1R1l2WFFQa3Q0VlNmalhvdGJ3d2lBNFRCVERCRzU1bHp6MmNKeS9zSS8zSHlYbEMxcTdXUmRuQVhhZ1F0VzkKOE9DZGRkb0JBb0dCQU5NcUNtSW94REtyckhZZFRxT1M1ZFN4cVMxL0NUN3ZYZ0pScXBqd2Y4WHA2WHo0KzIvTAozVXFaVDBEL3dGTkZkc1Z4eFYxMnNYMUdwMHFWZVlKRld5OVlCaHVSWGpTZ0ZEWldSY1Z1Y01sNVpPTmJsbmZGCjVKQ0xnNXFMZ1g5VTNSRnJrR3A0R241UDQxamg4TnhKVlhzZG5xWE9xNTFUK1RRT1UzdkpGQjc1QW9HQkFPTHcKalp1cnZtVkZyTHdaVGgvRDNpWll5SVV0ZUljZ2NKLzlzbTh6L0pPRmRIbFd4dGRHUFVzYVd1MnBTNEhvckFtbgpqTm4vSTluUXd3enZ3MWUzVVFPbUhMRjVBczk4VU5hbk5TQ0xNMW1yaXZHRXJ1VHFnTDM1bU41eFZPdTUxQU5JCm4yNkFtODBJT2JDeEtLa0R0ZXJSaFhHd3g5c1pONVJCbG9VRThZNGJBb0dBQ3ZsdVhMZWRxcng5VkE0bDNoNXUKVDJXRVUxYjgxZ1orcmtRc1I1S0lNWEw4cllBTElUNUpHKzFuendyN3BkaEFXZmFWdVV2SDRhamdYT0h6MUs5aQpFODNSVTNGMG9ldUg0V01PY1RwU0prWm0xZUlXcWRiaEVCb1FGdUlWTXRib1BsV0d4ZUhFRHJoOEtreGp4aThSCmdEcUQyajRwY1IzQ0g5QjJ5a0lqQjVFQ2dZRUExc0xXLys2enE1c1lNSm14K1JXZThhTXJmL3pjQnVTSU1LQWgKY0dNK0wwMG9RSHdDaUU4TVNqcVN1ajV3R214YUFuanhMb3ZwSFlRV1VmUEVaUW95UE1YQ2VhRVBLOU4xbk8xMwp0V2lHRytIZkIxaU5PazFCc0lhNFNDbndOM1FRVTFzeXBaeEgxT3hueS9LYmkvYmEvWEZ5VzNqMGFUK2YvVWxrCmJGV1ZVdWtDZ1lFQTBaMmRTTFlmTjV5eFNtYk5xMWVqZXdWd1BjRzQxR2hQclNUZEJxdHFac1doWGE3aDdLTWEKeHdvamh5SXpnTXNyK2tXODdlajhDQ2h0d21sQ1p5QU92QmdOZytncnJ1cEZLM3FOSkpKeU9YREdHckdpbzZmTQp5aXB3Q2tZVGVxRThpZ1J6UkI5QkdFUGY4eVpjMUtwdmZhUDVhM0lRZmxiV0czbGpUemNNZVZjPQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
diff --git a/pkg/clusterctl/cmd/testdata/metadata.yaml b/pkg/clusterctl/cmd/testdata/metadata.yaml
deleted file mode 100755
index 220af9c24..000000000
--- a/pkg/clusterctl/cmd/testdata/metadata.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-phase:
-  path: phases
\ No newline at end of file
diff --git a/pkg/clusterctl/cmd/testdata/no-clusterctl/ephemeral/initinfra/invalid-clusterctl.yaml b/pkg/clusterctl/cmd/testdata/no-clusterctl/ephemeral/initinfra/invalid-clusterctl.yaml
deleted file mode 100644
index 76efd1fef..000000000
--- a/pkg/clusterctl/cmd/testdata/no-clusterctl/ephemeral/initinfra/invalid-clusterctl.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
----
-apiVersion: airshipit.org/v1alpha1
-kind: WrongKind
-metadata:
-  labels:
-    airshipit.org/deploy-k8s: "false"
-  name: clusterctl-v1
-init-options: {}
-providers:
-- name: "aws"
-  type: "InfrastructureProvider"
-  url: "/manifests/capi/infra/aws/v0.3.0"
-  clusterctl-repository: true
-- name: "custom-infra"
-  type: "InfrastructureProvider"
-  url: "/manifests/capi/custom-infra/aws/v0.3.0"
-  clusterctl-repository: true
-- name: "custom-airship-infra"
-  type: "InfrastructureProvider"
-  versions:
-    v0.3.1: functions/capi/infrastructure/v0.3.1
-    v0.3.2: functions/capi/infrastructure/v0.3.2
\ No newline at end of file
diff --git a/pkg/clusterctl/cmd/testdata/no-clusterctl/ephemeral/initinfra/kustomization.yaml b/pkg/clusterctl/cmd/testdata/no-clusterctl/ephemeral/initinfra/kustomization.yaml
deleted file mode 100644
index c8bd3feef..000000000
--- a/pkg/clusterctl/cmd/testdata/no-clusterctl/ephemeral/initinfra/kustomization.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-resources:
- - invalid-clusterctl.yaml
\ No newline at end of file
diff --git a/pkg/clusterctl/cmd/testdata/phases/cluster-map.yaml b/pkg/clusterctl/cmd/testdata/phases/cluster-map.yaml
deleted file mode 100755
index d53fe7e30..000000000
--- a/pkg/clusterctl/cmd/testdata/phases/cluster-map.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
----
-apiVersion: airshipit.org/v1alpha1
-kind: ClusterMap
-metadata:
-  labels:
-    airshipit.org/deploy-k8s: "false"
-  name: main-map
-map:
-  target-cluster:
-    parent: ephemeral-cluster
-  ephemeral-cluster: {}
\ No newline at end of file
diff --git a/pkg/clusterctl/cmd/testdata/phases/executors.yaml b/pkg/clusterctl/cmd/testdata/phases/executors.yaml
deleted file mode 100755
index 3759b3685..000000000
--- a/pkg/clusterctl/cmd/testdata/phases/executors.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-apiVersion: airshipit.org/v1alpha1
-kind: Clusterctl
-metadata:
-  name: clusterctl_init
-action: init
diff --git a/pkg/clusterctl/cmd/testdata/phases/kustomization.yaml b/pkg/clusterctl/cmd/testdata/phases/kustomization.yaml
deleted file mode 100755
index 7d5a69471..000000000
--- a/pkg/clusterctl/cmd/testdata/phases/kustomization.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-resources:
-  - phases.yaml
-  - executors.yaml
-  - cluster-map.yaml
\ No newline at end of file
diff --git a/pkg/clusterctl/cmd/testdata/phases/phases.yaml b/pkg/clusterctl/cmd/testdata/phases/phases.yaml
deleted file mode 100755
index a4f810c66..000000000
--- a/pkg/clusterctl/cmd/testdata/phases/phases.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
----
-apiVersion: airshipit.org/v1alpha1
-kind: Phase
-metadata:
-  name: phase
-  clusterName: ephemeral-cluster
-config:
-  executorRef:
-    apiVersion: airshipit.org/v1alpha1
-    kind: KubernetesApply
-    name: kubernetes-apply
-  documentEntryPoint: ephemeral/initinfra
diff --git a/pkg/clusterctl/cmd/testdata/valid/ephemeral/initinfra/clusterctl.yaml b/pkg/clusterctl/cmd/testdata/valid/ephemeral/initinfra/clusterctl.yaml
deleted file mode 100644
index ba8b3d781..000000000
--- a/pkg/clusterctl/cmd/testdata/valid/ephemeral/initinfra/clusterctl.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
----
-apiVersion: airshipit.org/v1alpha1
-kind: Clusterctl
-metadata:
-  labels:
-    airshipit.org/deploy-k8s: "false"
-  name: clusterctl-v1
-init-options: {}
-providers:
-- name: "aws"
-  type: "InfrastructureProvider"
-  url: "/manifests/capi/infra/aws/v0.3.0"
-  clusterctl-repository: true
-- name: "custom-infra"
-  type: "InfrastructureProvider"
-  url: "/manifests/capi/custom-infra/aws/v0.3.0"
-  clusterctl-repository: true
-- name: "custom-airship-infra"
-  type: "InfrastructureProvider"
-  versions:
-    v0.3.1: functions/capi/infrastructure/v0.3.1
-    v0.3.2: functions/capi/infrastructure/v0.3.2
diff --git a/pkg/clusterctl/cmd/testdata/valid/ephemeral/initinfra/kustomization.yaml b/pkg/clusterctl/cmd/testdata/valid/ephemeral/initinfra/kustomization.yaml
deleted file mode 100644
index e6095ce0e..000000000
--- a/pkg/clusterctl/cmd/testdata/valid/ephemeral/initinfra/kustomization.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-resources:
- - clusterctl.yaml
\ No newline at end of file