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:
Tin Lam 2016-08-21 01:01:04 -05:00
parent d3302a7e69
commit 4b3d8116ce
15 changed files with 201 additions and 0 deletions

View File

@ -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"

View File

@ -120,6 +120,9 @@ control
[senlin:children] [senlin:children]
control control
[vmtp:children]
control
[watcher:children] [watcher:children]
control control

View File

@ -138,6 +138,9 @@ control
[senlin:children] [senlin:children]
control control
[vmtp:children]
control
[watcher:children] [watcher:children]
control control

View 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"

View File

@ -0,0 +1,3 @@
---
dependencies:
- { role: common }

View 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"

View File

@ -0,0 +1,6 @@
---
- include: config.yml
when: inventory_hostname in groups['vmtp']
- include: start.yml
when: inventory_hostname in groups['vmtp']

View 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 }}"

View File

@ -0,0 +1,2 @@
---
- include: "{{ action }}.yml"

View 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']

View File

@ -0,0 +1,4 @@
---
- include: do_reconfigure.yml
serial: "30%"
when: inventory_hostname in groups['vmtp']

View 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"

View File

@ -0,0 +1,4 @@
---
- include: config.yml
- include: start.yml

View 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 }}

View File

@ -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