summaryrefslogtreecommitdiffstats
path: root/sw_config/bmra/patched_tas.yml
diff options
context:
space:
mode:
Diffstat (limited to 'sw_config/bmra/patched_tas.yml')
-rw-r--r--sw_config/bmra/patched_tas.yml179
1 files changed, 179 insertions, 0 deletions
diff --git a/sw_config/bmra/patched_tas.yml b/sw_config/bmra/patched_tas.yml
new file mode 100644
index 0000000..633f5d7
--- /dev/null
+++ b/sw_config/bmra/patched_tas.yml
@@ -0,0 +1,179 @@
+##
+## 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