# Copyright 2020-present Open Networking Foundation
#
# 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.

---
# Check ansible version
- hosts: localhost
  become: no
  gather_facts: False
  tasks:
    - name: "Check ansible version ==2.9.5"
      assert:
        msg: "Ansible must be v2.9.5"
        that:
          - ansible_version.string is version("2.9.5", "==")
  vars:
    ansible_connection: local

# Prepare UPF nodes
# 1) Check VT-d is enabled in BIOS
# 2) Enable IOMMU and Hugepages
# 3) Create VFs on SRIOV PF and bind to vfio
# 4) Reboot to apply
- hosts: upf
  any_errors_fatal: "{{ any_errors_fatal | default(true) }}"
  roles:
    - { role: sriov-dpdk, when: upf_sriov_enabled }

# Router setup
# 1) Assign SGI and S1U gateway address
# 2) Add routing to UE pool
# 3) Add SNAT rule for UE pool
# 4) Install and configure VPN server
- hosts: router
  any_errors_fatal: "{{ any_errors_fatal | default(true) }}"
  roles:
    - { role: router, when: router_enabled or vpn_enabled }

# K8S node setup
# 1) Time synch
# 2) Add internal domains for Rancher and Docker registry to /etc/hosts
# 3) Install Docker
# 4) Install K8s
- hosts: kube-master:kube-worker
  any_errors_fatal: "{{ any_errors_fatal | default(true) }}"
  roles:
    - { role: k8s }

#- hosts: accelleran
