{"id":760,"sha1":"5241280f5b018252675fcd37707de556fec9dd43","playbook":{"id":4,"items":{"plays":107,"tasks":2438,"results":2413,"hosts":13,"files":511,"records":0},"arguments":{"version":null,"verbosity":0,"private_key_file":null,"remote_user":null,"connection":"openstack.osa.ssh","timeout":null,"ssh_common_args":null,"sftp_extra_args":null,"scp_extra_args":null,"ssh_extra_args":null,"ask_pass":false,"connection_password_file":null,"force_handlers":true,"flush_cache":false,"become":false,"become_method":"sudo","become_user":null,"become_ask_pass":false,"become_password_file":null,"tags":["all"],"skip_tags":[],"check":false,"diff":false,"inventory":["/home/zuul/src/opendev.org/openstack/openstack-ansible/inventory/dynamic_inventory.py","/home/zuul/src/opendev.org/openstack/openstack-ansible/inventory/inventory.ini","/etc/openstack_deploy/inventory.ini"],"listhosts":false,"subset":null,"extra_vars":"Not saved by ARA as configured by 'ignored_arguments'","vault_ids":[],"ask_vault_pass":false,"vault_password_files":[],"forks":4,"module_path":null,"syntax":false,"listtasks":false,"listtags":false,"step":false,"start_at_task":null,"args":["setup-openstack.yml"]},"labels":[{"id":1,"name":"check:False"},{"id":2,"name":"tags:all"}],"started":"2025-12-14T10:21:40.790759Z","ended":"2025-12-14T11:05:36.775743Z","duration":"00:43:55.984984","name":null,"ansible_version":"2.18.6","client_version":"1.7.4","python_version":"3.13.5","server_version":"1.7.4","status":"completed","path":"/home/zuul/src/opendev.org/openstack/openstack-ansible/playbooks/setup-openstack.yml","controller":"aio1.openstack.local","user":"root"},"content":"---\n# Copyright 2022, BBC R&D\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nskyline_debug: false\n\n# Set installation method\nskyline_venv_python_executable: \"{{ openstack_venv_python_executable | default('python3') }}\"\n\n# Set the package install state for distribution packages\n# Options are 'present' and 'latest'\nskyline_package_state: \"{{ package_state | default('latest') }}\"\n# Centos EPEL repository options\nskyline_yarn_epel_mirror: \"{{ centos_epel_mirror | default('http://download.fedoraproject.org/pub/epel') }}\"\nskyline_yarn_epel_key: >-\n  {{ centos_epel_key | default('http://download.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-' ~ ansible_facts['distribution_major_version']) }}\n\n# Set the host which will execute the shade modules\n# for the service setup. The host must already have\n# clouds.yaml properly configured.\nskyline_service_setup_host: \"{{ openstack_service_setup_host | default('localhost') }}\"\nskyline_service_setup_host_python_interpreter: >-\n  {{\n     openstack_service_setup_host_python_interpreter | default(\n       (skyline_service_setup_host == 'localhost') | ternary(ansible_playbook_python, ansible_facts['python']['executable']))\n  }}\n\n# In order to get relevant skylinie-console content, you'd need to build static files\n# through yarn. Otherwise only tagged releases from PyPi can be used for\n# `skyline_console_git_install_branch`\nskyline_console_yarn_build: \"{{ skyline_console_git_install_branch is not regex(skyline_console_pypi_version_regex) }}\"\n# You can set this variable to true during runtime if need to explicitly re-build skyline-console\nskyline_console_yarn_rebuild: \"{{ venv_wheels_rebuild | default(False) }}\"\nskyline_console_yarn_build_path: /openstack/src/skyline-console\n# If wheel build is disabled and yarn build is enabled, we'd need to build on each skyline host independently\nskyline_console_yarn_setup_host: \"{{ skyline_console_wheel_build_enable | ternary(groups['repo_all'][0], inventory_hostname) }}\"\nskyline_console_wheel_build_enable: \"{{ venv_wheel_build_enable | default(True) and groups['repo_all'] | length > 0 }}\"\n\nskyline_git_repo: https://opendev.org/openstack/skyline-apiserver\nskyline_git_install_branch: master\n\nskyline_console_git_repo: https://opendev.org/openstack/skyline-console\nskyline_console_git_install_branch: master\n\n# We will not build yarn when version matches a regex for valid Python versions, then\n# it's assumed, that version in topic should be available from PyPi and build is not needed.\nskyline_console_pypi_version_regex: \"^(\\\\d*!)?(\\\\d*)(\\\\.(\\\\d*))*((a|b|rc)(\\\\d*))?(\\\\.post(\\\\d*))?(\\\\.dev(\\\\d*))?$\"\n\nskyline_upper_constraints_url: >-\n  {{ requirements_git_url | default('https://releases.openstack.org/constraints/upper/' ~ requirements_git_install_branch | default('master')) }}\nskyline_git_constraints:\n  - \"--constraint {{ skyline_upper_constraints_url }}\"\n\nskyline_pip_install_args: \"{{ pip_install_options | default('') }}\"\n\n# Name of the virtual env to deploy into\nskyline_venv_tag: \"{{ venv_tag | default('untagged') }}\"\nskyline_bin: \"/openstack/venvs/skyline-{{ skyline_venv_tag }}/bin\"\nskyline_lib_static_files: \"{{ skyline_lib_dir }}/skyline_console/static\"\n\n## Database info\nskyline_db_setup_host: \"{{ openstack_db_setup_host | default('localhost') }}\"\nskyline_db_setup_python_interpreter: >-\n  {{\n     openstack_db_setup_python_interpreter | default(\n       (skyline_db_setup_host == 'localhost') | ternary(ansible_playbook_python, ansible_facts['python']['executable']))\n  }}\nskyline_galera_address: \"{{ galera_address | default('127.0.0.1') }}\"\nskyline_galera_database: skyline\nskyline_galera_user: skyline\n# skyline_galera_password:\nskyline_galera_use_ssl: \"{{ galera_use_ssl | default(False) }}\"\nskyline_galera_ssl_ca_cert: \"{{ galera_ssl_ca_cert | default('') }}\"\nskyline_galera_port: \"{{ galera_port | default('3306') }}\"\nskyline_db_max_overflow: \"{{ openstack_db_max_overflow | default('50') }}\"\nskyline_db_max_pool_size: \"{{ openstack_db_max_pool_size | default('5') }}\"\nskyline_db_pool_timeout: \"{{ openstack_db_pool_timeout | default('30') }}\"\nskyline_db_connection_recycle_time: \"{{ openstack_db_connection_recycle_time | default('600') }}\"\n\n## TLS configuration\nskyline_backend_ssl: \"{{ openstack_service_backend_ssl | default(False) }}\"\nskyline_pki_dir: \"{{ openstack_pki_dir | default('/etc/openstack_deploy/pki') }}\"\nskyline_pki_setup_host: \"{{ openstack_pki_setup_host | default('localhost') }}\"\nskyline_ssl_protocol: \"{{ ssl_protocol | default('ALL -SSLv2 -SSLv3 -TLSv1 -TLSv1.1') }}\"\n# TLS v1.2 and below\nskyline_ssl_cipher_suite_tls12: >-\n  {{ ssl_cipher_suite_tls12 | default('ECDH+AESGCM:ECDH+CHACHA20:ECDH+AES256:ECDH+AES128:!aNULL:!SHA1:!AESCCM') }}\n# TLS v1.3\nskyline_ssl_cipher_suite_tls13: >-\n  {{ ssl_cipher_suite_tls13 | default('TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256') }}\nskyline_pki_regen_cert: \"\"\nskyline_pki_san: \"{{ openstack_pki_san | default('DNS:' ~ ansible_facts['hostname'] ~ ',IP:' ~ management_address) }}\"\n# skyline_user_ssl_cert: <path to cert on ansible deployment host>\n# skyline_user_ssl_key: <path to cert on ansible deployment host>\n# skyline_user_ssl_ca_cert: <path to cert on ansible deployment host>\n\n## System User / Group\nskyline_system_user_name: skyline\nskyline_system_group_name: skyline\nskyline_system_comment: skyline system user\nskyline_system_shell: /bin/false\nskyline_system_user_home: \"/var/lib/{{ skyline_system_user_name }}\"\n\n## Service user\nskyline_service_user_name: skyline\n# skyline_service_password:\nskyline_service_region: \"{{ service_region | default('RegionOne') }}\"\nskyline_service_project_name: service\nskyline_service_project_domain_id: default\nskyline_service_user_domain_id: default\nskyline_service_in_ldap: \"{{ service_ldap_backend_enabled | default(False) }}\"\nskyline_role_names:\n  - admin\n  - service\n\n# API\nskyline_bind_address: \"{{ openstack_service_bind_address | default('0.0.0.0') }}\"\nskyline_service_port: 9999\nskyline_server_name: \"{{ ansible_facts['fqdn'] | default('skyline') }}\"\n# skyline_prometheus_basic_auth_password:\nskyline_prometheus_basic_auth_user: \"skyline\"\n# skyline_secret_key:\nskyline_interface: internal\n## Cap the maximum number of threads / workers when a user value is unspecified.\nskyline_api_workers_max: 16\nskyline_api_workers: >-\n  {{ [[(ansible_facts['processor_vcpus'] // ansible_facts['processor_threads_per_core']) | default(1), 1] | max, skyline_api_workers_max] | min }}\n\n# Common pip packages\n# If yarn build is enabled, we need to install skyline-console from local path rather\n# then from git.\n# If yarn build is disabled, ``skyline_console_git_install_branch`` must be valid tag\n# on pypi.\nskyline_pip_packages:\n  - \"git+{{ skyline_git_repo }}@{{ skyline_git_install_branch }}#egg=skyline-apiserver\"\n  - \"{{\n      skyline_console_yarn_build | ternary(\n        skyline_console_yarn_build_path,\n        'skyline-console==' ~ skyline_console_git_install_branch\n      )\n    }}\"\n\n## Service Name-Group Mapping\nskyline_services:\n  skyline-api:\n    group: skyline_all\n    service_name: skyline-apiserver\n    init_config_overrides: \"{{ skyline_apiserver_init_overrides }}\"\n    start_order: 1\n    execstarts: \"{{ skyline_bin }}/gunicorn -c /etc/skyline/gunicorn.py skyline_apiserver.main:app\"\n\n## Tunable overrides\nskyline_apiserver_init_overrides: {}\nskyline_skyline_yaml_overrides: {}\n\n# Set override for image upload size\nskyline_client_max_body_size: 1100M\n","created":"2025-12-14T10:21:58.264172Z","updated":"2025-12-14T10:21:58.264184Z","path":"/home/zuul/src/opendev.org/openstack/openstack-ansible-os_skyline/defaults/main.yml"}