Merge "Drop skydive"

This commit is contained in:
Zuul 2023-01-19 10:26:01 +00:00 committed by Gerrit Code Review
commit 32dce70f09
32 changed files with 7 additions and 550 deletions

View File

@ -515,9 +515,6 @@ senlin_external_fqdn: "{{ kolla_external_fqdn }}"
senlin_api_port: "8778"
senlin_api_listen_port: "{{ senlin_api_port }}"
skydive_analyzer_port: "8085"
skydive_agents_port: "8090"
solum_application_deployment_port: "9777"
solum_image_builder_port: "9778"
@ -738,7 +735,6 @@ enable_proxysql: "no"
enable_redis: "no"
enable_sahara: "no"
enable_senlin: "no"
enable_skydive: "no"
enable_solum: "no"
enable_swift: "no"
enable_swift_s3api: "no"
@ -786,7 +782,7 @@ skip_stop_containers: []
# services with ElasticSearch endpoints should be configured to log
# to the external cluster by default. This is for backwards compatibility.
opensearch_address: "{{ elasticsearch_address if elasticsearch_address is defined else kolla_internal_fqdn }}"
enable_opensearch: "{{ enable_central_logging | bool or enable_osprofiler | bool or enable_skydive | bool or (enable_cloudkitty | bool and cloudkitty_storage_backend == 'elasticsearch') }}"
enable_opensearch: "{{ enable_central_logging | bool or enable_osprofiler | bool or (enable_cloudkitty | bool and cloudkitty_storage_backend == 'elasticsearch') }}"
enable_opensearch_dashboards: "{{ enable_opensearch | bool }}"
enable_opensearch_dashboards_external: "{{ enable_opensearch_dashboards | bool }}"

View File

@ -198,9 +198,6 @@ control
[zun:children]
control
[skydive:children]
monitoring
[redis:children]
control
@ -624,14 +621,6 @@ compute
[zun-cni-daemon:children]
compute
# Skydive
[skydive-analyzer:children]
skydive
[skydive-agent:children]
compute
network
# Tacker
[tacker-server:children]
tacker

View File

@ -216,9 +216,6 @@ control
[zun:children]
control
[skydive:children]
monitoring
[redis:children]
control
@ -642,14 +639,6 @@ compute
[zun-cni-daemon:children]
compute
# Skydive
[skydive-analyzer:children]
skydive
[skydive-agent:children]
compute
network
# Tacker
[tacker-server:children]
tacker

View File

@ -189,7 +189,6 @@
- { name: "rabbitmq", enabled: "{{ enable_rabbitmq | bool }}" }
- { name: "sahara", enabled: "{{ enable_sahara | bool }}" }
- { name: "senlin", enabled: "{{ enable_senlin | bool }}" }
- { name: "skydive", enabled: "{{ enable_skydive | bool }}" }
- { name: "solum", enabled: "{{ enable_solum | bool }}" }
- { name: "swift", enabled: "{{ enable_swift | bool }}" }
- { name: "tacker", enabled: "{{ enable_tacker | bool }}" }

View File

@ -1,3 +0,0 @@
"/var/log/kolla/skydive/*.log"
{
}

View File

