migrate from kubespray to library helm client

This commit is contained in:
2024-06-20 00:20:50 +03:00
parent 3109816dee
commit 78cf06e314
46 changed files with 6283 additions and 12035 deletions

View File

@@ -4,44 +4,45 @@ import (
"fmt"
"kube-forge/internal/config"
"kube-forge/internal/kubernetes_client"
"kube-forge/internal/logging"
"kube-forge/internal/templates"
"regexp"
"strings"
)
func InitVault() {
func initVault() {
_, err := kubernetes_client.GetPodByName("vault-0", "secrets-storage")
if err != nil {
fmt.Println(err.Error())
logging.Log.Error(err.Error())
return
}
err = commandToInitVault()
if err != nil {
fmt.Println(err.Error())
logging.Log.Warn(err.Error())
return
}
fmt.Println("Vault initialized")
logging.Log.Info("Vault initialized")
templates.ApplyVaultInitKeysTemplate()
}
func AddKubernetesLocalIntegration() {
func addKubernetesLocalIntegration() {
_, err := kubernetes_client.GetPodByName("vault-0", "secrets-storage")
if err != nil {
fmt.Println(err.Error())
logging.Log.Error(err.Error())
return
}
err = commandToAddKubernetesLocalIntegration()
if err != nil {
fmt.Println(err.Error())
logging.Log.Error(err.Error())
return
}
fmt.Println("Vault local Kubernetes integration added")
logging.Log.Info("Vault local Kubernetes integration added")
}
func UnsealVault() {
func unsealVault() {
_, err := kubernetes_client.GetPodByName("vault-0", "secrets-storage")
if err != nil {
fmt.Println(err.Error())
logging.Log.Error(err.Error())
return
}
commandToUnsealVault()
@@ -92,7 +93,7 @@ func commandToUnsealVault() {
commandArray, "secrets-storage", "vault-0", "vault",
)
}
fmt.Println("Vault unsealed")
logging.Log.Info("Vault unsealed")
}
func commandToAddKubernetesLocalIntegration() error {

View File

@@ -0,0 +1,44 @@
package secrets_storage
import (
"kube-forge/internal/config"
"kube-forge/internal/helm_client"
"kube-forge/internal/templates"
"time"
go_helm_client "github.com/mittwald/go-helm-client"
)
var HELM_REPOS = []config.RepoSettings{
{
Name: "kube-forge",
URL: "https://git.kvazaric.ru/api/v4/projects/41/packages/helm/stable",
},
}
func getVaultSpec() go_helm_client.ChartSpec {
appConfig := config.GetConfig()
return go_helm_client.ChartSpec{
ReleaseName: "vault",
ChartName: appConfig.Modules.SecretsStorage.ChartRef,
Version: appConfig.Modules.SecretsStorage.ChartVersion,
Namespace: appConfig.Modules.SecretsStorage.Namespace,
CreateNamespace: true,
Atomic: true,
Timeout: time.Second * 600,
ValuesYaml: templates.GetHelmValuesByTemplate("templates/helm-apps/releases/secrets-storage/vault.yml.tmpl"),
}
}
func ApplyCharts() {
appConfig := config.GetConfig()
helm_client.AddHelmRepos(appConfig.Modules.SecretsStorage.Namespace, HELM_REPOS)
if appConfig.Modules.SecretsStorage.Enabled {
helm_client.InstallChart(getVaultSpec())
initVault()
unsealVault()
addKubernetesLocalIntegration()
} else {
helm_client.DeleteChart(getVaultSpec())
}
}