{"id":50385111,"url":"https://github.com/stackhpc/openstack-config","last_synced_at":"2026-05-30T14:30:59.257Z","repository":{"id":83225543,"uuid":"535701114","full_name":"stackhpc/openstack-config","owner":"stackhpc","description":"Ansible playbooks and configuration of infrastructure on an existing OpenStack cloud","archived":false,"fork":false,"pushed_at":"2026-03-25T13:41:52.000Z","size":148,"stargazers_count":5,"open_issues_count":10,"forks_count":8,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-03-26T16:43:10.192Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stackhpc.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-09-12T14:16:23.000Z","updated_at":"2026-03-02T13:46:15.000Z","dependencies_parsed_at":"2024-03-26T10:51:07.564Z","dependency_job_id":"54214ddf-419c-4032-b4f1-3441c5c99598","html_url":"https://github.com/stackhpc/openstack-config","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/stackhpc/openstack-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fopenstack-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fopenstack-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fopenstack-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fopenstack-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stackhpc","download_url":"https://codeload.github.com/stackhpc/openstack-config/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fopenstack-config/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33696681,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-30T14:30:59.163Z","updated_at":"2026-05-30T14:30:59.247Z","avatar_url":"https://github.com/stackhpc.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"=============================================\nOpenStack Configuration\n=============================================\n\nThis project contains Ansible playbooks and configuration of infrastructure on\nan existing OpenStack cloud for the OpenStack system. \n\nPreparation\n===========\n\nEnsure that Ansible is installed, either via the system package manager or pip.\nIt is recommended that you use a python virtual environment to avoid\ninterference with the system python packages. For example:\n\n.. code-block::\n\n   $ python3 -m venv openstack-venv\n   $ source openstack-venv/bin/activate\n   $ python -m pip install --upgrade pip\n   $ pip install -r requirements.txt\n\nInstall Ansible role and collection dependencies from Ansible Galaxy:\n\n.. code-block::\n\n   $ ansible-galaxy collection install \\\n       -p ansible/collections \\\n       -r requirements.yml\n\nConfiguration\n=============\n\nConfiguration should be added to ``etc/openstack-config/openstack-config.yml``.\nExamples are provided in the ``examples`` directory.\n\nUsage\n=====\n\nFirst, ensure that OpenStack authentication environment variables are set,\ntypically by sourcing an OpenStack environment file. If a Kayobe environment\nwas already configured, you can use the following command:\n\n.. code-block::\n\n   $ source ${KOLLA_CONFIG_PATH}/public-openrc.sh\n\nIf any Ansible variable is encrypted with Ansible Vault, make sure the\n``ANSIBLE_VAULT_PASSWORD_FILE`` environment variable is set:\n\n.. code-block::\n\n   $ export ANSIBLE_VAULT_PASSWORD_FILE=\u003cpath-to-vault-password-file\u003e\n\nTo configure OpenStack infrastructure:\n\n.. code-block::\n\n   $ tools/openstack-config\n\nTo run a specific playbook:\n\n.. code-block::\n\n   $ tools/openstack-config -p \u003c/path/to/playbook\u003e\n\nTo specify additional arguments to ``ansible-playbook``, separate them with a\ndouble hyphen (``--``):\n\n.. code-block::\n\n   $ tools/openstack-config -- \u003carguments\u003e\n\nFor example, a vault secret stored as a file can be passed as an extra\nconfiguration parameter:\n\n.. code-block::\n\n   $ tools/openstack-config -- --vault-password-file config-secret.vault\n\n\nMagnum Cluster Templates\n========================\n\nTo generate a new set of Magnum cluster templates and corresponding Glance image\ndefinitions which utilise the latest stable upstream release tag, set the following\nvariables in `etc/openstack-config.yml`\n\n.. code-block:: yaml\n\n   # Chosen flavor on target cloud\n   magnum_default_master_flavor_name:\n   # Chosen flavor on target cloud\n   magnum_default_worker_flavor_name:\n   # External network to use for load balancers etc.\n   magnum_external_net_name:\n   # Optional list of extra labels to add to all generated cluster templates\n   magnum_template_extra_labels:\n\nThe load balancer provider defaults to OVN. This can be changed to Amphora, but you\nshould only do this if OVN load balancers are unavailable.\n\n.. code-block:: yaml\n\n   magnum_loadbalancer_provider: amphora\n\nThen run the provided playbook with\n\n.. code-block:: bash\n\n   $ tools/openstack-config -p ansible/generate-magnum-capi-templates.yml\n\nThis will create a ``generated-magnum-snippets`` directory in the repo root with\na timestamped sub-directory containing an ``images.yml`` file and a ``templates.yml``\nfile. The contents of these two files can then be added to any existing images and\ncluster templates in ``etc/openstack-config.yml``. When deploying the updated config,\nbe sure to run the ``openstack-images.yml`` playbook *before* running the\n``openstack-container-clusters.yml`` playbook, otherwise the Magnum API will return\nan error referencing an invalid cluster type with image ``None``. This is handled\nautomatically if running the full ``openstack.yml`` playbook.\n\nNote that these templates are a tested set against the specific CAPI management\ncluster release. As such, you should make sure to update your CAPI management\ncluster to the latest release before updating to the latest templates.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackhpc%2Fopenstack-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstackhpc%2Fopenstack-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackhpc%2Fopenstack-config/lists"}