Update ovn4nfv chart version to support kubevirt
[multicloud/k8s.git] / kud / deployment_infra / playbooks / configure-ovn4nfv.yml
index f8dabd9..7043bf5 100644 (file)
 - import_playbook: configure-ovn.yml
 - import_playbook: configure-multus.yml
 
-- hosts: kube-master:kube-node
-  environment:
-    PATH: "{{ ansible_env.PATH }}:/usr/local/go/bin/"
-  roles:
-    - role: andrewrothstein.go
-  tasks:
+- hosts: localhost
+  pre_tasks:
     - name: Load kud variables
       include_vars:
         file: kud-vars.yml
-    - name: clone ovn4nfv-k8s-plugin repo
-      git:
-        repo: "{{ ovn4nfv_url }}"
-        dest: "{{ ovn4nfv_dest }}"
-        version: "{{ ovn4nfv_version }}"
-        force: yes
-      when: ovn4nfv_source_type == "source"
-    - name: clean ovn4nfvk8s left over files
-      make:
-        chdir: "{{ ovn4nfv_dest }}"
-        target: clean
-    - name: build ovn4nfvk8s-cni
-      make:
-        chdir: "{{ ovn4nfv_dest }}"
-        target: ovn4nfvk8s-cni
-      become: yes
-      environment:
-        GOPATH: "{{ go_path }}"
-    - name: copy ovn4nfvk8s-cni to cni folder
-      command: "mv {{ ovn4nfv_dest }}/ovn4nfvk8s-cni /opt/cni/bin/ovn4nfvk8s-cni"
-      become: yes
-    - name: create ovn4k8s config file
-      become: yes
+  tasks:
+    - name: define a CRD network object specification
       blockinfile:
-        path: /etc/openvswitch/ovn4nfv_k8s.conf
+        path: /tmp/ovn4nfvnetwork.yml
         create: yes
         block: |
-          [logging]
-          loglevel=5
-          logfile=/var/log/openvswitch/ovn4k8s.log
+          apiVersion: k8s.cni.cncf.io/v1
+          kind: NetworkAttachmentDefinition
+          metadata:
+            name: ovn-networkobj
+          spec:
+            config: '{
+               "cniVersion": "0.3.1",
+               "name": "ovn4nfv-k8s-plugin",
+               "type": "ovn4nfvk8s-cni"
+            }'
 
-          [cni]
-          conf-dir=/etc/cni/net.d
-          plugin=ovn4nfvk8s-cni
+    - name: create network objects
+      shell: "/usr/local/bin/kubectl apply -f /tmp/ovn4nfvnetwork.yml"
+      ignore_errors: True
 
-          [kubernetes]
-          kubeconfig=/etc/kubernetes/admin.conf
-    - name: create ovnkube logging directory
-      file:
-        path: /var/log/openvswitch
-        state: directory
+    - name: create operator namespace
+      shell: "/usr/local/bin/kubectl create namespace operator"
+      ignore_errors: True
 
-- hosts: kube-master
-  environment:
-    PATH: "{{ ansible_env.PATH }}:/usr/local/go/bin/"
-  become: yes
-  tasks:
-    - name: Load kud variables
-      include_vars:
-        file: kud-vars.yml
-    - name: build ovn4nfvk8s
-      make:
-        chdir: "{{ ovn4nfv_dest }}"
-        target: ovn4nfvk8s
-      environment:
-        GOPATH: "{{ go_path }}"
-    - name: copy ovn4nfvk8s to /usr/bin folder
-      command: "mv {{ ovn4nfv_dest }}/ovn4nfvk8s /usr/bin/ovn4nfvk8s"
-    - name: create ovn4nfvk8s systemd service
-      blockinfile:
-        path: /etc/systemd/system/ovn4nfvk8s.service
-        create: yes
-        block: |
-          [Unit]
-          Description=OVN4NFV Kubernetes Daemon
+    - name: create pod security policy role bindings
+      shell: "/usr/local/bin/kubectl -n operator create rolebinding psp:default:privileged --clusterrole=psp:privileged --serviceaccount=operator:default --serviceaccount=operator:k8s-nfn-sa"
+      ignore_errors: True
 
-          [Service]
-          ExecStart=/usr/bin/ovn4nfvk8s \
-                -k8s-kubeconfig=/etc/kubernetes/admin.conf
+    - name: apply nfn operator label
+      command: "/usr/local/bin/kubectl label node {{ item }} nfnType=operator --overwrite"
+      with_inventory_hostnames: ovn-central
 
-          [Install]
-          WantedBy=multi-user.target
-    - name: start ovn4nfvk8s systemd service
-      service:
-        name: ovn4nfvk8s
-        state: started
-        enabled: yes
+    - name: Apply NFN operator, operator roles, CRD's and ovn4nfv Daemonset
+      shell: "/usr/local/bin/kubectl apply -f {{ playbook_dir }}/../images/nfn.yml"
+      ignore_errors: True