diff options
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/configure-ovn-kubernetes.yml | 136 | ||||
-rw-r--r-- | kud/deployment_infra/playbooks/kud-vars.yml | 4 |
5 files changed, 151 insertions, 187 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/configure-ovn-kubernetes.yml b/kud/deployment_infra/playbooks/configure-ovn-kubernetes.yml deleted file mode 100644 index 5f1c9f64..00000000 --- a/kud/deployment_infra/playbooks/configure-ovn-kubernetes.yml +++ /dev/null @@ -1,136 +0,0 @@ ---- -# 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 -############################################################################## -- import_playbook: configure-ovn.yml - -- hosts: ovn-central:ovn-controller - vars: - central_node_ip: "{{ hostvars[groups['ovn-central'][0]]['ansible_ssh_host'] }}" - environment: - PATH: "{{ ansible_env.PATH }}:/usr/local/go/bin/" - pre_tasks: - - name: Load kud variables - include_vars: - file: kud-vars.yml - roles: - - role: andrewrothstein.go - go_ver: "{{ go_version }}" - tasks: - - name: Load kud variables - include_vars: - file: kud-vars.yml - - name: clone ovn-kubernetes repo - git: - repo: "{{ ovn_kubernetes_url }}" - dest: "{{ ovn_kubernetes_dest }}" - version: "{{ ovn_kubernetes_version }}" - force: yes - when: ovn_kubernetes_source_type == "source" - - name: getting binaries - block: - - name: download ovn-kubernetes tarball - get_url: - url: "{{ ovn_kubernetes_url }}" - dest: /tmp/ovn-kubernetes.tar.gz - - name: extract ovn-kubernetes source code - unarchive: - src: /tmp/ovn-kubernetes.tar.gz - dest: /tmp/ - remote_src: yes - - name: rename extracted folder - command: "mv /tmp/ovn-kubernetes-{{ ovn_kubernetes_version }}/ {{ ovn_kubernetes_dest }}/" - when: ovn_kubernetes_source_type == "tarball" - - name: make ovnkube files - make: - chdir: "{{ ovn_kubernetes_dest }}/go-controller" - - name: install ovnkube files - make: - chdir: "{{ ovn_kubernetes_dest }}/go-controller" - target: install - become: yes - - name: create OVN Kubernetes config file - become: yes - blockinfile: - path: /etc/openvswitch/ovn_k8s.conf - create: yes - block: | - [logging] - loglevel=5 - logfile=/var/log/openvswitch/ovnkube.log - - [cni] - conf-dir=/etc/cni/net.d - plugin=ovn-k8s-cni-overlay - - name: create ovnkube logging directory - file: - path: /var/log/openvswitch - state: directory - -- hosts: ovn-central - become: yes - vars: - central_node_ip: "{{ hostvars[groups['ovn-central'][0]]['ansible_ssh_host'] }}" - tasks: - - name: create ovnkube central systemd service - blockinfile: - path: /etc/systemd/system/ovn-k8s-central.service - create: yes - block: | - [Unit] - Description=OVN Central Daemon - - [Service] - ExecStart=/usr/bin/ovnkube \ - -net-controller \ - -init-master="{{ ansible_hostname }}" \ - -init-node="{{ ansible_hostname }}" \ - -nodeport \ - -k8s-kubeconfig=/etc/kubernetes/admin.conf \ - -k8s-token="test" \ - -nb-address="tcp://{{ central_node_ip }}:6641" \ - -sb-address="tcp://{{ central_node_ip }}:6642" - - [Install] - WantedBy=multi-user.target - - name: start ovnkube central systemd service - service: - name: ovn-k8s-central - state: started - enabled: yes - -- hosts: ovn-controller - become: yes - vars: - central_node_ip: "{{ hostvars[groups['ovn-central'][0]]['ansible_ssh_host'] }}" - tasks: - - name: create ovnkube controller systemd service - blockinfile: - path: /etc/systemd/system/ovn-k8s-host.service - create: yes - block: | - [Unit] - Description=OVN Controller Daemon - - [Service] - ExecStart=/usr/bin/ovnkube \ - -init-gateways \ - -init-node="{{ ansible_hostname }}" \ - -nodeport \ - -k8s-kubeconfig=/etc/kubernetes/admin.conf \ - -k8s-token="test" \ - -nb-address="tcp://{{ central_node_ip }}:6641" \ - -sb-address="tcp://{{ central_node_ip }}:6642" - - [Install] - WantedBy=multi-user.target - - name: start ovnkube controller systemd service - service: - name: ovn-k8s-host - state: started - enabled: yes 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" |