forked from toolshed/abra
		
	| @ -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