diff options
author | Akhila Kishore <akhila.kishore@intel.com> | 2019-08-30 16:39:00 -0700 |
---|---|---|
committer | Akhila Kishore <akhila.kishore@intel.com> | 2019-09-11 13:53:16 -0700 |
commit | 9837132fd9360f7d88d650b2ec6a318662e43d5c (patch) | |
tree | 7321ce4df7f5fbe99f475c4737d7df4241763801 /kud/deployment_infra | |
parent | 4655f550c8c03a6384fa90746f1af021348ec6ef (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.yaml | 86 | ||||
-rw-r--r-- | kud/deployment_infra/images/nfd-worker.yaml | 61 | ||||
-rw-r--r-- | kud/deployment_infra/playbooks/configure-nfd.yml | 51 | ||||
-rw-r--r-- | kud/deployment_infra/playbooks/kud-vars.yml | 4 |
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" |