diff --git a/Earthfile b/Earthfile index 1c8bda7..eb933d4 100644 --- a/Earthfile +++ b/Earthfile @@ -2,7 +2,7 @@ VERSION 0.6 FROM alpine ARG KUBEADM_VERSION=latest -ARG BASE_IMAGE=quay.io/kairos/core-opensuse-leap:v2.3.2 +ARG BASE_IMAGE=quay.io/kairos/opensuse:leap-15.5-core-amd64-generic-v2.4.3 ARG IMAGE_REPOSITORY=quay.io/kairos ARG CRICTL_VERSION=1.25.0 ARG RELEASE_VERSION=0.4.0 diff --git a/scripts/kube-reconfigure.sh b/scripts/kube-reconfigure.sh index dfc98c9..a763206 100644 --- a/scripts/kube-reconfigure.sh +++ b/scripts/kube-reconfigure.sh @@ -109,6 +109,6 @@ then regenerate_etcd_manifests upload_kubelet_config fi -regenerate_kubelet_envs regenerate_kubelet_config +regenerate_kubelet_envs restart_kubelet \ No newline at end of file diff --git a/stages/init.go b/stages/init.go index 172ee5b..39bfbac 100644 --- a/stages/init.go +++ b/stages/init.go @@ -41,7 +41,7 @@ func GetInitYipStages(cluster clusterplugin.Cluster, initCfg kubeadmapiv3.InitCo getKubeadmInitStage(cluster, clusterCfg), getKubeadmPostInitStage(), getKubeadmInitUpgradeStage(cluster, clusterCfg), - getKubeadmInitCreateClusterConfigStage(clusterCfg), + getKubeadmInitCreateClusterConfigStage(clusterCfg, initCfg), getKubeadmInitCreateKubeletConfigStage(kubeletCfg), getKubeadmInitReconfigureStage(cluster, clusterCfg, initCfg), } @@ -110,14 +110,14 @@ func getKubeadmInitUpgradeStage(cluster clusterplugin.Cluster, clusterCfg kubead return upgradeStage } -func getKubeadmInitCreateClusterConfigStage(clusterCfg kubeadmapiv3.ClusterConfiguration) yip.Stage { +func getKubeadmInitCreateClusterConfigStage(clusterCfg kubeadmapiv3.ClusterConfiguration, initCfg kubeadmapiv3.InitConfiguration) yip.Stage { return yip.Stage{ Name: "Generate Cluster Config File", Files: []yip.File{ { Path: filepath.Join(configurationPath, "cluster-config.yaml"), Permissions: 0640, - Content: getUpdatedClusterConfig(clusterCfg), + Content: getUpdatedInitClusterConfig(clusterCfg, initCfg), }, }, } @@ -200,11 +200,12 @@ func getInitNodeConfiguration(cluster clusterplugin.Cluster, initCfg kubeadmapiv return out.String() } -func getUpdatedClusterConfig(clusterCfg kubeadmapiv3.ClusterConfiguration) string { +func getUpdatedInitClusterConfig(clusterCfg kubeadmapiv3.ClusterConfiguration, initCfg kubeadmapiv3.InitConfiguration) string { initPrintr := printers.NewTypeSetter(scheme).ToPrinter(&printers.YAMLPrinter{}) out := bytes.NewBuffer([]byte{}) _ = initPrintr.PrintObj(&clusterCfg, out) + _ = initPrintr.PrintObj(&initCfg, out) return out.String() } diff --git a/stages/join.go b/stages/join.go index ed5e003..a48fbd6 100644 --- a/stages/join.go +++ b/stages/join.go @@ -27,7 +27,7 @@ func GetJoinYipStages(cluster clusterplugin.Cluster, clusterCfg kubeadmapiv3.Clu } if cluster.Role != clusterplugin.RoleWorker { - joinStg = append(joinStg, getKubeadmJoinCreateClusterConfigStage(clusterCfg), getKubeadmJoinCreateKubeletConfigStage(kubeletCfg)) + joinStg = append(joinStg, getKubeadmJoinCreateClusterConfigStage(clusterCfg, joinCfg), getKubeadmJoinCreateKubeletConfigStage(kubeletCfg)) } return append(joinStg, getKubeadmJoinReconfigureStage(cluster, clusterCfg, joinCfg)) @@ -123,14 +123,14 @@ func getKubeadmJoinUpgradeStage(cluster clusterplugin.Cluster, clusterCfg kubead return upgradeStage } -func getKubeadmJoinCreateClusterConfigStage(clusterCfg kubeadmapiv3.ClusterConfiguration) yip.Stage { +func getKubeadmJoinCreateClusterConfigStage(clusterCfg kubeadmapiv3.ClusterConfiguration, joinCfg kubeadmapiv3.JoinConfiguration) yip.Stage { return yip.Stage{ Name: "Generate Cluster Config File", Files: []yip.File{ { Path: filepath.Join(configurationPath, "cluster-config.yaml"), Permissions: 0640, - Content: getUpdatedClusterConfig(clusterCfg), + Content: getUpdatedJoinClusterConfig(clusterCfg, joinCfg), }, }, } @@ -169,3 +169,13 @@ func getKubeadmJoinReconfigureStage(cluster clusterplugin.Cluster, clusterCfg ku } return reconfigureStage } + +func getUpdatedJoinClusterConfig(clusterCfg kubeadmapiv3.ClusterConfiguration, joinCfg kubeadmapiv3.JoinConfiguration) string { + initPrintr := printers.NewTypeSetter(scheme).ToPrinter(&printers.YAMLPrinter{}) + + out := bytes.NewBuffer([]byte{}) + _ = initPrintr.PrintObj(&clusterCfg, out) + _ = initPrintr.PrintObj(&joinCfg, out) + + return out.String() +} diff --git a/utils/kubelet.go b/utils/kubelet.go index a66f724..60e397e 100644 --- a/utils/kubelet.go +++ b/utils/kubelet.go @@ -2,17 +2,13 @@ package utils import ( "fmt" - "os" "strings" - kyaml "sigs.k8s.io/yaml" + "k8s.io/kubernetes/cmd/kubeadm/app/util/initsystem" "k8s.io/klog/v2" - "k8s.io/kubernetes/cmd/kubeadm/app/util/initsystem" - nodeutil "k8s.io/component-helpers/node/util" - kubeletv1beta1 "k8s.io/kubelet/config/v1beta1" kubeadmapiv3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" @@ -37,25 +33,6 @@ var k8sVersionToPauseImage = map[string]string{ "v1.27.5": "3.9", } -// WriteKubeletConfigToDisk writes the kubelet config object down to a file -func WriteKubeletConfigToDisk(clusterCfg *kubeadmapiv3.ClusterConfiguration, kubeletCfg *kubeletv1beta1.KubeletConfiguration, kubeletConfigPath string) { - MutateKubeletDefaults(clusterCfg, kubeletCfg) - data, _ := kyaml.Marshal(kubeletCfg) - writeConfigBytesToDisk(data, kubeletConfigPath) -} - -func isServiceActive(name string) (bool, error) { - initSystem, err := initsystem.GetInitSystem() - if err != nil { - return false, err - } - return initSystem.ServiceIsActive(name), nil -} - -func writeConfigBytesToDisk(b []byte, kubeletDir string) { - _ = os.WriteFile(kubeletDir, b, 0644) -} - func RegenerateKubeletKubeadmArgsFile(clusterCfg *kubeadmapiv3.ClusterConfiguration, nodeReg *kubeadmapiv3.NodeRegistrationOptions, nodeRole string) string { var registerTaintsUsingFlags bool if nodeRole == "worker" { @@ -113,3 +90,11 @@ func getNodeNameAndHostname(cfg *kubeadmapiv3.NodeRegistrationOptions) (string, } return nodeName, hostname } + +func isServiceActive(name string) (bool, error) { + initSystem, err := initsystem.GetInitSystem() + if err != nil { + return false, err + } + return initSystem.ServiceIsActive(name), nil +}