Add dashboard component as new ceph composable service.
This review introduces the CephDashboard service to allow operators to deploy the new ceph dashboard along with the other ceph components. According to the spec we can add the environment file to reference the template that contains all the parameters needed to deploy the ceph-dashboard via ceph-ansible related roles. Implements: blueprint ceph-dashboard Change-Id: I1d31cd99823686986cdbd3ac1df184e9457a361e
This commit is contained in:
parent
2fd958eb64
commit
a407d4f5da
|
@ -5,6 +5,7 @@ resource_registry:
|
|||
OS::TripleO::Services::CephMon: ../../deployment/ceph-ansible/ceph-mon.yaml
|
||||
OS::TripleO::Services::CephOSD: ../../deployment/ceph-ansible/ceph-osd.yaml
|
||||
OS::TripleO::Services::CephClient: ../../deployment/ceph-ansible/ceph-client.yaml
|
||||
OS::TripleO::Services::CephGrafana: ../../deployment/ceph-ansible/ceph-grafana.yaml
|
||||
OS::TripleO::Services::PankoApi: ../../deployment/panko/panko-api-container-puppet.yaml
|
||||
OS::TripleO::Services::Collectd: ../../deployment/metrics/collectd-container-puppet.yaml
|
||||
OS::TripleO::Services::MetricsQdr: ../../deployment/metrics/qdr-container-puppet.yaml
|
||||
|
@ -148,6 +149,7 @@ parameter_defaults:
|
|||
ANSIBLE_SSH_RETRIES: '4'
|
||||
DEFAULT_FORKS: '3'
|
||||
NovaEnableRbdBackend: true
|
||||
CephEnableDashboard: true
|
||||
CinderEnableRbdBackend: true
|
||||
CinderRbdExtraPools: altrbd
|
||||
CinderBackupBackend: ceph
|
||||
|
|
|
@ -10,6 +10,7 @@ resource_registry:
|
|||
OS::TripleO::Services::CephMon: ../../deployment/ceph-ansible/ceph-mon.yaml
|
||||
OS::TripleO::Services::CephOSD: ../../deployment/ceph-ansible/ceph-osd.yaml
|
||||
OS::TripleO::Services::CephClient: ../../deployment/ceph-ansible/ceph-client.yaml
|
||||
OS::TripleO::Services::CephGrafana: ../../deployment/ceph-ansible/ceph-grafana.yaml
|
||||
OS::TripleO::Services::PankoApi: ../../deployment/deprecated/panko/panko-api-container-puppet.yaml
|
||||
OS::TripleO::Services::Collectd: ../../deployment/metrics/collectd-container-puppet.yaml
|
||||
OS::TripleO::Services::GnocchiApi: ../../deployment/gnocchi/gnocchi-api-container-puppet.yaml
|
||||
|
@ -90,6 +91,7 @@ parameter_defaults:
|
|||
CephAdminKey: 'AQDLOh1VgEp6FRAAFzT7Zw+Y9V6JJExQAsRnRQ=='
|
||||
CephClientKey: 'AQC+vYNXgDAgAhAAc8UoYt+OTz5uhV7ItLdwUw=='
|
||||
CephAnsiblePlaybookVerbosity: 1
|
||||
CephEnableDashboard: true
|
||||
CephAnsibleEnvironmentVariables:
|
||||
ANSIBLE_SSH_RETRIES: '4'
|
||||
DEFAULT_FORKS: '3'
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
- OS::TripleO::Services::CephMon
|
||||
- OS::TripleO::Services::CephRbdMirror
|
||||
- OS::TripleO::Services::CephRgw
|
||||
- OS::TripleO::Services::CephGrafana
|
||||
- OS::TripleO::Services::CertmongerUser
|
||||
- OS::TripleO::Services::CinderApi
|
||||
- OS::TripleO::Services::CinderBackendDellPs
|
||||
|
|
|
@ -53,6 +53,10 @@ parameters:
|
|||
description: CLI tool used to manage containers.
|
||||
constraints:
|
||||
- allowed_values: ['docker', 'podman']
|
||||
CephEnableDashboard:
|
||||
type: boolean
|
||||
default: false
|
||||
description: Parameter used to trigger the dashboard deployment.
|
||||
CephAnsiblePlaybook:
|
||||
type: comma_delimited_list
|
||||
description: >
|
||||
|
@ -381,6 +385,7 @@ resources:
|
|||
- {get_param: CephIPv6}
|
||||
- ipv6
|
||||
- ipv4
|
||||
dashboard_enabled: {get_param: CephEnableDashboard}
|
||||
|
||||
outputs:
|
||||
role_data:
|
||||
|
|
|
@ -0,0 +1,125 @@
|
|||
heat_template_version: rocky
|
||||
|
||||
description: >
|
||||
Ceph Grafana service.
|
||||
|
||||
parameters:
|
||||
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
|
||||
EndpointMap:
|
||||
default: {}
|
||||
description: Mapping of service endpoint -> protocol. Typically set
|
||||
via parameter_defaults in the resource registry.
|
||||
type: json
|
||||
CephGrafanaAdminUser:
|
||||
default: 'admin'
|
||||
description: Admin user for grafana component
|
||||
type: string
|
||||
CephGrafanaAdminPassword:
|
||||
description: Admin password for grafana component
|
||||
type: string
|
||||
hidden: true
|
||||
GrafanaPlugins:
|
||||
default: ['vonage-status-panel', 'grafana-piechart-panel']
|
||||
type: comma_delimited_list
|
||||
description: >
|
||||
List of plugins to enable on the grafana container
|
||||
GrafanaContainerImage:
|
||||
description: Grafana container image
|
||||
type: string
|
||||
GrafanaDashboardsPath:
|
||||
default: ''
|
||||
description: ceph dashboards templates built for grafana
|
||||
type: string
|
||||
GrafanaDataSource:
|
||||
default: 'Dashboard'
|
||||
description: Grafana datasource
|
||||
type: string
|
||||
PrometheusContainerImage:
|
||||
description: Ceph Prometheus container image
|
||||
type: string
|
||||
AlertManagerContainerImage:
|
||||
description: Ceph AlertManager container image
|
||||
type: string
|
||||
NodeExporterContainerImage:
|
||||
description: Ceph NodeExporter container image
|
||||
type: string
|
||||
|
||||
resources:
|
||||
CephBase:
|
||||
type: ./ceph-base.yaml
|
||||
properties:
|
||||
ServiceData: {get_param: ServiceData}
|
||||
ServiceNetMap: {get_param: ServiceNetMap}
|
||||
DefaultPasswords: {get_param: DefaultPasswords}
|
||||
EndpointMap: {get_param: EndpointMap}
|
||||
RoleName: {get_param: RoleName}
|
||||
RoleParameters: {get_param: RoleParameters}
|
||||
|
||||
CephGrafanaAnsibleVars:
|
||||
type: OS::Heat::Value
|
||||
properties:
|
||||
type: json
|
||||
value:
|
||||
vars:
|
||||
grafana_admin_user: {get_param: CephGrafanaAdminUser}
|
||||
grafana_admin_password: {get_param: CephGrafanaAdminPassword}
|
||||
grafana_container_image: {get_param: GrafanaContainerImage}
|
||||
grafana_dashboards_path: {get_param: GrafanaDashboardsPath}
|
||||
grafana_datasource: {get_param: GrafanaDataSource}
|
||||
grafana_plugins: {get_param: GrafanaPlugins}
|
||||
prometheus_container_image: {get_param: PrometheusContainerImage}
|
||||
alertmanager_container_image: {get_param: AlertManagerContainerImage}
|
||||
node_exporter_container_image: {get_param: NodeExporterContainerImage}
|
||||
outputs:
|
||||
role_data:
|
||||
description: Role data for the Ceph Dashboard service.
|
||||
value:
|
||||
service_name: ceph_grafana-server
|
||||
upgrade_tasks: []
|
||||
puppet_config:
|
||||
config_image: ''
|
||||
config_volume: ''
|
||||
step_config: ''
|
||||
docker_config: {}
|
||||
external_deploy_tasks:
|
||||
list_concat:
|
||||
- {get_attr: [CephBase, role_data, external_deploy_tasks]}
|
||||
- - name: ceph_dashboard_external_deploy_init
|
||||
when: step == '1'
|
||||
tags: ceph
|
||||
block:
|
||||
- name: set ceph-ansible group vars
|
||||
set_fact:
|
||||
ceph_ansible_group_vars_grafana: {get_attr: [CephGrafanaAnsibleVars, value, vars]}
|
||||
- name: generate ceph-ansible grafana-server group vars
|
||||
copy:
|
||||
dest: "{{playbook_dir}}/ceph-ansible/group_vars/grafana-server.yml"
|
||||
content: "{{ceph_ansible_group_vars_grafana|to_nice_yaml}}"
|
||||
external_update_tasks: {get_attr: [CephBase, role_data, external_update_tasks]}
|
||||
external_upgrade_tasks: {get_attr: [CephBase, role_data, external_upgrade_tasks]}
|
||||
config_settings:
|
||||
map_merge:
|
||||
- tripleo::ceph_dashboard::firewall_rules:
|
||||
'123 ceph_dashboard':
|
||||
dport: [3000,9090,9093,9094,9100]
|
||||
- {}
|
|
@ -55,6 +55,11 @@ parameters:
|
|||
ManilaCephFSMetadataPoolPGNum:
|
||||
default: 128
|
||||
type: number
|
||||
CephEnableDashboard:
|
||||
type: boolean
|
||||
default: false
|
||||
description: Parameter used to trigger the dashboard deployment.
|
||||
|
||||
|
||||
parameter_groups:
|
||||
- label: deprecated
|
||||
|
@ -66,6 +71,7 @@ parameter_groups:
|
|||
conditions:
|
||||
deprecated_data_pool_pgnum: {not: {equals: [{get_param: ManilaCephFSDataPoolPGNum}, 128]}}
|
||||
deprecated_metadata_pool_pgnum: {not: {equals: [{get_param: ManilaCephFSMetadataPoolPGNum}, 128]}}
|
||||
dashboard_enabled: {equals: [{get_param: CephEnableDashboard}, true]}
|
||||
|
||||
resources:
|
||||
CephBase:
|
||||
|
@ -132,5 +138,10 @@ outputs:
|
|||
- tripleo::ceph_mds::firewall_rules:
|
||||
'112 ceph_mds':
|
||||
dport:
|
||||
- '6800-7300'
|
||||
list_concat:
|
||||
- - '6800-7300'
|
||||
- if:
|
||||
- dashboard_enabled
|
||||
- - '9100'
|
||||
- []
|
||||
- {}
|
||||
|
|
|
@ -30,6 +30,21 @@ parameters:
|
|||
description: Mapping of service endpoint -> protocol. Typically set
|
||||
via parameter_defaults in the resource registry.
|
||||
type: json
|
||||
CephDashboardAdminUser:
|
||||
default: 'admin'
|
||||
description: Admin user for grafana component
|
||||
type: string
|
||||
CephDashboardAdminPassword:
|
||||
description: Admin password for grafana component
|
||||
type: string
|
||||
hidden: true
|
||||
CephEnableDashboard:
|
||||
type: boolean
|
||||
default: false
|
||||
description: Parameter used to trigger the dashboard deployment.
|
||||
|
||||
conditions:
|
||||
dashboard_enabled: {equals: [{get_param: CephEnableDashboard}, true]}
|
||||
|
||||
resources:
|
||||
CephBase:
|
||||
|
@ -49,6 +64,12 @@ resources:
|
|||
value:
|
||||
vars:
|
||||
ceph_mgr_docker_extra_env: '-e MGR_DASHBOARD=0'
|
||||
dashboard_admin_user: {get_param: CephDashboardAdminUser}
|
||||
dashboard_admin_password: {get_param: CephDashboardAdminPassword}
|
||||
dashboard_rgw_api_host: {get_param: [EndpointMap, CephRgwInternal, host]}
|
||||
dashboard_rgw_api_port: {get_param: [EndpointMap, CephRgwInternal, port]}
|
||||
dashboard_rgw_api_scheme: {get_param: [EndpointMap, CephRgwInternal, protocol]}
|
||||
dashboard_rgw_api_no_ssl_verify: false
|
||||
|
||||
outputs:
|
||||
role_data:
|
||||
|
@ -82,5 +103,10 @@ outputs:
|
|||
- tripleo::ceph_mgr::firewall_rules:
|
||||
'113 ceph_mgr':
|
||||
dport:
|
||||
- '6800-7300'
|
||||
list_concat:
|
||||
- - '6800-7300'
|
||||
- if:
|
||||
- dashboard_enabled
|
||||
- - '8443'
|
||||
- []
|
||||
- {}
|
||||
|
|
|
@ -47,6 +47,13 @@ parameters:
|
|||
type: number
|
||||
default: 30
|
||||
description: Interval (in seconds) in between validation checks
|
||||
CephEnableDashboard:
|
||||
type: boolean
|
||||
default: false
|
||||
description: Parameter used to trigger the dashboard deployment.
|
||||
|
||||
conditions:
|
||||
dashboard_enabled: {equals: [{get_param: CephEnableDashboard}, true]}
|
||||
|
||||
resources:
|
||||
CephBase:
|
||||
|
@ -100,6 +107,11 @@ outputs:
|
|||
- tripleo::ceph_mon::firewall_rules:
|
||||
'110 ceph_mon':
|
||||
dport:
|
||||
- 6789
|
||||
- 3300
|
||||
list_concat:
|
||||
- - 6789
|
||||
- - 3300
|
||||
- if:
|
||||
- dashboard_enabled
|
||||
- - '9100'
|
||||
- []
|
||||
- {}
|
||||
|
|
|
@ -38,6 +38,13 @@ parameters:
|
|||
- /dev/vdb
|
||||
osd_scenario: lvm
|
||||
osd_objectstore: bluestore
|
||||
CephEnableDashboard:
|
||||
type: boolean
|
||||
default: false
|
||||
description: Parameter used to trigger the dashboard deployment.
|
||||
|
||||
conditions:
|
||||
dashboard_enabled: {equals: [{get_param: CephEnableDashboard}, true]}
|
||||
|
||||
resources:
|
||||
CephBase:
|
||||
|
@ -93,5 +100,10 @@ outputs:
|
|||
- tripleo::ceph_osd::firewall_rules:
|
||||
'111 ceph_osd':
|
||||
dport:
|
||||
- '6800-7300'
|
||||
list_concat:
|
||||
- - '6800-7300'
|
||||
- if:
|
||||
- dashboard_enabled
|
||||
- - '9100'
|
||||
- []
|
||||
- {}
|
||||
|
|
|
@ -38,6 +38,13 @@ parameters:
|
|||
type: string
|
||||
default: 'regionOne'
|
||||
description: Keystone region for endpoint
|
||||
CephEnableDashboard:
|
||||
type: boolean
|
||||
default: false
|
||||
description: Parameter used to trigger the dashboard deployment.
|
||||
|
||||
conditions:
|
||||
dashboard_enabled: {equals: [{get_param: CephEnableDashboard}, true]}
|
||||
|
||||
resources:
|
||||
CephBase:
|
||||
|
@ -95,7 +102,13 @@ outputs:
|
|||
map_merge:
|
||||
- tripleo::ceph_rgw::firewall_rules:
|
||||
'122 ceph rgw':
|
||||
dport: {get_param: [EndpointMap, CephRgwInternal, port]}
|
||||
dport:
|
||||
list_concat:
|
||||
- - {get_param: [EndpointMap, CephRgwInternal, port]}
|
||||
- if:
|
||||
- dashboard_enabled
|
||||
- - '9100'
|
||||
- []
|
||||
- {}
|
||||
service_config_settings:
|
||||
keystone:
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
resource_registry:
|
||||
OS::TripleO::Services::CephGrafana: ../../deployment/ceph-ansible/ceph-grafana.yaml
|
||||
|
||||
parameter_defaults:
|
||||
CephEnableDashboard: true
|
|
@ -117,6 +117,7 @@ resource_registry:
|
|||
OS::TripleO::Services::CephRbdMirror: OS::Heat::None
|
||||
OS::TripleO::Services::CephRgw: OS::Heat::None
|
||||
OS::TripleO::Services::CephOSD: OS::Heat::None
|
||||
OS::TripleO::Services::CephGrafana: OS::Heat::None
|
||||
OS::TripleO::Services::CephClient: OS::Heat::None
|
||||
OS::TripleO::Services::CephNfs: OS::Heat::None
|
||||
OS::TripleO::Services::CephExternal: OS::Heat::None
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
features:
|
||||
- |
|
||||
As ceph-dashboard is available on Ceph, the new ceph dashboard composable
|
||||
service enables a user scenario in which the dashboard is deployed along
|
||||
with the other ceph components using TripleO.
|
||||
This feature is disabled by default and can be enabled by operators adding
|
||||
to the deployment the ceph-dashboard.yaml environment file included
|
||||
in tripleo-heat-templates.
|
|
@ -17,6 +17,7 @@
|
|||
- OS::TripleO::Services::AuditD
|
||||
- OS::TripleO::Services::BootParams
|
||||
- OS::TripleO::Services::CACerts
|
||||
- OS::TripleO::Services::CephGrafana
|
||||
- OS::TripleO::Services::CephMds
|
||||
- OS::TripleO::Services::CephMgr
|
||||
- OS::TripleO::Services::CephMon
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
- OS::TripleO::Services::CeilometerAgentCentral
|
||||
- OS::TripleO::Services::CeilometerAgentNotification
|
||||
- OS::TripleO::Services::CephExternal
|
||||
- OS::TripleO::Services::CephGrafana
|
||||
- OS::TripleO::Services::CephMds
|
||||
- OS::TripleO::Services::CephMgr
|
||||
- OS::TripleO::Services::CephMon
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
- OS::TripleO::Services::CeilometerAgentCentral
|
||||
- OS::TripleO::Services::CeilometerAgentNotification
|
||||
- OS::TripleO::Services::CephExternal
|
||||
- OS::TripleO::Services::CephGrafana
|
||||
- OS::TripleO::Services::CephMds
|
||||
- OS::TripleO::Services::CephMgr
|
||||
- OS::TripleO::Services::CephMon
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
###############################################################################
|
||||
- name: HciCephAll
|
||||
description: |
|
||||
HCI Full Stack Role (OSD + MON + Nova + RGW + MDS + MGR + RBD Mirroring)
|
||||
HCI Full Stack Role (OSD + MON + Nova + RGW + MDS + MGR + RBD Mirroring + Dashboard)
|
||||
networks:
|
||||
InternalApi:
|
||||
subnet: internal_api_subnet
|
||||
|
@ -25,6 +25,7 @@
|
|||
- OS::TripleO::Services::CACerts
|
||||
- OS::TripleO::Services::CephClient
|
||||
- OS::TripleO::Services::CephExternal
|
||||
- OS::TripleO::Services::CephGrafana
|
||||
- OS::TripleO::Services::CephMds
|
||||
- OS::TripleO::Services::CephMgr
|
||||
- OS::TripleO::Services::CephMon
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
- OS::TripleO::Services::CeilometerAgentNotification
|
||||
- OS::TripleO::Services::CephClient
|
||||
- OS::TripleO::Services::CephExternal
|
||||
- OS::TripleO::Services::CephGrafana
|
||||
- OS::TripleO::Services::CephMds
|
||||
- OS::TripleO::Services::CephMgr
|
||||
- OS::TripleO::Services::CephMon
|
||||
|
|
|
@ -52,6 +52,7 @@
|
|||
- OS::TripleO::Services::CeilometerAgentCentral
|
||||
- OS::TripleO::Services::CeilometerAgentNotification
|
||||
- OS::TripleO::Services::CephExternal
|
||||
- OS::TripleO::Services::CephGrafana
|
||||
- OS::TripleO::Services::CephMds
|
||||
- OS::TripleO::Services::CephMgr
|
||||
- OS::TripleO::Services::CephMon
|
||||
|
|
|
@ -368,6 +368,7 @@ def validate_hci_role(hci_role_filename, hci_role_tpl):
|
|||
for role in hci_role_tpl:
|
||||
if role['name'] == 'HciCephAll':
|
||||
hci_role_services = role['ServicesDefault']
|
||||
hci_role_services.remove('OS::TripleO::Services::CephGrafana')
|
||||
hci_role_services.remove('OS::TripleO::Services::CephMds')
|
||||
hci_role_services.remove('OS::TripleO::Services::CephMgr')
|
||||
hci_role_services.remove('OS::TripleO::Services::CephMon')
|
||||
|
@ -403,6 +404,7 @@ def validate_ceph_role(ceph_role_filename, ceph_role_tpl):
|
|||
for role in ceph_role_tpl:
|
||||
if role['name'] == 'CephAll':
|
||||
ceph_role_services = role['ServicesDefault']
|
||||
ceph_role_services.remove('OS::TripleO::Services::CephGrafana')
|
||||
ceph_role_services.remove('OS::TripleO::Services::CephMds')
|
||||
ceph_role_services.remove('OS::TripleO::Services::CephMgr')
|
||||
ceph_role_services.remove('OS::TripleO::Services::CephMon')
|
||||
|
@ -433,6 +435,7 @@ def validate_controller_no_ceph_role(filename, tpl):
|
|||
services.remove('OS::TripleO::Services::CephClient')
|
||||
services.append('OS::TripleO::Services::CephMds')
|
||||
services.append('OS::TripleO::Services::CephMgr')
|
||||
services.append('OS::TripleO::Services::CephGrafana')
|
||||
services.append('OS::TripleO::Services::CephMon')
|
||||
services.append('OS::TripleO::Services::CephRbdMirror')
|
||||
services.append('OS::TripleO::Services::CephRgw')
|
||||
|
|
Loading…
Reference in New Issue