eggo/0005-add-coredns-checker.patch

214 lines
6.5 KiB
Diff
Raw Normal View History

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