It appears it's broken because we don't actually run the boostrap bits for keystone because the ControllerApi node thinks that the Controller node is the bootstrap node for that role. It's not.
In the deployment log we see the 'Write docker-puppet-task json files' is skipped on the ControllerApi node.
So because the bootstrap_server_id for the ControlerApi role is set to a Controller node, it never runs some of the steps which in this case includes the keystone_endpoints and more.
It appears it's broken because we don't actually run the boostrap bits for keystone because the ControllerApi node thinks that the Controller node is the bootstrap node for that role. It's not.
In the deployment log we see the 'Write docker-puppet-task json files' is skipped on the ControllerApi node.
http:// logs.openstack. org/50/ 569550/ 8/check/ tripleo- ci-centos- 7-3nodes- multinode/ fddbbcb/ logs/undercloud /home/zuul/ overcloud_ deploy. log.txt. gz#_2018- 05-21_16_ 43_31
2018-05-21 16:43:31 | TASK [Write docker-puppet-tasks json files] ******* ******* ******* ******* ******* * mistral/ 1b504e8a- df7f-43e7- 9673-ceaae3c65f fe/common_ deploy_ steps_tasks. yaml:160 7-rax-dfw- 0004113538] => (item={'value': [{'puppet_tags': u'keystone_ config, keystone_ domain_ config, keystone_ endpoint, keystone_ identity_ provider, keystone_ paste_ini, keystone_ role,keystone_ service, keystone_ tenant, keystone_ user,keystone_ user_role, keystone_ domain' , 'config_volume': u'keystone_ init_tasks' , 'step_config': u'include ::tripleo: :profile: :base:: keystone' , 'config_image': u'192.168. 24.1:8787/ tripleomaster/ centos- binary- keystone: 20b99f6998c0886 50b0c0cb066cc6a ac3e5f9312_ b333f915' }], 'key': u'step_3'}) => {"changed": false, "item": {"key": "step_3", "value": [{"config_image": "192.168. 24.1:8787/ tripleomaster/ centos- binary- keystone: 20b99f6998c0886 50b0c0cb066cc6a ac3e5f9312_ b333f915" , "config_volume": "keystone_ init_tasks" , "puppet_tags": "keystone_ config, keystone_ domain_ config, keystone_ endpoint, keystone_ identity_ provider, keystone_ paste_ini, keystone_ role,keystone_ service, keystone_ tenant, keystone_ user,keystone_ user_role, keystone_ domain" , "step_config": "include ::tripleo: :profile: :base:: keystone" }]}, "skip_reason": "Conditional result was False"}
2018-05-21 16:43:31 | task path: /var/lib/
2018-05-21 16:43:31 | skipping: [centos-
From common_ deploy_ steps_tasks. yaml the conditional is...
http:// logs.openstack. org/50/ 569550/ 8/check/ tripleo- ci-centos- 7-3nodes- multinode/ fddbbcb/ logs/undercloud /var/lib/ mistral/ 1b504e8a- df7f-43e7- 9673-ceaae3c65f fe/common_ deploy_ steps_tasks. yaml.txt. gz
- name: Write docker-puppet-tasks json files "{{item. value|to_ json}}" dest=/var/ lib/docker- puppet/ docker- puppet- tasks{{ item.key. replace( "step_" , "")}}.json force=yes mode=0600
with_ dict: "{{role_ data_docker_ puppet_ tasks}} "
copy: content=
when: deploy_server_id == bootstrap_server_id
If we look at the tripleo- ansible- inventory. yaml we see...
http:// logs.openstack. org/50/ 569550/ 8/check/ tripleo- ci-centos- 7-3nodes- multinode/ fddbbcb/ logs/undercloud /var/lib/ mistral/ 1b504e8a- df7f-43e7- 9673-ceaae3c65f fe/tripleo- ansible- inventory. yaml.txt. gz
Controller: 7-rax-dfw- 0004113541: server_ id: ece919cf- 6814-442d- 89fa-0879678fcc 7e, role_name: Controller} 7-rax-dfw- 0004113538: server_ id: ece919cf- 6814-442d- 89fa-0879678fcc 7e, role_name: ControllerApi}
hosts:
centos-
<snip>
vars: {ansible_ssh_user: tripleo-admin, bootstrap_
tripleo_
ControllerApi:
hosts:
centos-
<snip>
vars: {ansible_ssh_user: tripleo-admin, bootstrap_
tripleo_
So because the bootstrap_server_id for the ControlerApi role is set to a Controller node, it never runs some of the steps which in this case includes the keystone_endpoints and more.