--- project_name: "octavia" octavia_services: octavia-api: container_name: octavia_api group: octavia-api enabled: true image: "{{ octavia_api_image_full }}" volumes: "{{ octavia_api_default_volumes + octavia_api_extra_volumes }}" dimensions: "{{ octavia_api_dimensions }}" haproxy: octavia_api: enabled: "{{ enable_octavia }}" mode: "http" external: false port: "{{ octavia_api_port }}" octavia_api_external: enabled: "{{ enable_octavia }}" mode: "http" external: true port: "{{ octavia_api_port }}" octavia-health-manager: container_name: octavia_health_manager group: octavia-health-manager enabled: true image: "{{ octavia_health_manager_image_full }}" volumes: "{{ octavia_health_manager_default_volumes + octavia_health_manager_extra_volumes }}" dimensions: "{{ octavia_health_manager_dimensions }}" octavia-housekeeping: container_name: octavia_housekeeping group: octavia-housekeeping enabled: true image: "{{ octavia_housekeeping_image_full }}" volumes: "{{ octavia_housekeeping_default_volumes + octavia_housekeeping_extra_volumes }}" dimensions: "{{ octavia_housekeeping_dimensions }}" octavia-worker: container_name: octavia_worker group: octavia-worker enabled: true image: "{{ octavia_worker_image_full }}" volumes: "{{ octavia_worker_default_volumes + octavia_worker_extra_volumes }}" dimensions: "{{ octavia_worker_dimensions }}" octavia_required_roles: - load-balancer_observer - load-balancer_global_observer - load-balancer_member - load-balancer_admin - load-balancer_quota_admin #################### # Database #################### octavia_database_name: "octavia" octavia_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}octavia{% endif %}" octavia_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}" #################### # Docker #################### octavia_install_type: "{{ kolla_install_type }}" octavia_tag: "{{ openstack_tag }}" octavia_api_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ octavia_install_type }}-octavia-api" octavia_api_tag: "{{ octavia_tag }}" octavia_api_image_full: "{{ octavia_api_image }}:{{ octavia_api_tag }}" octavia_health_manager_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ octavia_install_type }}-octavia-health-manager" octavia_health_manager_tag: "{{ octavia_tag }}" octavia_health_manager_image_full: "{{ octavia_health_manager_image }}:{{ octavia_health_manager_tag }}" octavia_housekeeping_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ octavia_install_type }}-octavia-housekeeping" octavia_housekeeping_tag: "{{ octavia_tag }}" octavia_housekeeping_image_full: "{{ octavia_housekeeping_image }}:{{ octavia_housekeeping_tag }}" octavia_worker_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ octavia_install_type }}-octavia-worker" octavia_worker_tag: "{{ octavia_tag }}" octavia_worker_image_full: "{{ octavia_worker_image }}:{{ octavia_worker_tag }}" octavia_api_dimensions: "{{ default_container_dimensions }}" octavia_health_manager_dimensions: "{{ default_container_dimensions }}" octavia_housekeeping_dimensions: "{{ default_container_dimensions }}" octavia_worker_dimensions: "{{ default_container_dimensions }}" octavia_api_default_volumes: - "{{ node_config_directory }}/octavia-api/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" - "{{ '/etc/timezone:/etc/timezone:ro' if ansible_os_family == 'Debian' else '' }}" - "kolla_logs:/var/log/kolla/" - "{{ kolla_dev_repos_directory ~ '/octavia/octavia:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/octavia' if octavia_dev_mode | bool else '' }}" octavia_health_manager_default_volumes: - "{{ node_config_directory }}/octavia-health-manager/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" - "{{ '/etc/timezone:/etc/timezone:ro' if ansible_os_family == 'Debian' else '' }}" - "kolla_logs:/var/log/kolla/" - "{{ kolla_dev_repos_directory ~ '/octavia/octavia:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/octavia' if octavia_dev_mode | bool else '' }}" octavia_housekeeping_default_volumes: - "{{ node_config_directory }}/octavia-housekeeping/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" - "{{ '/etc/timezone:/etc/timezone:ro' if ansible_os_family == 'Debian' else '' }}" - "kolla_logs:/var/log/kolla/" - "{{ kolla_dev_repos_directory ~ '/octavia/octavia:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/octavia' if octavia_dev_mode | bool else '' }}" octavia_worker_default_volumes: - "{{ node_config_directory }}/octavia-worker/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" - "{{ '/etc/timezone:/etc/timezone:ro' if ansible_os_family == 'Debian' else '' }}" - "kolla_logs:/var/log/kolla/" - "{{ kolla_dev_repos_directory ~ '/octavia/octavia:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/octavia' if octavia_dev_mode | bool else '' }}" octavia_extra_volumes: "{{ default_extra_volumes }}" octavia_api_extra_volumes: "{{ octavia_extra_volumes }}" octavia_health_manager_extra_volumes: "{{ octavia_extra_volumes }}" octavia_housekeeping_extra_volumes: "{{ octavia_extra_volumes }}" octavia_worker_extra_volumes: "{{ octavia_extra_volumes }}" #################### # OpenStack #################### octavia_logging_debug: "{{ openstack_logging_debug }}" octavia_keystone_user: "octavia" # Project that Octavia will use to interact with other services. Note that in # Train and earlier releases this was "admin". octavia_service_auth_project: "service" openstack_octavia_auth: "{{ openstack_auth }}" #################### # Keystone #################### octavia_ks_services: - name: "octavia" type: "load-balancer" description: "Octavia Load Balancing Service" endpoints: - {'interface': 'admin', 'url': '{{ octavia_admin_endpoint }}'} - {'interface': 'internal', 'url': '{{ octavia_internal_endpoint }}'} - {'interface': 'public', 'url': '{{ octavia_public_endpoint }}'} octavia_ks_users: - project: "service" user: "{{ octavia_keystone_user }}" password: "{{ octavia_keystone_password }}" role: "admin" #################### # Kolla #################### octavia_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}" octavia_dev_repos_pull: "{{ kolla_dev_repos_pull }}" octavia_dev_mode: "{{ kolla_dev_mode }}" octavia_source_version: "{{ kolla_source_version }}" ##################### # Integration Options ##################### octavia_amp_ssh_key_name: "octavia_ssh_key" octavia_amp_listen_port: "9443" octavia_amp_image_tag: "amphora" # Load balancer topology options are [ SINGLE, ACTIVE_STANDBY ] octavia_loadbalancer_topology: "SINGLE" # Whether to run Kolla-Ansible's automatic configuration for Octavia. # NOTE: if you upgrade from Ussuri, you must set `octavia_auto_configure` to `no` # and keep your other Octavia config like before. octavia_auto_configure: yes # OpenStack auth used when registering resources for Octavia. octavia_user_auth: auth_url: "{{ keystone_admin_url }}" username: "octavia" password: "{{ octavia_keystone_password }}" project_name: "{{ octavia_service_auth_project }}" domain_name: "{{ default_project_domain_name }}" # Octavia amphora flavor. # See os_nova_flavor for details. Supported parameters: # - disk # - ephemeral (optional) # - extra_specs (optional) # - flavorid (optional) # - is_public (optional) # - name # - ram # - swap (optional) # - vcpus octavia_amp_flavor: name: "amphora" is_public: no vcpus: 1 ram: 1024 disk: 5 # Octavia security groups. lb-mgmt-sec-grp is for amphorae. octavia_amp_security_groups: mgmt-sec-grp: name: "lb-mgmt-sec-grp" rules: - protocol: icmp - protocol: tcp src_port: 22 dst_port: 22 - protocol: tcp src_port: "{{ octavia_amp_listen_port }}" dst_port: "{{ octavia_amp_listen_port }}" # Octavia management network. # See os_network and os_subnet for details. Supported parameters: # - external (optional) # - mtu (optional) # - name # - provider_network_type (optional) # - provider_physical_network (optional) # - provider_segmentation_id (optional) # - shared (optional) # - subnet # The subnet parameter has the following supported parameters: # - allocation_pool_start (optional) # - allocation_pool_start (optional) # - cidr # - enable_dhcp (optional) # - gateway_ip (optional) # - name # - no_gateway_ip (optional) octavia_amp_network: name: lb-mgmt-net shared: false subnet: name: lb-mgmt-subnet cidr: "{{ octavia_amp_network_cidr }}" no_gateway_ip: yes enable_dhcp: yes # Octavia management network subnet CIDR. octavia_amp_network_cidr: 10.0.0.0/24