Merge "Add upload backend implementation"
[multicloud/k8s.git] / vagrant / playbooks / configure-ovn-kubernetes.yml
1 ---
2 # SPDX-license-identifier: Apache-2.0
3 ##############################################################################
4 # Copyright (c) 2018
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
11
12 - hosts: ovn-central:ovn-controller
13   vars:
14     central_node_ip: "{{ hostvars[groups['ovn-central'][0]]['ansible_ssh_host'] }}"
15   environment:
16     PATH: "{{ ansible_env.PATH }}:/usr/local/go/bin/"
17   roles:
18     - role: andrewrothstein.go
19   tasks:
20     - name: Load krd variables
21       include_vars:
22         file: krd-vars.yml
23     - name: clone ovn-kubernetes repo
24       git:
25         repo: "{{ ovn_kubernetes_url }}"
26         dest: "{{ ovn_kubernetes_dest }}"
27         version: "{{ ovn_kubernetes_version }}"
28         force: yes
29       when: ovn_kubernetes_source_type == "source"
30     - name: getting binaries
31       block:
32       - name: download ovn-kubernetes tarball
33         get_url:
34           url: "{{ ovn_kubernetes_url }}"
35           dest: /tmp/ovn-kubernetes.tar.gz
36       - name: extract ovn-kubernetes source code
37         unarchive:
38           src: /tmp/ovn-kubernetes.tar.gz
39           dest: /tmp/
40           remote_src: yes
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
45       make:
46         chdir: "{{ ovn_kubernetes_dest }}/go-controller"
47     - name: install ovnkube files
48       make:
49         chdir: "{{ ovn_kubernetes_dest }}/go-controller"
50         target: install
51       become: yes
52     - name: create OVN Kubernetes config file
53       become: yes
54       blockinfile:
55         path: /etc/openvswitch/ovn_k8s.conf
56         create: yes
57         block: |
58           [logging]
59           loglevel=5
60           logfile=/var/log/openvswitch/ovnkube.log
61
62           [cni]
63           conf-dir=/etc/cni/net.d
64           plugin=ovn-k8s-cni-overlay
65     - name: create ovnkube logging directory
66       file:
67         path: /var/log/openvswitch
68         state: directory
69
70 - hosts: ovn-central
71   become: yes
72   vars:
73     central_node_ip: "{{ hostvars[groups['ovn-central'][0]]['ansible_ssh_host'] }}"
74   tasks:
75     - name: create ovnkube central systemd service
76       blockinfile:
77         path: /etc/systemd/system/ovn-k8s-central.service
78         create: yes
79         block: |
80           [Unit]
81           Description=OVN Central Daemon
82
83           [Service]
84           ExecStart=/usr/bin/ovnkube \
85                 -net-controller \
86                 -init-master="{{ ansible_hostname }}" \
87                 -init-node="{{ ansible_hostname }}" \
88                 -nodeport \
89                 -k8s-kubeconfig=/etc/kubernetes/admin.conf \
90                 -k8s-token="test" \
91                 -nb-address="tcp://{{ central_node_ip }}:6641" \
92                 -sb-address="tcp://{{ central_node_ip }}:6642"
93
94           [Install]
95           WantedBy=multi-user.target
96     - name: start ovnkube central systemd service
97       service:
98         name: ovn-k8s-central
99         state: started
100         enabled: yes
101
102 - hosts: ovn-controller
103   become: yes
104   vars:
105     central_node_ip: "{{ hostvars[groups['ovn-central'][0]]['ansible_ssh_host'] }}"
106   tasks:
107     - name: create ovnkube controller systemd service
108       blockinfile:
109         path: /etc/systemd/system/ovn-k8s-host.service
110         create: yes
111         block: |
112           [Unit]
113           Description=OVN Controller Daemon
114
115           [Service]
116           ExecStart=/usr/bin/ovnkube \
117                 -init-gateways \
118                 -init-node="{{ ansible_hostname }}" \
119                 -nodeport \
120                 -k8s-kubeconfig=/etc/kubernetes/admin.conf \
121                 -k8s-token="test" \
122                 -nb-address="tcp://{{ central_node_ip }}:6641" \
123                 -sb-address="tcp://{{ central_node_ip }}:6642"
124
125           [Install]
126           WantedBy=multi-user.target
127     - name: start ovnkube controller systemd service
128       service:
129         name: ovn-k8s-host
130         state: started
131         enabled: yes