summaryrefslogtreecommitdiffstats
path: root/kud/deployment_infra/playbooks/preconfigure-sriov.yml
blob: 8c95aae84c17b0aa165ce5c4b592cd6e5b4abfa9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
---
# SPDX-license-identifier: Apache-2.0
##############################################################################
# Copyright (c) 2018
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################

- hosts: localhost
  become: yes
  pre_tasks:
    - name: Load kud variables
      include_vars:
        file: kud-vars.yml
  tasks:
    - name: Create SRIOV dest folder
      file:
        state: directory
        path: "{{ sriov_dest }}"
    - name: Fetching SRIOV driver
      block:
      - name: Download SRIOV driver tarball
        get_url:
          url: "{{ sriov_driver_url }}"
          dest: "{{ sriov_dest }}/{{ sriov_package }}.tar.gz"

- hosts: kube-node
  become: yes
  pre_tasks:
    - name: Load kud variables
      include_vars:
        file: kud-vars.yml
  tasks:
    - name: Create a destination for driver folder in the target's /tmp
      file:
        state: directory
        path: "{{ item }}"
      with_items:
        - "{{ base_dest }}/sriov/{{ sriov_package }}"
    - name: Create SRIOV dest folder
      file:
        state: directory
        path: "sriov"
    - name: Register SRIOV env variable
      shell: "echo {{ SRIOV_ENABLED | default(False) }}"
    - name: Copy SRIOV check script to target
      copy:
        src: "{{ playbook_dir }}/sriov_hardware_check.sh"
        dest: sriov
        mode: 0755
    - name: Run the script and re-evaluate the variable
      command: "sriov/sriov_hardware_check.sh"
      register: output
    - debug:
        var: output.stdout_lines
    - set_fact:
        SRIOV_ENABLED: "{{ output.stdout }}"
    - debug:
        var: output
    - name: Clean the script and folder
      file:
        path: sriov
        state: absent
    - name: Install SRIOV compilation packges
      package:
        name: "{{ item }}"
        state: present
      with_items: "{{ sriov_pkgs }}"
      when: SRIOV_ENABLED
    - name: Extract SRIOV source code
      unarchive:
         src: "{{ sriov_dest }}/{{ sriov_package }}.tar.gz"
         dest: "{{ base_dest }}/sriov"
      when: SRIOV_ENABLED
    - name: Build the SRIOV target
      make:
        chdir: "{{ base_dest }}/sriov/{{ sriov_package }}/src"
      when: SRIOV_ENABLED
    - name: Create SRIOV driver folder in the target destination
      file:
        state: directory
        path: "{{ item }}"
      with_items:
        - sriov_driver
      when: SRIOV_ENABLED
    - name: Copy SRIOV module to target destination
      copy:
        src: "{{ base_dest }}/sriov/{{ sriov_package }}/src/iavf.ko"
        dest: sriov_driver
        remote_src: yes
      when: SRIOV_ENABLED
    - name: Copy SRIOV install script to target
      copy:
        src: "{{ playbook_dir }}/install_iavf_drivers.sh"
        dest: sriov_driver/install.sh
        mode: 0755
      when: SRIOV_ENABLED
    - name: Run the install script with arguments
      shell: ./install.sh
      args:
        chdir: "sriov_driver"
      when: SRIOV_ENABLED
    - name: Clean the SRIOV folder
      file:
        path: "{{ base_dest }}/sriov"
        state: absent