--- # 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