- Design configuration layer
- Design
kubeprov.ClusterCreateinterface - Add support of EKS
- Add support of GKE
- Add support of LKE
- Add support of AKE
- Handle different node configurations/regions/subnets/VPCs
- Generate kubeconfig of created cluster
go get github.com/gen1us2k/kubeprov
kubeprov create --cluster_name example_cluster --region eu-central-1
Wait up to 10-15 minutes and it'll create a cluster for you
Here's the sample code to spin up a new EKS cluster
package main
import (
"log"
"github.com/gen1us2k/kubeprov/pkg/eks"
"github.com/gen1us2k/kubeprov/pkg/config"
)
func main() {
e, err := eks.NewEKSClient(&config.Config{Region:"eu-central-1", ClusterName:"example_cluster"})
if err != nil {
log.Fatal(err)
}
if err := e.ProvisionCluster(); err != nil {
log.Fatal(err)
}
}
aws eks update-kubeconfig --region eu-central-1 --name example_cluster
kubectl get nodes
kubeprov delete --cluster_name example_cluster --region eu-central-1
package main
import (
"log"
"github.com/gen1us2k/kubeprov/pkg/eks"
"github.com/gen1us2k/kubeprov/pkg/config"
)
func main() {
e, err := eks.NewEKSClient(&config.Config{Region:"eu-central-1", ClusterName:"example_cluster"})
if err != nil {
log.Fatal(err)
}
if err := e.UnrovisionCluster(); err != nil {
log.Fatal(err)
}
}