X-Git-Url: https://gerrit.akraino.org/r/gitweb?p=ta%2Fcaas-lcm.git;a=blobdiff_plain;f=su%2Froles%2Fsu_prepare%2Ftasks%2Fmerge-charts.yml;fp=su%2Froles%2Fsu_prepare%2Ftasks%2Fmerge-charts.yml;h=cff001af77fa01fb9bbd9258ad37c198b71e664c;hp=0000000000000000000000000000000000000000;hb=c4a2ca0d10edb88ba6f19f1f54115967439f01ca;hpb=adb5c7d2ca9db1b605943c7eab6946b71eacc5ef diff --git a/su/roles/su_prepare/tasks/merge-charts.yml b/su/roles/su_prepare/tasks/merge-charts.yml new file mode 100644 index 0000000..cff001a --- /dev/null +++ b/su/roles/su_prepare/tasks/merge-charts.yml @@ -0,0 +1,96 @@ +--- +# Copyright 2019 Nokia +# +# 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. + +- name: fetch files from server which contains the necessary variables + fetch: + src: /etc/swift/usr/admin/admin.yml + dest: /tmp/ + flat: yes + +- name: register infos for swift_auth + set_fact: + swift_credential: "{{ lookup('file', '/tmp/admin.yml') | from_yaml }}" + +- name: pause to wait for swift-update to be ready + pause: + minutes: 1 + +- name: authenticate on swift-upgrade + uri: + url: "{{ caas.swift_update }}/auth/v1.0" + headers: + X_Auth_User: admin:admin + X_Auth_Key: "{{ swift_credential.swift_password }}" + register: auth + +- name: get packages + uri: + url: "{{ caas.swift_update }}/v1.0/AUTH_admin/packages" + return_content: yes + headers: + X_Auth_Token: "{{ auth.x_auth_token }}" + register: packages + +- name: get charts from packages + set_fact: + charts: "{{ (packages.get('content','')|trim).split('\n') | select('search', 'charts.+\\.tgz') | list }}" + +- name: get value files from packages + set_fact: + value_files: "{{ (packages.get('content','')|trim).split('\n') | select('search', 'releases.+\\.yaml') | list }}" + ignore_errors: yes + +- name: create chart directory + file: + name: /tmp/su_chart + state: directory + +- name: download charts + args: + chdir: /tmp/su_chart + command: "curl -O -XGET -H'X-Auth-Token: {{ auth.x_auth_token }}' {{ caas.swift_update }}/v1.0/AUTH_admin/packages/{{ item }}" + with_items: "{{ charts }}" + +- name: download value files + args: + chdir: /tmp/su_chart + command: "curl -O -XGET -H'X-Auth-Token: {{ auth.x_auth_token }}' {{ caas.swift_update }}/v1.0/AUTH_admin/packages/{{ item }}" + with_items: "{{ value_files }}" + ignore_errors: yes + +- name: upload charts via chart-repo + args: + chdir: /tmp/su_chart/ + shell: "curl -sS -XPOST --cacert /etc/chart-repo/ssl/ca.pem --cert /etc/chart-repo/ssl/chart-repo?.pem --key /etc/chart-repo/ssl/chart-repo?-key.pem -H 'Content-Type: application/gzip' --data-binary @{{ item | basename }} {{ caas.chart_repo }}/{{ item }}" + with_items: "{{ charts }}" + +- name: helm repo update + shell: helm repo update default {{ caas.chart_repo }}/charts + +- name: authenticate on swift + uri: + url: "{{ caas.swift }}/auth/v1.0" + headers: + X_Auth_User: admin:admin + X_Auth_Key: "{{ swift_credential.swift_password }}" + register: auth_orig + ignore_errors: yes + +- name: upload value file via swift + args: + chdir: /tmp/su_chart/ + shell: "curl -XPUT -H 'X-Auth-Token: {{ auth_orig.x_auth_token }}' -T {{ item | basename }} {{ caas.swift }}/v1.0/AUTH_admin/packages/{{ item }}" + with_items: "{{ value_files }}" + ignore_errors: yes