summaryrefslogtreecommitdiffstats
path: root/kud/deployment_infra/helm/sdewan_cnf/templates/cm.yaml
blob: 29660add1a8a923a3f9e1d72b5ab291b0dbc8998 (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
#/*
# * Copyright 2021 Intel Corporation, Inc
# *
# * Licensed under the Apache License, Version 2.0 (the "License");
# * you may not use this file except in compliance with the License.
# * You may obtain a copy of the License at
# *
# *     http://www.apache.org/licenses/LICENSE-2.0
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# */

apiVersion: v1
data:
  entrypoint.sh: |-
    #!/bin/bash
    # Always exit on errors.
    set -ex
    echo "" > /etc/config/network
    cat > /etc/config/mwan3 <<EOF
    config globals 'globals'
        option mmx_mask '0x3F00'
        option local_source 'lan'
    EOF
    eval "networks=$(grep nfn-network /tmp/podinfo/annotations | awk  -F '=' '{print $2}')"
    for net in $(echo -e $networks | jq -c ".interface[]")
    do
      interface=$(echo $net | jq -r .interface)
      ipaddr=$(ifconfig $interface | awk '/inet/{print $2}' | cut -f2 -d ":" | awk 'NR==1 {print $1}')
      vif="$interface"
      netmask=$(ifconfig $interface | awk '/inet/{print $4}'| cut -f2 -d ":" | head -1)
      cat >> /etc/config/network <<EOF
    config interface '$vif'
        option ifname '$interface'
        option proto 'static'
        option ipaddr '$ipaddr'
        option netmask '$netmask'
    EOF
      cat >> /etc/config/mwan3 <<EOF
    config interface '$vif'
            option enabled '1'
            option family 'ipv4'
            option reliability '2'
            option count '1'
            option timeout '2'
            option failure_latency '1000'
            option recovery_latency '500'
            option failure_loss '20'
            option recovery_loss '5'
            option interval '5'
            option down '3'
            option up '8'
    EOF
    done
    /sbin/procd &
    /sbin/ubusd &
    iptables -S
    sleep 1
    /etc/init.d/rpcd start
    /etc/init.d/dnsmasq start
    /etc/init.d/network start
    /etc/init.d/odhcpd start
    /etc/init.d/uhttpd start
    /etc/init.d/log start
    /etc/init.d/dropbear start
    /etc/init.d/mwan3 restart
    /etc/init.d/firewall restart
    sysctl -w net.ipv4.conf.all.rp_filter=1
    sysctl -w net.ipv4.ip_forward=1
    echo "Entering sleep... (success)"
    # Sleep forever.
    while true; do sleep 100; done
kind: ConfigMap
metadata:
  name: sdewan-sh
  namespace: default