diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index 4974e51a2127db1eced933da84e83ba078bf20a7..c1a2940150f88b3ce3d1b0f7de2f9451823e2c4b 100644 --- a/ansible/group_vars/all.yml +++ b/ansible/group_vars/all.yml @@ -581,6 +581,15 @@ monasca_agent_user: "monasca-agent" # can access these from the Monasca APIs. monasca_control_plane_project: "monasca_control_plane" +#################### +# Global Options +#################### +# List of containers to skip during stop command in YAML list format +# skip_stop_containers: +# - container1 +# - container2 +skip_stop_containers: [] + #################### # Logging options #################### diff --git a/ansible/roles/barbican/tasks/stop.yml b/ansible/roles/barbican/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7a415e26ae22eaef79d261bdb8f9490a8671dda --- /dev/null +++ b/ansible/roles/barbican/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ barbican_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/bifrost/tasks/stop.yml b/ansible/roles/bifrost/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..797bd828cdbb3d5c923c9515167ec273060719ed --- /dev/null +++ b/ansible/roles/bifrost/tasks/stop.yml @@ -0,0 +1,9 @@ +--- +- name: Stopping bifrost_deploy container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "bifrost_deploy" + when: + - inventory_hostname in groups['bifrost'] + - "'bifrost_deploy' not in skip_stop_containers" diff --git a/ansible/roles/blazar/tasks/stop.yml b/ansible/roles/blazar/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..bd95ef5162a63e423d012a8bd665f5fbac722102 --- /dev/null +++ b/ansible/roles/blazar/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ blazar_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/ceilometer/tasks/stop.yml b/ansible/roles/ceilometer/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..fe151a027df28c391a6cc0115978bfb0535687e5 --- /dev/null +++ b/ansible/roles/ceilometer/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ ceilometer_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/ceph/tasks/stop.yml b/ansible/roles/ceph/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..e3852b5fdebae702519692e6a383e3c782c46c2a --- /dev/null +++ b/ansible/roles/ceph/tasks/stop.yml @@ -0,0 +1,63 @@ +--- +- name: Stopping ceph-mon container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "ceph_mon" + when: + - inventory_hostname in groups['ceph-mon'] + - "'ceph_mon' not in skip_stop_containers" + +- name: Find running ceph-osds containers + command: "docker ps --filter name=ceph_osd_ --format {% raw %}{{.Names}}{% endraw %}" + register: ceph_osd_containers + +- name: Stopping ceph-osd container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "{{ item }}" + with_items: "{{ ceph_osd_containers.stdout_lines }}" + when: + - inventory_hostname in groups['ceph-osd'] + - ceph_osd_containers.stdout_lines | length >= 1 + - item not in skip_stop_containers + +- name: Stopping ceph-rgw container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "ceph_rgw" + when: + - inventory_hostname in groups['ceph-rgw'] + - enable_ceph_rgw | bool + - "'ceph_rgw' not in skip_stop_containers" + +- name: Stopping ceph-mgr container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "ceph_mgr" + when: + - inventory_hostname in groups['ceph-mgr'] + - "'ceph_mgr' not in skip_stop_containers" + +- name: Stopping ceph-mds container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "ceph_mds" + when: + - enable_ceph_mds | bool + - inventory_hostname in groups['ceph-mds'] + - "'ceph_mds' not in skip_stop_containers" + +- name: Stopping ceph-nfs container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "ceph_nfs" + when: + - enable_ceph_nfs | bool + - inventory_hostname in groups['ceph-nfs'] + - "'ceph_nfs' not in skip_stop_containers" diff --git a/ansible/roles/chrony/tasks/stop.yml b/ansible/roles/chrony/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..03883ff3631f265f3632002fb24c090043c6a6ec --- /dev/null +++ b/ansible/roles/chrony/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ chrony_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/cinder/tasks/stop.yml b/ansible/roles/cinder/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..7de1a95d76db1505f1e1ceba37086d013332f392 --- /dev/null +++ b/ansible/roles/cinder/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ cinder_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/cloudkitty/tasks/stop.yml b/ansible/roles/cloudkitty/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..22c0f26568729d5743cba8e9572e70b0821b7826 --- /dev/null +++ b/ansible/roles/cloudkitty/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ cloudkitty_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/collectd/tasks/stop.yml b/ansible/roles/collectd/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..01794e86852b1616a14cc37da5d40791ac5b6245 --- /dev/null +++ b/ansible/roles/collectd/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ collectd_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/common/tasks/stop.yml b/ansible/roles/common/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..3b2aaf7e48f243dff997a675932b8ec8c0313cd0 --- /dev/null +++ b/ansible/roles/common/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ common_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/congress/tasks/stop.yml b/ansible/roles/congress/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..8c2f0dbda0428f26830af92efb8a1af8821470f3 --- /dev/null +++ b/ansible/roles/congress/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ congress_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/designate/tasks/stop.yml b/ansible/roles/designate/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..166323f5a8607a63dfd2e02f30d0376f9bc8c5ba --- /dev/null +++ b/ansible/roles/designate/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ designate_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/elasticsearch/tasks/stop.yml b/ansible/roles/elasticsearch/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..bbf5ce56b3768c4d95f184cb347c7a61d735303f --- /dev/null +++ b/ansible/roles/elasticsearch/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ elasticsearch_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/etcd/tasks/stop.yml b/ansible/roles/etcd/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..b68d9184d40bb8c6203c86f26baea09f2c96c5a6 --- /dev/null +++ b/ansible/roles/etcd/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ etcd_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/freezer/tasks/stop.yml b/ansible/roles/freezer/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..cd9f745de008bb453aaf71981414e797cb0c4c90 --- /dev/null +++ b/ansible/roles/freezer/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ freezer_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/glance/tasks/stop.yml b/ansible/roles/glance/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..8f0ce1a7d8ced658bcd44e82f813a19a397fe182 --- /dev/null +++ b/ansible/roles/glance/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ glance_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/gnocchi/tasks/stop.yml b/ansible/roles/gnocchi/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..5bff185939e302075b78a7bb0cbc9de0c22d6d27 --- /dev/null +++ b/ansible/roles/gnocchi/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ gnocchi_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/grafana/tasks/stop.yml b/ansible/roles/grafana/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..4a7696c0841be52444127604034cf3bf59291bb8 --- /dev/null +++ b/ansible/roles/grafana/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ grafana_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/haproxy/tasks/stop.yml b/ansible/roles/haproxy/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..aa5d0f64193c9bdfbdbf94cdbba49081137be671 --- /dev/null +++ b/ansible/roles/haproxy/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ haproxy_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/heat/tasks/stop.yml b/ansible/roles/heat/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..5211a14f63fe533bce6ff9458660894134a0dfaf --- /dev/null +++ b/ansible/roles/heat/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ heat_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/horizon/tasks/stop.yml b/ansible/roles/horizon/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..4a8e5781af26389ba9485d7f7d6f4c9a36640f69 --- /dev/null +++ b/ansible/roles/horizon/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ horizon_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/influxdb/tasks/stop.yml b/ansible/roles/influxdb/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..29d340ee92b8bd36e855fabfd8e194ba46148784 --- /dev/null +++ b/ansible/roles/influxdb/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ influxdb_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/ironic/tasks/stop.yml b/ansible/roles/ironic/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..aef5c515e1810d217f7a5b2c01540227439f54a0 --- /dev/null +++ b/ansible/roles/ironic/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ ironic_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/iscsi/tasks/stop.yml b/ansible/roles/iscsi/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..dcb016a0a767650ec9eed7c92369a8bc84a55797 --- /dev/null +++ b/ansible/roles/iscsi/tasks/stop.yml @@ -0,0 +1,19 @@ +--- +- name: Stopping iscsid container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "iscsid" + when: ( ( inventory_hostname in groups['compute'] or inventory_hostname in groups['cinder-volume'] ) and enable_cinder | bool and enable_cinder_backend_iscsi | bool ) + or ( inventory_hostname in groups['ironic-conductor'] and enable_ironic | bool and 'iscsid' not in skip_stop_containers) + +- name: Stopping tgtd container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "tgtd" + when: + - inventory_hostname in groups['tgtd'] + - enable_cinder | bool + - enable_cinder_backend_lvm | bool + - "'tgtd' not in skip_stop_containers" diff --git a/ansible/roles/kafka/tasks/stop.yml b/ansible/roles/kafka/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..f52b76f38573887810b065f7ff6c4124fc4ae97a --- /dev/null +++ b/ansible/roles/kafka/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ kafka_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/karbor/tasks/stop.yml b/ansible/roles/karbor/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..54775a0581b5a1121b233f548abb51f86f124c53 --- /dev/null +++ b/ansible/roles/karbor/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ karbor_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/keystone/tasks/stop.yml b/ansible/roles/keystone/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..44631106528aa491ebc06cef4a50616f9e32eee7 --- /dev/null +++ b/ansible/roles/keystone/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ keystone_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/kibana/tasks/stop.yml b/ansible/roles/kibana/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..5c5034a464dddac0726fd329f06246871b6f75fa --- /dev/null +++ b/ansible/roles/kibana/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ kibana_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/kuryr/tasks/stop.yml b/ansible/roles/kuryr/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..674769b3571f4bda17ba7f1c5620aea2f7da07ab --- /dev/null +++ b/ansible/roles/kuryr/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ kuryr_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/magnum/tasks/stop.yml b/ansible/roles/magnum/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..0e6c3504dce1685b29103b6ec4116aadc22b725e --- /dev/null +++ b/ansible/roles/magnum/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ magnum_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/manila/tasks/stop.yml b/ansible/roles/manila/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..a65735642cbd04d0dd94ec562df9a2f39898f915 --- /dev/null +++ b/ansible/roles/manila/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ manila_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/mariadb/tasks/stop.yml b/ansible/roles/mariadb/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..d60e30573f7b68e1f86fe5175c14c87352b72425 --- /dev/null +++ b/ansible/roles/mariadb/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ mariadb_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/memcached/tasks/stop.yml b/ansible/roles/memcached/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..2ca860f3cee6bb9ff86429ac8c4bed0c6edc848c --- /dev/null +++ b/ansible/roles/memcached/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ memcached_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/mistral/tasks/stop.yml b/ansible/roles/mistral/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..e5feb2222909fb28ace1319b5cad2c199f307a3d --- /dev/null +++ b/ansible/roles/mistral/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ mistral_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/monasca/tasks/stop.yml b/ansible/roles/monasca/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..d387236b95602c23fe1a1de76d4ae566a1840bcd --- /dev/null +++ b/ansible/roles/monasca/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ monasca_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/mongodb/tasks/stop.yml b/ansible/roles/mongodb/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..47d98263f3f164f8a33288ca2081ad18b8bb737f --- /dev/null +++ b/ansible/roles/mongodb/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ mongodb_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/multipathd/tasks/stop.yml b/ansible/roles/multipathd/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..383564e8f172e5ce4cb3901224eb71378c968edc --- /dev/null +++ b/ansible/roles/multipathd/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ multipathd_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/murano/tasks/stop.yml b/ansible/roles/murano/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..e395fe4c0ca67668055b77045e965c3c3cf860a3 --- /dev/null +++ b/ansible/roles/murano/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ murano_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/neutron/tasks/stop.yml b/ansible/roles/neutron/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..8c030e9e8782b7cf76a83700db8c0fd15e8289d4 --- /dev/null +++ b/ansible/roles/neutron/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ neutron_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/stop/tasks/check.yml b/ansible/roles/nova-hyperv/tasks/stop.yml similarity index 100% rename from ansible/roles/stop/tasks/check.yml rename to ansible/roles/nova-hyperv/tasks/stop.yml diff --git a/ansible/roles/nova/tasks/stop.yml b/ansible/roles/nova/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..c4ddb863478b1e0370503c5cbf3cef4d7eba9b62 --- /dev/null +++ b/ansible/roles/nova/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ nova_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/octavia/tasks/stop.yml b/ansible/roles/octavia/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..f6a48244edbe46651f0847320639970b4d444baf --- /dev/null +++ b/ansible/roles/octavia/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ octavia_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/opendaylight/tasks/stop.yml b/ansible/roles/opendaylight/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..7cfd5b44adb882420fbaf2fb6b419d478c7a0a1a --- /dev/null +++ b/ansible/roles/opendaylight/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ opendaylight_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/openvswitch/tasks/stop.yml b/ansible/roles/openvswitch/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..c6c8ca282220d815186814e4e396cd39c3badce3 --- /dev/null +++ b/ansible/roles/openvswitch/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ openvswitch_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/ovs-dpdk/tasks/stop.yml b/ansible/roles/ovs-dpdk/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..a5a8a02e56c736732cc38c983faff68401f99d62 --- /dev/null +++ b/ansible/roles/ovs-dpdk/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ ovsdpdk_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/panko/tasks/stop.yml b/ansible/roles/panko/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..3d4fec5c39c0c5ab542bf79199871301b1945ca5 --- /dev/null +++ b/ansible/roles/panko/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ panko_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/prometheus/tasks/stop.yml b/ansible/roles/prometheus/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..cda4198a6ce5f27bf9279a46a745a54b1f4611d9 --- /dev/null +++ b/ansible/roles/prometheus/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ prometheus_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/qdrouterd/tasks/stop.yml b/ansible/roles/qdrouterd/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..a466a87ff7b0536b33a68e455496baccdd986a4b --- /dev/null +++ b/ansible/roles/qdrouterd/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ qdrouterd_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/rabbitmq/tasks/stop.yml b/ansible/roles/rabbitmq/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..f13c35e5159c3a056d5c17166b0331b9d1586d84 --- /dev/null +++ b/ansible/roles/rabbitmq/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ rabbitmq_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/rally/tasks/stop.yml b/ansible/roles/rally/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..792d4ccfe70bb5c6ea34bec6819f977947381bff --- /dev/null +++ b/ansible/roles/rally/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ rally_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/redis/tasks/stop.yml b/ansible/roles/redis/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..d4566d02e80e3dcdb1a6756a08f8e634b2fb8459 --- /dev/null +++ b/ansible/roles/redis/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ redis_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/sahara/tasks/stop.yml b/ansible/roles/sahara/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..02c3e6a9058143f9e24bf8aade4fbb42e95318c0 --- /dev/null +++ b/ansible/roles/sahara/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ sahara_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/searchlight/tasks/stop.yml b/ansible/roles/searchlight/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..d6f795395c46a5384ea876f6918bc99b89cf73de --- /dev/null +++ b/ansible/roles/searchlight/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ searchlight_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/senlin/tasks/stop.yml b/ansible/roles/senlin/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..336538ad2457740273206a7e393ddfa53c209bdb --- /dev/null +++ b/ansible/roles/senlin/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ senlin_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/service-stop/tasks/main.yml b/ansible/roles/service-stop/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..b1db420588c841499afc4ea796ba96da14305e37 --- /dev/null +++ b/ansible/roles/service-stop/tasks/main.yml @@ -0,0 +1,12 @@ +--- +- name: "Stopping {{ service_name }} containers" + vars: + service: "{{ item.value }}" + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "{{ service.container_name }}" + when: + - service.enabled | bool + - service.container_name not in skip_stop_containers + with_dict: "{{ project_services }}" diff --git a/ansible/roles/skydive/tasks/stop.yml b/ansible/roles/skydive/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..a6e363029c06efbba6a8fd63200b95fdab22b8ee --- /dev/null +++ b/ansible/roles/skydive/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ skydive_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/solum/tasks/stop.yml b/ansible/roles/solum/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..2667cb92277fcc337fbbd4f65f4ccf8d4c49e42c --- /dev/null +++ b/ansible/roles/solum/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ solum_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/stop/tasks/copy_tools.yml b/ansible/roles/stop/tasks/copy_tools.yml deleted file mode 100644 index e6a1ec62d884759384744e3e3a45387c3c907417..0000000000000000000000000000000000000000 --- a/ansible/roles/stop/tasks/copy_tools.yml +++ /dev/null @@ -1,17 +0,0 @@ ---- -- name: Creating /kolla-stop/tools directory on node - file: - state: directory - path: /tmp/kolla-stop/tools - -- name: Copying validate-docker-execute.sh file - copy: - src: ../tools/validate-docker-execute.sh - dest: /tmp/kolla-stop/tools - mode: 0755 - -- name: Copying stop-containers file - copy: - src: ../tools/stop-containers - dest: /tmp/kolla-stop/tools - mode: 0755 diff --git a/ansible/roles/stop/tasks/main.yml b/ansible/roles/stop/tasks/main.yml deleted file mode 100644 index deb3ddfae1543295bf5b89797ec86d115f41da15..0000000000000000000000000000000000000000 --- a/ansible/roles/stop/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -- include_tasks: copy_tools.yml - -- include_tasks: stop_containers.yml diff --git a/ansible/roles/stop/tasks/stop_containers.yml b/ansible/roles/stop/tasks/stop_containers.yml deleted file mode 100644 index df184d0fe26455a9fdd707985a0e6ca087d0a3ea..0000000000000000000000000000000000000000 --- a/ansible/roles/stop/tasks/stop_containers.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -- name: Stopping Kolla containers - command: /tmp/kolla-stop/tools/stop-containers diff --git a/ansible/roles/storm/tasks/stop.yml b/ansible/roles/storm/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..2bc5681d68bb760aee5ec1db290d318a1e2eeb1d --- /dev/null +++ b/ansible/roles/storm/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ storm_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/swift/tasks/stop.yml b/ansible/roles/swift/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..19ec5a08f03927b99af60aa60c9e4dd64551ce03 --- /dev/null +++ b/ansible/roles/swift/tasks/stop.yml @@ -0,0 +1,136 @@ +--- +- name: Stopping swift-rsyncd container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "swift_rsyncd" + when: ( inventory_hostname in groups['swift-account-server'] or + inventory_hostname in groups['swift-container-server'] or + inventory_hostname in groups['swift-object-server'] ) and + 'swift_rsyncd' not in skip_stop_containers + +- name: Stopping swift-account-server container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "swift_account_server" + when: + - inventory_hostname in groups['swift-account-server'] + - "'swift_account_server' not in skip_stop_containers" + +- name: Stopping swift-account-auditor container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "swift_account_auditor" + when: + - inventory_hostname in groups['swift-account-server'] + - "'swift_object_auditor' not in skip_stop_containers" + +- name: Stopping swift-account-replicator container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "swift_account_replicator" + when: + - inventory_hostname in groups['swift-account-server'] + - "'swift_account_replicator' not in skip_stop_containers" + +- name: Stopping swift-account-reaper container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "swift_account_reaper" + when: + - inventory_hostname in groups['swift-account-server'] + - "'swift_account_reaper' not in skip_stop_containers" + +- name: Stopping swift-container-server container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "swift_container_server" + when: + - inventory_hostname in groups['swift-container-server'] + - "'swift_container_server' not in skip_stop_containers" + +- name: Stopping swift-container-auditor container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "swift_container_auditor" + when: + - inventory_hostname in groups['swift-container-server'] + - "'swift_container_auditor' not in skip_stop_containers" + +- name: Stopping swift-container-replicator container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "swift_container_replicator" + when: + - inventory_hostname in groups['swift-container-server'] + - "'swift_container_replicator' not in skip_stop_containers" + +- name: Stopping swift-container-updater container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "swift_container_updater" + when: + - inventory_hostname in groups['swift-container-server'] + - "'swift_container_updater' not in skip_stop_containers" + +- name: Stopping swift-object-server container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "swift_object_server" + when: + - inventory_hostname in groups['swift-object-server'] + - "'swift_object_server' not in skip_stop_containers" + +- name: Stopping swift-object-auditor container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "swift_object_auditor" + when: + - inventory_hostname in groups['swift-object-server'] + - "'swift_object_auditor' not in skip_stop_containers" + +- name: Stopping swift-object-replicator container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "swift_object_replicator" + when: + - inventory_hostname in groups['swift-object-server'] + - "'swift_object_replicator' not in skip_stop_containers" + +- name: Stopping swift-object-updater container + kolla_docker: + action: "start_container" + common_options: "{{ docker_common_options }}" + name: "swift_object_updater" + when: + - inventory_hostname in groups['swift-object-server'] + - "'swift_object_updater' not in skip_stop_containers" + +- name: Stopping swift-object-expirer container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "swift_object_expirer" + when: + - inventory_hostname in groups['swift-object-server'] + - "'swift_object_expirer' not in skip_stop_containers" + +- name: Stopping swift-proxy-server container + kolla_docker: + action: "stop_container" + common_options: "{{ docker_common_options }}" + name: "swift_proxy_server" + when: + - inventory_hostname in groups['swift-proxy-server'] + - "'swift_proxy_server' not in skip_stop_containers" diff --git a/ansible/roles/tacker/tasks/stop.yml b/ansible/roles/tacker/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..026d386a1d1af16a16ffe8d99882c21234e8fbfe --- /dev/null +++ b/ansible/roles/tacker/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ tacker_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/telegraf/tasks/stop.yml b/ansible/roles/telegraf/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..e30795e6a0c338fdb317874a1c0c620dbda8c5a9 --- /dev/null +++ b/ansible/roles/telegraf/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ telegraf_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/tempest/tasks/stop.yml b/ansible/roles/tempest/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..86989d6615c42fc693fba451fe423634333f874a --- /dev/null +++ b/ansible/roles/tempest/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ tempest_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/trove/tasks/stop.yml b/ansible/roles/trove/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..35f3021d1c1d5c5b8942e69ad9ca97da0a7a395d --- /dev/null +++ b/ansible/roles/trove/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ trove_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/vitrage/tasks/stop.yml b/ansible/roles/vitrage/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..4f5c631bf6594f9887dd95895b475141e82117bf --- /dev/null +++ b/ansible/roles/vitrage/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ vitrage_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/vmtp/tasks/stop.yml b/ansible/roles/vmtp/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..3dc1e86830eaec52a27376b0546905de89223da8 --- /dev/null +++ b/ansible/roles/vmtp/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ vmtp_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/watcher/tasks/stop.yml b/ansible/roles/watcher/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..c0e95da4904a02b7ba0a136cdfa6a6dcc11821eb --- /dev/null +++ b/ansible/roles/watcher/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ watcher_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/zookeeper/tasks/stop.yml b/ansible/roles/zookeeper/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..62f198d765e609cf178489cc17ea2b7b1f99aa4c --- /dev/null +++ b/ansible/roles/zookeeper/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ zookeeper_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/roles/zun/tasks/stop.yml b/ansible/roles/zun/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..f07c93fee6735989c87f5afd29a189544b216c06 --- /dev/null +++ b/ansible/roles/zun/tasks/stop.yml @@ -0,0 +1,6 @@ +--- +- import_role: + role: service-stop + vars: + project_services: "{{ zun_services }}" + service_name: "{{ project_name }}" diff --git a/ansible/stop.yml b/ansible/stop.yml deleted file mode 100644 index 0ff7bf494f893d6bce6e63b9f2f6fe81731b9de1..0000000000000000000000000000000000000000 --- a/ansible/stop.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -- hosts: all - roles: - - stop diff --git a/releasenotes/notes/stop-per-service-85a996bb2751ed52.yaml b/releasenotes/notes/stop-per-service-85a996bb2751ed52.yaml new file mode 100644 index 0000000000000000000000000000000000000000..a669f507d593684fda227d62c9ad51a9db02e866 --- /dev/null +++ b/releasenotes/notes/stop-per-service-85a996bb2751ed52.yaml @@ -0,0 +1,11 @@ +--- +features: + - | + Add support to stop a service with ``kolla-ansible stop`` command. + This feature will allow to stop specific services with ``--tags`` and + ``--limit`` to a host. +upgrade: + - | + New ``kolla-ansible stop`` command requires the usage of + ``--yes-i-really-really-mean-it`` to avoid accidentally + stopping services. diff --git a/setup.cfg b/setup.cfg index 7fc0546a1b1ec8463a9217927016a119033477d5..228ea5b598dec5167739d42820d22dbd243eb6aa 100644 --- a/setup.cfg +++ b/setup.cfg @@ -28,7 +28,6 @@ data_files = share/kolla-ansible/tools = tools/cleanup-containers share/kolla-ansible/tools = tools/cleanup-host share/kolla-ansible/tools = tools/cleanup-images - share/kolla-ansible/tools = tools/stop-containers share/kolla-ansible/tools = tools/ovs-dpdkctl.sh share/kolla-ansible/doc = doc/* share/kolla-ansible/etc_examples = etc/* diff --git a/tools/kolla-ansible b/tools/kolla-ansible index 0706d7a76314862621c3b2a7242852a5247c7ae6..96024a348fca1743220e36c3f28e7b856ed917fa 100755 --- a/tools/kolla-ansible +++ b/tools/kolla-ansible @@ -330,7 +330,16 @@ EOF ;; (stop) ACTION="Stop Kolla containers" - PLAYBOOK="${BASEDIR}/ansible/stop.yml" + EXTRA_OPTS="$EXTRA_OPTS -e kolla_action=stop" + if [[ "${DANGER_CONFIRM}" != "--yes-i-really-really-mean-it" ]]; then + cat << EOF +WARNING: + This will stop all deployed kolla containers, limit with tags is possible and also with + skip_stop_containers variable. To confirm, please add the following option: + --yes-i-really-really-mean-it +EOF + exit 1 + fi ;; (certificates) ACTION="Generate TLS Certificates" diff --git a/tools/stop-containers b/tools/stop-containers deleted file mode 100755 index f12c50f44ac391258830f9431f852b523b7eed5d..0000000000000000000000000000000000000000 --- a/tools/stop-containers +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -if [[ $(pgrep qemu) ]]; then - echo "Some qemu processes were detected." - echo "Docker will not be able to stop the nova_libvirt container with those running." - echo "Please clean them up before rerunning this script." - exit 1 -fi - -if [ -n "$1" ]; then - containers_to_stop=($(docker ps | grep -E "$1" | awk '{print $1}')) -else - containers_to_stop=$(docker ps --filter "label=kolla_version" --format "{{.Names}}" -a) -fi - -echo "Stopping containers..." -(docker stop -t 30 ${containers_to_stop} 2>&1) > /dev/null - -echo "All containers stopped!"