Skip to content

Larshavin/kaps

Repository files navigation

KAPS.md

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.

Progress

35%

🏁 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

Quick Start

  1. Install Golang 1.20

  2. Clone repository

  3. Run the Code

swag init && go run main.go
  1. Check the Swagger docs in [host]:[port]/swagger/index.html

Structure

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
Loading
.
├── 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

Docs

TBU

Contact Us

Email : [email protected]

About

Kubernetes auto provisioning service

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published