2 # SPDX-license-identifier: Apache-2.0
3 ##############################################################################
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 # http://www.apache.org/licenses/LICENSE-2.0
9 ##############################################################################
10 - import_playbook: configure-ovn.yml
12 - hosts: ovn-central:ovn-controller
14 central_node_ip: "{{ hostvars[groups['ovn-central'][0]]['ansible_ssh_host'] }}"
16 PATH: "{{ ansible_env.PATH }}:/usr/local/go/bin/"
18 - role: andrewrothstein.go
20 - name: Load krd variables
23 - name: clone ovn-kubernetes repo
25 repo: "{{ ovn_kubernetes_url }}"
26 dest: "{{ ovn_kubernetes_dest }}"
27 version: "{{ ovn_kubernetes_version }}"
29 when: ovn_kubernetes_source_type == "source"
30 - name: getting binaries
32 - name: download ovn-kubernetes tarball
34 url: "{{ ovn_kubernetes_url }}"
35 dest: /tmp/ovn-kubernetes.tar.gz
36 - name: extract ovn-kubernetes source code
38 src: /tmp/ovn-kubernetes.tar.gz
41 - name: rename extracted folder
42 command: "mv /tmp/ovn-kubernetes-{{ ovn_kubernetes_version }}/ {{ ovn_kubernetes_dest }}/"
43 when: ovn_kubernetes_source_type == "tarball"
44 - name: make ovnkube files
46 chdir: "{{ ovn_kubernetes_dest }}/go-controller"
47 - name: install ovnkube files
49 chdir: "{{ ovn_kubernetes_dest }}/go-controller"
52 - name: create OVN Kubernetes config file
55 path: /etc/openvswitch/ovn_k8s.conf
60 logfile=/var/log/openvswitch/ovnkube.log
63 conf-dir=/etc/cni/net.d
64 plugin=ovn-k8s-cni-overlay
65 - name: create ovnkube logging directory
67 path: /var/log/openvswitch
73 central_node_ip: "{{ hostvars[groups['ovn-central'][0]]['ansible_ssh_host'] }}"
75 - name: create ovnkube central systemd service
77 path: /etc/systemd/system/ovn-k8s-central.service
81 Description=OVN Central Daemon
84 ExecStart=/usr/bin/ovnkube \
86 -init-master="{{ ansible_hostname }}" \
87 -init-node="{{ ansible_hostname }}" \
89 -k8s-kubeconfig=/etc/kubernetes/admin.conf \
91 -nb-address="tcp://{{ central_node_ip }}:6641" \
92 -sb-address="tcp://{{ central_node_ip }}:6642"
95 WantedBy=multi-user.target
96 - name: start ovnkube central systemd service
102 - hosts: ovn-controller
105 central_node_ip: "{{ hostvars[groups['ovn-central'][0]]['ansible_ssh_host'] }}"
107 - name: create ovnkube controller systemd service
109 path: /etc/systemd/system/ovn-k8s-host.service
113 Description=OVN Controller Daemon
116 ExecStart=/usr/bin/ovnkube \
118 -init-node="{{ ansible_hostname }}" \
120 -k8s-kubeconfig=/etc/kubernetes/admin.conf \
122 -nb-address="tcp://{{ central_node_ip }}:6641" \
123 -sb-address="tcp://{{ central_node_ip }}:6642"
126 WantedBy=multi-user.target
127 - name: start ovnkube controller systemd service