Merge "Add dashboard component as new ceph composable service."
This commit is contained in:
commit
6e777cf24d
@ -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:
|
||||
|
125
deployment/ceph-ansible/ceph-grafana.yaml
Normal file
125
deployment/ceph-ansible/ceph-grafana.yaml
Normal file
@ -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:
|
||||
|
5
environments/ceph-ansible/ceph-dashboard.yaml
Normal file
5
environments/ceph-ansible/ceph-dashboard.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
resource_registry:
|
||||
OS::TripleO::Services::CephGrafana: ../../deployment/ceph-ansible/ceph-grafana.yaml
|
||||
|
||||
parameter_defaults:
|
||||
CephEnableDashboard: true
|
@ -114,6 +114,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
|
||||
|
@ -364,6 +364,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')
|
||||
@ -399,6 +400,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')
|
||||
@ -429,6 +431,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…
x
Reference in New Issue
Block a user