bifrost has hardcoded git_url in playbooks

Bug #1670340 reported by James McCarthy
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bifrost
Opinion
Undecided
Unassigned

Bug Description

bifrost has many default urls for fetching info from openstack repos, for example:

find . -name main.yml | xargs grep git_url
./bifrost-ironic-install/defaults/main.yml:# *_git_url can be overridden by local clones for offline installs
./bifrost-ironic-install/defaults/main.yml:dib_git_url: https://git.openstack.org/openstack/diskimage-builder
./bifrost-ironic-install/defaults/main.yml:ironicclient_git_url: https://git.openstack.org/openstack/python-ironicclient
./bifrost-ironic-install/defaults/main.yml:shade_git_url: https://git.openstack.org/openstack-infra/shade
./bifrost-ironic-install/defaults/main.yml:ironic_git_url: https://git.openstack.org/openstack/ironic
./bifrost-ironic-install/defaults/main.yml:ironicinspector_git_url: https://github.com/openstack/ironic-inspector
./bifrost-ironic-install/defaults/main.yml:ironicinspectorclient_git_url: https://github.com/openstack/python-ironic-inspector-client
./bifrost-ironic-install/defaults/main.yml:staging_drivers_git_url: http://git.openstack.org/cgit/openstack/ironic-staging-drivers
./bifrost-keystone-install/defaults/main.yml:# *_git_url can be overridden by local clones for offline installs
./bifrost-keystone-install/defaults/main.yml:keystone_git_url: https://git.openstack.org/openstack/keystone
./bifrost-prep-for-install/defaults/main.yml:# *_git_url can be overridden by local clones for offline installs
./bifrost-prep-for-install/defaults/main.yml:dib_git_url: https://git.openstack.org/openstack/diskimage-builder
./bifrost-prep-for-install/defaults/main.yml:ironicclient_git_url: https://git.openstack.org/openstack/python-ironicclient
./bifrost-prep-for-install/defaults/main.yml:shade_git_url: https://git.openstack.org/openstack-infra/shade
./bifrost-prep-for-install/defaults/main.yml:ironic_git_url: https://git.openstack.org/openstack/ironic
./bifrost-prep-for-install/defaults/main.yml:ironicinspector_git_url: https://github.com/openstack/ironic-inspector
./bifrost-prep-for-install/defaults/main.yml:ironicinspectorclient_git_url: https://github.com/openstack/python-ironic-inspector-client
./bifrost-prep-for-install/defaults/main.yml:reqs_git_url: https://git.openstack.org/openstack/requirements
./bifrost-prep-for-install/defaults/main.yml:staging_drivers_git_url: https://git.openstack.org/openstack/ironic-staging-drivers
./bifrost-prep-for-install/defaults/main.yml:keystone_git_url: https://git.openstack.org/openstack/keystone
./bifrost-prep-for-install/defaults/main.yml: git_url: "{{ ironic_git_url }}"
./bifrost-prep-for-install/defaults/main.yml: git_url: "{{ ironicclient_git_url }}"
./bifrost-prep-for-install/defaults/main.yml: git_url: "{{ shade_git_url }}"
./bifrost-prep-for-install/defaults/main.yml: git_url: "{{ dib_git_url }}"
./bifrost-prep-for-install/defaults/main.yml: git_url: "{{ ironicinspector_git_url }}"
./bifrost-prep-for-install/defaults/main.yml: git_url: "{{ ironicinspectorclient_git_url }}"
./bifrost-prep-for-install/defaults/main.yml: git_url: "{{ reqs_git_url }}"
./bifrost-prep-for-install/defaults/main.yml: git_url: "{{ staging_drivers_git_url }}"
./bifrost-prep-for-install/defaults/main.yml: git_url: "{{ keystone_git_url }}"
./bifrost-prep-for-install/tasks/main.yml: repo: "{{ item.git_url }}"
./bifrost-prep-for-install/tasks/main.yml: command: cp -a {{ item.git_url }} {{ item.git_folder }} creates={{ item.git_folder }}

In a corporate setting, I need these to be fetched from an internal build mirror.

There are ways; but a preexisting mechanism within bifrost to support this would be very helpful.

Revision history for this message
Miles Gould (mgould) wrote :

I guess we should also change the default git URL for ironic-inspector and python-ironic-inspector-client to use git.openstack.org rather than GitHub.

Revision history for this message
Pavlo Shchelokovskyy (pshchelo) wrote :

one option would be to make the root of git_repo URL customizable, so it could be overriden with single extra-var.

But I suspect every 'internal' mirror layout might be different, so there might not be a lot of sense to do this in bifrost.

Instead, best way might be to just populate a separate yaml file with all *_git_url vars pointing to the repos you need (may be with branches vars overriden there too, for donwstream branches... :) ), and just pass this file to ansible as extra vars like

  ansible-playbook ... -e @my-git-repos.yaml

Revision history for this message
James McCarthy (jmccarthy) wrote :

I tried the ansible precedence technique (... -e @my-git-repos.yaml) and this does the trick nicely.

Closing Bug.

Changed in bifrost:
status: New → Opinion
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.