#  Copyright 2020 Dell Inc. or its subsidiaries. All Rights Reserved.
#
#  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: Helm - add Polyaxon repo
  command: "helm repo add polyaxon '{{ polyaxon_helm_chart_repo }}'"
  changed_when: true

- name: Helm - update repo
  command: helm repo update
  changed_when: true

#- name: Copy Polyaxon custom config file
  #copy:
   #src: polyaxon_config.yaml
   #dest: "{{ polyaxon_config_file_dest }}"
   #owner: root
   #group: root
   #mode: "{{ polyaxon_config_file_mode }}"

- name: Polyaxon deploy
  block:
    - name: Polyaxon deploy
      command: >
        helm upgrade --cleanup-on-fail \
        --install {{ polyaxon_namespace }} polyaxon/polyaxon \
        --namespace {{ polyaxon_namespace }} \
        --create-namespace \
        --version {{ helm_chart_version }} \
#        --values {{ polyaxon_config_file_dest }} \
        --timeout {{ timeout_min_sec }}
      register: deployment_output

  rescue:
    - name: Polyaxon deployment error
      debug:
        msg: "Previous Polyaxon deployment is in progress"
      when: "'another operation (install/upgrade/rollback) is in progress' in deployment_output.stderr"

    - name: Delete existing release
      command: helm delete '{{ polyaxon_namespace }}'

    - name: Polyaxon deploy
      command: >
        helm upgrade --cleanup-on-fail \
        --install {{ polyaxon_namespace }} polyaxon/polyaxon \
        --namespace {{ polyaxon_namespace }} \
        --create-namespace \
        --version {{ helm_chart_version }} \
#        --values {{ polyaxon_config_file_dest }} \
        --timeout {{ timeout_min_sec }}
