Containarise Barbican API
[apex-tripleo-heat-templates.git] / docker / services / ceph-ansible / ceph-base.yaml
index e65c503..d78ff7f 100644 (file)
@@ -30,6 +30,14 @@ parameters:
     description: Mapping of service endpoint -> protocol. Typically set
                  via parameter_defaults in the resource registry.
     type: json
+  StackUpdateType:
+    type: string
+    description: >
+      Type of update, to differentiate between UPGRADE and UPDATE cases
+      when StackAction is UPDATE (both are the same stack action).
+    constraints:
+    - allowed_values: ['', 'UPGRADE']
+    default: ''
   CephAnsibleWorkflowName:
     type: string
     description: Name of the Mistral workflow to execute
@@ -38,10 +46,18 @@ parameters:
     type: string
     description: Path to the ceph-ansible playbook to execute
     default: /usr/share/ceph-ansible/site-docker.yml.sample
+  CephAnsibleUpgradePlaybook:
+    type: string
+    description: Path to the ceph-ansible playbook to execute on upgrade
+    default: /usr/share/ceph-ansible/infrastructure-playbooks/take-over-existing-cluster.yml
   CephAnsibleExtraConfig:
     type: json
     description: Extra vars for the ceph-ansible playbook
     default: {}
+  CephAnsibleSkipTags:
+    type: string
+    description: List of ceph-ansible tags to skip
+    default: 'package-install,with_pkg'
   CephClusterFSID:
     type: string
     description: The Ceph cluster FSID. Must be a UUID.
@@ -78,7 +94,7 @@ parameters:
     default: vms
     type: string
   CephClientKey:
-    description: The Ceph client key. Can be created with ceph-authtool --gen-print-key. Currently only used for external Ceph deployments to create the openstack user keyring.
+    description: The Ceph client key. Can be created with ceph-authtool --gen-print-key.
     type: string
     hidden: true
   CephClientUserName:
@@ -109,6 +125,8 @@ conditions:
     yaql:
       data: {get_param: DockerCephDaemonImage}
       expression: $.data.split('/')[0].matches('(\.|:)')
+  perform_upgrade:
+    equals: [{get_param: StackUpdateType}, 'UPGRADE']
 
 resources:
   DockerImageUrlParts:
@@ -120,14 +138,14 @@ resources:
           if:
           - custom_registry_host
           - yaql:
-              expression: let(location => $.data.rightSplit(':', 1)[0]) -> regex('(?:https?://)?(.*)/').split($location)[1]
+              expression: let(location => $.data.rightSplit(':', 1)[0]) -> regex('(?:https?://)?(.*?)/(.*)').split($location)[1]
               data: {get_param: DockerCephDaemonImage}
           - docker.io
         image:
           if:
           - custom_registry_host
           - yaql:
-              expression: let(location => $.data.rightSplit(':', 1)[0]) -> regex('(?:https?://)?(.*)/').split($location)[2]
+              expression: let(location => $.data.rightSplit(':', 1)[0]) -> regex('(?:https?://)?(.*?)/(.*)').split($location)[2]
               data: {get_param: DockerCephDaemonImage}
           - yaql:
               expression: $.data.rightSplit(':', 1)[0]
@@ -154,10 +172,16 @@ outputs:
           - name: ceph_base_ansible_workflow
             workflow: { get_param: CephAnsibleWorkflowName }
             input:
+              ansible_skip_tags: {get_param: CephAnsibleSkipTags}
               ceph_ansible_extra_vars: {get_param: CephAnsibleExtraConfig}
-              ceph_ansible_playbook: {get_param: CephAnsiblePlaybook}
+              ceph_ansible_playbook:
+                if:
+                  - perform_upgrade
+                  - {get_param: CephAnsibleUpgradePlaybook}
+                  - {get_param: CephAnsiblePlaybook}
       config_settings:
         ceph_common_ansible_vars:
+          ireallymeanit: 'yes'
           fsid: { get_param: CephClusterFSID }
           docker: true
           ceph_docker_registry: {get_attr: [DockerImageUrlParts, value, host]}