Kubernetes Auto Provisioning Service on Echo-e cloud system ( State of PoC )
This is the K8s Cluster API or Openstack Magnum like lightweight custom project that uses minimal processes.
🏁 Status
✔️ Using Openstack API without gopher cloud package
✔️ Create Automatically (only one) Control-Plane & Data-Plane Virtual Machine(VM) on Openstack
✔️ Export K8S Cloud access token, hash info from created Control-Plane VM (~ 5min m1.medium size)
✔️ Inject kubeadm's Join cmd to Data-Plane Node VM.
❌ Create LB or API Gateway webserver for access to data plane node (They have no floating IP for external user)
✔️ Study Envoy Proxy & Emissary Ingress Controller
❌ Support Multi Control-Plane Cluster
❌ Middleware authentication
✔️ Manage cluster info by using Database (Postgresql or MongoDB)
❌ Connect to private image repository (Pull images such as calico CNI project ... )
✔️ Create Helm repo
❌ K8S cluster Health Checking
❗ Support only Centos8 image now
-
Install Golang 1.20
-
Clone repository
-
Run the Code
swag init && go run main.go
- Check the Swagger docs in [host]:[port]/swagger/index.html
flowchart LR
subgraph ide1 [Openstack]
B --> Y([VM generate])
C --> Y
D --> Y
end
subgraph ide2 [Kubernetes]
Y --> I{Control Plane}
Y --> J{Data Plane}
end
Z[admin] --> |Set config | A
A --> K([health checking])
K --> I
K --> J
A[Kaps] --- |compute service| B[nova]
A[Kaps] --- |network service| C[neutron]
A[Kaps] --- |storage service| D[cinder]
A--> |resource management| X[(Database)]
X --- K
.
├── README.md
├── docs
│ ├── docs.go
│ ├── swagger.json
│ └── swagger.yaml
├── go.mod
├── go.sum
├── k8s_provisioning
│ ├── common.sh
│ ├── k8s_control.sh
│ ├── k8s_control_join.sh
│ ├── k8s_data.sh
│ └── test.sh
├── kaas
│ └── kaas.go
├── main.go
├── nohup.out
├── openstack
│ ├── compute.go
│ ├── identity.go
│ ├── image.go
│ ├── network.go
│ └── token.go
├── routes
│ └── route.go
├── run.sh
├── types
│ └── type.go
└── utils
├── file.go
├── rand.go
└── ssh.go
TBU
Email : [email protected]