Add ansible role for vmtp container
Add vmtp ansible role to kolla. Co-Authored-By: Larry Rensing <lr699s@att.com> Co-Authored-By: Tin Lam <tinlam@gmail.com> Partially implements: bp vmtp-container Change-Id: Ib3945e0a94cca9f3a8c4f55953b40674c88ac8e4
This commit is contained in:
parent
d3302a7e69
commit
4b3d8116ce
@ -264,6 +264,7 @@ enable_sahara: "no"
|
|||||||
enable_senlin: "no"
|
enable_senlin: "no"
|
||||||
enable_swift: "no"
|
enable_swift: "no"
|
||||||
enable_tempest: "no"
|
enable_tempest: "no"
|
||||||
|
enable_vmtp: "no"
|
||||||
enable_watcher: "no"
|
enable_watcher: "no"
|
||||||
|
|
||||||
ironic_keystone_user: "ironic"
|
ironic_keystone_user: "ironic"
|
||||||
|
@ -120,6 +120,9 @@ control
|
|||||||
[senlin:children]
|
[senlin:children]
|
||||||
control
|
control
|
||||||
|
|
||||||
|
[vmtp:children]
|
||||||
|
control
|
||||||
|
|
||||||
[watcher:children]
|
[watcher:children]
|
||||||
control
|
control
|
||||||
|
|
||||||
|
@ -138,6 +138,9 @@ control
|
|||||||
[senlin:children]
|
[senlin:children]
|
||||||
control
|
control
|
||||||
|
|
||||||
|
[vmtp:children]
|
||||||
|
control
|
||||||
|
|
||||||
[watcher:children]
|
[watcher:children]
|
||||||
control
|
control
|
||||||
|
|
||||||
|
25
ansible/roles/vmtp/defaults/main.yml
Normal file
25
ansible/roles/vmtp/defaults/main.yml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
project_name: "vmtp"
|
||||||
|
|
||||||
|
####################
|
||||||
|
# Docker
|
||||||
|
####################
|
||||||
|
vmtp_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-vmtp"
|
||||||
|
vmtp_tag: "{{ openstack_release }}"
|
||||||
|
vmtp_image_full: "{{ vmtp_image }}:{{ vmtp_tag }}"
|
||||||
|
|
||||||
|
#########################
|
||||||
|
# VMTP Specific resources
|
||||||
|
#########################
|
||||||
|
vmtp_vm_image_name: "Ubuntu Server 16.04"
|
||||||
|
vmtp_vm_ssh_username: "ubuntu"
|
||||||
|
vmtp_vm_flavor_type: "m1.small"
|
||||||
|
vmtp_vm_nameservers: ['8.8.8.8', '8.8.4.4']
|
||||||
|
vmtp_vm_image_url: "https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img"
|
||||||
|
vmtp_internal_network_name: ['vmtp-demo-net']
|
||||||
|
vmtp_internal_subnet_name: ['vmtp-demo-subnet']
|
||||||
|
vmtp_internal_subnet_name_ipv6: ['vmtp-demo-v6-subnet']
|
||||||
|
vmtp_internal_cidr: ['10.0.0.0/24']
|
||||||
|
vmtp_internal_cidr_v6: ['2001:45::/64']
|
||||||
|
vmtp_router_name: "pns-router"
|
||||||
|
vmtp_os_dp_network: "physnet1"
|
3
ansible/roles/vmtp/meta/main.yml
Normal file
3
ansible/roles/vmtp/meta/main.yml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
dependencies:
|
||||||
|
- { role: common }
|
26
ansible/roles/vmtp/tasks/config.yml
Normal file
26
ansible/roles/vmtp/tasks/config.yml
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
- name: Ensuring config directories exist
|
||||||
|
file:
|
||||||
|
path: "{{ node_config_directory }}/vmtp"
|
||||||
|
state: "directory"
|
||||||
|
recurse: yes
|
||||||
|
|
||||||
|
- name: Register binary python path
|
||||||
|
command: echo /usr/lib/python2.7/site-packages
|
||||||
|
register: python_path
|
||||||
|
when: kolla_install_type == 'binary'
|
||||||
|
|
||||||
|
- name: Register source python path
|
||||||
|
command: echo /var/lib/kolla/venv/lib/python2.7/site-packages
|
||||||
|
register: python_path
|
||||||
|
when: kolla_install_type != 'binary'
|
||||||
|
|
||||||
|
- name: Copying over configuration file for vmtp
|
||||||
|
merge_yaml:
|
||||||
|
sources:
|
||||||
|
- "{{ role_path }}/templates/{{ item }}.j2"
|
||||||
|
- "{{ node_custom_config }}/{{ item }}"
|
||||||
|
- "{{ node_custom_config }}/vmtp/{{ item }}"
|
||||||
|
dest: "{{ python_path }}/vmtp/{{ item }}"
|
||||||
|
with_items:
|
||||||
|
- "cfg.default.yaml"
|
6
ansible/roles/vmtp/tasks/deploy.yml
Normal file
6
ansible/roles/vmtp/tasks/deploy.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
- include: config.yml
|
||||||
|
when: inventory_hostname in groups['vmtp']
|
||||||
|
|
||||||
|
- include: start.yml
|
||||||
|
when: inventory_hostname in groups['vmtp']
|
58
ansible/roles/vmtp/tasks/do_reconfigure.yml
Normal file
58
ansible/roles/vmtp/tasks/do_reconfigure.yml
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
---
|
||||||
|
- name: Ensure container is up
|
||||||
|
kolla_docker:
|
||||||
|
name: "vmtp"
|
||||||
|
action: "get_container_state"
|
||||||
|
register: container_state
|
||||||
|
failed_when: container_state.Running == false
|
||||||
|
when: inventory_hostname in groups['vmtp']
|
||||||
|
|
||||||
|
- include: config.yml
|
||||||
|
|
||||||
|
- name: Check configuration
|
||||||
|
command: docker exec {{ item.name }} /usr/local/bin/kolla_set_configs --check
|
||||||
|
changed_when: false
|
||||||
|
failed_when: false
|
||||||
|
register: check_results
|
||||||
|
when: inventory_hostname in groups['vmtp']
|
||||||
|
with_items:
|
||||||
|
- { name: vmtp, group: vmtp }
|
||||||
|
|
||||||
|
# NOTE(jeffrey4l): when config_strategy == 'COPY_ALWAYS'
|
||||||
|
# and container env['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE',
|
||||||
|
# just remove the container and start again
|
||||||
|
- name: Containers config strategy
|
||||||
|
kolla_docker:
|
||||||
|
name: "vmtp"
|
||||||
|
action: "get_container_env"
|
||||||
|
register: container_envs
|
||||||
|
when: inventory_hostname in groups['vmtp']
|
||||||
|
|
||||||
|
- name: Remove the containers
|
||||||
|
kolla_docker:
|
||||||
|
name: "vmtp"
|
||||||
|
action: "remove_container"
|
||||||
|
register: remove_containers
|
||||||
|
when:
|
||||||
|
- config_strategy == "COPY_ONCE" or item[0]['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE'
|
||||||
|
- item[1]['rc'] == 1
|
||||||
|
- inventory_hostname in groups['vmtp']
|
||||||
|
with_together:
|
||||||
|
- "{{ container_envs.results }}"
|
||||||
|
- "{{ check_results.results }}"
|
||||||
|
|
||||||
|
- include: start.yml
|
||||||
|
when: remove_containers.changed
|
||||||
|
|
||||||
|
- name: Restart containers
|
||||||
|
kolla_docker:
|
||||||
|
name: "vmtp"
|
||||||
|
action: "restart_container"
|
||||||
|
when:
|
||||||
|
- config_strategy == 'COPY_ALWAYS'
|
||||||
|
- item[0]['KOLLA_CONFIG_STRATEGY'] != 'COPY_ONCE'
|
||||||
|
- item[1]['rc'] == 1
|
||||||
|
- inventory_hostname in groups['vmtp']
|
||||||
|
with_together:
|
||||||
|
- "{{ container_envs.results }}"
|
||||||
|
- "{{ check_results.results }}"
|
2
ansible/roles/vmtp/tasks/main.yml
Normal file
2
ansible/roles/vmtp/tasks/main.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
---
|
||||||
|
- include: "{{ action }}.yml"
|
7
ansible/roles/vmtp/tasks/pull.yml
Normal file
7
ansible/roles/vmtp/tasks/pull.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
- name: Pulling vmtp image
|
||||||
|
kolla_docker:
|
||||||
|
action: "pull_image"
|
||||||
|
common_options: "{{ docker_common_options }}"
|
||||||
|
image: "{{ vmtp_image_full }}"
|
||||||
|
when: inventory_hostname in groups['vmtp']
|
4
ansible/roles/vmtp/tasks/reconfigure.yml
Normal file
4
ansible/roles/vmtp/tasks/reconfigure.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
- include: do_reconfigure.yml
|
||||||
|
serial: "30%"
|
||||||
|
when: inventory_hostname in groups['vmtp']
|
11
ansible/roles/vmtp/tasks/start.yml
Normal file
11
ansible/roles/vmtp/tasks/start.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
- name: Starting vmtp container
|
||||||
|
kolla_docker:
|
||||||
|
action: "start_container"
|
||||||
|
common_options: "{{ docker_common_options }}"
|
||||||
|
image: "{{ vmtp_image_full }}"
|
||||||
|
name: "vmtp"
|
||||||
|
volumes:
|
||||||
|
- "{{ node_config_directory }}/vmtp/:{{ container_config_directory }}/:ro"
|
||||||
|
- "/etc/localtime:/etc/localtime:ro"
|
||||||
|
- "kolla_logs:/var/log/kolla"
|
4
ansible/roles/vmtp/tasks/upgrade.yml
Normal file
4
ansible/roles/vmtp/tasks/upgrade.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
- include: config.yml
|
||||||
|
|
||||||
|
- include: start.yml
|
41
ansible/roles/vmtp/templates/cfg.default.yaml.j2
Normal file
41
ansible/roles/vmtp/templates/cfg.default.yaml.j2
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
image_name: {{ vmtp_vm_image_name }}
|
||||||
|
ssh_vm_username: {{ vmtp_vm_ssh_username }}
|
||||||
|
flavor_type: {{ vmtp_vm_flavor_type }}
|
||||||
|
availability_zone: {{ vmtp_vm_availability_zone }}
|
||||||
|
dns_nameservers: {{ vmtp_vm_nameservers }}
|
||||||
|
vm_image_url: {{ vmtp_vm_image_url }}
|
||||||
|
|
||||||
|
reuse_network_name:
|
||||||
|
floating_ip: True
|
||||||
|
reuse_existing_vm:
|
||||||
|
config_drive:
|
||||||
|
user_data_file:
|
||||||
|
ipv6_mode:
|
||||||
|
router_name: {{ vmtp_router_name }}
|
||||||
|
|
||||||
|
internal_network_name: {{ vmtp_internal_network_name }}
|
||||||
|
internal_subnet_name: {{ vmtp_internal_subnet_name }}
|
||||||
|
internal_subnet_name_ipv6: {{ vmtp_internal_subnet_name_ipv6 }}
|
||||||
|
internal_cidr: {{ vmtp_internal_cidr }}
|
||||||
|
internal_cidr_v6: {{ vmtp_internal_cidr_v6 }}
|
||||||
|
|
||||||
|
public_key_file:
|
||||||
|
private_key_file:
|
||||||
|
public_key_name: 'pns_public_key'
|
||||||
|
vm_name_server: 'TestServer'
|
||||||
|
vm_name_client: 'TestClient'
|
||||||
|
security_group_name: 'pns-security'
|
||||||
|
|
||||||
|
ping_count: 2
|
||||||
|
ping_pass_threshold: 80
|
||||||
|
ssh_retry_count: 50
|
||||||
|
generic_retry_count: 50
|
||||||
|
|
||||||
|
tcp_tp_loop_count: 3
|
||||||
|
tcp_pkt_sizes: [65536]
|
||||||
|
udp_pkt_sizes: [128, 1024, 8192]
|
||||||
|
icmp_pkt_sizes: [64, 391, 1500]
|
||||||
|
udp_loss_rate_range: [2, 5]
|
||||||
|
|
||||||
|
vm_bandwidth: 0
|
||||||
|
os_dataplane_network: {{ vmtp_os_dp_network }}
|
@ -325,6 +325,13 @@
|
|||||||
tags: rally,
|
tags: rally,
|
||||||
when: enable_rally | bool }
|
when: enable_rally | bool }
|
||||||
|
|
||||||
|
- hosts:
|
||||||
|
- vmtp
|
||||||
|
roles:
|
||||||
|
- { role: vmtp,
|
||||||
|
tags: vmtp,
|
||||||
|
when: enable_vmtp | bool }
|
||||||
|
|
||||||
- hosts:
|
- hosts:
|
||||||
- watcher-api
|
- watcher-api
|
||||||
- watcher-engine
|
- watcher-engine
|
||||||
|
Loading…
Reference in New Issue
Block a user