@ -1,89 +0,0 @@
---
skydive_services:
skydive-analyzer:
container_name: skydive_analyzer
group: skydive-analyzer
enabled: true
image: "{{ skydive_analyzer_image_full }}"
volumes: "{{ skydive_analyzer_default_volumes + skydive_analyzer_extra_volumes }}"
dimensions: "{{ skydive_analyzer_dimensions }}"
healthcheck: "{{ skydive_analyzer_healthcheck }}"
haproxy:
skydive_server:
enabled: "{{ enable_skydive }}"
mode: "http"
external: false
port: "{{ skydive_analyzer_port }}"
skydive_server_external:
enabled: "{{ enable_skydive }}"
mode: "http"
external: true
port: "{{ skydive_analyzer_port }}"
skydive-agent:
container_name: skydive_agent
group: skydive-agent
enabled: true
image: "{{ skydive_agent_image_full }}"
privileged: True
volumes: "{{ skydive_agent_default_volumes + skydive_agent_extra_volumes }}"
dimensions: "{{ skydive_agent_dimensions }}"
healthcheck: "{{ skydive_agent_healthcheck }}"
####################
# Docker
####################
skydive_tag: "{{ openstack_tag }}"
skydive_analyzer_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/skydive-analyzer"
skydive_analyzer_tag: "{{ skydive_tag }}"
skydive_analyzer_image_full: "{{ skydive_analyzer_image }}:{{ skydive_analyzer_tag }}"
skydive_admin_tenant_name: "{{ keystone_admin_project }}"
skydive_agent_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/skydive-agent"
skydive_agent_tag: "{{ skydive_tag }}"
skydive_agent_image_full: "{{ skydive_agent_image }}:{{ skydive_agent_tag }}"
skydive_analyzer_dimensions: "{{ default_container_dimensions }}"
skydive_agent_dimensions: "{{ default_container_dimensions }}"
skydive_analyzer_enable_healthchecks: "{{ enable_container_healthchecks }}"
skydive_analyzer_healthcheck_interval: "{{ default_container_healthcheck_interval }}"
skydive_analyzer_healthcheck_retries: "{{ default_container_healthcheck_retries }}"
skydive_analyzer_healthcheck_start_period: "{{ default_container_healthcheck_start_period }}"
skydive_analyzer_healthcheck_test: ["CMD-SHELL", "healthcheck_listen skydive {{ skydive_analyzer_port }}"]
skydive_analyzer_healthcheck_timeout: "{{ default_container_healthcheck_timeout }}"
skydive_analyzer_healthcheck:
interval: "{{ skydive_analyzer_healthcheck_interval }}"
retries: "{{ skydive_analyzer_healthcheck_retries }}"
start_period: "{{ skydive_analyzer_healthcheck_start_period }}"
test: "{% if skydive_analyzer_enable_healthchecks | bool %}{{ skydive_analyzer_healthcheck_test }}{% else %}NONE{% endif %}"
timeout: "{{ skydive_analyzer_healthcheck_timeout }}"
skydive_agent_enable_healthchecks: "{{ enable_container_healthchecks }}"
skydive_agent_healthcheck_interval: "{{ default_container_healthcheck_interval }}"
skydive_agent_healthcheck_retries: "{{ default_container_healthcheck_retries }}"
skydive_agent_healthcheck_start_period: "{{ default_container_healthcheck_start_period }}"
skydive_agent_healthcheck_test: ["CMD-SHELL", "healthcheck_listen skydive {{ skydive_agents_port }}"]
skydive_agent_healthcheck_timeout: "{{ default_container_healthcheck_timeout }}"
skydive_agent_healthcheck:
interval: "{{ skydive_agent_healthcheck_interval }}"
retries: "{{ skydive_agent_healthcheck_retries }}"
start_period: "{{ skydive_agent_healthcheck_start_period }}"
test: "{% if skydive_agent_enable_healthchecks | bool %}{{ skydive_agent_healthcheck_test }}{% else %}NONE{% endif %}"
timeout: "{{ skydive_agent_healthcheck_timeout }}"
skydive_analyzer_default_volumes:
- "{{ node_config_directory }}/skydive-analyzer/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro"
- "{{ '/etc/timezone:/etc/timezone:ro' if ansible_facts.os_family == 'Debian' else '' }}"
- "kolla_logs:/var/log/kolla/"
skydive_agent_default_volumes:
- "{{ node_config_directory }}/skydive-agent/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro"
- "{{ '/etc/timezone:/etc/timezone:ro' if ansible_facts.os_family == 'Debian' else '' }}"
- "/var/run/openvswitch:/var/run/openvswitch:ro"
- "/var/run/netns:/host/run:shared"
- "kolla_logs:/var/log/kolla/"
skydive_extra_volumes: "{{ default_extra_volumes }}"
skydive_analyzer_extra_volumes: "{{ skydive_extra_volumes }}"
skydive_agent_extra_volumes: "{{ skydive_extra_volumes }}"

