kube-forge v2: embede python with ansible (kubespray) and cobra as cli building tool

This commit is contained in:
2025-06-22 00:37:47 +03:00
parent c2df2abc78
commit 4142a9db61
830 changed files with 874 additions and 2047 deletions

View File

@@ -8,7 +8,7 @@ import (
"github.com/BurntSushi/toml"
"github.com/Masterminds/sprig/v3"
"sigs.k8s.io/yaml"
"gopkg.in/yaml.v2"
)
func funcMap() template.FuncMap {

View File

@@ -1,13 +1,13 @@
package templates
var K8S_TEMPLATES = [...][2]string{
{"templates/kubespray/inventory/hosts.tmpl", "kubespray/inventory/hosts"},
{"templates/kubespray/inventory/group_vars/all.yml.tmpl", "kubespray/inventory/group_vars/all.yml"},
{"templates/kubespray/inventory/group_vars/k8s_cluster/addons.yml.tmpl", "kubespray/inventory/group_vars/k8s_cluster/addons.yml"},
{"templates/kubespray/inventory/group_vars/k8s_cluster/k8s-cluster.yml.tmpl", "kubespray/inventory/group_vars/k8s_cluster/k8s-cluster.yml"},
{"templates/kubespray/inventory/group_vars/k8s_cluster/k8s-net-calico.yml.tmpl", "kubespray/inventory/group_vars/k8s_cluster/k8s-net-calico.yml"},
{"templates/kubespray/inventory/group_vars/k8s_cluster/k8s-net-cilium.yml.tmpl", "kubespray/inventory/group_vars/k8s_cluster/k8s-net-cilium.yml"},
{"templates/kubespray/inventory/group_vars/all/containerd.yml.tmpl", "kubespray/inventory/group_vars/all/containerd.yml"},
{"templates/kubespray/inventory/hosts.tmpl", "inventory/hosts"},
{"templates/kubespray/inventory/group_vars/all.yml.tmpl", "inventory/group_vars/all.yml"},
{"templates/kubespray/inventory/group_vars/k8s_cluster/addons.yml.tmpl", "inventory/group_vars/k8s_cluster/addons.yml"},
{"templates/kubespray/inventory/group_vars/k8s_cluster/k8s-cluster.yml.tmpl", "inventory/group_vars/k8s_cluster/k8s-cluster.yml"},
{"templates/kubespray/inventory/group_vars/k8s_cluster/k8s-net-calico.yml.tmpl", "inventory/group_vars/k8s_cluster/k8s-net-calico.yml"},
{"templates/kubespray/inventory/group_vars/k8s_cluster/k8s-net-cilium.yml.tmpl", "inventory/group_vars/k8s_cluster/k8s-net-cilium.yml"},
{"templates/kubespray/inventory/group_vars/all/containerd.yml.tmpl", "inventory/group_vars/all/containerd.yml"},
}
func ApplyK8sTemplates() {

View File

@@ -8,7 +8,7 @@ import (
func ApplyVaultInitKeysTemplate() {
config := config.GetConfig()
var VAULT_INIT_KEYS_TEMPLATE = [...][2]string{
{"templates/secrets-storage/vault-keys.json.tmpl", fmt.Sprintf("%s/vault-keys.json", config.WorkDir)},
{"templates/secrets-storage/vault-keys.json.tmpl", fmt.Sprintf("%s/vault-keys.json", config.InventoryDir)},
}
applyTemplates(VAULT_INIT_KEYS_TEMPLATE[:])
}

View File

@@ -4,6 +4,7 @@ import (
"bytes"
"embed"
"kube-forge/internal/config"
"kube-forge/internal/logging"
"kube-forge/internal/resources"
"os"
"path/filepath"
@@ -37,7 +38,13 @@ func applyTemplates(templates [][2]string) {
config := config.GetConfig()
for _, templateData := range templates {
var templateFile = templateData[0]
var outFile = filepath.Join(config.WorkDir, templateData[1])
var outFile = filepath.Join(config.BaseDir, templateData[1])
dir := filepath.Dir(outFile)
err := os.MkdirAll(dir, 0755)
if err != nil {
logging.Log.Fatal(err)
}
tmpl := getTemplateFromEmbedFSFolder(resources.Templates, templateFile)