diff --git a/app/apis/nkd/const.go b/app/apis/nkd/const.go index d4037b11f21d5059682adcbd9bfab0a7d2dd0524..a8a25efc7cfb5c571cb34364adebe886eb593f5c 100644 --- a/app/apis/nkd/const.go +++ b/app/apis/nkd/const.go @@ -25,7 +25,7 @@ var ( MasterHostName = "master" WorkerHostName = "worker" Username = "root" - Password = "$1$yoursalt$UGhjCXAJKpWWpeN8xsF.c/" + Password = "" // repo Secret = []map[string]string{{"repousre": ""}} @@ -37,7 +37,7 @@ var ( // size Vcpus = 4 Ram = 8192 - Disk = 128 + Disk = 100 // openstack Openstack_UserName = "" @@ -47,9 +47,10 @@ var ( Openstack_Region = "" Openstack_Internal_network = "" Openstack_External_network = "" - Openstack_Master_ip = []string{"10.1.10.51", "10.1.10.52", "10.1.10.53"} + Openstack_Master_ip = []string{"", "", ""} Openstack_Flavor_Name = "" Openstack_Glance_Name = "" + Availability_zone = "" // bootstrapTokens BootstrapTokensGroups = []string{"system:bootstrappers:kubeadm:default-node-token"} diff --git a/app/apis/nkd/types.go b/app/apis/nkd/types.go index e86522c6e62e8e29f9c73a023d707c61a66a2a40..8ce2bc15ff2e7df4ad5ab843ffd3925ee503884e 100644 --- a/app/apis/nkd/types.go +++ b/app/apis/nkd/types.go @@ -40,6 +40,7 @@ type Openstack struct { External_network string Glance string Flavor string + Zone string } type Libvirt struct { diff --git a/app/cmd/phases/config/print.go b/app/cmd/phases/config/print.go index 570af16c6148c98c0f6061e0ec37d8cc025e6def..f51ad827d0c86fe205f2e820ee8d733e9e0b6dcc 100644 --- a/app/cmd/phases/config/print.go +++ b/app/cmd/phases/config/print.go @@ -110,6 +110,7 @@ func DefaultedStaticWorkerConfiguration(internalconfig *nkd.Worker) *nkd.Worker External_network: nkd.Openstack_External_network, Glance: nkd.Openstack_Glance_Name, Flavor: nkd.Openstack_Flavor_Name, + Zone: nkd.Availability_zone, } system1 := nkd.System{ @@ -202,6 +203,7 @@ func DefaultedStaticMasterConfiguration(internalconfig *nkd.Master) *nkd.Master External_network: nkd.Openstack_External_network, Glance: nkd.Openstack_Glance_Name, Flavor: nkd.Openstack_Flavor_Name, + Zone: nkd.Availability_zone, } vmsize := nkd.Size{ diff --git a/app/cmd/phases/initconfig/ign.go b/app/cmd/phases/initconfig/ign.go index a6c867a3f642ff58a9b56d71d822763fbded6327..3f5f2c840318466ac2387d7bcb63ea22196f5658 100644 --- a/app/cmd/phases/initconfig/ign.go +++ b/app/cmd/phases/initconfig/ign.go @@ -121,7 +121,7 @@ func runGenerateIgnConfig(r workflow.RunData, node string) error { } func getMasterTmplData(nkdConfig *nkd.Master, count int, ip string, hsip string) *commonTemplateData { - oneNodeName := fmt.Sprintf("%s%d", nkdConfig.System.MasterHostName, count) + oneNodeName := fmt.Sprintf("%s%02d", nkdConfig.System.MasterHostName, count) return &commonTemplateData{ SSHKey: nkdConfig.System.SSHKey, APIServerURL: nkdConfig.System.Ips[0], diff --git a/app/phases/bootconfig/ignitioncreator.go b/app/phases/bootconfig/ignitioncreator.go deleted file mode 100755 index b85e6b418d22259c7fae15a583fd38ef43ae2a41..0000000000000000000000000000000000000000 --- a/app/phases/bootconfig/ignitioncreator.go +++ /dev/null @@ -1,10 +0,0 @@ -package bootconfig - -import "nestos-kubernetes-deployer/pkg/infra" - -type IgnitionAssembler struct { -} - -func (i IgnitionAssembler) Assemble(assets infra.Assets) infra.InitConfig { - return infra.InitConfig{} -} diff --git a/app/phases/bootconfig/initconfig.go b/app/phases/bootconfig/initconfig.go deleted file mode 100755 index b1be118c0a000a736a5b3da78af665f1a693dc45..0000000000000000000000000000000000000000 --- a/app/phases/bootconfig/initconfig.go +++ /dev/null @@ -1,3 +0,0 @@ -package bootconfig - - diff --git a/app/phases/cert/etcd.go b/app/phases/cert/etcd.go index 4c70f287b35148ec1bfaf1654bbfb9d499ba9c47..993eaf064f63d44d249406adb80d688f8b1c5752 100755 --- a/app/phases/cert/etcd.go +++ b/app/phases/cert/etcd.go @@ -15,17 +15,3 @@ limitations under the License. */ package cert - -import ( - "nestos-kubernetes-deployer/pkg/infra" -) - -type EtcdCaGenerator struct { -} - -func (e EtcdCaGenerator) GenerateAssets() infra.Assets { - return nil -} - -func init() { -} diff --git a/app/phases/deployer/clusterInfo.go b/app/phases/deployer/clusterInfo.go deleted file mode 100755 index 3964b25f6db4ec986664745d2b845b0504e7f8fc..0000000000000000000000000000000000000000 --- a/app/phases/deployer/clusterInfo.go +++ /dev/null @@ -1,40 +0,0 @@ -package deployer - - -type ClusterInfo struct { - Name string `yaml:"name"` - ApiEndpoint string `yaml:"api_endpoint"` - Kubernetes Kubernetes `yaml:"kubernetes"` - ClusterCIDR string `yaml:"cluster_cidr"` - PodCIDR string `yaml:"pod_cidr"` - ServiceCIDR string `yaml:"service_cidr"` - InfraDriver string `yaml:"infra_driver"` - OsType string `yaml:"os_type"` - OsImage string `yaml:"os_image"` - OsConfigList []OsConfig `yaml:"os_config_list"` - EtcdType string `yaml:"etcd_type"` -} - -type Kubernetes struct { - KubernetesVersion string `yaml:"kubernetes_version"` -} - -type OsConfig struct { - Roles []string `yaml:"roles"` - DiskSize string `yaml:"disk_size"` - Image string `yaml:"image"` - MemorySize string `yaml:"memory_size"` - Cpus int `yaml:"cpus"` -} - - - - -func ParseFromFile(filename string) ClusterInfo{ - return ClusterInfo{} -} - - -func (* ClusterInfo)GenerateToFile(filename string) error{ - return nil -} \ No newline at end of file diff --git a/app/phases/deployer/phase/base.go b/app/phases/deployer/phase/base.go deleted file mode 100755 index 67d3ce8598dca90077d362c02907475c2fcc0ac5..0000000000000000000000000000000000000000 --- a/app/phases/deployer/phase/base.go +++ /dev/null @@ -1,5 +0,0 @@ -package phase - -type Phase interface { - Do() -} \ No newline at end of file diff --git a/app/phases/deployer/phase/generate.go b/app/phases/deployer/phase/generate.go deleted file mode 100755 index 7658197133c6540705a5e858074a457180ffd227..0000000000000000000000000000000000000000 --- a/app/phases/deployer/phase/generate.go +++ /dev/null @@ -1,20 +0,0 @@ -package phase - -import "nestos-kubernetes-deployer/pkg/infra" - -type GeneratePhase struct { - Mode string // master, node -} - -func (p GeneratePhase) GenerateAssets() infra.Assets { - //managers = [ - //"etcd", - //"manifests", - //"certs", - //] - //assets = dict() - //for i in managers: - // assets.merge(i.generateAssets()) - //return assets - return infra.Assets{} -} diff --git a/app/phases/deployer/phase/init.go b/app/phases/deployer/phase/init.go deleted file mode 100755 index 52db85b276b7f626139e8adb8b9d43a602ccad3e..0000000000000000000000000000000000000000 --- a/app/phases/deployer/phase/init.go +++ /dev/null @@ -1,15 +0,0 @@ -package phase - -import "nestos-kubernetes-deployer/pkg/infra" - -type InitPhase struct { -} - -func (p InitPhase) Do() { - generator := infra.GetBootConfigAssembler(clusterInfo.OsType) - masterInitConfig := generator.Assemble(generateInitAssets()) - masterSpec := parseSpecFromClusterInfo(clusterInfo) - _ = infraDeployer.Create(masterSpec, masterInitConfig) - apiMonitor.WaitForMastersReady(0) - -} diff --git a/app/phases/deployer/phase/join.go b/app/phases/deployer/phase/join.go deleted file mode 100755 index 367bfa5fb68b3cc8567b13a798e5d7ff93f6abe1..0000000000000000000000000000000000000000 --- a/app/phases/deployer/phase/join.go +++ /dev/null @@ -1 +0,0 @@ -package phase diff --git a/app/phases/deployer/playbook/base.go b/app/phases/deployer/playbook/base.go deleted file mode 100755 index 2f5fc25652d0b84e4bce4082e7b1425f9e326899..0000000000000000000000000000000000000000 --- a/app/phases/deployer/playbook/base.go +++ /dev/null @@ -1,25 +0,0 @@ -package playbook - -import ( - "nestos-kubernetes-deployer/pkg/deployer" - "nestos-kubernetes-deployer/pkg/deployer/phase" -) - -type Playbook struct { - clusterInfo deployer.ClusterInfo - phases []phase.Phase -} - -func (p Playbook) Start() { - for _, i := range p.phases { - p.Run(i) - } -} - -func (p *Playbook) AddPhase(phase phase.Phase) { - p.phases = append(p.phases, phase) -} - -func (p Playbook) Run(phase phase.Phase) { - -} diff --git a/app/phases/deployer/playbook/oneshot.go b/app/phases/deployer/playbook/oneshot.go deleted file mode 100755 index d43a793aa0e8996d9bb4b18ef6b4919ec5fca5d6..0000000000000000000000000000000000000000 --- a/app/phases/deployer/playbook/oneshot.go +++ /dev/null @@ -1,15 +0,0 @@ -package playbook - -import "nestos-kubernetes-deployer/pkg/deployer/phase" - -func OneshotPlaybook() Playbook { - return Playbook{ - phase.InitPhase{}, - } -} - -//managers = [ -//"etcd", -//"manifests", -//"certs", -//] diff --git a/app/phases/deployer/playbook/upgrade.go b/app/phases/deployer/playbook/upgrade.go deleted file mode 100755 index db1daafb46896cb1337e4c77ba4fe0eed217e8f4..0000000000000000000000000000000000000000 --- a/app/phases/deployer/playbook/upgrade.go +++ /dev/null @@ -1,6 +0,0 @@ -package playbook - -type UpgradePlabook struct { - -} - diff --git a/app/phases/deployer/state.go b/app/phases/deployer/state.go deleted file mode 100755 index 9b7a6f998fe54bf70059b619ff4f99d82aeba7bf..0000000000000000000000000000000000000000 --- a/app/phases/deployer/state.go +++ /dev/null @@ -1,5 +0,0 @@ -package deployer - -const ( - state_ready = iota -) diff --git a/app/phases/deployer/template.go b/app/phases/deployer/template.go deleted file mode 100755 index c1d01d1e7736009bd3aea6f0388989bc5b9e5c49..0000000000000000000000000000000000000000 --- a/app/phases/deployer/template.go +++ /dev/null @@ -1,10 +0,0 @@ -package deployer - -import ( - "github.com/pkg/errors" - "strings" - "text/template" - - "github.com/lithammer/dedent" -) - diff --git a/app/phases/deployer/utils.go b/app/phases/deployer/utils.go deleted file mode 100755 index fc18c22fd8cb37040ed63424f942d88034a30c28..0000000000000000000000000000000000000000 --- a/app/phases/deployer/utils.go +++ /dev/null @@ -1,17 +0,0 @@ -package deployer - -// 通过grpc请求handler完成操作 - -func DownloadFile(content, path string){ - -} - - -func PullImage(){ - -} - - -func WriteConfig(content, path string){ - -} diff --git a/app/phases/deployer/workflow.go b/app/phases/deployer/workflow.go deleted file mode 100755 index 93b6534cc0b965794fceec50e3006152e5a94d51..0000000000000000000000000000000000000000 --- a/app/phases/deployer/workflow.go +++ /dev/null @@ -1,69 +0,0 @@ -package deployer - -import ( - "nestos-kubernetes-deployer/pkg" - "nestos-kubernetes-deployer/pkg/deployer/phase" - "nestos-kubernetes-deployer/pkg/infra" -) - -// TODO 断点续传机制 - -func InitCluster(filename string) error { - // TODO cluster和vm的状态机制, init, pending, - // cluster state: pending, running, stopped - // infra state: none, pending, created, starting, running, stopping, stopped - // k8s state: TODO - - clusterInfo := ParseFromFile(filename) - infraDeployer := infra.GetInfraDeployer(clusterInfo.InfraDriver) - bootConfigAssembler := infra.GetBootConfigAssembler(clusterInfo.InfraDriver) - - infraSpec := parseSpecFromClusterInfo(clusterInfo) - assets := generateInitAssets() - bootConfig := bootConfigAssembler.Assemble(assets) - _ = infraDeployer.Create(infraSpec, bootConfig) - apiMonitor := pkg.ApiMonitor{clusterInfo.ApiEndpoint} - apiMonitor.WaitForMastersReady(0) - return nil -} - -func JoinToCluster(filename string) { - clusterInfo := ParseFromFile(filename) - infraDeployer := infra.GetInfraDeployer(clusterInfo.InfraDriver) - apiMonitor := pkg.ApiMonitor{clusterInfo.ApiEndpoint} - - generator := infra.GetBootConfigAssembler(clusterInfo.InfraDriver) - initConfig := generator.Assemble(generateJoinAssets()) - spec := parseSpecFromClusterInfo(clusterInfo) - _ = infraDeployer.Create(spec, initConfig) - apiMonitor.WaitForWorkersReady(0) -} - -func OneShot(filename string) { - clusterInfo := ParseFromFile(filename) - infraDeployer := infra.GetInfraDeployer(clusterInfo.InfraDriver) - apiMonitor := pkg.ApiMonitor{clusterInfo.ApiEndpoint} - - generatePhase := phase.GeneratePhase{"master"} - assets := generatePhase.GenerateAssets() - - generator := infra.GetBootConfigAssembler(clusterInfo.OsType) - masterInitConfig := generator.Assemble(assets) - masterSpec := parseSpecFromClusterInfo(clusterInfo) - _ = infraDeployer.Create(masterSpec, masterInitConfig) - apiMonitor.WaitForMastersReady(0) - - initConfig := generator.Assemble(generateJoinAssets()) - spec := parseSpecFromClusterInfo(clusterInfo) - _ = infraDeployer.Create(spec, initConfig) - apiMonitor.WaitForWorkersReady(0) - -} - -func parseSpecFromClusterInfo(info ClusterInfo) infra.InfraSpec { - return infra.InfraSpec{} -} - -func generateJoinAssets() infra.Assets { - return infra.Assets{} -} diff --git a/app/phases/manager/manager.go b/app/phases/manager/manager.go deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/app/phases/osimage/osimage.go b/app/phases/osimage/osimage.go deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/app/phases/registry/registry.go b/app/phases/registry/registry.go deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/data/terraform/master.tf.template b/data/terraform/master.tf.template index b5edefa097f04ba33f93d70ad24e6beae453ff02..920861b10814fb28aafe2ea18c6d0e01eaf2b617 100644 --- a/data/terraform/master.tf.template +++ b/data/terraform/master.tf.template @@ -57,13 +57,13 @@ resource "openstack_compute_secgroup_v2" "secgroup" { resource "openstack_compute_instance_v2" "instance" { count = var.instance_count - name = format("${var.instance_name}%d", count.index + 1) + name = format("${var.instance_name}%02d", count.index + 1) image_name = "{{.Infra.Openstack.Glance}}" flavor_name = var.instance_name key_pair = "" security_groups = [openstack_compute_secgroup_v2.secgroup.name] - availability_zone = "" - user_data = file(format("../master/${var.instance_name}%d.ign", count.index + 1)) + availability_zone = "{{.Infra.Openstack.Zone}}" + user_data = file(format("../master/${var.instance_name}%02d.ign", count.index + 1)) network { name = "{{.Infra.Openstack.Internal_network}}" diff --git a/data/terraform/worker.tf.template b/data/terraform/worker.tf.template index f563346f4073706e34686c0343dfb513b22eb541..a3a41d68c39d900230f684ac778a27326975cd0d 100644 --- a/data/terraform/worker.tf.template +++ b/data/terraform/worker.tf.template @@ -57,13 +57,13 @@ resource "openstack_compute_secgroup_v2" "secgroup" { resource "openstack_compute_instance_v2" "instance" { count = var.instance_count - name = format("${var.instance_name}%d", count.index + 1) + name = format("${var.instance_name}%02d", count.index + 1) image_name = "{{.Infra.Openstack.Glance}}" flavor_name = var.instance_name key_pair = "" security_groups = [openstack_compute_secgroup_v2.secgroup.name] - availability_zone = "" - user_data = file(format("../worker/${var.instance_name}%d.ign", count.index + 1)) + availability_zone = "{{.Infra.Openstack.Zone}}" + user_data = file("../worker/${var.instance_name}.ign") network { name = "{{.Infra.Openstack.Internal_network}}" diff --git a/go.mod b/go.mod index 94e660dc6f5835534d91658e4177bddcfbb59877..b75ef3c495218b7c67aa6a1be294015ae50a52c5 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,6 @@ require ( github.com/clarketm/json v1.17.1 github.com/coreos/ignition/v2 v2.16.2 github.com/hashicorp/terraform-exec v0.18.1 - github.com/lithammer/dedent v1.1.0 github.com/openshift/installer v0.16.1 github.com/pkg/errors v0.9.1 github.com/sirupsen/logrus v1.9.3 diff --git a/go.sum b/go.sum index 994c60c668fda2882fb63c9911ade738cbee5100..769b4e12807f597839b8d14af952ea2e5aa77ad0 100644 --- a/go.sum +++ b/go.sum @@ -65,8 +65,6 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lithammer/dedent v1.1.0 h1:VNzHMVCBNG1j0fh3OrsFRkVUwStdDArbgBWoPAffktY= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=