blob: 2084c95d74c938919a8be8ba285216425f89831b (
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
|
---
# 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
- import_playbook: configure-multus.yml
- hosts: kube-master:kube-node
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: 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
blockinfile:
path: /etc/openvswitch/ovn4nfv_k8s.conf
create: yes
block: |
[logging]
loglevel=5
logfile=/var/log/openvswitch/ovn4k8s.log
[cni]
conf-dir=/etc/cni/net.d
plugin=ovn4nfvk8s-cni
[kubernetes]
kubeconfig=/etc/kubernetes/admin.conf
- name: create ovnkube logging directory
file:
path: /var/log/openvswitch
state: directory
- 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
[Service]
ExecStart=/usr/bin/ovn4nfvk8s \
-k8s-kubeconfig=/etc/kubernetes/admin.conf
[Install]
WantedBy=multi-user.target
- name: start ovn4nfvk8s systemd service
service:
name: ovn4nfvk8s
state: started
enabled: yes
- hosts: localhost
pre_tasks:
- name: Load kud variables
include_vars:
file: kud-vars.yml
tasks:
- name: define a CRD network object specification
blockinfile:
path: /tmp/ovn4nfvnetwork.yml
create: yes
block: |
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"
}'
- name: create network objects
shell: "/usr/local/bin/kubectl apply -f /tmp/ovn4nfvnetwork.yml"
ignore_errors: True
|