Skip to content

Commit

Permalink
Reworked contrail heat plugin init
Browse files Browse the repository at this point in the history
- the plugin is to be added to heat engine instead of api
iIt is done as in contrail-kolla-ansible)
- plugins dirs is passed via appropriate tht parameter
- To have it works the following patch in tripleo is
needed as well
https://review.openstack.org/#/c/577737/1/docker/services/heat-engine.yaml

Change-Id: I050069aafc75511be1fbfd6fd46caaac8dc031da
Closes-Bug: #1785611
  • Loading branch information
alexey-mr committed Aug 8, 2018
1 parent b768eda commit 3537324
Show file tree
Hide file tree
Showing 5 changed files with 206 additions and 14 deletions.
13 changes: 7 additions & 6 deletions docker/services/contrail/contrail-heat-container-plugin.yaml
Expand Up @@ -19,7 +19,7 @@ parameters:
via parameter_defaults in the resource registry. This
mapping overrides those in ServiceNetMapDefaults.
type: json
DockerHeatApiConfigImage:
DockerHeatConfigImage:
description: The container image to use for the heat config_volume
type: string
DockerContrailHeatPluginImageName:
Expand All @@ -36,6 +36,9 @@ parameters:
default: {}
description: Parameters specific to the role
type: json
HeatEngineOptVolumes:
description: list of optional volumes to be mounted
type: comma_delimited_list

resources:
ContainersCommon:
Expand All @@ -61,11 +64,11 @@ outputs:
- get_attr: [ContrailBase, role_data, config_settings]
# BEGIN DOCKER SETTINGS
puppet_config:
config_volume: heat_api
config_volume: heat
puppet_tags: heat_plugin_opencontrail,ini_setting,create_ini_settings,inifile,heat_config,file,concat,file_line
step_config:
include ::tripleo::network::contrail::heat
config_image: {get_param: DockerHeatApiConfigImage}
config_image: {get_param: DockerHeatConfigImage}
kolla_config: {}
docker_config:
step_3:
Expand All @@ -81,6 +84,4 @@ outputs:
environment:
get_attr: [ContrailBase, role_data, contrail_base_env]
volumes:
- vnc_api:/opt/plugin/site-packages/vnc_api
- cfgm_common:/opt/plugin/site-packages/cfgm_common
- gen_heat:/opt/plugin/site-packages/vnc_api/gen/heat
{get_param: HeatEngineOptVolumes}
184 changes: 184 additions & 0 deletions docker/services/heat-engine.yaml
@@ -0,0 +1,184 @@
heat_template_version: queens

description: >
OpenStack containerized Heat Engine service
parameters:
DockerHeatEngineImage:
description: image
type: string
DockerHeatConfigImage:
description: The container image to use for the heat config_volume
type: string
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
ServiceData:
default: {}
description: Dictionary packing service data
type: json
ServiceNetMap:
default: {}
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry. This
mapping overrides those in ServiceNetMapDefaults.
type: json
DefaultPasswords:
default: {}
type: json
RoleName:
default: ''
description: Role name on which the service is applied
type: string
RoleParameters:
default: {}
description: Parameters specific to the role
type: json
HeatEngineOptVolumes:
default: []
description: list of optional volumes to be mounted
type: comma_delimited_list
HeatEngineOptEnvVars:
default: []
description: list of optional environment variables
type: comma_delimited_list

resources:

ContainersCommon:
type: ./containers-common.yaml

MySQLClient:
type: ../../puppet/services/database/mysql-client.yaml

HeatBase:
type: ../../puppet/services/heat-engine.yaml
properties:
EndpointMap: {get_param: EndpointMap}
ServiceData: {get_param: ServiceData}
ServiceNetMap: {get_param: ServiceNetMap}
DefaultPasswords: {get_param: DefaultPasswords}
RoleName: {get_param: RoleName}
RoleParameters: {get_param: RoleParameters}

HeatEngineLogging:
type: OS::TripleO::Services::Logging::HeatEngine

