Add an openshift-cns service
This service file allows for enabling CNS in an OpenShift deployment. It works as a tagging service and the rest of the configs are applied in the openshift-master service file. Note that the disks used can be specified as follows: parameter_defaults: OpenShiftGlusterDisks: - /dev/sdb Or per-role like: parameter_defaults: OpenShiftMasterParameters: OpenShiftGlusterDisks: - /dev/sdb OpenShiftWorkerParameters: OpenShiftGlusterDisks: - /dev/sdc Change-Id: I92972d89ee7edf2ff211e88c6e0758628c3018a2
This commit is contained in:

committed by
Martin André

parent
5d69ef030e
commit
e200974421
7
environments/openshift-cns.yaml
Normal file
7
environments/openshift-cns.yaml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
resource_registry:
|
||||||
|
OS::TripleO::Services::OpenShift::GlusterFS: ../extraconfig/services/openshift-cns.yaml
|
||||||
|
|
||||||
|
parameter_defaults:
|
||||||
|
OpenShiftGlobalVariables:
|
||||||
|
openshift_storage_glusterfs_namespace: glusterfs
|
||||||
|
openshift_storage_glusterfs_name: storage
|
84
extraconfig/services/openshift-cns.yaml
Normal file
84
extraconfig/services/openshift-cns.yaml
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
heat_template_version: queens
|
||||||
|
|
||||||
|
description: External tasks definition for OpenShift
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
RoleNetIpMap:
|
||||||
|
default: {}
|
||||||
|
type: json
|
||||||
|
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
|
||||||
|
OpenShiftGlusterDisks:
|
||||||
|
default:
|
||||||
|
- /dev/vdb
|
||||||
|
- /dev/vdc
|
||||||
|
- /dev/vdd
|
||||||
|
description: List of disks for openshift_glusterfs service to use
|
||||||
|
type: comma_delimited_list
|
||||||
|
tags:
|
||||||
|
- role_specific
|
||||||
|
|
||||||
|
resources:
|
||||||
|
RoleParametersValue:
|
||||||
|
type: OS::Heat::Value
|
||||||
|
properties:
|
||||||
|
type: json
|
||||||
|
value:
|
||||||
|
map_replace:
|
||||||
|
- map_replace:
|
||||||
|
- OpenShiftGlusterDisks: OpenShiftGlusterDisks
|
||||||
|
- values: {get_param: [RoleParameters]}
|
||||||
|
- values:
|
||||||
|
OpenShiftGlusterDisks: {get_param: OpenShiftGlusterDisks}
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
role_data:
|
||||||
|
description: Role data for the Openshift Service
|
||||||
|
value:
|
||||||
|
# This service template essentially tags the nodes that we want
|
||||||
|
# as cns. The actual installation is performed in
|
||||||
|
# openshift-master service template.
|
||||||
|
service_name: openshift_glusterfs
|
||||||
|
config_settings:
|
||||||
|
tripleo.openshift_glusterfs.firewall_rules:
|
||||||
|
'200 openshift-glusterfs kubelet':
|
||||||
|
dport:
|
||||||
|
- 2222
|
||||||
|
- 3260
|
||||||
|
- 10250
|
||||||
|
- 24008
|
||||||
|
- 24010
|
||||||
|
proto: tcp
|
||||||
|
'200 openshift-glusterfs external services':
|
||||||
|
dport: '49152-49251'
|
||||||
|
host_prep_tasks:
|
||||||
|
- name: Wipe the configured disks
|
||||||
|
shell:
|
||||||
|
wipefs -af {{item}}
|
||||||
|
with_items: {get_attr: [RoleParametersValue, value, OpenShiftGlusterDisks]}
|
||||||
|
upgrade_tasks: []
|
||||||
|
step_config: ''
|
@@ -48,6 +48,28 @@ parameters:
|
|||||||
default: {}
|
default: {}
|
||||||
description: OpenShift node vars specific for the worker nodes
|
description: OpenShift node vars specific for the worker nodes
|
||||||
type: json
|
type: json
|
||||||
|
OpenShiftGlusterDisks:
|
||||||
|
default:
|
||||||
|
- /dev/vdb
|
||||||
|
- /dev/vdc
|
||||||
|
- /dev/vdd
|
||||||
|
description: List of disks for openshift_glusterfs service to use
|
||||||
|
type: comma_delimited_list
|
||||||
|
tags:
|
||||||
|
- role_specific
|
||||||
|
|
||||||
|
resources:
|
||||||
|
RoleParametersValue:
|
||||||
|
type: OS::Heat::Value
|
||||||
|
properties:
|
||||||
|
type: json
|
||||||
|
value:
|
||||||
|
map_replace:
|
||||||
|
- map_replace:
|
||||||
|
- OpenShiftGlusterDisks: OpenShiftGlusterDisks
|
||||||
|
- values: {get_param: [RoleParameters]}
|
||||||
|
- values:
|
||||||
|
OpenShiftGlusterDisks: {get_param: OpenShiftGlusterDisks}
|
||||||
|
|
||||||
outputs:
|
outputs:
|
||||||
role_data:
|
role_data:
|
||||||
@@ -82,6 +104,7 @@ outputs:
|
|||||||
openshift_global_vars: {get_param: OpenShiftGlobalVariables}
|
openshift_global_vars: {get_param: OpenShiftGlobalVariables}
|
||||||
openshift_master_node_vars: {get_param: OpenShiftMasterNodeVars}
|
openshift_master_node_vars: {get_param: OpenShiftMasterNodeVars}
|
||||||
openshift_worker_node_vars: {get_param: OpenShiftWorkerNodeVars}
|
openshift_worker_node_vars: {get_param: OpenShiftWorkerNodeVars}
|
||||||
|
openshift_gluster_disks: {get_attr: [RoleParametersValue, value, OpenShiftGlusterDisks]}
|
||||||
|
|
||||||
- name: generate openshift inventory
|
- name: generate openshift inventory
|
||||||
copy:
|
copy:
|
||||||
@@ -127,6 +150,21 @@ outputs:
|
|||||||
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
{% if groups['openshift_glusterfs'] | default([]) %}
|
||||||
|
glusterfs:
|
||||||
|
hosts:
|
||||||
|
{% for host in groups['openshift_glusterfs'] | default([]) -%}
|
||||||
|
{{ hostvars.raw_get(host)['ansible_hostname'] }}:
|
||||||
|
glusterfs_ip: {{hostvars.raw_get(host)['storage_ip']}}
|
||||||
|
glusterfs_devices:
|
||||||
|
{{openshift_gluster_disks | to_nice_yaml() | indent(8) }}
|
||||||
|
ansible_user: {{ hostvars.raw_get(host)['ansible_user'] | default(hostvars.raw_get(host)['ansible_ssh_user']) | default('root') }}
|
||||||
|
ansible_host: {{ hostvars.raw_get(host)['ansible_host'] | default(host) }}
|
||||||
|
ansible_become: true
|
||||||
|
openshift_schedulable: true
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
etcd:
|
etcd:
|
||||||
children:
|
children:
|
||||||
masters: {}
|
masters: {}
|
||||||
@@ -135,6 +173,7 @@ outputs:
|
|||||||
children:
|
children:
|
||||||
masters: {}
|
masters: {}
|
||||||
nodes: {}
|
nodes: {}
|
||||||
|
{% if groups['openshift_glusterfs'] | default([]) %}glusterfs: {}{% endif %}
|
||||||
|
|
||||||
- name: generate openshift global defaults
|
- name: generate openshift global defaults
|
||||||
copy:
|
copy:
|
||||||
|
@@ -200,6 +200,7 @@ resource_registry:
|
|||||||
OS::TripleO::Services::ContainersLogrotateCrond: docker/services/logrotate-crond.yaml
|
OS::TripleO::Services::ContainersLogrotateCrond: docker/services/logrotate-crond.yaml
|
||||||
OS::TripleO::Services::OpenShift::Master: OS::Heat::None
|
OS::TripleO::Services::OpenShift::Master: OS::Heat::None
|
||||||
OS::TripleO::Services::OpenShift::Worker: OS::Heat::None
|
OS::TripleO::Services::OpenShift::Worker: OS::Heat::None
|
||||||
|
OS::TripleO::Services::OpenShift::GlusterFS: OS::Heat::None
|
||||||
OS::TripleO::Services::SwiftProxy: docker/services/swift-proxy.yaml
|
OS::TripleO::Services::SwiftProxy: docker/services/swift-proxy.yaml
|
||||||
OS::TripleO::Services::SwiftDispersion: OS::Heat::None
|
OS::TripleO::Services::SwiftDispersion: OS::Heat::None
|
||||||
OS::TripleO::Services::ExternalSwiftProxy: OS::Heat::None
|
OS::TripleO::Services::ExternalSwiftProxy: OS::Heat::None
|
||||||
|
Reference in New Issue
Block a user