summaryrefslogtreecommitdiffstats
path: root/vagrant/playbooks/configure-ovn-kubernetes.yml
blob: cea102f2c9b1f164fdbc99633e2f7367cccd474f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
---
# 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/"
  roles:
    - role: andrewrothstein.go
  tasks:
    - name: Load krd variables
      include_vars:
        file: krd-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