summaryrefslogtreecommitdiffstats
path: root/sw_config
diff options
context:
space:
mode:
Diffstat (limited to 'sw_config')
-rw-r--r--sw_config/bmra/dpdk_patch.yml111
-rw-r--r--sw_config/bmra/patched_cmk.yml84
-rw-r--r--sw_config/bmra/patched_tas.yml179
3 files changed, 0 insertions, 374 deletions
diff --git a/sw_config/bmra/dpdk_patch.yml b/sw_config/bmra/dpdk_patch.yml
deleted file mode 100644
index ec77b39..0000000
--- a/sw_config/bmra/dpdk_patch.yml
+++ /dev/null
@@ -1,111 +0,0 @@
-##
-## Copyright (c) 2020 Intel Corporation.
-##
-## 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: install dependencies
- include_role:
- name: install_dependencies
-
-- name: download DPDK
- unarchive:
- src: "{{ dpdk_url }}"
- dest: "/usr/src"
- remote_src: yes
- list_files: yes
- mode: 0755
- register: dpdk_download
-
-- name: set local dpdk directory path
- set_fact:
- dpdk_dir: "{{ dpdk_download.dest }}/{{ dpdk_download.files[0] }}"
-
-- name: run make config
- make:
- chdir: "{{ dpdk_dir }}"
- target: config
- params:
- T: "{{ dpdk_target }}"
-
-- name: update ansible_kernel fact
- setup:
- filter: 'ansible_kernel'
-
-- name: patch DPDK (kni)
- lineinfile:
- path: "{{ dpdk_dir }}/kernel/linux/kni/kni_net.c"
- regexp: '^\s*kni_net_tx_timeout'
- line: 'kni_net_tx_timeout(struct net_device *dev, unsigned int txqueue)'
- when:
- - ansible_distribution == "CentOS"
- - ansible_distribution_major_version == '8'
- - ansible_kernel is version('4.18.0-240','>=')
-
-- name: enable virtio-user support
- lineinfile:
- path: "{{ dpdk_dir }}/build/.config"
- regexp: '^CONFIG_RTE_VIRTIO_USER'
- line: 'CONFIG_RTE_VIRTIO_USER=y'
- mode: 0600
-
-- name: enable PCAP PMD support
- lineinfile:
- path: "{{ dpdk_dir }}/build/.config"
- regexp: '^CONFIG_RTE_LIBRTE_PMD_PCAP'
- line: 'CONFIG_RTE_LIBRTE_PMD_PCAP=y'
- mode: 0600
-
-- name: build DPDK
- make:
- target: install
- chdir: "{{ dpdk_dir }}"
- params:
- T: "{{ dpdk_target }}"
- DESTDIR: install
- prefix: "/usr"
-
-- name: find dpdk tools
- find:
- path: "{{ dpdk_dir }}"
- patterns: "dpdk-devbind.py"
- recurse: yes
- register: dpdk_tools_dir
-
-- name: set path to dpdk usertools directory
- set_fact:
- dpdk_tools: "{{ dpdk_tools_dir.files[0].path }}"
-
-- name: load userspace modules
- modprobe:
- name: "{{ item }}"
- state: present
- with_items:
- - vfio-pci
- - uio
-
-- name: install dpdk-devbind.py in /usr/local/bin
- copy:
- remote_src: yes
- src: "{{ dpdk_tools }}"
- dest: "/usr/local/bin/dpdk-devbind.py"
- mode: 0700
- owner: root
- group: root
- become: yes
-
-- name: load intel module
- command: "insmod {{ dpdk_dir }}/{{ dpdk_target }}/kmod/igb_uio.ko"
- register: result
- failed_when: "'No such file or directory' in result.stderr"
- changed_when: "'already bound' not in result.stderr"
diff --git a/sw_config/bmra/patched_cmk.yml b/sw_config/bmra/patched_cmk.yml
deleted file mode 100644
index e97083a..0000000
--- a/sw_config/bmra/patched_cmk.yml
+++ /dev/null
@@ -1,84 +0,0 @@
-{{- $fullName := include "cmk.fullname" . -}}
-{{- $exclusiveMode := .Values.exclusiveMode -}}
-{{- $numExclusiveCores := .Values.numExclusiveCores -}}
-{{- $sharedMode := .Values.sharedMode -}}
-{{- $numSharedCores := .Values.numSharedCores -}}
-{{- $pullPolicy := .Values.image.pullPolicy -}}
-{{- $image := .Values.image.repository -}}
-{{- $tag := .Values.image.tag -}}
-{{- $noTaint := .Values.noTaint }}
-{{ range splitList "," .Values.hosts.list }}
----
-apiVersion: batch/v1
-kind: Job
-metadata:
- annotations:
- helm.sh/hook: pre-install,pre-upgrade,pre-rollback
- helm.sh/hook-weight: "10"
- labels:
- app: {{ $fullName }}-init-discover-{{ . }}
- name: {{ $fullName }}-init-discover-{{ . }}
-spec:
- template:
- spec:
- serviceAccountName: {{ $fullName }}
- restartPolicy: Never
- tolerations:
- - key: cmk
- operator: Exists
- containers:
- - name: install
- image: {{ $image }}:{{ $tag }}
- imagePullPolicy: {{ $pullPolicy }}
- command: ["/bin/bash", "-c"]
- args:
- - "/cmk/cmk.py install"
- volumeMounts:
- - mountPath: /opt/bin
- name: cmk-install-dir
- - name: init
- image: {{ $image }}:{{ $tag }}
- imagePullPolicy: {{ $pullPolicy }}
- env:
- - name: CMK_PROC_FS
- value: "/host/proc"
- - name: NODE_NAME
- valueFrom:
- fieldRef:
- apiVersion: v1
- fieldPath: spec.nodeName
- command: ["/bin/bash", "-c"]
- args:
- - "/cmk/cmk.py init --exclusive-mode={{ $exclusiveMode }} --num-exclusive-cores={{ $numExclusiveCores }} --shared-mode={{ $sharedMode }} --num-shared-cores={{ $numSharedCores }}"
- volumeMounts:
- - mountPath: /host/proc
- name: host-proc
- readOnly: true
- - name: discover
- image: {{ $image }}:{{ $tag }}
- imagePullPolicy: {{ $pullPolicy }}
- env:
- - name: CMK_PROC_FS
- value: /host/proc
- - name: NODE_NAME
- valueFrom:
- fieldRef:
- apiVersion: v1
- fieldPath: spec.nodeName
- command: ["/bin/bash", "-c"]
- args:
- - "/cmk/cmk.py discover {{ if $noTaint }}--no-taint{{ end }}"
- volumeMounts:
- - mountPath: /host/proc
- name: host-proc
- readOnly: true
- volumes:
- - hostPath:
- path: /proc
- type: Directory
- name: host-proc
- - hostPath:
- path: /opt/bin
- type: DirectoryOrCreate
- name: cmk-install-dir
-{{ end }}
diff --git a/sw_config/bmra/patched_tas.yml b/sw_config/bmra/patched_tas.yml
deleted file mode 100644
index 633f5d7..0000000
--- a/sw_config/bmra/patched_tas.yml
+++ /dev/null
@@ -1,179 +0,0 @@
-##
-## Copyright (c) 2020 Intel Corporation.
-##
-## 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 : install dependencies
- include_role:
- name: install_dependencies
-
-- name: update to git2 on RHEL 7 based distros
- include_role:
- name: git2_install
- when:
- - ansible_distribution == 'RedHat' or ansible_distribution == 'CentOS'
- - ansible_distribution_version < '8'
-
-- name: check if stable repo has already been added
- command: helm repo list
- register: helm_repo_list
- failed_when: false
- changed_when: false
-
-- name: add Helm stable repo
- command: helm repo add stable https://charts.helm.sh/stable
- when: '"https://charts.helm.sh/stable" not in helm_repo_list.stdout'
- register: helm_add_result
- changed_when: '"has been added to your repositories" in helm_add_result.stdout'
-
-- name: update Helm repo before installation of public charts
- command: helm repo update
- register: helm_update_result
- changed_when: '"Successfully got an update" in helm_update_result.stdout'
-
-
-- name: create Helm charts directory if needed
- file:
- path: /usr/src/charts
- state: directory
- mode: 0755
-
-- name: generate cert and key
- include_role:
- name: create_signed_k8s_certs
- vars:
- secret_name: "{{ tas_extender_secret_name }}"
- service_name: tas-telemetry-aware-scheduling
- key_pair_name: tas
- host_secrets_folder: "{{ tas_ssl_mount_path }}"
- k8s_namespace: "{{ tas_namespace }}"
- csr_cluster_name: "{{ cluster_name | default('cluster.local') }}"
- when: tas_tls_enabled
-
-- name: clone TAS repository
- git:
- repo: "{{ tas_git_url }}"
- version: "{{ tas_git_version }}"
- dest: "{{ tas_dir }}"
- force: yes
-
-- name: make build and make image - TAS
- make:
- target: "{{ item }}"
- chdir: "{{ tas_dir }}"
- loop:
- - build
- - image
-
-- name: tag TAS-controller and TAS-extender
- # TAS Makefile always creates ":latest" version images
- command: docker tag {{ item }}:latest {{ registry_local_address }}/{{ item }}:{{ tas_version }}
- loop:
- - tas-controller
- - tas-extender
- changed_when: false
-
-- name: push TAS-controller and TAS-extender image to local registry
- command: docker push {{ registry_local_address }}/{{ item }}:{{ tas_version }}
- loop:
- - tas-controller
- - tas-extender
- changed_when: true
-
-- name: create descheduler directory if needed
- file:
- path: "{{ sigs_k8s_io_dir }}"
- state: directory
- mode: 0755
-
-- name: clone Descheduler for Kubernetes
- git:
- repo: "{{ descheduler_git_url }}"
- dest: "{{ descheduler_dir }}"
- force: yes
- version: "{{ descheduler_git_version }}"
-
-- name: install descheduler
- make:
- chdir: "{{ descheduler_dir }}"
-
-- name: copy Helm chart resource definition to controller node
- copy:
- src: "{{ role_path }}/charts/{{ item }}"
- dest: "/usr/src/charts/"
- mode: preserve
- loop:
- - telemetry-aware-scheduling
- - tas-policy-crd.yml
-
-- name: populate tas Helm chart values template and push to controller node
- template:
- src: "tas-values.yml.j2"
- dest: "/usr/src/charts/tas-values.yml"
- force: yes
- mode: preserve
-
-- name: create TASPolicy resource
- command: kubectl apply -f tas-policy-crd.yml
- args:
- chdir: "/usr/src/charts"
- changed_when: true
-
-- name: install TAS helm chart
- command: helm upgrade --install --namespace {{ tas_namespace }} {{ tas_name }} -f tas-values.yml telemetry-aware-scheduling/
- args:
- chdir: "/usr/src/charts"
- retries: 5
- delay: 5
- register: result
- until: result.rc == 0
- changed_when: true
-
-- name: Configure arguments from Kubernetes Scheduler file if they exist - dnsPolicy
- lineinfile:
- path: /etc/kubernetes/manifests/kube-scheduler.yaml
- insertafter: "spec:"
- line: " dnsPolicy: ClusterFirstWithHostNet"
- regexp: " dnsPolicy: "
- state: present
- mode: 0600
-
-- name: Configure arguments to our kube-scheduler manifest - configmap
- lineinfile:
- path: /etc/kubernetes/manifests/kube-scheduler.yaml
- insertafter: " - kube-scheduler"
- line: "{{ item.arg }}={{ item.value }}"
- regexp: "{{ item.arg }}"
- state: present
- mode: 0600
- with_items:
- - { arg: " - --policy-configmap", value: "{{ tas_name }}-telemetry-aware-scheduling-scheduler-extender-policy" }
- - { arg: " - --policy-configmap-namespace", value: "{{ tas_namespace }}" }
-
-# TAS Demo Policy
-- name: template TAS demo policy
- template:
- src: "tas-demo-policy.yml.j2"
- dest: "/usr/src/charts/tas-demo-policy.yml"
- force: yes
- mode: preserve
- when:
- - tas_enable_demo_policy
-
-- name: create TAS demo policy resource
- command: kubectl apply -f tas-demo-policy.yml
- args:
- chdir: "/usr/src/charts"
- when:
- - tas_enable_demo_policy