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_swift: "no"
|
||||
enable_tempest: "no"
|
||||
enable_vmtp: "no"
|
||||
enable_watcher: "no"
|
||||
|
||||
ironic_keystone_user: "ironic"
|
||||
|
@ -120,6 +120,9 @@ control
|
||||
[senlin:children]
|
||||
control
|
||||
|
||||
[vmtp:children]
|
||||
control
|
||||
|
||||
[watcher:children]
|
||||
control
|
||||
|
||||
|
@ -138,6 +138,9 @@ control
|
||||
[senlin:children]
|
||||
control
|
||||
|
||||
[vmtp:children]
|
||||
control
|
||||
|
||||
[watcher:children]
|
||||
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,
|
||||
when: enable_rally | bool }
|
||||
|
||||
- hosts:
|
||||
- vmtp
|
||||
roles:
|
||||
- { role: vmtp,
|
||||
tags: vmtp,
|
||||
when: enable_vmtp | bool }
|
||||
|
||||
- hosts:
|
||||
- watcher-api
|
||||
- watcher-engine
|
||||
|
Loading…
Reference in New Issue
Block a user