Browse code

Introduce cloud-network-setup

https://github.com/vmware/cloud-network-setup

cloud-network configures network in cloud environment.

Change-Id: I72fbf50c102232c45d62ebe3fb6ee3b45c4528bb
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/13823
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Susant Sahani <ssahani@vmware.com>

Susant Sahani authored on 2021/06/30 09:56:57
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,99 @@
0
+%ifarch aarch64
1
+%global gohostarch      arm64
2
+%else
3
+%global gohostarch      amd64
4
+%endif
5
+
6
+Summary:        Configures network interfaces in cloud enviroment
7
+Name:           cloud-network-setup
8
+Version:        0.1
9
+Release:        1%{?dist}
10
+License:        Apache-2.0
11
+URL:            https://github.com/vmware/%{name}/archive/refs/tags/v%{version}.tar.gz
12
+Source0:        cloud-network-setup-%{version}.tar.gz
13
+%define sha1 %{name}=e7c39df9c0b389c0c1b2a53516ce3ec738018008
14
+Group:          Networking
15
+Vendor:         VMware, Inc.
16
+Distribution:   Photon
17
+
18
+BuildRequires:  go
19
+BuildRequires:  systemd-rpm-macros
20
+
21
+Requires:  systemd
22
+
23
+%global debug_package %{nil}
24
+
25
+%description
26
+cloud-network configures network in cloud environment. In cloud environment
27
+instances are set public IPs and private IPs. If more than one private IP is
28
+configured then except the IP which is provided by DHCP others can't be fetched
29
+and configured. This project is adopting towards cloud network environment such
30
+as Azure, GCP and Amazon EC2.
31
+%prep -p exit
32
+%autosetup -p1 -n %{name}-%{version}
33
+
34
+%build
35
+export ARCH=%{gohostarch}
36
+export VERSION=%{version}
37
+export PKG=github.com/%{name}/%{name}
38
+export GOARCH=${ARCH}
39
+export GOHOSTARCH=${ARCH}
40
+export GOOS=linux
41
+export GOHOSTOS=linux
42
+export GOROOT=/usr/lib/golang
43
+export GOPATH=/usr/share/gocode
44
+export GOBIN=/usr/share/gocode/bin
45
+export PATH=$PATH:$GOBIN
46
+
47
+mkdir -p ${GOPATH}/src/${PKG}
48
+cp -rf . ${GOPATH}/src/${PKG}
49
+pushd ${GOPATH}/src/${PKG}
50
+
51
+go build -o bin/cloud-network ./cmd/cloud-network
52
+go build -o bin/cnctl ./cmd/cnctl
53
+
54
+popd
55
+
56
+%install
57
+install -m 755 -d %{buildroot}%{_bindir}
58
+install -m 755 -d %{buildroot}%{_sysconfdir}/cloud-network
59
+install -m 755 -d %{buildroot}%{_unitdir}
60
+
61
+install -pm 755 -t %{buildroot}%{_bindir} ${GOPATH}/src/github.com/%{name}/%{name}/bin/cloud-network
62
+install -pm 755 -t %{buildroot}%{_bindir} ${GOPATH}/src/github.com/%{name}/%{name}/bin/cnctl
63
+
64
+install -pm 755 -t %{buildroot}%{_sysconfdir}/cloud-network ${GOPATH}/src/github.com/%{name}/%{name}/distribution/cloud-network.toml
65
+install -pm 755 -t %{buildroot}%{_unitdir}/ ${GOPATH}/src/github.com/%{name}/%{name}/distribution/cloud-network.service
66
+
67
+%clean
68
+rm -rf %{buildroot}/*
69
+
70
+%files
71
+%defattr(-,root,root)
72
+%{_bindir}/cloud-network
73
+%{_bindir}/cnctl
74
+
75
+%{_sysconfdir}/cloud-network/cloud-network.toml
76
+%{_unitdir}/cloud-network.service
77
+
78
+%pre
79
+if ! getent group cloud-network >/dev/null 2>&1; then
80
+    /usr/sbin/groupadd -g 89 cloud-network
81
+fi
82
+
83
+if ! getent passwd cloud-network >/dev/null 2>&1 ; then
84
+    /usr/sbin/useradd -g 89 -u 89 -r -s /sbin/nologin cloud-network >/dev/null 2>&1 || exit 1
85
+fi
86
+
87
+%post
88
+%systemd_post cloud-network.service
89
+
90
+%preun
91
+%systemd_preun cloud-network.service
92
+
93
+%postun
94
+%systemd_postun_with_restart cloud-network.service
95
+
96
+%changelog
97
+* Wed Jun 30 2021 Susant Sahani <ssahani@vmware.com> 0.1-1
98
+- Initial rpm release.