View File

@ -1,33 +0,0 @@
---
- name: Restart skydive-analyzer container
vars:
service_name: "skydive-analyzer"
service: "{{ skydive_services[service_name] }}"
become: true
kolla_docker:
action: "recreate_or_restart_container"
common_options: "{{ docker_common_options }}"
name: "{{ service.container_name }}"
image: "{{ service.image }}"
volumes: "{{ service.volumes }}"
dimensions: "{{ service.dimensions }}"
healthcheck: "{{ service.healthcheck | default(omit) }}"
when:
- kolla_action != "config"
- name: Restart skydive-agent container
vars:
service_name: "skydive-agent"
service: "{{ skydive_services[service_name] }}"
become: true
kolla_docker:
action: "recreate_or_restart_container"
common_options: "{{ docker_common_options }}"
name: "{{ service.container_name }}"
image: "{{ service.image }}"
privileged: "{{ service.privileged }}"
volumes: "{{ service.volumes }}"
dimensions: "{{ service.dimensions }}"
healthcheck: "{{ service.healthcheck | default(omit) }}"
when:
- kolla_action != "config"

View File

@ -1,18 +0,0 @@
---
- name: Check skydive containers
become: true
kolla_docker:
action: "compare_container"
common_options: "{{ docker_common_options }}"
name: "{{ item.value.container_name }}"
image: "{{ item.value.image }}"
privileged: "{{ item.value.privileged | default(False) }}"
volumes: "{{ item.value.volumes }}"
dimensions: "{{ item.value.dimensions }}"
healthcheck: "{{ item.value.healthcheck | default(omit) }}"
when:
- inventory_hostname in groups[item.value.group]
- item.value.enabled | bool
with_dict: "{{ skydive_services }}"
notify:
- "Restart {{ item.key }} container"

View File

@ -1 +0,0 @@
---

View File

@ -1,47 +0,0 @@
---
- name: Ensuring config directories exist
file:
path: "{{ node_config_directory }}/{{ item.key }}"
state: "directory"
owner: "{{ config_owner_user }}"
group: "{{ config_owner_group }}"
mode: "0770"
become: true
when:
- inventory_hostname in groups[item.value.group]
- item.value.enabled | bool
with_dict: "{{ skydive_services }}"
- include_tasks: copy-certs.yml
when:
- kolla_copy_ca_into_containers | bool
- name: Copying over default config.json files
template:
src: "{{ item.key }}.json.j2"
dest: "{{ node_config_directory }}/{{ item.key }}/config.json"
mode: "0660"
become: true
when:
- inventory_hostname in groups[item.value.group]
- item.value.enabled | bool
with_dict: "{{ skydive_services }}"
notify:
- Restart {{ item.key }} container
- name: Copying over skydive config file
merge_yaml:
sources:
- "{{ role_path }}/templates/{{ item.key }}.conf.j2"
- "{{ node_custom_config }}/skydive.conf"
- "{{ node_custom_config }}/skydive/{{ item.key }}.conf"
- "{{ node_custom_config }}/skydive/{{ inventory_hostname }}/{{ item.key }}.conf"
dest: "{{ node_config_directory }}/{{ item.key }}/skydive.conf"
mode: "0660"
become: true
when:
- item.value.enabled | bool
- inventory_hostname in groups[item.value.group]
with_dict: "{{ skydive_services }}"
notify:
- Restart {{ item.key }} container

View File

@ -1 +0,0 @@
---

View File

@ -1,6 +0,0 @@
---
- name: "Copy certificates and keys for {{ project_name }}"
import_role:
role: service-cert-copy
vars:
project_services: "{{ skydive_services }}"

