tripleo-heat-templates/deployment/veritas-hyperscale/veritas-hyperscale-controller-baremetal-puppet.yaml
Emilien Macchi 32279c4a32 [train-squash] Backport "all Keystone resources with Ansible"
Manage all Keystone resources with Ansible

Change-Id: I96a3351fca26cd8bb122a86cb4c3a58d5f88573e
(cherry picked from commit 7f40baabcd)

keystone: fix trailing space

Change-Id: Id3642bd4f539f496d00298ab7996720f14cd0a3c
(cherry picked from commit 4c167191dc)

deployment: document keystone_resources

Bring some documentation into the deployment README about the new
keystone_resources interface.

Change-Id: I17c2c451136eb4729e4751a250d5545019ea84ff
(cherry picked from commit 362e92fb82)

Add novajoin to EndpointMap

Previously, novajoin was relying on hiera data to populate endpoints in
keystone, but that recently changed for the rest of the OpenStack
services. This commit updates novajoin to use the same approach with
EndpointMap. Otherwise, deploying the undercloud fails with an error
message similar to the following:

  Cannot create an endpoint with an invalid URL: http://%{hiera('ctlplane')}:9090/v1/.

Change-Id: I0e177a5e21ed9fb5eacba7a766c153ba99af34ae
(cherry picked from commit 18e51ca533)

keystone/ldap: add missing cloud name

... or Ansible will use the default "openstack" cloud, which isn't good.
We need to create domains in the actual overcloud.

Change-Id: I129d7355364c87c40f51372b402620790a31ec81
(cherry picked from commit b3538251d6)
2020-02-19 02:56:15 +00:00

131 lines
4.6 KiB
YAML

# Copyright (c) 2017 Veritas Technologies LLC.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
heat_template_version: rocky
description: >
Openstack Veritas HyperScale backend
parameters:
VrtsRabbitPassword:
type: string
description: The Rabbitmq password of the hyperscale user. Mandatory.
VrtsKeystonePassword:
type: string
description: The Keystone password of the hyperscale service. Mandatory.
VrtsMysqlPassword:
type: string
description: The MySQL password of the hyperscale user. Mandatory.
VrtsCtrlMgmtIP:
type: string
default: ''
description: The management IP of HyperScale. The value will be inferred
from the rest of the deployment settings if left blank.
VrtsDashboardIP:
type: string
default: ''
description: The dashboard IP of HyperScale. The value will be inferred
from the rest of the deployment settings if left blank.
VrtsZookeeperIP:
type: string
description: The IP of a node where Zookeeper is configured. Mandatory.
VrtsSSHPassword:
type: string
description: The SSH password of the hyperscale user. Mandatory.
VrtsConfigParam1:
type: string
default: ''
description: Additional config parameter. Optional.
VrtsConfigParam2:
type: string
default: ''
description: Additional config parameter. Optional.
VrtsConfigParam3:
type: string
default: ''
description: Additional config parameter. Optional.
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: {}
type: json
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
KeystoneRegion:
type: string
default: 'regionOne'
description: Keystone region for endpoint
outputs:
role_data:
description: Install Veritas HyperScale packages for controller.
value:
service_name: veritas_hyperscale_controller
config_settings:
global_config_settings:
vrts_ctrl_mgmt_ip: {get_param: VrtsCtrlMgmtIP}
vrts_dashboard_ip: {get_param: VrtsDashboardIP}
vrts_zookeeper_ip: {get_param: VrtsZookeeperIP}
vrts_ssh_passwd: {get_param: VrtsSSHPassword}
vrts_config_param1: {get_param: VrtsConfigParam1}
vrts_config_param2: {get_param: VrtsConfigParam2}
vrts_config_param3: {get_param: VrtsConfigParam3}
step_config: |
include ::veritas_hyperscale::controller_pkg_inst
service_config_settings:
rabbitmq:
vrts_rabbitmq_passwd: {get_param: VrtsRabbitPassword}
mysql:
vrts_mysql_passwd: {get_param: VrtsMysqlPassword}
keystone_resources:
hyperscale:
# Replicating what was done with Puppet manifest:
# https://github.com/vtas-hyperscale-ci/puppet-veritas_hyperscale/blob/7c7868adb027c5bcfdcb6fc9d86610470759ae28/manifests/hs_keystone.pp#L17
# Moving forward, we should have the Veritas part of EndpointMap so the service
# can live outside of the Keystone node.
endpoints:
public: &veritas_endpoint
make_url:
scheme: {get_param: [EndpointMap, KeystoneAdmin, protocol]}
host: {get_param: [EndpointMap, KeystoneAdmin, host]}
port: 8753
path: /v1/%(tenant_id)s
internal: *veritas_endpoint
admin: *veritas_endpoint
users:
hyperscale:
password: {get_param: VrtsKeystonePassword}
region: {get_param: KeystoneRegion}
service: 'infrastructure'
roles:
- infra_admin