Skip to content

Commit c815347

Browse files
authored
Pass additional parameters to facilitate provisioning of wildcard certificate (#112)
* Retrieve Controlplane and Dataplane IP address from provided values in environment.yaml and pass to Ansible inventory file * Pass Neustar UltraDNS credentials through to Ansible Inventory * Addition of slack webhook parameter for acme.sh notification and change of casing for UltraDNS credentials
1 parent 93a01c2 commit c815347

File tree

5 files changed

+66
-4
lines changed

5 files changed

+66
-4
lines changed

bastion-template.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,21 @@ parameters:
180180
ansible_branch:
181181
type: string
182182
description: Ansible branch that is pulled on bastion deployment.
183+
controlplane_ip:
184+
type: string
185+
description: Floating IP address associated with controlplane port
186+
dataplane_ip:
187+
type: string
188+
description: Floating IP address associated with dataplane port
189+
neustar_ultradns_username:
190+
type: string
191+
description: Neustar UltraDNS username to allow authentication to UltraDNS API
192+
neustar_ultradns_password:
193+
type: string
194+
description: Neustar UltraDNS password to allow authentication to UltraDNS API
195+
slack_webhook_url_acme_sh:
196+
type: string
197+
description: Slack Webhook URL for acme.sh notifications
183198

184199
resources:
185200
bastion_port:
@@ -306,6 +321,11 @@ resources:
306321
__registry_user__: { get_param: [ registry_details, registry_user ] }
307322
__registry_password__ : { get_param: [ registry_details, registry_password ] }
308323
__ansible_branch__ : { get_param: ansible_branch }
324+
__controlplane_ip__ : { get_param: controlplane_ip }
325+
__dataplane_ip__ : { get_param: dataplane_ip }
326+
__neustar_ultradns_username__ : { get_param: neustar_ultradns_username }
327+
__neustar_ultradns_password__ : { get_param: neustar_ultradns_password }
328+
__slack_webhook_url_acme_sh__ : { get_param: slack_webhook_url_acme_sh }
309329
template: { get_file: 'files/setup_bastion.yaml' }
310330
outputs:
311331
- name: result

deploy.sh

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ if [[ $multinetwork == true ]]; then
2222
tr '[:upper:]' '[:lower:]')
2323
fi
2424