View File

@ -1,2 +0,0 @@
---
- import_tasks: check-containers.yml

View File

@ -1,7 +0,0 @@
---
- import_tasks: config.yml
- import_tasks: check-containers.yml
- name: Flush handlers
meta: flush_handlers

View File

@ -1,7 +0,0 @@
---
- name: "Configure loadbalancer for {{ project_name }}"
import_role:
name: loadbalancer-config
vars:
project_services: "{{ skydive_services }}"
tags: always

View File

@ -1,2 +0,0 @@
---
- include_tasks: "{{ kolla_action }}.yml"

View File

@ -1,41 +0,0 @@
---
- import_role:
name: service-precheck
vars:
service_precheck_services: "{{ skydive_services }}"
service_name: "{{ project_name }}"
- name: Get container facts
become: true
kolla_container_facts:
container_engine: "{{ kolla_container_engine }}"
name:
- skydive_analyzer
- skydive_agent
register: container_facts
- name: Checking free port for Skydive Analyzer
vars:
skydive_analyzer: "{{ skydive_services['skydive-analyzer'] }}"
wait_for:
host: "{{ api_interface_address }}"
port: "{{ skydive_analyzer_port }}"
connect_timeout: 1
state: stopped
when:
- container_facts['skydive_analyzer'] is not defined
- inventory_hostname in groups[skydive_analyzer.group]
- skydive_analyzer.enabled | bool
- name: Checking free port for Skydive Agent
vars:
skydive_agent: "{{ skydive_services['skydive-agent'] }}"
wait_for:
host: "{{ api_interface_address }}"
port: "{{ skydive_agents_port }}"
connect_timeout: 1
state: stopped
when:
- container_facts['skydive_agent'] is not defined
- inventory_hostname in groups[skydive_agent.group]
- skydive_agent.enabled | bool

View File

@ -1,3 +0,0 @@
---
- import_role:
role: service-images-pull

View File

@ -1,2 +0,0 @@
---
- import_tasks: deploy.yml

View File

@ -1,6 +0,0 @@
---
- import_role:
name: service-stop
vars:
project_services: "{{ skydive_services }}"
service_name: "{{ project_name }}"

View File

@ -1,7 +0,0 @@
---
- import_tasks: config.yml
- import_tasks: check-containers.yml
- name: Flush handlers
meta: flush_handlers

View File

@ -1,70 +0,0 @@
### Skydive agent config file
auth:
analyzer_username: {{ openstack_auth['username'] }}
analyzer_password: {{ openstack_auth['password'] }}
logging:
level: INFO
backends:
- file
file:
path: /var/log/kolla/skydive/skydive-agent.log
etcd:
servers:
{% if enable_etcd | bool %}
{% for host in groups['etcd'] %}
- {{ etcd_protocol }}://{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ etcd_client_port }}
{% endfor %}
{% else %}
{% for host in groups['skydive-analyzer'] %}
- {{ etcd_protocol }}://{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ etcd_client_port }}
{% endfor %}
{% endif %}
analyzers:
{% for host in groups['skydive-analyzer'] %}
- {{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ skydive_analyzer_port }}
{% endfor %}
agent:
listen: {{ 'api' | kolla_address | put_address_in_context('url') }}:{{ skydive_agents_port }}
flow:
probes:
- gopacket
{% if neutron_plugin_agent in ['openvswitch'] %}
- ovssflow
{% endif %}
topology:
probes:
- netlink
- netns
- neutron
{% if neutron_plugin_agent in ['openvswitch'] %}
- ovsdb
{% endif %}
### TODO migrate from tenant_name to system_scope when supported in skydive
neutron:
auth_url: {{ keystone_internal_url }}
username: {{ openstack_auth['username'] }}
password: {{ openstack_auth['password'] }}
tenant_name: {{ skydive_admin_tenant_name }}
region_name: {{ openstack_region_name }}
domain_name: Default
endpoint_type: internal
netns:
run_path: /host/run
flow:
expire: 600
update: 60
{% if neutron_plugin_agent in ['openvswitch'] %}
ovs:
ovsdb: tcp://127.0.0.1:{{ ovsdb_port }}
oflow:
enable: true
{% endif %}

