cloud-barista / cb-larva Goto Github PK
View Code? Open in Web Editor NEWCB-Larva is Cloud-Barista Incubator. The incubator researches and develops essential technologies for multi-cloud.
License: Apache License 2.0
CB-Larva is Cloud-Barista Incubator. The incubator researches and develops essential technologies for multi-cloud.
License: Apache License 2.0
A network tunnel between VMs could be created by the TUN interface configuration.
After this, a common subnet would be configured in multiple VMs.
What would you like to be added
: A function/interface to configure a CIDR block of the cb-network by users
(CIDR: Classless Inter-Domain Routing)
Why is this needed
: User-customized network control
: Create and control the network users want
Note - Users (administrators) can assign a CIDR block of the cb-network for their VMs.
An example
It will graphically show a network structure drawn by nodes and edges like a graph data structure.
What would you like to be added
: Dockerfile to create a container image of the cb-network controller (mentioned as the cb-network server previously)
Why is this needed
: I want to keep running the cb-network controller by the "--restart" option.
Reference:
What would you like to be added
: Add a installation function of cb-network agent on CB-Tumblebug
Ref: #101 (comment)
Why is this needed
: When a user creates MCIS, the cb-network could be installed on MCIS depending on an installation option (e.g., true/false)
Current CB-Net (PoC) makes a common subnet.
VMs using the common subnet can communicate with each other by tunneling.
Now, CB-Net supports UDP packets. For example,
It's not easy for me to decide to add tunneling for TCP packets.
If necessary, it will be added later.
The network interface information of all VMs is necessary to create a common subnet without conflict.
What happened
: When retrieving public IP address, the agent sometimes access an index out of range
What you expected to happen
: It makes the creation of the cb-network fail.
How to reproduce it (as minimally and precisely as possible)
: I will add a new function for that.
ref) "lint" section in golang-ci-demo-by-github-actions
What would you like to be added
: A mechanism to utilize CLADNet ID
Why is this needed
: It is needed to support multi-CLADNet for multi-MCIS.
A user (administrator) can request and get a network CIDR block for CLADNet.
Thus, a mechanism to utilize the network CIDR block in cb-network controller and agent.
./testAll-mcis-mcir-ns-cloud.sh aws 2 kimy
./cleanAll-mcis-mcir-ns-cloud.sh aws 2 kimy
./testAll-mcis-mcir-ns-cloud.sh gcp 2 kimy
./cleanAll-mcis-mcir-ns-cloud.sh gcp 2 kimy
./testAll-mcis-mcir-ns-cloud.sh azure 2 kimy
./cleanAll-mcis-mcir-ns-cloud.sh azure 2 kimy
[TBD]
cb-network 설치 스크립트 작성
deploy-xxx.sh 를 활용하여 배치
[TBD]
README.md and README.KR.md will be improved.
What would you like to be added
: I'd like to handle multiple networking rules of CLADNet.
Why is this needed
: It's needed to show multiple CLADNets on AdminWeb.
Standard Go Project Layout is a basic layout for Go application projects.
According to Standard Go Project Layout, CB-Larva's directories and packages should be restructured.
The current mechanism can send host network information and continuously update the networking rule of a certain group by watching the function of the etcd.
Every time the agent is executed, the agent tries to update its host network information even if the host information is not changed.
By this update event, the watch work of other agents is unnecessarily operated.
Thus, I'd like to improve this mechanism.
[To-Be]
[As-Is]
To the updates of markdown-like files, running workflows is not necessary.
For example, built-test workflow is not necessary to the update of README.md.
Thus, events triggered by markdown-like files will be ignored.
Please, refer to: paths-ignore
What happened
: Watch function runs many times.
What you expected to happen
: The issue occurs from "watch with revision"
The current directory structure and naming should be updated to apply the Golang package style.
I hope it is helpful to provide better reusability.
[Proposal]
Update workflow
steps:
- name: Checkout source code
uses: actions/checkout@v2
- name: Install golangci-lint
run: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.34.1
- name: Run golangci-lint
run: $(go env GOPATH)/bin/golangci-lint run
I'm thinking of improving the IP allocation method.
I tried to assign an IP address for the cb-network to a virtual machine (VM) as part of the networking rule update.
The above process can skip one step, but I have seen several cases that IP is not assigned.
After analyzing the cause, I will improve it.
It's necessary to rename the cb-network server to avoid misunderstanding.
By applying the etcd, the base structure and control mechanism of cb-network has been changed to an asynchronous way.
(The watch mechanism is applied.)
However, the terms server and agent may be misunderstood as a directly connected structure and performing synchronous operations. (Actually, the existing structure was also not directly connected :-D)
Cloud-Barista Community suggested me the cb-network controller, and I like it.
Thus, I'd like to apply it at the right time. (May be the next tagging)
The below errors were issued by 'golangci-lint'
Error: Error return value of cbnet.CBNet.Write
is not checked (errcheck)
Error: Error return value of cbnet.listenConnection.WriteToUDP
is not checked (errcheck)
Error: Error return value of cbnet.CBNet.Write
is not checked (errcheck)
Error: Error return value of lstnConn.WriteToUDP
is not checked (errcheck)
Error: SA9003: empty branch (staticcheck)
Error: SA9003: empty branch (staticcheck)
Error: SA9003: empty branch (staticcheck)
Error: S1005: unnecessary assignment to the blank identifier (gosimple)
Error: SA5003: defers in this infinite loop will never run (staticcheck)
Error: issues found
As a use case of cb-network, K8s will be installed based on cb-network.
For this, installation scripts are needed.
What would you like to be added
: A method to assign VM ID to the cb-network agent
Why is this needed
: It's because a host needs a unique VM ID to join the CLADNet and obtain an IP address.
Now, poc-cb-net has many prints to check the status.
poc-cb-net has a plan to apply cb-log for a better trace of the execution processes.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.