summaryrefslogtreecommitdiffstats
path: root/kud/deployment_infra
diff options
context:
space:
mode:
authorAkhila Kishore <akhila.kishore@intel.com>2019-08-30 16:39:00 -0700
committerAkhila Kishore <akhila.kishore@intel.com>2019-09-11 13:53:16 -0700
commit9837132fd9360f7d88d650b2ec6a318662e43d5c (patch)
tree7321ce4df7f5fbe99f475c4737d7df4241763801 /kud/deployment_infra
parent4655f550c8c03a6384fa90746f1af021348ec6ef (diff)
Integrating NFD Daemonset with KuD
Current NFD code in KuD is unused and obsolete. Integrating NFD as DaemonSet and updating test case for NFD. Added comments. Addressed comments and changed the matchExpression to kernel features. Changed operator from "In" to Gt, and values 4 to 3 better fit broader spectrum of O.S's. Adding exit conditon in case there's an error status. Signed-off-by: Akhila Kishore <akhila.kishore@intel.com> Issue-ID: MULTICLOUD-797 Change-Id: I454fb1998fc84e5f0d566f32b7dcfd85872c5183
Diffstat (limited to 'kud/deployment_infra')
-rw-r--r--kud/deployment_infra/images/nfd-master.yaml86
-rw-r--r--kud/deployment_infra/images/nfd-worker.yaml61
-rw-r--r--kud/deployment_infra/playbooks/configure-nfd.yml51
-rw-r--r--kud/deployment_infra/playbooks/kud-vars.yml4
4 files changed, 151 insertions, 51 deletions
diff --git a/kud/deployment_infra/images/nfd-master.yaml b/kud/deployment_infra/images/nfd-master.yaml
new file mode 100644
index 00000000..846bb753
--- /dev/null
+++ b/kud/deployment_infra/images/nfd-master.yaml
@@ -0,0 +1,86 @@
+# Refernce NFD Master DaemonSet - https://github.com/kubernetes-sigs/node-feature-discovery/blob/master/nfd-master.yaml.template
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: node-feature-discovery # NFD namespace
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: nfd-master
+ namespace: node-feature-discovery
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: nfd-master
+rules:
+- apiGroups:
+ - ""
+ resources:
+ - nodes
+ verbs:
+ - get
+ - patch
+ - update
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: nfd-master
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: nfd-master
+subjects:
+- kind: ServiceAccount
+ name: nfd-master
+ namespace: node-feature-discovery
+---
+apiVersion: apps/v1
+kind: DaemonSet
+metadata:
+ labels:
+ app: nfd-master
+ name: nfd-master
+ namespace: node-feature-discovery
+spec:
+ selector:
+ matchLabels:
+ app: nfd-master
+ template:
+ metadata:
+ labels:
+ app: nfd-master
+ spec:
+ serviceAccount: nfd-master
+ nodeSelector:
+ node-role.kubernetes.io/master: ""
+ tolerations:
+ - key: "node-role.kubernetes.io/master"
+ operator: "Equal"
+ value: ""
+ effect: "NoSchedule"
+ containers:
+ - env:
+ - name: NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ image: quay.io/kubernetes_incubator/node-feature-discovery:v0.4.0
+ name: nfd-master
+ command:
+ - "nfd-master"
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: nfd-master
+ namespace: node-feature-discovery
+spec:
+ selector:
+ app: nfd-master
+ ports:
+ - protocol: TCP
+ port: 8080
+ type: ClusterIP
diff --git a/kud/deployment_infra/images/nfd-worker.yaml b/kud/deployment_infra/images/nfd-worker.yaml
new file mode 100644
index 00000000..44bec5cd
--- /dev/null
+++ b/kud/deployment_infra/images/nfd-worker.yaml
@@ -0,0 +1,61 @@
+# Reference to NFD worker DaemonSet - https://github.com/kubernetes-sigs/node-feature-discovery/blob/master/nfd-worker-daemonset.yaml.template
+apiVersion: apps/v1
+kind: DaemonSet
+metadata:
+ labels:
+ app: nfd-worker
+ name: nfd-worker
+ namespace: node-feature-discovery
+spec:
+ selector:
+ matchLabels:
+ app: nfd-worker
+ template:
+ metadata:
+ labels:
+ app: nfd-worker
+ spec:
+ hostNetwork: true
+ dnsPolicy: ClusterFirstWithHostNet
+ containers:
+ - env:
+ - name: NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ image: quay.io/kubernetes_incubator/node-feature-discovery:v0.4.0
+ name: nfd-worker
+ command:
+ - "nfd-worker"
+ args:
+ - "--sleep-interval=60s"
+ - "--server=nfd-master:8080"
+ volumeMounts:
+ - name: host-boot
+ mountPath: "/host-boot"
+ readOnly: true
+ - name: host-os-release
+ mountPath: "/host-etc/os-release"
+ readOnly: true
+ - name: host-sys
+ mountPath: "/host-sys"
+ - name: source-d
+ mountPath: "/etc/kubernetes/node-feature-discovery/source.d/"
+ - name: features-d
+ mountPath: "/etc/kubernetes/node-feature-discovery/features.d/"
+ volumes:
+ - name: host-boot
+ hostPath:
+ path: "/boot"
+ - name: host-os-release
+ hostPath:
+ path: "/etc/os-release"
+ - name: host-sys
+ hostPath:
+ path: "/sys"
+ - name: source-d
+ hostPath:
+ path: "/etc/kubernetes/node-feature-discovery/source.d/"
+ - name: features-d
+ hostPath:
+ path: "/etc/kubernetes/node-feature-discovery/features.d/"
diff --git a/kud/deployment_infra/playbooks/configure-nfd.yml b/kud/deployment_infra/playbooks/configure-nfd.yml
index 590212cf..32e7b38f 100644
--- a/kud/deployment_infra/playbooks/configure-nfd.yml
+++ b/kud/deployment_infra/playbooks/configure-nfd.yml
@@ -7,52 +7,9 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-
-- hosts: kube-node
- tasks:
- - name: Load kud variables
- include_vars:
- file: kud-vars.yml
- - name: clone NFD repo
- git:
- repo: "{{ nfd_url }}"
- dest: "{{ nfd_dest }}"
- version: "{{ nfd_version }}"
- force: yes
- when: nfd_source_type == "source"
- - name: build NFD image
- become: yes
- make:
- chdir: "{{ nfd_dest }}"
- - name: get NDF image name
- become: yes
- shell: "docker images | grep kubernetes_incubator | awk '{printf(\"%s:%s\\n\", $1,$2)}'"
- register: nfd_image
- - name: replace NFD image name
- lineinfile:
- path: "{{ nfd_dest }}/node-feature-discovery-{{ item }}.json.template"
- regexp: "\"image\": \"quay.io/kubernetes_incubator.*i"
- line: "\"image\": \"{{ nfd_image.stdout }}\","
- with_items:
- - daemonset
- - job
- - name: copying rbac and daemonset files
- fetch:
- src: "{{ nfd_dest }}/{{ item }}"
- dest: "/tmp/"
- flat: yes
- with_items:
- - rbac.yaml
- - node-feature-discovery-daemonset.json.template
-
- hosts: localhost
- pre_tasks:
- - name: Load kud variables
- include_vars:
- file: kud-vars.yml
tasks:
- - name: create service accounts
- command: "/usr/local/bin/kubectl apply -f /tmp/{{ item }}"
- with_items:
- - rbac.yaml
- - node-feature-discovery-daemonset.json.template
+ - name: Apply NFD Master Daemonset
+ command: "/usr/local/bin/kubectl apply -f {{ playbook_dir }}/../images/nfd-master.yaml"
+ - name: Apply NFD Worker Daemonset
+ command: "/usr/local/bin/kubectl apply -f {{ playbook_dir }}/../images/nfd-worker.yaml"
diff --git a/kud/deployment_infra/playbooks/kud-vars.yml b/kud/deployment_infra/playbooks/kud-vars.yml
index 15e24ef1..a9910f8d 100644
--- a/kud/deployment_infra/playbooks/kud-vars.yml
+++ b/kud/deployment_infra/playbooks/kud-vars.yml
@@ -33,10 +33,6 @@ virtlet_url: "https://github.com/Mirantis/virtlet/releases/download/v{{ virtlet_
#virtlet_version: 68e11b8f1db2c78b063126899f0e60910700975d
#virtlet_url: "https://github.com/Mirantis/virtlet"
-nfd_dest: "{{ base_dest }}/nfd"
-nfd_source_type: "source"
-nfd_version: 175305b1ad73be7301ac94add475cec6fef797a9
-nfd_url: "https://github.com/kubernetes-incubator/node-feature-discovery"
istio_dest: "{{ base_dest }}/istio"
istio_source_type: "tarball"