---
# ============LICENSE_START=======================================================
#  Copyright (C) 2019 The Nordix Foundation. 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.
#
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================

# NOTE (fdegir): scenario specific preinstall tasks
- hosts: localhost
  connection: local
  gather_facts: false
  become: false
  tags:
    - preinstall

  tasks:
    # set networking plugin to calico
    - name: Set network plugin to Calico
      lineinfile:
        path: "{{ engine_cache }}/repos/kubespray/inventory/engine/group_vars/k8s-cluster/k8s-cluster.yml"
        regexp: "^kube_network_plugin:.*"
        line: "kube_network_plugin: calico"

# NOTE (fdegir): common postinstall tasks
- name: Execute common postinstall tasks
  import_playbook: "../playbooks/postinstall.yaml"
  tags: postinstall

# NOTE (fdegir): scenario specific postinstall tasks
- name: Install CEPH
  import_playbook: "../apps/ceph/kubespray/playbooks/install.yml"
  tags: postinstall

- name: Install Prometheus
  import_playbook: "../apps/prometheus/kubespray/playbooks/install.yml"
  tags: postinstall

- name: Install Istio
  import_playbook: "../apps/istio/kubespray/playbooks/install.yml"
  tags: postinstall

# vim: set ts=2 sw=2 expandtab:
