diff --git a/manifests/site/gcp-test-site/target/controlplane/kustomization.yaml b/manifests/site/gcp-test-site/ephemeral/controlplane/kustomization.yaml
similarity index 82%
rename from manifests/site/gcp-test-site/target/controlplane/kustomization.yaml
rename to manifests/site/gcp-test-site/ephemeral/controlplane/kustomization.yaml
index e31c3d056..14d223a03 100755
--- a/manifests/site/gcp-test-site/target/controlplane/kustomization.yaml
+++ b/manifests/site/gcp-test-site/ephemeral/controlplane/kustomization.yaml
@@ -9,28 +9,28 @@ patchesJson6902:
       group: infrastructure.cluster.x-k8s.io
       version: v1alpha3
       kind: GCPCluster
-      name: "gtc"
+      name: "target-cluster"
     path: project_name.json
 
   - target:
       group: infrastructure.cluster.x-k8s.io
       version: v1alpha3
       kind: GCPCluster
-      name: "gtc"
+      name: "target-cluster"
     path: region_name.json
 
   - target:
       group: infrastructure.cluster.x-k8s.io
       version: v1alpha3
       kind: GCPCluster
-      name: "gtc"
+      name: "target-cluster"
     path: network_name.json
 
   - target:
       group: controlplane.cluster.x-k8s.io
       version: v1alpha3
       kind: KubeadmControlPlane
-      name: "gtc-control-plane"
+      name: "target-cluster-control-plane"
     path: machine_count.json
 
 
@@ -38,6 +38,6 @@ patchesJson6902:
       group: infrastructure.cluster.x-k8s.io
       version: v1alpha3
       kind: GCPMachineTemplate
-      name: "gtc-control-plane"
+      name: "target-cluster-control-plane"
     path: machine_type.json
 
diff --git a/manifests/site/gcp-test-site/target/controlplane/machine_count.json b/manifests/site/gcp-test-site/ephemeral/controlplane/machine_count.json
similarity index 100%
rename from manifests/site/gcp-test-site/target/controlplane/machine_count.json
rename to manifests/site/gcp-test-site/ephemeral/controlplane/machine_count.json
diff --git a/manifests/site/gcp-test-site/target/controlplane/machine_type.json b/manifests/site/gcp-test-site/ephemeral/controlplane/machine_type.json
similarity index 100%
rename from manifests/site/gcp-test-site/target/controlplane/machine_type.json
rename to manifests/site/gcp-test-site/ephemeral/controlplane/machine_type.json
diff --git a/manifests/site/gcp-test-site/ephemeral/controlplane/network_name.json b/manifests/site/gcp-test-site/ephemeral/controlplane/network_name.json
new file mode 100644
index 000000000..0a6b2744d
--- /dev/null
+++ b/manifests/site/gcp-test-site/ephemeral/controlplane/network_name.json
@@ -0,0 +1,3 @@
+[
+  { "op": "replace","path": "/spec/network/name","value": "network01" }
+]
diff --git a/manifests/site/gcp-test-site/ephemeral/controlplane/project_name.json b/manifests/site/gcp-test-site/ephemeral/controlplane/project_name.json
new file mode 100644
index 000000000..98e279609
--- /dev/null
+++ b/manifests/site/gcp-test-site/ephemeral/controlplane/project_name.json
@@ -0,0 +1,3 @@
+[
+  { "op": "replace","path": "/spec/project","value": "project01"}
+]
diff --git a/manifests/site/gcp-test-site/ephemeral/controlplane/region_name.json b/manifests/site/gcp-test-site/ephemeral/controlplane/region_name.json
new file mode 100644
index 000000000..b68579531
--- /dev/null
+++ b/manifests/site/gcp-test-site/ephemeral/controlplane/region_name.json
@@ -0,0 +1,3 @@
+[
+  { "op": "replace","path": "/spec/region","value": "us-east1" }
+]
diff --git a/manifests/site/gcp-test-site/phases/infrastructure-providers.json b/manifests/site/gcp-test-site/phases/infrastructure-providers.json
new file mode 100644
index 000000000..bb14b5617
--- /dev/null
+++ b/manifests/site/gcp-test-site/phases/infrastructure-providers.json
@@ -0,0 +1,18 @@
+[{
+    "op": "replace",
+    "path": "/init-options/infrastructure-providers",
+    "value": ["gcp:v0.3.0"]
+ },
+ {
+    "op": "replace",
+    "path": "/providers/0",
+    "value": {
+        "name": "gcp",
+        "type": "InfrastructureProvider",
+        "variable-substitution": true,
+        "versions": {
+            "v0.3.0": "airshipctl/manifests/function/capg/v0.3.0"
+        }
+    }
+ }
+]
diff --git a/manifests/site/gcp-test-site/phases/kustomization.yaml b/manifests/site/gcp-test-site/phases/kustomization.yaml
new file mode 100644
index 000000000..3890dab2c
--- /dev/null
+++ b/manifests/site/gcp-test-site/phases/kustomization.yaml
@@ -0,0 +1,11 @@
+resources:
+  - ../../../phases
+patchesStrategicMerge:
+  - plan.yaml
+patchesJson6902:
+  - target:
+      group: airshipit.org
+      version: v1alpha1
+      kind: Clusterctl
+      name: "clusterctl_init"
+    path: infrastructure-providers.json
diff --git a/manifests/site/gcp-test-site/phases/plan.yaml b/manifests/site/gcp-test-site/phases/plan.yaml
new file mode 100644
index 000000000..df6ac45c5
--- /dev/null
+++ b/manifests/site/gcp-test-site/phases/plan.yaml
@@ -0,0 +1,13 @@
+apiVersion: airshipit.org/v1alpha1
+kind: PhasePlan
+metadata:
+  name: phasePlan
+phaseGroups:
+  - name: group1
+    phases:
+      - name: clusterctl-init-ephemeral
+      - name: controlplane-ephemeral
+      - name: initinfra-target
+      - name: clusterctl-init-target
+      - name: clusterctl-move
+      - name: workers-target
diff --git a/manifests/site/gcp-test-site/shared/clusterctl/clusterctl.yaml b/manifests/site/gcp-test-site/shared/clusterctl/clusterctl.yaml
deleted file mode 100755
index 27e1e768b..000000000
--- a/manifests/site/gcp-test-site/shared/clusterctl/clusterctl.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
-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:
-    - "gcp:v0.3.0"
-  control-plane-providers:
-    - "kubeadm:v0.3.3"
-providers:
-  - name: "gcp"
-    type: "InfrastructureProvider"
-    variable-substitution: true
-    versions:
-      v0.3.0: manifests/function/capg/v0.3.0
-  - 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
-additional-vars:
-  GCP_CONTROL_PLANE_MACHINE_TYPE: "YmFzZTY0X2VuY29kZWRfdmFsdWU="
-  GCP_NODE_MACHINE_TYPE: "YmFzZTY0X2VuY29kZWRfdmFsdWU="
-  GCP_PROJECT: "YmFzZTY0X2VuY29kZWRfdmFsdWU="
-  GCP_REGION: "YmFzZTY0X2VuY29kZWRfdmFsdWU="
-  GCP_NETWORK_NAME: "YmFzZTY0X2VuY29kZWRfdmFsdWU="
-  GCP_B64ENCODED_CREDENTIALS: "YmFzZTY0X2VuY29kZWRfdmFsdWU="
diff --git a/manifests/site/gcp-test-site/shared/clusterctl/kustomization.yaml b/manifests/site/gcp-test-site/shared/clusterctl/kustomization.yaml
deleted file mode 100755
index 4bc44013e..000000000
--- a/manifests/site/gcp-test-site/shared/clusterctl/kustomization.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-resources:
-  - clusterctl.yaml
diff --git a/manifests/site/gcp-test-site/target/controlplane/network_name.json b/manifests/site/gcp-test-site/target/controlplane/network_name.json
deleted file mode 100644
index 9e52507ee..000000000
--- a/manifests/site/gcp-test-site/target/controlplane/network_name.json
+++ /dev/null
@@ -1,3 +0,0 @@
-[
-  { "op": "replace","path": "/spec/network/name","value": "default" }
-]
diff --git a/manifests/site/gcp-test-site/target/controlplane/project_name.json b/manifests/site/gcp-test-site/target/controlplane/project_name.json
deleted file mode 100644
index 1205058c9..000000000
--- a/manifests/site/gcp-test-site/target/controlplane/project_name.json
+++ /dev/null
@@ -1,3 +0,0 @@
-[
-  { "op": "replace","path": "/spec/project","value": "<project_id>"}
-]
diff --git a/manifests/site/gcp-test-site/target/controlplane/region_name.json b/manifests/site/gcp-test-site/target/controlplane/region_name.json
deleted file mode 100644
index d39f954f6..000000000
--- a/manifests/site/gcp-test-site/target/controlplane/region_name.json
+++ /dev/null
@@ -1,3 +0,0 @@
-[
-  { "op": "replace","path": "/spec/region","value": "us-west1" }
-]
diff --git a/manifests/site/gcp-test-site/target/initinfra/kustomization.yaml b/manifests/site/gcp-test-site/target/initinfra/kustomization.yaml
index c2942afaa..37c98fc0f 100644
--- a/manifests/site/gcp-test-site/target/initinfra/kustomization.yaml
+++ b/manifests/site/gcp-test-site/target/initinfra/kustomization.yaml
@@ -1,4 +1,7 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
 resources:
-  - ../../shared/clusterctl
+  - ../../../../composite/infra
+
 commonLabels:
   airshipit.org/stage: initinfra
diff --git a/manifests/site/gcp-test-site/target/workers/failure_domain.json b/manifests/site/gcp-test-site/target/workers/failure_domain.json
index a846d3308..9a32f70fd 100644
--- a/manifests/site/gcp-test-site/target/workers/failure_domain.json
+++ b/manifests/site/gcp-test-site/target/workers/failure_domain.json
@@ -1,3 +1,3 @@
 [
-  { "op": "replace","path": "/spec/template/spec/failureDomain","value": "us-west1-a" }
+  { "op": "replace","path": "/spec/template/spec/failureDomain","value": "us-east1-b" }
 ]
diff --git a/manifests/site/gcp-test-site/target/workers/kustomization.yaml b/manifests/site/gcp-test-site/target/workers/kustomization.yaml
index 7f499935f..0f36e5026 100755
--- a/manifests/site/gcp-test-site/target/workers/kustomization.yaml
+++ b/manifests/site/gcp-test-site/target/workers/kustomization.yaml
@@ -10,19 +10,19 @@ patchesJson6902:
       group: cluster.x-k8s.io
       version: v1alpha3
       kind: MachineDeployment
-      name: "gtc-md-0"
+      name: "target-cluster-md-0"
     path: failure_domain.json
 
   - target:
       group: cluster.x-k8s.io
       version: v1alpha3
       kind: MachineDeployment
-      name: "gtc-md-0"
+      name: "target-cluster-md-0"
     path: machine_count.json
 
   - target:
       group: infrastructure.cluster.x-k8s.io
       version: v1alpha3
       kind: GCPMachineTemplate
-      name: "gtc-md-0"
+      name: "target-cluster-md-0"
     path: machine_type.json