outputs:
role_data:
description: Role data for the Heat Engine role.
value:
service_name: {get_attr: [HeatBase, role_data, service_name]}
config_settings:
map_merge:
- get_attr: [HeatBase, role_data, config_settings]
- apache::default_vhost: false
logging_source: {get_attr: [HeatBase, role_data, logging_source]}
logging_groups: {get_attr: [HeatBase, role_data, logging_groups]}
service_config_settings: {get_attr: [HeatBase, role_data, service_config_settings]}
# BEGIN DOCKER SETTINGS
puppet_config:
config_volume: heat
puppet_tags: heat_config,file,concat,file_line
step_config:
list_join:
- "\n"
- - {get_attr: [HeatBase, role_data, step_config]}
- {get_attr: [MySQLClient, role_data, step_config]}
config_image: {get_param: DockerHeatConfigImage}
kolla_config:
/var/lib/kolla/config_files/heat_engine.json:
command:
list_join:
- ' '
- - /usr/bin/heat-engine --config-file /usr/share/heat/heat-dist.conf --config-file /etc/heat/heat.conf
- get_attr: [HeatEngineLogging, cmd_extra_args]
config_files:
- source: "/var/lib/kolla/config_files/src/*"
dest: "/"
merge: true
preserve_properties: true
permissions:
- path: /var/log/heat
owner: heat:heat
recurse: true
docker_config:
# db sync runs before permissions set by kolla_config
step_2:
get_attr: [HeatEngineLogging, docker_config, step_2]
step_3:
heat_engine_db_sync:
image: &heat_engine_image {get_param: DockerHeatEngineImage}
net: host
privileged: false
detach: false
user: root
volumes:
list_concat:
- {get_attr: [ContainersCommon, volumes]}
- {get_attr: [HeatEngineLogging, volumes]}
-
- /var/lib/config-data/heat/etc/my.cnf.d/tripleo.cnf:/etc/my.cnf.d/tripleo.cnf:ro
- /var/lib/config-data/heat/etc/heat/:/etc/heat/:ro
command: "/usr/bin/bootstrap_host_exec heat_engine su heat -s /bin/bash -c 'heat-manage db_sync'"
step_4:
heat_engine:
image: *heat_engine_image
net: host
privileged: false
restart: always
healthcheck:
test: /openstack/healthcheck
volumes:
list_concat:
- {get_attr: [ContainersCommon, volumes]}
- {get_attr: [HeatEngineLogging, volumes]}
- {get_param: HeatEngineOptVolumes}
-
- /var/lib/kolla/config_files/heat_engine.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/heat/:/var/lib/kolla/config_files/src:ro
environment:
list_concat:
- {get_param: HeatEngineOptEnvVars}
-
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
host_prep_tasks: {get_attr: [HeatEngineLogging, host_prep_tasks]}
upgrade_tasks:
- name: Check if heat_engine is deployed
command: systemctl is-enabled --quiet openstack-heat-engine
tags: common
ignore_errors: True
register: heat_engine_enabled
- name: "PreUpgrade step0,validation: Check service openstack-heat-engine is running"
command: systemctl is-active --quiet openstack-heat-engine
when:
- step|int == 0
- heat_engine_enabled.rc == 0
tags: validation
- name: Stop and disable heat_engine service
when:
- step|int == 2
- heat_engine_enabled.rc == 0
service: name=openstack-heat-engine state=stopped enabled=no
fast_forward_upgrade_tasks:
- name: FFU check if openstack-heat-engine is enabled
command: systemctl is-enabled --quiet openstack-heat-engine
ignore_errors: True
register: heat_engine_enabled_result
when:
- step|int == 0
- release == 'ocata'
- name: Set fact heat_engine_enabled
set_fact:
heat_engine_enabled: "{{ heat_engine_enabled_result.rc == 0 }}"
when:
- step|int == 0
- release == 'ocata'
- name: FFU stop and disable openstack-heat-engine service
when:
- step|int == 1
- release == 'ocata'
- heat_engine_enabled|bool
service: name=openstack-heat-engine state=stopped enabled=no
13 changes: 8 additions & 5 deletions environments/contrail/contrail-plugins.yaml
Expand Up @@ -13,7 +13,7 @@ resource_registry:
OS::TripleO::Services::ContrailSriov: ../../docker/services/contrail/contrail-vrouter-sriov.yaml
OS::TripleO::Services::ContrailTsn: ../../docker/services/contrail/contrail-vrouter-tsn.yaml
OS::TripleO::Services::NeutronCorePlugin: ../../docker/services/contrail/contrail-neutron-container-plugin.yaml
OS::TripleO::Services::ContrailHeatApiPlugin: ../../docker/services/contrail/contrail-heat-container-plugin.yaml
OS::TripleO::Services::ContrailHeatPlugin: ../../docker/services/contrail/contrail-heat-container-plugin.yaml
OS::TripleO::Services::ComputeNeutronCorePlugin: ../../docker/services/contrail/contrail-vrouter.yaml
OS::TripleO::NodeUserData: ../../firstboot/contrail/contrail_container_registry.yaml
OS::TripleO::Compute::PreNetworkConfig: ../../extraconfig/pre_network/contrail/compute_pre_network.yaml
Expand Down Expand Up @@ -41,8 +41,11 @@ parameter_defaults:
- nova_contrail_vif:/usr/lib/python2.7/site-packages/nova_contrail_vif
- nova_contrail_vif_egg:/usr/lib/python2.7/site-packages/nova_contrail_vif-0.1-py2.7.egg-info
- vif_plug_vrouter:/usr/lib/python2.7/site-packages/vif_plug_vrouter
HeatApiOptVolumes:
- vnc_api:/usr/lib/python2.7/site-packages/vnc_api
- cfgm_common:/usr/lib/python2.7/site-packages/cfgm_common
- gen_heat:/usr/lib/heat/contrail_heat
HeatEngineOptVolumes:
- '/etc/contrail/ssl:/etc/contrail/ssl'
- 'contrail_heat_opt_plugin:/opt/plugin'
HeatEngineOptEnvVars:
- 'PYTHONPATH=/opt/plugin/site-packages'
HeatEnginePluginDirs:
- '/opt/plugin/site-packages/vnc_api/gen/heat/resources'
- '/opt/plugin/site-packages/contrail_heat/resources'
8 changes: 6 additions & 2 deletions environments/contrail/contrail-services_aio.yaml
Expand Up @@ -10,7 +10,7 @@ resource_registry:
OS::TripleO::Services::ContrailVrouter: ../../docker/services/contrail/contrail-vrouter.yaml
OS::TripleO::Services::ContrailDpdk: ../../docker/services/contrail/contrail-vrouter-dpdk.yaml
OS::TripleO::Services::NeutronCorePlugin: ../../docker/services/contrail/contrail-neutron-container-plugin.yaml
OS::TripleO::Services::ContrailHeatApiPlugin: ../../docker/services/contrail/contrail-heat-container-plugin.yaml
OS::TripleO::Services::ContrailHeatPlugin: ../../docker/services/contrail/contrail-heat-container-plugin.yaml
OS::TripleO::Services::ComputeNeutronCorePlugin: ../../docker/services/contrail/contrail-vrouter.yaml
OS::TripleO::Compute::PreNetworkConfig: ../../extraconfig/pre_network/contrail/compute_pre_network.yaml
OS::TripleO::ContrailDpdk::PreNetworkConfig: ../../extraconfig/pre_network/contrail/contrail_dpdk_pre_network.yaml
Expand Down Expand Up @@ -41,7 +41,11 @@ parameter_defaults:
NeutronApiOptEnvVars: ['PYTHONPATH=/opt/plugin/site-packages']
NovaComputeOptEnvVars: ['PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin/:/opt/plugin/bin']
NovaComputeOptVolumes: ['vrouter_port_control:/opt/plugin/bin','/var/lib/contrail/ports']
HeatApiOptVolumes: ['vnc_api:/usr/lib/python2.7/site-packages/vnc_api','cfgm_common:/usr/lib/python2.7/site-packages/cfgm_common','gen_heat:/usr/lib/heat/contrail_heat']
HeatEngineOptVolumes:
- '/etc/contrail/ssl:/etc/contrail/ssl'
- 'contrail_heat_opt_plugin:/opt/plugin'
HeatEngineOptEnvVars:
- 'PYTHONPATH=/opt/plugin/site-packages'
ContrailVrouterGateway: 10.0.0.1
ContrailRegistryInsecure: false
ContrailRegistry: opencontrailnightly
Expand Down
2 changes: 1 addition & 1 deletion roles_data_contrail_aio.yaml
Expand Up @@ -67,7 +67,7 @@
- OS::TripleO::Services::CinderScheduler
- OS::TripleO::Services::CinderVolume
- OS::TripleO::Services::Clustercheck
- OS::TripleO::Services::ContrailHeatApiPlugin
- OS::TripleO::Services::ContrailHeatPlugin
- OS::TripleO::Services::Collectd
- OS::TripleO::Services::Congress
- OS::TripleO::Services::Docker
Expand Down

0 comments on commit 3537324

Please sign in to comment.