Allow to skip docker reconfiguration during stack update

When installing OpenShift by means of TripleO, after
the initial docker configuration, openshift-ansible
also adds several parameters there.

Then, if we want to remove a single node, then a stack
update is performed, which returns the configuration
to its original state. In other words, it removes all
parameters added by openshift-ansible, which breaks OpenShift.

This commit adds the ability to disable reconfiguration of
docker at the time of stack update for all roles associated
with OpenShift.

Closes-Bug: #1804790

Depends-On: I0bcaeea9cd24ab35a81d8c3d6fc3a384c1e4c3c2
Change-Id: If202be5d27d81672e39cbe21867459d277220e23
This commit is contained in:
Mike Fedosin 2018-11-28 15:59:53 +01:00
parent beccd1076f
commit 0101b46387
5 changed files with 26 additions and 0 deletions

View File

@ -68,6 +68,12 @@ parameters:
default: '' default: ''
description: User added to the docker group in order to use container commands. description: User added to the docker group in order to use container commands.
type: string type: string
DockerSkipUpdateReconfiguration:
default: false
type: boolean
description: Flag to disable docker reconfiguration during stack update.
tags:
- role_specific
parameter_groups: parameter_groups:
- label: deprecated - label: deprecated
description: | description: |
@ -78,6 +84,21 @@ parameter_groups:
parameters: parameters:
- DockerAdditionalSockets - DockerAdditionalSockets
resources:
# Merging role-specific parameters (RoleParameters) with the default parameters.
# RoleParameters will have the precedence over the default parameters.
RoleParametersValue:
type: OS::Heat::Value
properties:
type: json
value:
map_replace:
- map_replace:
- DockerSkipUpdateReconfiguration: DockerSkipUpdateReconfiguration
- values: {get_param: [RoleParameters]}
- values:
DockerSkipUpdateReconfiguration: {get_param: DockerSkipUpdateReconfiguration}
conditions: conditions:
insecure_registry_is_empty: {equals : [{get_param: DockerInsecureRegistryAddress}, []]} insecure_registry_is_empty: {equals : [{get_param: DockerInsecureRegistryAddress}, []]}
service_debug_unset: {equals : [{get_param: DockerDebug}, '']} service_debug_unset: {equals : [{get_param: DockerDebug}, '']}
@ -109,6 +130,7 @@ outputs:
- {get_param: DockerInsecureRegistryAddress} - {get_param: DockerInsecureRegistryAddress}
container_registry_mirror: {get_param: DockerRegistryMirror} container_registry_mirror: {get_param: DockerRegistryMirror}
container_registry_network_options: {get_param: DockerNetworkOptions} container_registry_network_options: {get_param: DockerNetworkOptions}
container_registry_skip_reconfiguration: {get_attr: [RoleParametersValue, value, DockerSkipUpdateReconfiguration]}
- include_role: - include_role:
name: container-registry name: container-registry
tasks_from: docker tasks_from: docker

View File

@ -7,6 +7,7 @@
CountDefault: 1 CountDefault: 1
RoleParametersDefault: RoleParametersDefault:
OpenShiftNodeGroupName: 'node-config-all-in-one' OpenShiftNodeGroupName: 'node-config-all-in-one'
DockerSkipUpdateReconfiguration: true
tags: tags:
- primary - primary
- controller - controller

View File

@ -7,6 +7,7 @@
CountDefault: 1 CountDefault: 1
RoleParametersDefault: RoleParametersDefault:
OpenShiftNodeGroupName: 'node-config-infra' OpenShiftNodeGroupName: 'node-config-infra'
DockerSkipUpdateReconfiguration: true
tags: tags:
- openshift - openshift
networks: networks:

View File

@ -7,6 +7,7 @@
CountDefault: 1 CountDefault: 1
RoleParametersDefault: RoleParametersDefault:
OpenShiftNodeGroupName: 'node-config-master' OpenShiftNodeGroupName: 'node-config-master'
DockerSkipUpdateReconfiguration: true
tags: tags:
- primary - primary
- controller - controller

View File

@ -7,6 +7,7 @@
CountDefault: 1 CountDefault: 1
RoleParametersDefault: RoleParametersDefault:
OpenShiftNodeGroupName: 'node-config-compute' OpenShiftNodeGroupName: 'node-config-compute'
DockerSkipUpdateReconfiguration: true
tags: tags:
- openshift - openshift
networks: networks: