Skip to content

Instantly share code, notes, and snippets.

@d0ugal
Last active January 6, 2016 15:32
Show Gist options
  • Save d0ugal/82d87c730b049990e927 to your computer and use it in GitHub Desktop.
Save d0ugal/82d87c730b049990e927 to your computer and use it in GitHub Desktop.
This assumes you already have the API running on the undercloud. Run the
following commands on the undercloud.
$ git clone https://github.com/openstack/tripleo-heat-templates.git
$ python mkplan.py tripleo-heat-templates > plan.json
NOTE: You will need httpie installed for the following commands, otherwise you
can figure out curl ;). It can be installed with:
sudo yum install -y python-pip
sudo pip install httpie
$ http post localhost:8585/v1/plans < plan.json
$ http patch localhost:8585/v1/plans/overcloud/parameters < params.json
$ http put localhost:8585/v1/plans/overcloud/deploy
# Call with: python mkplan.py tripleo-heat-templates > plan.json
import sys
import yaml
template_path = sys.argv[1]
import os
templates_dict = {}
for root, dirs, files in os.walk(template_path):
for f in files:
full_path = os.path.join(root, f)
with open(full_path) as ff:
if not full_path.endswith(('.yaml', '.pp', '.sh')):
continue
full_path = full_path.replace("tripleo-heat-templates/", "")
templates_dict[full_path] = {'contents': ff.read().decode("latin1")}
#print repr(full_path)
import json
templates_dict['capabilities_map.yaml']['meta'] = {
'file-type': 'capabilities-map',
}
print json.dumps({"name": "overcloud", "files": templates_dict})
{
"BlockStorageImage": "overcloud-full",
"CephStorageImage": "overcloud-full",
"KeystoneCACertificate": "-----BEGIN CERTIFICATE-----\nMIIDNzCCAh+gAwIBAgIBATANBgkqhkiG9w0BAQUFADBTMQswCQYDVQQGEwJYWDEO\nMAwGA1UECBMFVW5zZXQxDjAMBgNVBAcTBVVuc2V0MQ4wDAYDVQQKEwVVbnNldDEU\nMBIGA1UEAxMLS2V5c3RvbmUgQ0EwHhcNMTUxMjE4MTI1NTQwWhcNMjUxMjE1MTI1\nNTQwWjBTMQswCQYDVQQGEwJYWDEOMAwGA1UECBMFVW5zZXQxDjAMBgNVBAcTBVVu\nc2V0MQ4wDAYDVQQKEwVVbnNldDEUMBIGA1UEAxMLS2V5c3RvbmUgQ0EwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC748BCjjaKiYctiQd8FKz5MWdNoRKI\noQVlIjDPwJAriQTYZI4N4lTWRaG/pDkWBB2cv2si1RWBIta2iFMYBqOItSv+Bg59\nNcSaThibXIpZXgKohHL04cGTpUntqKxfv4DnTNr50Qdtw1TGXLzJ8atRo3pf82dI\no5lg4vRB5PDu/GBS8GVd8FNdoD9K0oh21Bt7P6uxF3ggdRMifvMs3WwZDR+Oe+eo\nKvN3Ao2ycevOwgfLoVYEBSBBZ4/sQaSXVCJ/e+PfvDiIZANyG4aXC8SvPMofLFux\ndivbc9kk+Rlr7Bofplk7UuYyGBHlPF/5QKY2tnjMYz2C958MVR46Tin5AgMBAAGj\nFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQEFBQADggEBAGsVFaKv\nhufitNQBr2Q4SEO3rTenP43n6445PgT4B13DaRjrYiqHdtm/uSYXgqU+VaPXsRK/\njZuXcaJ5O8fcEx+Z5dtC8Y6g5tFvUItzvEb8pIFJNL1LQtxxTWV96PvvI2VKjn4k\nmQw+y/gHnOK1F+6pvYtmw22VZA2WZYCfgFyAW5+2NZdFqOZhXOHK3DVnABxLx8T2\n4SbCr2VkZYxziKi8sfMIm+Vcf5Lkm9mczoxeZHdTwxLcFg7bsi/GMkRGPJjfC5wy\n/Z83UR+Qy5TtUHiMFcZJSj/ZACBxj1fSsewoXE11XV5otxeAUvVY19Jzl2D3e2vF\nJ3Y3ITa04ZeDctQ=\n-----END CERTIFICATE-----\n",
"KeystoneSigningCertificate": "-----BEGIN CERTIFICATE-----\nMIIDJDCCAgygAwIBAgIBAjANBgkqhkiG9w0BAQUFADBTMQswCQYDVQQGEwJYWDEO\nMAwGA1UECBMFVW5zZXQxDjAMBgNVBAcTBVVuc2V0MQ4wDAYDVQQKEwVVbnNldDEU\nMBIGA1UEAxMLS2V5c3RvbmUgQ0EwHhcNMTUxMjE4MTI1NTQxWhcNMjUxMjE1MTI1\nNTQxWjBYMQswCQYDVQQGEwJYWDEOMAwGA1UECBMFVW5zZXQxDjAMBgNVBAcTBVVu\nc2V0MQ4wDAYDVQQKEwVVbnNldDEZMBcGA1UEAxMQS2V5c3RvbmUgU2lnbmluZzCC\nASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAO4dineyIJKKxnXT+Le2q6cS\nfNcUFAIqmIm6XGrBkKFl6BYdJUc46EEchOi02tFFwEfc8EGELK613pSw1rMgpYte\n+6qe+rlfVm+DRk+pGj2A6S/B6YnKorSafDASzCAdMP9n8w9VLyj/RsoqiVQfboRd\npb0R2xYaERB9Ae8eJnpdOAdUCW8z1h/NKT1lZhlKWkx5C6MJFWnM63UcAFCyT1Vn\nwKUs6P7UIPazvkNsBw8bl6QQR8GEI3NpK5ZnHZDPgWTjXBNk92J7A9I/6X41oQba\nzX2WqcOKwwmSnZz/NsvderRUx5buxpQfp/Hnw1r4UrIub/Nolp9vE1RPvQj22u8C\nAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAiDnbbCwOhyL+o/iMZjVsG7AvAiAi8bmx\nDjm0vRpHA1Xx9LwR7U9NVg0DVUllpaBGXQmouF5BD8PzVrQ3meC5FSNBCUWizaJB\nHGvB+Z4iZ6+hhSl1vZ21+e5vAua/+F/z7kW2w102WwzNBsOkaInIvga+bV9DdPZ3\nzUMItdw+v6Da7vHT/dlUcHGA8soLCEhzT/7m6DrgefWgsDnySRNgNd/d3UvRjFaG\nR1t76l94k6JrPpuEpx9HnOoQoiRpev7dnd6nL/QaxJ3goOmjEtmgRCMM4StPzdfV\nP3mHDQFjDrexjKBPMnvzz96+HA7tfwPJiMYJoLnMU+A7OZUM9Qj1eg==\n-----END CERTIFICATE-----\n",
"KeystoneSigningKey": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDuHYp3siCSisZ1\n0/i3tqunEnzXFBQCKpiJulxqwZChZegWHSVHOOhBHITotNrRRcBH3PBBhCyutd6U\nsNazIKWLXvuqnvq5X1Zvg0ZPqRo9gOkvwemJyqK0mnwwEswgHTD/Z/MPVS8o/0bK\nKolUH26EXaW9EdsWGhEQfQHvHiZ6XTgHVAlvM9YfzSk9ZWYZSlpMeQujCRVpzOt1\nHABQsk9VZ8ClLOj+1CD2s75DbAcPG5ekEEfBhCNzaSuWZx2Qz4Fk41wTZPdiewPS\nP+l+NaEG2s19lqnDisMJkp2c/zbL3Xq0VMeW7saUH6fx58Na+FKyLm/zaJafbxNU\nT70I9trvAgMBAAECggEAGoqOaaMgQFVZo76Z5Zhl77x+z9Z8GHW5BPkR3hBvV54t\nTXG4OwUb1k4gfnPSRCtbMGdvHE5oUJ0TD03a0KKd8TgII0+PMORwlQNz7eMyepKI\n63rY1jQRCMKDfzRJLncyg/WJQTdEh3RU5qnxHsBWKEjr9XQtEHydVFIqygV5UoAk\ndtetogrTCHLDdLr6k6vZ3E3DSdIe9wR3Zylhmkv3/7D5FeaJcl03iG6JK0JvNghQ\nJ+DmnxyNKdH/nEUhkAy15KeBbxOWpf+I8YS3pfL8XUZeKShXvLI3qzJcBiTbrk2C\nl2ESm5a5lgMSm9NdtjNqvOwjOQmrTUZ2Lkez8gs04QKBgQD7easAL63D+kAYwsR8\nezB9tqsAviEx0IQMRQphOPnGwzIIy89Nzs+1sD4WZgrkKZgiezkDTqyRGCoLg5lL\n6R6DKWsys5HGR+hrs31LJb5riUzfE5FLp17H0aJ9r+LYSNd2DmbAN2MTUreHiQLq\nslFGVhHuDy1cccvd4Chz225P/wKBgQDyZlXb4BTf4iHvzNzc6KArJkV9DHTqZH4W\n9OLhX4HIm/z9K+idkvWrPmWejNN4UZKFKwv07qXwZx75cex9HxQQ3Pm3z0z7JldW\nBj2wXsBe8F6bIUk3qjVuOFKOlD37pUpS1he7cZT7Gx11yBxWhMwpnC1S2w2xS+Oj\nv27fs+x1EQKBgGh8Tv6O0OYirksbccQ+8xDouvheBzDJcHQgo4VtxOo+5CUfeYzc\npxTYm5N25oOSfLGm/TNQlwbaQW3zSdhujcz1gqLYVXNLIVjOhPqaPho0PApb+Py0\nF/9yLM+IKvqumUdmCG9JFBNNRRA9b0bQvFA7JswA5loItioEHwq0W4tFAoGBAJxF\nw3akaXDI7c4WihFVW+VVoBj1Te7K6MtOB3L6ysYVYq2pgCcOVpmW+ZaU/cSk+kwm\nK2g17v8kzEBO5QLpZVtVyxxoZh3IYyfPkDfDbkwGtUdX10cu0ZGEeBz5j1hMALWU\n1un+WOjmW0DSyQoyRRlSWZoAJTy3S0QHJ6jK61exAoGBANLWtRj0rIuxVxZo978p\nJ61Yd1ZgPKrIhskecJXaXQFeFZRDfkVD9BSIh1Dq9mM9Llh6zA0koQHLKbT5IC7K\nZGaebgIzBj/uGjTYuqVgqqecX/vtUiRHGMCFIZ46UHTpvPP67bDW+Ev4j2FQTP2C\n3FrLGgEu9Mb+34sPLlNdsvmi\n-----END PRIVATE KEY-----\n",
"SwiftStorageImage": "overcloud-full",
"controllerImage": "overcloud-full",
"OvercloudBlockStorageFlavor": "baremetal",
"OvercloudControlFlavor": "baremetal",
"OvercloudComputeFlavor": "baremetal",
"OvercloudSwiftStorageFlavor": "baremetal",
"NovaImage": "overcloud-full",
"CinderPassword": "Ma3kfBHqB8FDb2hgJa3sPUAzh",
"GlancePassword": "EBNnAsWxuzAHfqG8trjjMDsCu",
"SwiftPassword": "KfqyTxGtQ9y7P6yCK2m7n2xMz",
"NeutronMetadataProxySharedSecret": "A2kEkckqfAzxcdVEJtnWj4hGP",
"HeatPassword": "BEhHu9UhKd4ZnQwmtCUFsZrh4",
"HeatStackDomainAdminPassword": "fpRbkRneNJVutk4QqK8xYR3Qm",
"AdminPassword": "MjFshnTPgMMExCRDuRcH2XhMQ",
"NeutronPassword": "9n3AfD2b9zfBrmmBHwHyc7TgV",
"AdminToken": "CuVyGZqfwZdbTwUaX9euaPGaA",
"SwiftHashSuffix": "JN273288Xt3JTBqnE8RBsrYze",
"CeilometerMeteringSecret": "Hvkf9Rzz6tHF6UVsErPjCE3uM",
"SnmpdReadonlyUserPassword": "password",
"CeilometerPassword": "2zgV6yAE2d3JTskTnBUsvzDf4",
"NovaPassword": "QCn7EHTkMMrJHH7Upp6txzUYX"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment