From 58f9f99d831885975e4af920a35828299f923f97 Mon Sep 17 00:00:00 2001 From: Ratnopam Chakrabarti Date: Wed, 11 Nov 2020 14:27:33 -0500 Subject: [PATCH] openstack-test-site for capo adjust openstack-test-site to execute the below phases for openstack provider(capo) clusterctl-init-ephemeral controlplane-ephemeral clusterctl-init-target clusterctl-move workers-target A detailed test run of the phases can be found in https://hackmd.io/OheCGmq8RX64SPw2sF3qGQ Change-Id: Id982273d28515eb3a44c39d869eaeb229923339c --- manifests/function/workers-capo/workers.yaml | 9 ++++ .../cluster_clouds_yaml_patch.yaml | 8 ++++ .../control_plane_config_patch.yaml | 4 +- .../controlplane/control_plane_ip.json | 0 .../controlplane/control_plane_ip_patch.yaml | 0 .../control_plane_machine_count_patch.yaml | 0 .../control_plane_machine_flavor_patch.yaml | 0 .../controlplane/dns_servers.json | 0 .../controlplane/external_network_id.json | 2 +- .../controlplane/kustomization.yaml | 0 .../ephemeral/controlplane/ssh_key_patch.yaml | 11 +++++ .../site/openstack-test-site/phases/plan.yaml | 6 ++- .../shared/clusterctl/clusterctl.yaml | 43 ------------------- .../shared/clusterctl/kustomization.yaml | 2 - .../cluster_clouds_yaml_patch.yaml | 8 ---- .../target/controlplane/ssh_key_patch.yaml | 11 ----- .../target/initinfra/kustomization.yaml | 5 ++- .../workers/cluster_clouds_yaml_patch.yaml | 8 ++++ .../target/workers/kustomization.yaml | 2 +- .../workers/workers_cloud_conf_patch.yaml | 2 +- .../target/workers/workers_ssh_key_patch.yaml | 2 +- 21 files changed, 50 insertions(+), 73 deletions(-) create mode 100644 manifests/site/openstack-test-site/ephemeral/controlplane/cluster_clouds_yaml_patch.yaml rename manifests/site/openstack-test-site/{target => ephemeral}/controlplane/control_plane_config_patch.yaml (67%) rename manifests/site/openstack-test-site/{target => ephemeral}/controlplane/control_plane_ip.json (100%) rename manifests/site/openstack-test-site/{target => ephemeral}/controlplane/control_plane_ip_patch.yaml (100%) rename manifests/site/openstack-test-site/{target => ephemeral}/controlplane/control_plane_machine_count_patch.yaml (100%) rename manifests/site/openstack-test-site/{target => ephemeral}/controlplane/control_plane_machine_flavor_patch.yaml (100%) rename manifests/site/openstack-test-site/{target => ephemeral}/controlplane/dns_servers.json (100%) rename manifests/site/openstack-test-site/{target => ephemeral}/controlplane/external_network_id.json (62%) rename manifests/site/openstack-test-site/{target => ephemeral}/controlplane/kustomization.yaml (100%) create mode 100644 manifests/site/openstack-test-site/ephemeral/controlplane/ssh_key_patch.yaml delete mode 100755 manifests/site/openstack-test-site/shared/clusterctl/clusterctl.yaml delete mode 100755 manifests/site/openstack-test-site/shared/clusterctl/kustomization.yaml delete mode 100644 manifests/site/openstack-test-site/target/controlplane/cluster_clouds_yaml_patch.yaml delete mode 100644 manifests/site/openstack-test-site/target/controlplane/ssh_key_patch.yaml mode change 100755 => 100644 manifests/site/openstack-test-site/target/initinfra/kustomization.yaml create mode 100644 manifests/site/openstack-test-site/target/workers/cluster_clouds_yaml_patch.yaml diff --git a/manifests/function/workers-capo/workers.yaml b/manifests/function/workers-capo/workers.yaml index 5e24a83f8..4b9714cd0 100644 --- a/manifests/function/workers-capo/workers.yaml +++ b/manifests/function/workers-capo/workers.yaml @@ -70,3 +70,12 @@ spec: sshAuthorizedKeys: - ${OPENSTACK_SSH_KEY} sudo: ALL=(ALL) NOPASSWD:ALL +--- +apiVersion: v1 +kind: Secret +metadata: + name: target-cluster-cloud-config + namespace: default +data: + cacert: ${CLOUD_CERT_B64} + clouds.yaml: ${CLOUDS_YAML_B64} diff --git a/manifests/site/openstack-test-site/ephemeral/controlplane/cluster_clouds_yaml_patch.yaml b/manifests/site/openstack-test-site/ephemeral/controlplane/cluster_clouds_yaml_patch.yaml new file mode 100644 index 000000000..d6f49c5a1 --- /dev/null +++ b/manifests/site/openstack-test-site/ephemeral/controlplane/cluster_clouds_yaml_patch.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Secret +metadata: + name: target-cluster-cloud-config + namespace: default +data: + cacert: Cg== + clouds.yaml: Y2xvdWRzOgogIGRldnN0YWNrOgogICAgYXV0aDoKICAgICAgYXV0aF91cmw6IGh0dHA6Ly8xMC4wLjAuNC9pZGVudGl0eQogICAgICBwYXNzd29yZDogcGFzcwogICAgICBwcm9qZWN0X2RvbWFpbl9pZDogZGVmYXVsdAogICAgICBwcm9qZWN0X25hbWU6IGRlbW8KICAgICAgdXNlcl9kb21haW5faWQ6IGRlZmF1bHQKICAgICAgdXNlcm5hbWU6IGRlbW8KICAgIGlkZW50aXR5X2FwaV92ZXJzaW9uOiAnMycKICAgIHJlZ2lvbl9uYW1lOiBSZWdpb25PbmUKICAgIHZvbHVtZV9hcGlfdmVyc2lvbjogJzMnCg== diff --git a/manifests/site/openstack-test-site/target/controlplane/control_plane_config_patch.yaml b/manifests/site/openstack-test-site/ephemeral/controlplane/control_plane_config_patch.yaml similarity index 67% rename from manifests/site/openstack-test-site/target/controlplane/control_plane_config_patch.yaml rename to manifests/site/openstack-test-site/ephemeral/controlplane/control_plane_config_patch.yaml index b22ea1855..84489a540 100644 --- a/manifests/site/openstack-test-site/target/controlplane/control_plane_config_patch.yaml +++ b/manifests/site/openstack-test-site/ephemeral/controlplane/control_plane_config_patch.yaml @@ -11,7 +11,7 @@ spec: kubeadmConfigSpec: files: - path: /etc/kubernetes/cloud.conf - content: W0dsb2JhbF0KYXV0aC11cmw9aHR0cDovLzEwLjAuMS40L2lkZW50aXR5CnVzZXJuYW1lPSJkZW1vIgpwYXNzd29yZD0icGFzcyIKdGVuYW50LWlkPSIyMThkMWNiYzMyOWM0YWUzYWNjODhjYTU5NTAwMTUwMSIKZG9tYWluLW5hbWU9IkRlZmF1bHQiCnJlZ2lvbj0iUmVnaW9uT25lIgo= + content: W0dsb2JhbF0KYXV0aC11cmw9aHR0cDovLzEwLjAuMC40L2lkZW50aXR5CnVzZXJuYW1lPSJkZW1vIgpwYXNzd29yZD0icGFzcyIKdGVuYW50LW5hbWU9ImRlbW8iCmRvbWFpbi1pZD0iZGVmYXVsdCIKcmVnaW9uPSJSZWdpb25PbmUiCg== encoding: base64 owner: root permissions: "0600" @@ -19,4 +19,4 @@ spec: content: Cg== encoding: base64 owner: root - permissions: "0600" \ No newline at end of file + permissions: "0600" diff --git a/manifests/site/openstack-test-site/target/controlplane/control_plane_ip.json b/manifests/site/openstack-test-site/ephemeral/controlplane/control_plane_ip.json similarity index 100% rename from manifests/site/openstack-test-site/target/controlplane/control_plane_ip.json rename to manifests/site/openstack-test-site/ephemeral/controlplane/control_plane_ip.json diff --git a/manifests/site/openstack-test-site/target/controlplane/control_plane_ip_patch.yaml b/manifests/site/openstack-test-site/ephemeral/controlplane/control_plane_ip_patch.yaml similarity index 100% rename from manifests/site/openstack-test-site/target/controlplane/control_plane_ip_patch.yaml rename to manifests/site/openstack-test-site/ephemeral/controlplane/control_plane_ip_patch.yaml diff --git a/manifests/site/openstack-test-site/target/controlplane/control_plane_machine_count_patch.yaml b/manifests/site/openstack-test-site/ephemeral/controlplane/control_plane_machine_count_patch.yaml similarity index 100% rename from manifests/site/openstack-test-site/target/controlplane/control_plane_machine_count_patch.yaml rename to manifests/site/openstack-test-site/ephemeral/controlplane/control_plane_machine_count_patch.yaml diff --git a/manifests/site/openstack-test-site/target/controlplane/control_plane_machine_flavor_patch.yaml b/manifests/site/openstack-test-site/ephemeral/controlplane/control_plane_machine_flavor_patch.yaml similarity index 100% rename from manifests/site/openstack-test-site/target/controlplane/control_plane_machine_flavor_patch.yaml rename to manifests/site/openstack-test-site/ephemeral/controlplane/control_plane_machine_flavor_patch.yaml diff --git a/manifests/site/openstack-test-site/target/controlplane/dns_servers.json b/manifests/site/openstack-test-site/ephemeral/controlplane/dns_servers.json similarity index 100% rename from manifests/site/openstack-test-site/target/controlplane/dns_servers.json rename to manifests/site/openstack-test-site/ephemeral/controlplane/dns_servers.json diff --git a/manifests/site/openstack-test-site/target/controlplane/external_network_id.json b/manifests/site/openstack-test-site/ephemeral/controlplane/external_network_id.json similarity index 62% rename from manifests/site/openstack-test-site/target/controlplane/external_network_id.json rename to manifests/site/openstack-test-site/ephemeral/controlplane/external_network_id.json index 1603e579f..7eae1a68a 100644 --- a/manifests/site/openstack-test-site/target/controlplane/external_network_id.json +++ b/manifests/site/openstack-test-site/ephemeral/controlplane/external_network_id.json @@ -1,3 +1,3 @@ [ - { "op": "replace","path": "/spec/externalNetworkId","value": "da57dbbe-c923-4641-b00a-0060d52f6f95" } + { "op": "replace","path": "/spec/externalNetworkId","value": "4e9b967f-1aec-41a5-ad1b-9805af62ebdd" } ] diff --git a/manifests/site/openstack-test-site/target/controlplane/kustomization.yaml b/manifests/site/openstack-test-site/ephemeral/controlplane/kustomization.yaml similarity index 100% rename from manifests/site/openstack-test-site/target/controlplane/kustomization.yaml rename to manifests/site/openstack-test-site/ephemeral/controlplane/kustomization.yaml diff --git a/manifests/site/openstack-test-site/ephemeral/controlplane/ssh_key_patch.yaml b/manifests/site/openstack-test-site/ephemeral/controlplane/ssh_key_patch.yaml new file mode 100644 index 000000000..b32af3e11 --- /dev/null +++ b/manifests/site/openstack-test-site/ephemeral/controlplane/ssh_key_patch.yaml @@ -0,0 +1,11 @@ +apiVersion: controlplane.cluster.x-k8s.io/v1alpha3 +kind: KubeadmControlPlane +metadata: + name: target-cluster-control-plane + namespace: default +spec: + kubeadmConfigSpec: + users: + - name: capo + sshAuthorizedKeys: + - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCV+B0gfF/728wO9XOZbEpxuCP2rhZu0CIic2+O6M9d/t2weLCDl0rdOlssnVzsS5C04OQvm6IDy94xHG8ob2N2G/LGz7/jgCiysHjdQ1Yg6F16hx1rnRFeS2lLDc7PhGco8hAPbY/oN5Q0biutJRSnI5zLNhN1phXRap0ptaI8g3B3t07lxtJGPich2npyGt+ie7QwEzxoPMR81AnmCiqtRC7n2bf5p7CqMxMGHzhg30+BSOx81VlT30SKnExbXrHqV6372+kUvGw/NrUcJEQJNb/QDgAX51BBfTqYyxqZ3RDsBCRdE9IX51BgT6GJnsNjgo6h5CEIdAUNBM1MT23hpzpOTZPbSTdKsc5NHfbKKP6dlPcGYstHvtaVkvZ5x6bQr7dk9qiRs6ujuHybpE95OaH23Pg9PSbTxmZ8GZMMIzg1fToSNstaZe82crd+oY66icUgR7jvOwj7qulOklnkwLTaRUdRtbL4kYORxajLDVAuwF0qEtdGU3Pyb2NXoDs= stack@devstack diff --git a/manifests/site/openstack-test-site/phases/plan.yaml b/manifests/site/openstack-test-site/phases/plan.yaml index a11210f1d..df6ac45c5 100644 --- a/manifests/site/openstack-test-site/phases/plan.yaml +++ b/manifests/site/openstack-test-site/phases/plan.yaml @@ -6,6 +6,8 @@ phaseGroups: - name: group1 phases: - name: clusterctl-init-ephemeral - - name: controlplane-target + - name: controlplane-ephemeral + - name: initinfra-target + - name: clusterctl-init-target + - name: clusterctl-move - name: workers-target - - name: clusterctl-init-target \ No newline at end of file diff --git a/manifests/site/openstack-test-site/shared/clusterctl/clusterctl.yaml b/manifests/site/openstack-test-site/shared/clusterctl/clusterctl.yaml deleted file mode 100755 index a05a0366b..000000000 --- a/manifests/site/openstack-test-site/shared/clusterctl/clusterctl.yaml +++ /dev/null @@ -1,43 +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.7" - bootstrap-providers: - - "kubeadm:v0.3.7" - infrastructure-providers: - - "openstack:v0.3.1" - control-plane-providers: - - "kubeadm:v0.3.7" -providers: - - name: "openstack" - type: "InfrastructureProvider" - versions: - v0.3.1: manifests/function/capo/v0.3.1 - - name: "kubeadm" - type: "BootstrapProvider" - variable-substitution: true - versions: - v0.3.7: manifests/function/cabpk/v0.3.7 - - name: "cluster-api" - type: "CoreProvider" - variable-substitution: true - versions: - v0.3.7: manifests/function/capi/v0.3.7 - - name: "kubeadm" - type: "ControlPlaneProvider" - variable-substitution: true - versions: - v0.3.7: manifests/function/cacpk/v0.3.7 -additional-vars: - CONTAINER_CAPM3_MANAGER: quay.io/metal3-io/cluster-api-provider-metal3:v0.3.2 - CONTAINER_CACPK_MANAGER: us.gcr.io/k8s-artifacts-prod/cluster-api/kubeadm-control-plane-controller:v0.3.7 - CONTAINER_CABPK_MANAGER: us.gcr.io/k8s-artifacts-prod/cluster-api/kubeadm-bootstrap-controller:v0.3.7 - CONTAINER_CAPI_MANAGER: us.gcr.io/k8s-artifacts-prod/cluster-api/cluster-api-controller:v0.3.7 - CONTAINER_CAPM3_AUTH_PROXY: gcr.io/kubebuilder/kube-rbac-proxy:v0.4.0 - CONTAINER_CACPK_AUTH_PROXY: gcr.io/kubebuilder/kube-rbac-proxy:v0.4.1 - CONTAINER_CABPK_AUTH_PROXY: gcr.io/kubebuilder/kube-rbac-proxy:v0.4.1 - CONTAINER_CAPI_AUTH_PROXY: gcr.io/kubebuilder/kube-rbac-proxy:v0.4.1 \ No newline at end of file diff --git a/manifests/site/openstack-test-site/shared/clusterctl/kustomization.yaml b/manifests/site/openstack-test-site/shared/clusterctl/kustomization.yaml deleted file mode 100755 index 4bc44013e..000000000 --- a/manifests/site/openstack-test-site/shared/clusterctl/kustomization.yaml +++ /dev/null @@ -1,2 +0,0 @@ -resources: - - clusterctl.yaml diff --git a/manifests/site/openstack-test-site/target/controlplane/cluster_clouds_yaml_patch.yaml b/manifests/site/openstack-test-site/target/controlplane/cluster_clouds_yaml_patch.yaml deleted file mode 100644 index 1bbe0eee6..000000000 --- a/manifests/site/openstack-test-site/target/controlplane/cluster_clouds_yaml_patch.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: target-cluster-cloud-config - namespace: default -data: - cacert: Cg== - clouds.yaml: Y2xvdWRzOgogIGRldnN0YWNrOgogICAgYXV0aDoKICAgICAgYXV0aF91cmw6IGh0dHA6Ly8xMC4wLjEuNC9pZGVudGl0eQogICAgICBwcm9qZWN0X2lkOiAyMThkMWNiYzMyOWM0YWUzYWNjODhjYTU5NTAwMTUwMQogICAgICB1c2VyX2RvbWFpbl9uYW1lOiBEZWZhdWx0CiAgICAgIHVzZXJuYW1lOiBkZW1vCiAgICAgIHBhc3N3b3JkOiBwYXNzCiAgICByZWdpb25fbmFtZTogUmVnaW9uT25lCg== diff --git a/manifests/site/openstack-test-site/target/controlplane/ssh_key_patch.yaml b/manifests/site/openstack-test-site/target/controlplane/ssh_key_patch.yaml deleted file mode 100644 index f52015db6..000000000 --- a/manifests/site/openstack-test-site/target/controlplane/ssh_key_patch.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: controlplane.cluster.x-k8s.io/v1alpha3 -kind: KubeadmControlPlane -metadata: - name: target-cluster-control-plane - namespace: default -spec: - kubeadmConfigSpec: - users: - - name: capo - sshAuthorizedKeys: - - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5CeROtz81ZJ/2wCUBnK0X67dL01s5KgOQhqlvn2PG1onGoEwKuwVgnUH3CtGJj1wjq4GqWduBoLvPrSt6qGL/tX8ZiVp2XS8SkDcxo69zo4QMoBdjTwfXwASalcEjQr7nRW8eMlgeI8+bRkhDuCBQLTYHoe6jQh/sWKhj25cgeAkU8eqe+bB9C8d7C/DeWBN6AJaBGjX7F2Azm8Fg6ArtxabuEDw3DYvdm+Y4GvLDfJ3MQR/S2etk8lwWaxlDWIfTwVeCDlG098rRRKKtiaF9LFq08+wEPPEBsyX1q9aNNfdcoCZnuSoWZ5ceBMxZSobA3vBy2jHUGz+slR4ADM7P stack@devstack-magnum diff --git a/manifests/site/openstack-test-site/target/initinfra/kustomization.yaml b/manifests/site/openstack-test-site/target/initinfra/kustomization.yaml old mode 100755 new mode 100644 index c2942afaa..37c98fc0f --- a/manifests/site/openstack-test-site/target/initinfra/kustomization.yaml +++ b/manifests/site/openstack-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/openstack-test-site/target/workers/cluster_clouds_yaml_patch.yaml b/manifests/site/openstack-test-site/target/workers/cluster_clouds_yaml_patch.yaml new file mode 100644 index 000000000..d6f49c5a1 --- /dev/null +++ b/manifests/site/openstack-test-site/target/workers/cluster_clouds_yaml_patch.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Secret +metadata: + name: target-cluster-cloud-config + namespace: default +data: + cacert: Cg== + clouds.yaml: Y2xvdWRzOgogIGRldnN0YWNrOgogICAgYXV0aDoKICAgICAgYXV0aF91cmw6IGh0dHA6Ly8xMC4wLjAuNC9pZGVudGl0eQogICAgICBwYXNzd29yZDogcGFzcwogICAgICBwcm9qZWN0X2RvbWFpbl9pZDogZGVmYXVsdAogICAgICBwcm9qZWN0X25hbWU6IGRlbW8KICAgICAgdXNlcl9kb21haW5faWQ6IGRlZmF1bHQKICAgICAgdXNlcm5hbWU6IGRlbW8KICAgIGlkZW50aXR5X2FwaV92ZXJzaW9uOiAnMycKICAgIHJlZ2lvbl9uYW1lOiBSZWdpb25PbmUKICAgIHZvbHVtZV9hcGlfdmVyc2lvbjogJzMnCg== diff --git a/manifests/site/openstack-test-site/target/workers/kustomization.yaml b/manifests/site/openstack-test-site/target/workers/kustomization.yaml index 2ee127ed8..2cdbca1e9 100755 --- a/manifests/site/openstack-test-site/target/workers/kustomization.yaml +++ b/manifests/site/openstack-test-site/target/workers/kustomization.yaml @@ -1,10 +1,10 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ../../../../composite/infra - ../../../../function/workers-capo patchesStrategicMerge: + - cluster_clouds_yaml_patch.yaml - workers_machine_count_patch.yaml - workers_machine_flavor_patch.yaml - workers_cloud_conf_patch.yaml diff --git a/manifests/site/openstack-test-site/target/workers/workers_cloud_conf_patch.yaml b/manifests/site/openstack-test-site/target/workers/workers_cloud_conf_patch.yaml index 6f12e4553..bc6c6644c 100644 --- a/manifests/site/openstack-test-site/target/workers/workers_cloud_conf_patch.yaml +++ b/manifests/site/openstack-test-site/target/workers/workers_cloud_conf_patch.yaml @@ -7,7 +7,7 @@ spec: template: spec: files: - - content: W0dsb2JhbF0KYXV0aC11cmw9aHR0cDovLzEwLjAuMS40L2lkZW50aXR5CnVzZXJuYW1lPSJkZW1vIgpwYXNzd29yZD0icGFzcyIKdGVuYW50LWlkPSIyMThkMWNiYzMyOWM0YWUzYWNjODhjYTU5NTAwMTUwMSIKZG9tYWluLW5hbWU9IkRlZmF1bHQiCnJlZ2lvbj0iUmVnaW9uT25lIgo= + - content: W0dsb2JhbF0KYXV0aC11cmw9aHR0cDovLzEwLjAuMC40L2lkZW50aXR5CnVzZXJuYW1lPSJkZW1vIgpwYXNzd29yZD0icGFzcyIKdGVuYW50LW5hbWU9ImRlbW8iCmRvbWFpbi1pZD0iZGVmYXVsdCIKcmVnaW9uPSJSZWdpb25PbmUiCg== encoding: base64 owner: root path: /etc/kubernetes/cloud.conf diff --git a/manifests/site/openstack-test-site/target/workers/workers_ssh_key_patch.yaml b/manifests/site/openstack-test-site/target/workers/workers_ssh_key_patch.yaml index caca9c7d4..05c539cbc 100644 --- a/manifests/site/openstack-test-site/target/workers/workers_ssh_key_patch.yaml +++ b/manifests/site/openstack-test-site/target/workers/workers_ssh_key_patch.yaml @@ -9,4 +9,4 @@ spec: users: - name: capo sshAuthorizedKeys: - - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5CeROtz81ZJ/2wCUBnK0X67dL01s5KgOQhqlvn2PG1onGoEwKuwVgnUH3CtGJj1wjq4GqWduBoLvPrSt6qGL/tX8ZiVp2XS8SkDcxo69zo4QMoBdjTwfXwASalcEjQr7nRW8eMlgeI8+bRkhDuCBQLTYHoe6jQh/sWKhj25cgeAkU8eqe+bB9C8d7C/DeWBN6AJaBGjX7F2Azm8Fg6ArtxabuEDw3DYvdm+Y4GvLDfJ3MQR/S2etk8lwWaxlDWIfTwVeCDlG098rRRKKtiaF9LFq08+wEPPEBsyX1q9aNNfdcoCZnuSoWZ5ceBMxZSobA3vBy2jHUGz+slR4ADM7P stack@devstack-magnum + - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCV+B0gfF/728wO9XOZbEpxuCP2rhZu0CIic2+O6M9d/t2weLCDl0rdOlssnVzsS5C04OQvm6IDy94xHG8ob2N2G/LGz7/jgCiysHjdQ1Yg6F16hx1rnRFeS2lLDc7PhGco8hAPbY/oN5Q0biutJRSnI5zLNhN1phXRap0ptaI8g3B3t07lxtJGPich2npyGt+ie7QwEzxoPMR81AnmCiqtRC7n2bf5p7CqMxMGHzhg30+BSOx81VlT30SKnExbXrHqV6372+kUvGw/NrUcJEQJNb/QDgAX51BBfTqYyxqZ3RDsBCRdE9IX51BgT6GJnsNjgo6h5CEIdAUNBM1MT23hpzpOTZPbSTdKsc5NHfbKKP6dlPcGYstHvtaVkvZ5x6bQr7dk9qiRs6ujuHybpE95OaH23Pg9PSbTxmZ8GZMMIzg1fToSNstaZe82crd+oY66icUgR7jvOwj7qulOklnkwLTaRUdRtbL4kYORxajLDVAuwF0qEtdGU3Pyb2NXoDs= stack@devstack