25-
2625
function validateSetup() {
2726
if [[ -z ${OS_PROJECT_ID} ]]; then
2827
echo -e "\nYou must source your OpenStack RC file so we can access the OpenStack API\n"
@@ -38,6 +37,15 @@ function getPassword() {
3837
fi
3938
}
4039

40+
function getDataFromOpenstackProject() {
41+
controlplane_ip=$(python -c "import yaml;d=yaml.load(open('environment.yaml'));print(d['parameter_defaults']['controlplane_floating_ip'])" | xargs -I % openstack floating ip show % -c floating_ip_address -f value)
42+
dataplane_ip=$(python -c "import yaml;d=yaml.load(open('environment.yaml'));print(d['parameter_defaults']['dataplane_floating_ip'])" | xargs -I % openstack floating ip show % -c floating_ip_address -f value)
43+
if [[ -z ${controlplane_ip} || -z ${dataplane_ip} ]]; then
44+
echo -e "\nControlplane or Dataplane IP could not be retrieved, are the IDs in your environment file correct and are you authenticating correctly?\n"
45+
exit 1
46+
fi
47+
}
48+
4149
function setupHeatTemplate() {
4250
ansible-playbook ./setup-heat-templates.yaml \
4351
--extra-vars "multinetwork=${multinetwork}" \
@@ -49,6 +57,8 @@ function deployHeatStack() {
4957
openstack stack create -f yaml -t openshift.yaml openshift-${OS_PROJECT_NAME} \
5058
-e rhel_reg_creds.yaml \
5159
-e environment.yaml \
60+
--parameter controlplane_ip="${controlplane_ip}" \
61+
--parameter dataplane_ip="${dataplane_ip}" \
5262
--parameter time="$(date)" \
5363
--parameter os_auth_url="${OS_AUTH_URL}" \
5464
--parameter os_tenant_id="${OS_PROJECT_ID}" \
@@ -65,6 +75,7 @@ function showBastionIp() {
6575

6676
validateSetup
6777
getPassword
78+
getDataFromOpenstackProject
6879
setupHeatTemplate
6980
deployHeatStack
7081
showBastionIp

environment_example.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,6 @@ parameter_defaults:
8181
# registry_user: "<registry_user>"
8282
# registry_password: "<registry_password>"
8383
ansible_branch: "v3.11"
84+
neustar_ultradns_username: "<neustar_ultradns_username>"
85+
neustar_ultradns_password: "<neustar_ultradns_password>"
86+
slack_webhook_url_acme_sh: "<Slack Webhook URL for acme.sh notifications>"

files/setup_bastion.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,11 @@
5959
registryUser: __registry_user__
6060
registryPassword: __registry_password__
6161
ansibleBranch: __ansible_branch__
62+
controlplaneIp: __controlplane_ip__
63+
dataplaneIp: __dataplane_ip__
64+
neustarUltraDnsUsername: __neustar_ultradns_username__
65+
neustarUltraDnsPassword: __neustar_ultradns_password__
66+
slackWebhookUrlAcmeSh: __slack_webhook_url_acme_sh__
6267

6368
tasks:
6469
- name: Check if stack update or create and register variable
@@ -245,6 +250,8 @@
245250
node_routes: {{ nodeRoutes | to_json }}
246251
internalNetworkCidr: {{ internalNetworkCidr }}
247252
bastion_ip: {{ bastionIp }}
253+
controlplane_ip: {{ controlplaneIp }}
254+
dataplane_ip: {{ dataplaneIp }}
248255
{% if multinetwork %}
249256
net2_routes: {{ net2Routes | to_json }}
250257
net2_ntp_servers: {{ net2NTPServers | to_json }}
@@ -267,6 +274,9 @@
267274
registryUrl: {{ registryUrl }}
268275
registryUser: {{ registryUser }}
269276
registryPassword: {{ registryPassword }}
277+
neustarUltraDnsUsername: {{ neustarUltraDnsUsername }}
278+
neustarUltraDnsPassword: {{ neustarUltraDnsPassword }}
279+
slackWebhookUrlAcmeSh: {{ slackWebhookUrlAcmeSh }}
270280
271281
- name: create ansible variables directory
272282
file:

top-level-template.yaml

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,21 @@ parameters:
172172
type: string
173173
description: Ansible branch that will be pulled on bastion deployment.
174174
default: master
175-
175+
controlplane_ip:
176+
type: string
177+
description: Floating IP address associated with controlplane port
178+
dataplane_ip:
179+
type: string
180+
description: Floating IP address associated with dataplane port
181+
neustar_ultradns_username:
182+
type: string
183+
description: Neustar UltraDNS username to allow authentication to UltraDNS API
184+
neustar_ultradns_password:
185+
type: string
186+
description: Neustar UltraDNS password to allow authentication to UltraDNS API
187+
slack_webhook_url_acme_sh:
188+
type: string
189+
description: Slack Webhook URL for acme.sh notifications
176190

177191
resources:
178192
internal_network:
@@ -477,8 +491,12 @@ resources:
477491
sso_config: { get_param: sso_config }
478492
external_service_subnet: { get_param: [ network_config, service_subnet ] }
479493
registry_details: { get_param: registry_details }
480-
ansible_branch: {get_param: ansible_branch }
481-
494+
ansible_branch: { get_param: ansible_branch }
495+
controlplane_ip: { get_param: controlplane_ip }
496+
dataplane_ip: { get_param: dataplane_ip }
497+
neustar_ultradns_username: { get_param: neustar_ultradns_username }
498+
neustar_ultradns_password: { get_param: neustar_ultradns_password }
499+
slack_webhook_url_acme_sh: { get_param: slack_webhook_url_acme_sh }
482500

483501
conditions:
484502
multinetwork:

0 commit comments

Comments
 (0)