@ -6,10 +6,8 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"coopcloud.tech/abra/cli/internal"
|
"coopcloud.tech/abra/cli/internal"
|
||||||
"coopcloud.tech/abra/pkg/app"
|
|
||||||
"coopcloud.tech/abra/pkg/autocomplete"
|
"coopcloud.tech/abra/pkg/autocomplete"
|
||||||
"coopcloud.tech/abra/pkg/config"
|
"coopcloud.tech/abra/pkg/config"
|
||||||
"coopcloud.tech/abra/pkg/envfile"
|
|
||||||
"coopcloud.tech/abra/pkg/secret"
|
"coopcloud.tech/abra/pkg/secret"
|
||||||
|
|
||||||
appPkg "coopcloud.tech/abra/pkg/app"
|
appPkg "coopcloud.tech/abra/pkg/app"
|
||||||
@ -130,13 +128,9 @@ checkout as-is. Recipe commit hashes are also supported as values for
|
|||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
abraShEnv, err := envfile.ReadAbraShEnvVars(app.Recipe.AbraShPath)
|
if err := deploy.MergeAbraShEnv(app.Recipe, app.Env); err != nil {
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
for k, v := range abraShEnv {
|
|
||||||
app.Env[k] = v
|
|
||||||
}
|
|
||||||
|
|
||||||
composeFiles, err := app.Recipe.GetComposeFiles(app.Env)
|
composeFiles, err := app.Recipe.GetComposeFiles(app.Env)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -202,7 +196,7 @@ checkout as-is. Recipe commit hashes are also supported as values for
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Gather configs
|
// Gather configs
|
||||||
configInfo, err := deploy.GatherConfigsForDeploy(cl, app, compose, abraShEnv)
|
configInfo, err := deploy.GatherConfigsForDeploy(cl, app, compose, app.Env)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
@ -269,7 +263,7 @@ checkout as-is. Recipe commit hashes are also supported as values for
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
func getLatestVersionOrCommit(app app.App) (string, error) {
|
func getLatestVersionOrCommit(app appPkg.App) (string, error) {
|
||||||
versions, err := app.Recipe.Tags()
|
versions, err := app.Recipe.Tags()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
@ -304,7 +298,7 @@ func validateArgsAndFlags(args []string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func validateSecrets(cl *dockerClient.Client, app app.App) error {
|
func validateSecrets(cl *dockerClient.Client, app appPkg.App) error {
|
||||||
secStats, err := secret.PollSecretsStatus(cl, app)
|
secStats, err := secret.PollSecretsStatus(cl, app)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -319,7 +313,7 @@ func validateSecrets(cl *dockerClient.Client, app app.App) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func getDeployVersion(cliArgs []string, deployMeta stack.DeployMeta, app app.App) (string, error) {
|
func getDeployVersion(cliArgs []string, deployMeta stack.DeployMeta, app appPkg.App) (string, error) {
|
||||||
// Chaos mode overrides everything
|
// Chaos mode overrides everything
|
||||||
if internal.Chaos {
|
if internal.Chaos {
|
||||||
v, err := app.Recipe.ChaosVersion()
|
v, err := app.Recipe.ChaosVersion()
|
||||||
|
@ -4,12 +4,10 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"coopcloud.tech/abra/pkg/app"
|
|
||||||
appPkg "coopcloud.tech/abra/pkg/app"
|
appPkg "coopcloud.tech/abra/pkg/app"
|
||||||
"coopcloud.tech/abra/pkg/autocomplete"
|
"coopcloud.tech/abra/pkg/autocomplete"
|
||||||
"coopcloud.tech/abra/pkg/config"
|
"coopcloud.tech/abra/pkg/config"
|
||||||
"coopcloud.tech/abra/pkg/deploy"
|
"coopcloud.tech/abra/pkg/deploy"
|
||||||
"coopcloud.tech/abra/pkg/envfile"
|
|
||||||
"coopcloud.tech/abra/pkg/formatter"
|
"coopcloud.tech/abra/pkg/formatter"
|
||||||
"coopcloud.tech/abra/pkg/i18n"
|
"coopcloud.tech/abra/pkg/i18n"
|
||||||
"coopcloud.tech/abra/pkg/lint"
|
"coopcloud.tech/abra/pkg/lint"
|
||||||
@ -156,13 +154,9 @@ beforehand. See "abra app backup" for more.`),
|
|||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
abraShEnv, err := envfile.ReadAbraShEnvVars(app.Recipe.AbraShPath)
|
if err := deploy.MergeAbraShEnv(app.Recipe, app.Env); err != nil {
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
for k, v := range abraShEnv {
|
|
||||||
app.Env[k] = v
|
|
||||||
}
|
|
||||||
|
|
||||||
composeFiles, err := app.Recipe.GetComposeFiles(app.Env)
|
composeFiles, err := app.Recipe.GetComposeFiles(app.Env)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -198,7 +192,7 @@ beforehand. See "abra app backup" for more.`),
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Gather configs
|
// Gather configs
|
||||||
configInfo, err := deploy.GatherConfigsForDeploy(cl, app, compose, abraShEnv)
|
configInfo, err := deploy.GatherConfigsForDeploy(cl, app, compose, app.Env)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
@ -289,7 +283,7 @@ func chooseDowngrade(
|
|||||||
// validateDownpgradeVersionArg validates the specific version.
|
// validateDownpgradeVersionArg validates the specific version.
|
||||||
func validateDowngradeVersionArg(
|
func validateDowngradeVersionArg(
|
||||||
specificVersion string,
|
specificVersion string,
|
||||||
app app.App,
|
app appPkg.App,
|
||||||
deployMeta stack.DeployMeta,
|
deployMeta stack.DeployMeta,
|
||||||
) error {
|
) error {
|
||||||
parsedDeployedVersion, err := tagcmp.Parse(deployMeta.Version)
|
parsedDeployedVersion, err := tagcmp.Parse(deployMeta.Version)
|
||||||
|
@ -12,7 +12,6 @@ import (
|
|||||||
"coopcloud.tech/abra/pkg/client"
|
"coopcloud.tech/abra/pkg/client"
|
||||||
"coopcloud.tech/abra/pkg/config"
|
"coopcloud.tech/abra/pkg/config"
|
||||||
"coopcloud.tech/abra/pkg/deploy"
|
"coopcloud.tech/abra/pkg/deploy"
|
||||||
"coopcloud.tech/abra/pkg/envfile"
|
|
||||||
"coopcloud.tech/abra/pkg/formatter"
|
"coopcloud.tech/abra/pkg/formatter"
|
||||||
"coopcloud.tech/abra/pkg/i18n"
|
"coopcloud.tech/abra/pkg/i18n"
|
||||||
"coopcloud.tech/abra/pkg/lint"
|
"coopcloud.tech/abra/pkg/lint"
|
||||||
@ -168,13 +167,9 @@ beforehand. See "abra app backup" for more.`),
|
|||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
abraShEnv, err := envfile.ReadAbraShEnvVars(app.Recipe.AbraShPath)
|
if err := deploy.MergeAbraShEnv(app.Recipe, app.Env); err != nil {
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
for k, v := range abraShEnv {
|
|
||||||
app.Env[k] = v
|
|
||||||
}
|
|
||||||
|
|
||||||
composeFiles, err := app.Recipe.GetComposeFiles(app.Env)
|
composeFiles, err := app.Recipe.GetComposeFiles(app.Env)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -223,7 +218,7 @@ beforehand. See "abra app backup" for more.`),
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Gather configs
|
// Gather configs
|
||||||
configInfo, err := deploy.GatherConfigsForDeploy(cl, app, compose, abraShEnv)
|
configInfo, err := deploy.GatherConfigsForDeploy(cl, app, compose, app.Env)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@ import (
|
|||||||
"coopcloud.tech/abra/cli/internal"
|
"coopcloud.tech/abra/cli/internal"
|
||||||
appPkg "coopcloud.tech/abra/pkg/app"
|
appPkg "coopcloud.tech/abra/pkg/app"
|
||||||
"coopcloud.tech/abra/pkg/client"
|
"coopcloud.tech/abra/pkg/client"
|
||||||
|
"coopcloud.tech/abra/pkg/deploy"
|
||||||
"coopcloud.tech/abra/pkg/envfile"
|
"coopcloud.tech/abra/pkg/envfile"
|
||||||
"coopcloud.tech/abra/pkg/i18n"
|
"coopcloud.tech/abra/pkg/i18n"
|
||||||
"coopcloud.tech/abra/pkg/lint"
|
"coopcloud.tech/abra/pkg/lint"
|
||||||
@ -335,21 +336,6 @@ func processRecipeRepoVersion(r recipe.Recipe, version string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// mergeAbraShEnv merges abra.sh env vars into the app env vars.
|
|
||||||
func mergeAbraShEnv(recipe recipe.Recipe, env envfile.AppEnv) error {
|
|
||||||
abraShEnv, err := envfile.ReadAbraShEnvVars(recipe.AbraShPath)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
for k, v := range abraShEnv {
|
|
||||||
log.Debugf("read v:%s k: %s", v, k)
|
|
||||||
env[k] = v
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// createDeployConfig merges and enriches the compose config for the deployment.
|
// createDeployConfig merges and enriches the compose config for the deployment.
|
||||||
func createDeployConfig(r recipe.Recipe, stackName string, env envfile.AppEnv) (*composetypes.Config, stack.Deploy, error) {
|
func createDeployConfig(r recipe.Recipe, stackName string, env envfile.AppEnv) (*composetypes.Config, stack.Deploy, error) {
|
||||||
env["STACK_NAME"] = stackName
|
env["STACK_NAME"] = stackName
|
||||||
@ -444,7 +430,7 @@ func upgrade(cl *dockerclient.Client, stackName, recipeName, upgradeVersion stri
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = mergeAbraShEnv(app.Recipe, app.Env); err != nil {
|
if err = deploy.MergeAbraShEnv(app.Recipe, app.Env); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,7 +10,9 @@ import (
|
|||||||
|
|
||||||
appPkg "coopcloud.tech/abra/pkg/app"
|
appPkg "coopcloud.tech/abra/pkg/app"
|
||||||
"coopcloud.tech/abra/pkg/client"
|
"coopcloud.tech/abra/pkg/client"
|
||||||
|
"coopcloud.tech/abra/pkg/envfile"
|
||||||
"coopcloud.tech/abra/pkg/log"
|
"coopcloud.tech/abra/pkg/log"
|
||||||
|
"coopcloud.tech/abra/pkg/recipe"
|
||||||
"coopcloud.tech/abra/pkg/secret"
|
"coopcloud.tech/abra/pkg/secret"
|
||||||
|
|
||||||
composetypes "github.com/docker/cli/cli/compose/types"
|
composetypes "github.com/docker/cli/cli/compose/types"
|
||||||
@ -18,6 +20,22 @@ import (
|
|||||||
dockerClient "github.com/docker/docker/client"
|
dockerClient "github.com/docker/docker/client"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// MergeAbraShEnv merges abra.sh env vars into the app env vars.
|
||||||
|
func MergeAbraShEnv(recipe recipe.Recipe, env envfile.AppEnv) error {
|
||||||
|
abraShEnv, err := envfile.ReadAbraShEnvVars(recipe.AbraShPath)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
for k, v := range abraShEnv {
|
||||||
|
log.Debugf("read v:%s k: %s", v, k)
|
||||||
|
env[k] = v
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// GetConfigsForStack retrieves all Docker configs attached to services in a given stack.
|
// GetConfigsForStack retrieves all Docker configs attached to services in a given stack.
|
||||||
func GetConfigsForStack(cl *dockerClient.Client, app appPkg.App) (map[string]string, error) {
|
func GetConfigsForStack(cl *dockerClient.Client, app appPkg.App) (map[string]string, error) {
|
||||||
filters, err := app.Filters(false, false)
|
filters, err := app.Filters(false, false)
|
||||||
@ -185,7 +203,7 @@ func GatherImagesForDeploy(cl *dockerClient.Client, app appPkg.App, compose *com
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Infof("Deployed images: %v", currentImages)
|
log.Debugf("Deployed images: %v", currentImages)
|
||||||
|
|
||||||
// Proposed new images from the compose files
|
// Proposed new images from the compose files
|
||||||
newImages := make(map[string]string)
|
newImages := make(map[string]string)
|
||||||
@ -207,7 +225,7 @@ func GatherImagesForDeploy(cl *dockerClient.Client, app appPkg.App, compose *com
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log.Infof("Proposed images: %v", newImages)
|
log.Debugf("Proposed images: %v", newImages)
|
||||||
|
|
||||||
var imageInfo []string
|
var imageInfo []string
|
||||||
for newImageName, newImageVersion := range newImages {
|
for newImageName, newImageVersion := range newImages {
|
||||||
|
Reference in New Issue
Block a user