View File

@ -1,18 +0,0 @@
{
"command": "skydive agent --conf /etc/skydive/skydive.conf --listen={{ api_interface_address | put_address_in_context('url') }}:{{ skydive_agents_port }}",
"config_files": [
{
"source": "{{ container_config_directory }}/skydive.conf",
"dest": "/etc/skydive/skydive.conf",
"owner": "skydive",
"perm": "0600"
}
],
"permissions": [
{
"path": "/var/log/kolla/skydive",
"owner": "skydive:skydive",
"recurse": true
}
]
}

View File

@ -1,71 +0,0 @@
### Skydive analyzer config file
### TODO migrate from tenant_name to system_scope when supported in skydive
auth:
keystone:
type: keystone
auth_url: {{ keystone_internal_url }}
region_name: {{ openstack_region_name }}
tenant_name: {{ skydive_admin_tenant_name }}
domain_name: Default
logging:
level: INFO
backends:
- file
file:
path: /var/log/kolla/skydive/skydive-analyzer.log
analyzers:
{% for host in groups['skydive-analyzer'] %}
- {{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ skydive_analyzer_port }}
{% endfor %}
etcd:
client_timeout: 100
{% if enable_etcd | bool %}
embedded: false
servers:
{% for host in groups['etcd'] %}
- {{ etcd_protocol }}://{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ etcd_client_port }}
{% endfor %}
{% else %}
embedded: true
servers:
{% for host in groups['skydive-analyzer'] %}
- {{ etcd_protocol }}://{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ etcd_client_port }}
{% endfor %}
listen: {{ api_interface_address | put_address_in_context('url') }}:{{ etcd_client_port }}
{% endif %}
analyzer:
auth:
api:
backend: keystone
listen: {{ api_interface_address | put_address_in_context('url') }}:{{ skydive_analyzer_port }}
storage:
backend: elasticsearch
{% if groups['skydive-agent'] | length > 1 %}
topology:
fabric:
{% for interface in [network_interface, neutron_external_interface]|unique %}
{% set interfaces_loop = loop %}
{% for host in groups['skydive-agent'] %}
- TOR{{ interfaces_loop.index }}[Name=tor{{ interfaces_loop.index }}] -> TOR{{ interfaces_loop.index }}_PORT{{ loop.index }}[Name=port{{ loop.index }}, MTU=1500]
- TOR{{ interfaces_loop.index }}_PORT{{ loop.index }} -> *[Type=host,Name={{ hostvars[host].ansible_facts.hostname }}]/{{ interface }}
{% endfor %}
{% endfor %}
{% endif %}
storage:
elasticsearch:
host: {{ opensearch_address | put_address_in_context('url') }}:{{ opensearch_port }}
maxconns: 10
retry: 60
graph:
backend: elasticsearch
flow:
expire: 600
update: 60

View File

@ -1,18 +0,0 @@
{
"command": "skydive analyzer --conf /etc/skydive/skydive.conf --listen={{ api_interface_address | put_address_in_context('url') }}:{{ skydive_analyzer_port }}",
"config_files": [
{
"source": "{{ container_config_directory }}/skydive.conf",
"dest": "/etc/skydive/skydive.conf",
"owner": "skydive",
"perm": "0600"
}
],
"permissions": [
{
"path": "/var/log/kolla/skydive",
"owner": "skydive:skydive",
"recurse": true
}
]
}

View File

@ -1,2 +0,0 @@
---
project_name: "skydive"

View File

