33 lines
911 B
Go
33 lines
911 B
Go
package helm_client
|
|
|
|
import (
|
|
"context"
|
|
"kube-forge/internal/config"
|
|
"kube-forge/internal/logging"
|
|
|
|
go_helm_client "github.com/mittwald/go-helm-client"
|
|
)
|
|
|
|
func InstallChart(chartSpec go_helm_client.ChartSpec) {
|
|
helmClient := config.GetHelmClient(chartSpec.Namespace)
|
|
_, error := helmClient.GetRelease(chartSpec.ReleaseName)
|
|
if error != nil {
|
|
logging.Log.Infof("Installing %s", chartSpec.ChartName)
|
|
} else {
|
|
logging.Log.Infof("Upgrading %s", chartSpec.ChartName)
|
|
}
|
|
if _, err := helmClient.InstallOrUpgradeChart(context.Background(), &chartSpec, nil); err != nil {
|
|
logging.Log.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func DeleteChart(chartSpec go_helm_client.ChartSpec) {
|
|
helmClient := config.GetHelmClient(chartSpec.Namespace)
|
|
_, error := helmClient.GetRelease(chartSpec.ReleaseName)
|
|
if error != nil {
|
|
return
|
|
}
|
|
logging.Log.Warnf("Uninstalling %s", chartSpec.ChartName)
|
|
helmClient.UninstallRelease(&chartSpec)
|
|
}
|