214 lines
6.5 KiB
Diff
214 lines
6.5 KiB
Diff
From e3f440f40c64265fd3cb2e0a3c8e7d44b1022550 Mon Sep 17 00:00:00 2001
|
||
From: zhangxiaoyu <zhangxiaoyu58@huawei.com>
|
||
Date: Wed, 8 Sep 2021 17:11:43 +0800
|
||
Subject: [PATCH 2/4] add coredns checker
|
||
|
||
Signed-off-by: zhangxiaoyu <zhangxiaoyu58@huawei.com>
|
||
---
|
||
cmd/api.go | 1 +
|
||
cmd/configs.go | 20 +++++++++++--------
|
||
cmd/join.go | 9 +++++++--
|
||
config/centos.config | 7 ++++---
|
||
config/openEuler.config | 5 +++--
|
||
docs/manual.md | 7 ++++---
|
||
.../binary/coredns/coredns.go | 8 ++++++++
|
||
pkg/utils/infra/infra.go | 6 ++++++
|
||
8 files changed, 45 insertions(+), 18 deletions(-)
|
||
|
||
diff --git a/cmd/api.go b/cmd/api.go
|
||
index fdc8949..538c2e0 100644
|
||
--- a/cmd/api.go
|
||
+++ b/cmd/api.go
|
||
@@ -28,6 +28,7 @@ type InstallConfig struct {
|
||
LoadBalance []*PackageConfig `yaml:"loadbalance"`
|
||
Container []*PackageConfig `yaml:"container"`
|
||
Image []*PackageConfig `yaml:"image"`
|
||
+ Dns []*PackageConfig `yaml:"dns"`
|
||
Addition map[string][]*PackageConfig `yaml:"addition"` // key: master, worker, etcd, loadbalance
|
||
}
|
||
|
||
diff --git a/cmd/configs.go b/cmd/configs.go
|
||
index 7555a92..dfc4c45 100644
|
||
--- a/cmd/configs.go
|
||
+++ b/cmd/configs.go
|
||
@@ -28,6 +28,7 @@ import (
|
||
|
||
"github.com/sirupsen/logrus"
|
||
"isula.org/eggo/pkg/api"
|
||
+ "isula.org/eggo/pkg/clusterdeployment/binary/coredns"
|
||
"isula.org/eggo/pkg/constants"
|
||
"isula.org/eggo/pkg/utils"
|
||
"isula.org/eggo/pkg/utils/infra"
|
||
@@ -279,6 +280,10 @@ func fillPackageConfig(ccfg *api.ClusterConfig, icfg *InstallConfig) {
|
||
ccfg.RoleInfra[s.role].Softwares = appendSoftware(ccfg.RoleInfra[s.role].Softwares, s.pc, s.dpc)
|
||
}
|
||
|
||
+ if coredns.IsTypeBinary(ccfg.ServiceCluster.DNS.CorednsType) {
|
||
+ ccfg.RoleInfra[api.Master].Softwares = appendSoftware(ccfg.RoleInfra[api.Master].Softwares, ToEggoPackageConfig(icfg.Dns), infra.DnsPackages)
|
||
+ }
|
||
+
|
||
if len(icfg.Addition) == 0 {
|
||
return
|
||
}
|
||
@@ -306,12 +311,9 @@ func fillOpenPort(ccfg *api.ClusterConfig, openports map[string][]*OpenPorts, dn
|
||
ccfg.RoleInfra[role].OpenPorts = append(ccfg.RoleInfra[role].OpenPorts, ToEggoOpenPort(p)...)
|
||
}
|
||
|
||
- if dnsType == "binary" || dnsType == "" {
|
||
+ if coredns.IsTypeBinary(dnsType) {
|
||
ccfg.RoleInfra[api.Master].OpenPorts =
|
||
append(ccfg.RoleInfra[api.Master].OpenPorts, infra.CorednsPorts...)
|
||
- } else if dnsType == "pod" {
|
||
- ccfg.RoleInfra[api.Worker].OpenPorts =
|
||
- append(ccfg.RoleInfra[api.Worker].OpenPorts, infra.CorednsPorts...)
|
||
}
|
||
}
|
||
|
||
@@ -766,6 +768,12 @@ func createDeployConfigTemplate(file string) error {
|
||
Type: "image",
|
||
},
|
||
},
|
||
+ Dns: []*PackageConfig{
|
||
+ {
|
||
+ Name: "coredns",
|
||
+ Type: "pkg",
|
||
+ },
|
||
+ },
|
||
Addition: map[string][]*PackageConfig{
|
||
"master": {
|
||
{
|
||
@@ -778,10 +786,6 @@ func createDeployConfigTemplate(file string) error {
|
||
Name: "calico.yaml",
|
||
Type: "yaml",
|
||
},
|
||
- {
|
||
- Name: "coredns",
|
||
- Type: "pkg",
|
||
- },
|
||
},
|
||
"worker": {
|
||
{
|
||
diff --git a/cmd/join.go b/cmd/join.go
|
||
index 7d0b4a1..79d68fc 100644
|
||
--- a/cmd/join.go
|
||
+++ b/cmd/join.go
|
||
@@ -117,8 +117,13 @@ func getMergedAndDiffConfigs(conf *DeployConfig, joinConf *DeployConfig) (*Deplo
|
||
if getHostConfigByIp(mergedConfig.Workers, host.Ip) != nil {
|
||
continue
|
||
}
|
||
- h := createHostConfig(getHostConfigByIp(allHostConfigs, host.Ip), host,
|
||
- defaultHostName(conf.ClusterID, "worker", len(conf.Workers)+i))
|
||
+
|
||
+ h := getHostConfigByIp(diffConfig.Masters, host.Ip)
|
||
+ if h == nil {
|
||
+ h = createHostConfig(getHostConfigByIp(allHostConfigs, host.Ip), host,
|
||
+ defaultHostName(conf.ClusterID, "worker", len(conf.Workers)+i))
|
||
+ }
|
||
+
|
||
mergedConfig.Workers = append(mergedConfig.Workers, h)
|
||
diffConfig.Workers = append(diffConfig.Workers, h)
|
||
}
|
||
diff --git a/config/centos.config b/config/centos.config
|
||
index c9b0d0e..a5a2924 100755
|
||
--- a/config/centos.config
|
||
+++ b/config/centos.config
|
||
@@ -54,13 +54,14 @@ install:
|
||
image:
|
||
- name: images.tar
|
||
type: image
|
||
+ dns:
|
||
+ - name: coredns
|
||
+ type: bin
|
||
+ dst: /usr/bin
|
||
addition:
|
||
master:
|
||
- name: calico.yaml
|
||
type: yaml
|
||
- - name: coredns
|
||
- type: bin
|
||
- dst: /usr/bin
|
||
worker:
|
||
- name: conntrack,socat
|
||
type: bin
|
||
diff --git a/config/openEuler.config b/config/openEuler.config
|
||
index 90e5892..07acf9b 100755
|
||
--- a/config/openEuler.config
|
||
+++ b/config/openEuler.config
|
||
@@ -36,9 +36,10 @@ install:
|
||
image:
|
||
- name: images.tar
|
||
type: image
|
||
+ dns:
|
||
+ - name: coredns
|
||
+ type: pkg
|
||
addition:
|
||
master:
|
||
- name: calico.yaml
|
||
type: yaml
|
||
- - name: coredns
|
||
- type: pkg
|
||
diff --git a/docs/manual.md b/docs/manual.md
|
||
index 0957069..a4913b1 100644
|
||
--- a/docs/manual.md
|
||
+++ b/docs/manual.md
|
||
@@ -300,6 +300,10 @@ install: // 配置各种类型节点上需要
|
||
- name: pause.tar
|
||
type: image
|
||
dst: ""
|
||
+ dns: // k8s coredns安装包。如果corednstype配置为pod,此处无需配置
|
||
+ - name: coredns
|
||
+ type: pkg
|
||
+ dst: ""
|
||
addition: // 额外的安装包或二进制文件列表
|
||
master:
|
||
- name: prejoin.sh
|
||
@@ -309,9 +313,6 @@ install: // 配置各种类型节点上需要
|
||
- name: calico.yaml
|
||
type: yaml
|
||
dst: ""
|
||
- - name: coredns
|
||
- type: pkg
|
||
- dst: ""
|
||
worker:
|
||
- name: docker.service
|
||
type: file
|
||
diff --git a/pkg/clusterdeployment/binary/coredns/coredns.go b/pkg/clusterdeployment/binary/coredns/coredns.go
|
||
index 35edb08..a33c71f 100644
|
||
--- a/pkg/clusterdeployment/binary/coredns/coredns.go
|
||
+++ b/pkg/clusterdeployment/binary/coredns/coredns.go
|
||
@@ -33,6 +33,14 @@ func init() {
|
||
cbs[CorednsTypeOfBinary] = &BinaryCoredns{}
|
||
}
|
||
|
||
+func IsTypeBinary(configType string) bool {
|
||
+ return configType == CorednsTypeOfBinary || configType == ""
|
||
+}
|
||
+
|
||
+func IsTypePod(configType string) bool {
|
||
+ return configType == CorednsTypeOfPod
|
||
+}
|
||
+
|
||
func getTypeOfCoredns(configType string) string {
|
||
if configType != "" {
|
||
return configType
|
||
diff --git a/pkg/utils/infra/infra.go b/pkg/utils/infra/infra.go
|
||
index b0c8ecd..2b36e2a 100644
|
||
--- a/pkg/utils/infra/infra.go
|
||
+++ b/pkg/utils/infra/infra.go
|
||
@@ -110,6 +110,12 @@ var (
|
||
}
|
||
|
||
// coredns
|
||
+ DnsPackages = []*api.PackageConfig{
|
||
+ {
|
||
+ Name: "coredns",
|
||
+ Type: "repo",
|
||
+ },
|
||
+ }
|
||
CorednsPorts = []*api.OpenPorts{
|
||
{
|
||
Port: 53,
|
||
--
|
||
2.25.1
|
||
|