@ -64,7 +64,6 @@
- enable_redis_{{ enable_redis | bool }}
- enable_sahara_{{ enable_sahara | bool }}
- enable_senlin_{{ enable_senlin | bool }}
- enable_skydive_{{ enable_skydive | bool }}
- enable_solum_{{ enable_solum | bool }}
- enable_swift_{{ enable_swift | bool }}
- enable_tacker_{{ enable_tacker | bool }}
@ -286,11 +285,6 @@
tasks_from: loadbalancer
tags: senlin
when: enable_senlin | bool
- include_role:
name: skydive
tasks_from: loadbalancer
tags: skydive
when: enable_skydive | bool
- include_role:
name: solum
tasks_from: loadbalancer
@ -945,17 +939,6 @@
- { role: zun,
tags: zun }
- name: Apply role skydive
gather_facts: false
hosts:
- skydive-agent
- skydive-analyzer
- '&enable_skydive_True'
serial: '{{ kolla_serial|default("0") }}'
roles:
- { role: skydive,
tags: skydive }
- name: Apply role vitrage
gather_facts: false
hosts:

View File

@ -14,4 +14,3 @@ logging and monitoring services available in kolla.
monasca-guide
osprofiler-guide
prometheus-guide
skydive-guide

View File

@ -1,37 +0,0 @@
.. _skydive-guide:
====================================
Skydive - Real time network analyzer
====================================
Overview
~~~~~~~~
Skydive is an open source real-time network topology and protocols analyzer.
It aims to provide a comprehensive way of understanding what is happening in
the network infrastructure.
Skydive agents collect topology information and flows and forward them to a
central agent for further analysis.
All the information is stored in an Elasticsearch database.
Configuration on Kolla deployment
---------------------------------
Enable Skydive in ``/etc/kolla/globals.yml`` file:
.. code-block:: yaml
enable_skydive: "yes"
enable_elasticsearch: "yes"
Verify operation
----------------
After successful deployment, Skydive can be accessed using a browser on
``<kolla_external_vip_address>:8085``.
The default username is ``admin``, the password can be located under
``<keystone_admin_password>`` in ``/etc/kolla/passwords.yml``.
For more information about how Skydive works, see
`Skydive An open source real-time network topology and protocols analyzer
<https://github.com/skydive-project/skydive/>`__.

View File

@ -393,7 +393,7 @@ workaround_ansible_issue_8743: yes
#enable_nova_ssh: "yes"
#enable_octavia: "no"
#enable_octavia_driver_agent: "{{ enable_octavia | bool and neutron_plugin_agent == 'ovn' }}"
#enable_opensearch: "{{ enable_central_logging | bool or enable_osprofiler | bool or enable_skydive | bool or (enable_cloudkitty | bool and cloudkitty_storage_backend == 'elasticsearch') }}"
#enable_opensearch: "{{ enable_central_logging | bool or enable_osprofiler | bool or (enable_cloudkitty | bool and cloudkitty_storage_backend == 'elasticsearch') }}"
#enable_opensearch_dashboards: "{{ enable_opensearch | bool }}"
#enable_opensearch_dashboards_external: "{{ enable_opensearch_dashboards | bool }}"
#enable_openvswitch: "{{ enable_neutron | bool and neutron_plugin_agent != 'linuxbridge' }}"
@ -406,7 +406,6 @@ workaround_ansible_issue_8743: yes
#enable_redis: "no"
#enable_sahara: "no"
#enable_senlin: "no"
#enable_skydive: "no"
#enable_solum: "no"
#enable_swift: "no"
#enable_swift_s3api: "no"

View File

@ -0,0 +1,5 @@
---
upgrade:
- |
``skydive`` service deployment support has been dropped, following
removal of Kolla ``skydive`` images.

View File

@ -257,9 +257,6 @@ control
[zun:children]
control
[skydive:children]
monitoring
[redis:children]
control
@ -649,14 +646,6 @@ compute
[zun-cni-daemon:children]
compute
# Skydive
[skydive-analyzer:children]
skydive
[skydive-agent:children]
compute
network
# Tacker
[tacker-server:children]
tacker