---
# ============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 flannel
    - name: Set network plugin to Flannel
      lineinfile:
        path: "{{ engine_cache }}/repos/kubespray/inventory/engine/group_vars/k8s-cluster/k8s-cluster.yml"
        regexp: "^kube_network_plugin:.*"
        line: "kube_network_plugin: flannel"

# NOTE (fdegir): common postinstall tasks
- name: Execute common postinstall tasks
  import_playbook: "../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

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