20 Star 1 Fork 10

openEuler-RISC-V/eggo

forked from src-openEuler/eggo 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
0004-add-host-name-checker-add-bin-execute-permission.patch 6.26 KB
一键复制 编辑 原始数据 按行查看 历史
zhangxiaoyu 提交于 2021-11-26 09:39 . upgrade to v0.9.4-2
From ae822ab2b0fd07d33adb7c244e78f2fcd31e1c05 Mon Sep 17 00:00:00 2001
From: zhangxiaoyu <zhangxiaoyu58@huawei.com>
Date: Wed, 3 Nov 2021 15:16:09 +0800
Subject: [PATCH 04/12] add host name checker, add bin execute permission
Signed-off-by: zhangxiaoyu <zhangxiaoyu58@huawei.com>
---
cmd/checker.go | 6 ++++++
config/all_online_install.config | 1 +
config/openEuler.config | 8 ++++----
docs/configuration_file_description.md | 2 +-
pkg/utils/dependency/dependency.go | 19 +++++++++++++-----
pkg/utils/dependency/install.go | 27 ++++++++++++++------------
6 files changed, 41 insertions(+), 22 deletions(-)
diff --git a/cmd/checker.go b/cmd/checker.go
index 4530f2b..9d1fda6 100644
--- a/cmd/checker.go
+++ b/cmd/checker.go
@@ -140,6 +140,12 @@ func checkHostconfig(h *HostConfig) error {
if h == nil {
return fmt.Errorf("empty hostconfig")
}
+ if h.Name == "" {
+ return fmt.Errorf("empty host name")
+ }
+ if errs := validation.IsDNS1123Subdomain(h.Name); len(errs) > 0 {
+ return fmt.Errorf("invalid host name: %v", errs)
+ }
if h.Ip == "" {
return fmt.Errorf("host: %s ip is null", h.Name)
}
diff --git a/config/all_online_install.config b/config/all_online_install.config
index dfc3ad4..c8a5eae 100644
--- a/config/all_online_install.config
+++ b/config/all_online_install.config
@@ -17,6 +17,7 @@ workers:
arch: arm64
runtime: iSulad
runtime-endpoint: unix:///var/run/isulad.sock
+pause-image: docker.io/mirrorgcrio/pause:3.2
open-ports:
worker:
- port: 111
diff --git a/config/openEuler.config b/config/openEuler.config
index 07acf9b..a69154b 100755
--- a/config/openEuler.config
+++ b/config/openEuler.config
@@ -1,17 +1,17 @@
-cluster-id: k8s-openEuler
+cluster-id: k8s-openeuler
username: root
password: "123456"
masters:
-- name: openEuler1
+- name: openeuler1
ip: 192.168.0.1
port: 22
arch: arm64
workers:
-- name: openEuler1
+- name: openeuler1
ip: 192.168.0.1
port: 22
arch: arm64
-- name: openEuler2
+- name: openeuler2
ip: 192.168.0.2
port: 22
arch: arm64
diff --git a/docs/configuration_file_description.md b/docs/configuration_file_description.md
index c169f49..4c84e5f 100644
--- a/docs/configuration_file_description.md
+++ b/docs/configuration_file_description.md
@@ -8,7 +8,7 @@ username: root // 需要部署k8s集群的机器的ssh登录
password: 123456 // 需要部署k8s集群的机器的ssh登录密码,所有机器都需要使用同一个密码
private-key-path: ~/.ssh/pri.key // ssh免密登录的密钥,可以替代password防止密码泄露
masters: // 配置master节点的列表,建议每个master节点同时作为worker节点,否则master节点可以无法直接访问pod
-- name: test0 // 该节点的名称,为k8s集群看到的该节点的名称
+- name: test0 // 该节点的名称,为k8s集群看到的该节点的名称,名字需要符合RFC 1123 subdomain规范
ip: 192.168.0.1 // 该节点的ip地址
port: 22 // ssh登录的端口
arch: arm64 // 机器架构,x86_64的填amd64
diff --git a/pkg/utils/dependency/dependency.go b/pkg/utils/dependency/dependency.go
index 3d0bf8f..9e6ac22 100644
--- a/pkg/utils/dependency/dependency.go
+++ b/pkg/utils/dependency/dependency.go
@@ -143,15 +143,23 @@ func (dd *dependencyDeb) Remove(r runner.Runner) error {
}
// install file and dir
-type dependencyFD struct {
- srcPath string
- software []*api.PackageConfig
+type dependencyFileDir struct {
+ executable bool
+ srcPath string
+ software []*api.PackageConfig
}
-func (df *dependencyFD) Install(r runner.Runner) error {
+func (df *dependencyFileDir) Install(r runner.Runner) error {
shell := `
#!/bin/bash
cd {{ .srcPath }}
+
+{{- if .executable }}
+{{- range $i, $v := .software }}
+chmod +x {{ $v.Name }}
+{{- end }}
+{{- end }}
+
{{- range $i, $v := .software }}
if [ ! -e {{ JoinPath $v.Dst $v.Name }} ]; then
mkdir -p {{ $v.Dst }} && cp -r {{ $v.Name }} {{ $v.Dst }}
@@ -161,6 +169,7 @@ fi
datastore := make(map[string]interface{})
datastore["srcPath"] = df.srcPath
datastore["software"] = df.software
+ datastore["executable"] = df.executable
shellStr, err := template.TemplateRender(shell, datastore)
if err != nil {
@@ -175,7 +184,7 @@ fi
return nil
}
-func (df *dependencyFD) Remove(r runner.Runner) error {
+func (df *dependencyFileDir) Remove(r runner.Runner) error {
var sb strings.Builder
sb.WriteString("sudo -E /bin/sh -c \"")
for _, s := range df.software {
diff --git a/pkg/utils/dependency/install.go b/pkg/utils/dependency/install.go
index 611c006..e2c0621 100644
--- a/pkg/utils/dependency/install.go
+++ b/pkg/utils/dependency/install.go
@@ -125,23 +125,26 @@ func installFD(r runner.Runner, bin, file, dir []*api.PackageConfig, hcf *api.Ho
dp := []dependency{}
if len(bin) != 0 {
- dp = append(dp, &dependencyFD{
- srcPath: path.Join(packagePath, constants.DefaultBinPath),
- software: bin,
+ dp = append(dp, &dependencyFileDir{
+ srcPath: path.Join(packagePath, constants.DefaultBinPath),
+ software: bin,
+ executable: true,
})
}
if len(file) != 0 {
- dp = append(dp, &dependencyFD{
- srcPath: path.Join(packagePath, constants.DefaultFilePath),
- software: file,
+ dp = append(dp, &dependencyFileDir{
+ srcPath: path.Join(packagePath, constants.DefaultFilePath),
+ software: file,
+ executable: false,
})
}
if len(dir) != 0 {
- dp = append(dp, &dependencyFD{
- srcPath: path.Join(packagePath, constants.DefaultDirPath),
- software: dir,
+ dp = append(dp, &dependencyFileDir{
+ srcPath: path.Join(packagePath, constants.DefaultDirPath),
+ software: dir,
+ executable: false,
})
}
@@ -233,19 +236,19 @@ func uninstallFD(r runner.Runner, bin, file, dir []*api.PackageConfig, hcf *api.
dp := []dependency{}
if len(bin) != 0 {
- dp = append(dp, &dependencyFD{
+ dp = append(dp, &dependencyFileDir{
software: bin,
})
}
if len(file) != 0 {
- dp = append(dp, &dependencyFD{
+ dp = append(dp, &dependencyFileDir{
software: file,
})
}
if len(dir) != 0 {
- dp = append(dp, &dependencyFD{
+ dp = append(dp, &dependencyFileDir{
software: dir,
})
}
--
2.25.1
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/openeuler-risc-v/eggo.git
git@gitee.com:openeuler-risc-v/eggo.git
openeuler-risc-v
eggo
eggo
master

搜索帮助