Bot releases are visible (Hide)
Published by cloudpossebot over 1 year ago
atmos
to 1.26.1Go
templates in stack configscontext
is not provided (as if using import
with context
), don't process Go
templates in the imported configurations (templating can be used for Datadog, ArgoCD etc. w/o requiring Atmos to process them)Published by cloudpossebot over 1 year ago
atmos
to 1.26.0atmos
usesUse the new feature implemented in the latest atmos
versions, in particular
Published by cloudpossebot almost 2 years ago
atmos.yaml
atmos
repoPublished by cloudpossebot about 2 years ago
atmos
versionRemove all global vars from Go code - this fixes remote state for Terraform utils
provider
Config
which was used by all functions to get the CLI configuration to use it in calculations of component and stack pathsatmos.yaml
CLI config files, Terraform executed the two calls concurrently. The first call processed atmos.yaml
and updated the Config
global var with the component and stack paths. Then the second call also processed a different atmos.yaml
(from another repo) and overrode the global Config
var with values related to the second repoxxx
in the stack yyy
"Config
var) allows executing any part of the code concurrently without storing any state in global vars. The CLI config is now processed on all calls to the atmos
code and is used as parameter to all Go functions that require itatmos
CLI config processinglogs.verbose
Go
, a struct is passed by value to a function (the whole struct is copied), so if the function modifies any struct fields, the changes are not visible from outside of the functionsprocessEnvVars
was accepting the CLI config struct by value, checking the ENV var ATMOS_BASE_PATH
and modifying the BasePath
field - this modification was lost when the function returned resulting in the error from the utils
provider "failed to find a match for the import ..." because the atmos
base path was not set correctly (note that ATMOS_BASE_PATH
ENV var is critical for the utils
provider to work, and it's set by geodesic
or by Spacelift scripts)Published by aknysh about 2 years ago
1.3.0
as 1.4.1
while fixing some remote state issues in 1.4.0
Published by cloudpossebot about 2 years ago
atmos
versionRemove all global vars from Go code - this fixes remote state for Terraform utils
provider
Config
which was used by all functions to get the CLI configuration to use it in calculations of component and stack pathsatmos.yaml
CLI config files, Terraform executed the two calls concurrently. The first call processed atmos.yaml
and updated the Config
global var with the component and stack paths. Then the second call also processed a different atmos.yaml
(from another repo) and overrode the global Config
var with values related to the second repoxxx
in the stack yyy
"Config
var) allows executing any part of the code concurrently without storing any state in global vars. The CLI config is now processed on all calls to the atmos
code and is used as parameter to all Go functions that require itPublished by cloudpossebot about 2 years ago
utils_component_config
data source - add atmos_cli_config_path
and atmos_base_path
inputsatmos
versionATMOS_CLI_CONFIG_PATH
and ATMOS_BASE_PATH
ENV vars to specify the CLI config file (atmos.yaml
) path and atmos
base path to be used to get a remote state of a component from a remote repo, e.g.module "other_repo" {
source = "git::ssh://[email protected]/xxxx/other-repo.git"
}
locals {
other_repo_local_path = "${path.module}/.terraform/modules/other_repo"
env = {
ATMOS_BASE_PATH = local.other_repo_local_path
ATMOS_CLI_CONFIG_PATH = "${local.other_repo_local_path}/rootfs/usr/local/etc/atmos"
}
}
module "account_map" {
source = "cloudposse/stack-config/yaml//modules/remote-state"
version = "1.0.0"
component = "account-map"
env = local.env
context = module.always.context
}
The problems with using the ENV vars are as follows:
ATMOS_BASE_PATH
and ATMOS_CLI_CONFIG_PATH
, the provider process gets the ENV vars set in the process spaceATMOS_BASE_PATH
and ATMOS_CLI_CONFIG_PATH
are still set in the provider process space, which prevents the provider from finding the atmos.yaml
CLI config related to the current repo (since the ENV vars still point to the other/remote repo config), which in turn causes an error when searching for the component in the stackWe need to be able to specify atmos base path and atmos CLI config path in the utils
provider w/o using ENV vars - the component processor code now supports additional parameters to specify it (and they override all other paths set by the ENV vars)
Published by cloudpossebot about 2 years ago
atmos
to the latest versionnamespace
context variable in the code that is used to return remote-state
for a component in a stacknamespace
in stack names, and need to be able to find the remote state of the components provisioned in these stackPublished by cloudpossebot about 2 years ago
atmos
to the latest versionPublished by cloudpossebot about 2 years ago
atmos
to 1.4.26
and Go
to 1.19
atmos describe component <component> -s <stack>
), if any of the stack config files throws error (which also means that we can't find the component in that stack), print the error to the console and continue searching for the component in the other stack config files. This will allow having partial stack configs even if a partial stack config file does not provide all the required context variables (namespace, tenant, environment, stage) for all components in it (but specifies the context for some components, which we are interested in)export ATMOS_LOGS_VERBOSE=true
)examples/complete/stacks/orgs/cp/tenant1/dev/us-east-2-extras.yaml
defines a new component new-vpc
in the stack tenent1-ue2-dev
; note that the same stack tenent1-ue2-dev
is defined in examples/complete/stacks/orgs/cp/tenant1/dev/us-east-2.yaml
but for different componentsPublished by cloudpossebot over 2 years ago
atmos
versionmetadata.inherits
and the stack imported the YAML file(s) where the inherited YAML components are defined, add the imported YAML files to the deps
labelsdeps
calculation. All imported YAML files where the base YAML components were defined were not included in the deps
labels (and the YAML files were missed from the Spacelift dependencies)For example:
components:
terraform:
"test/test-component-override-3":
metadata:
component: "test/test-component"
inherits:
- "test/test-component-override"
- "test/test-component-override-2"
- "mixin/test-1"
- "mixin/test-2"
In the above config, test/test-component-override-3"
inherits test/test-component-override-2
YAML component.
Part of the config for test/test-component-override-2
YAML component is defined in service-1-override-2.yaml
file:
components:
terraform:
"test/test-component-override-2":
vars:
service_1_name: "service-1-override-2"
the service-1-override-2.yaml
file was not included in the deps
labels because the code only checked for the base terraform component test/test-component
in all imports.
After this fix, the code checks all imported files for the base terraform component and ALL base YAML components.
Published by cloudpossebot over 2 years ago
stacks
to the latest patternatmos.yaml
stacks
in the examples to use orgs->tenants->accounts->regions
+ catalog
and mixins
- this is our latest pattern of stacks configurationstacks
folderatmos.yaml
Published by cloudpossebot over 2 years ago
1.18
atmos
to 1.4.22
any
alias instead of interface{}
)atmos
to use the latest features and improvementsatmos
, utils
provider and terraform using externally set ENV varslocals {
component = "test/test-component-override"
stack = "tenant1-ue2-dev"
tenant = "tenant1"
environment = "ue2"
stage = "dev"
env = {
ENVIRONMENT = local.environment
STAGE = local.stage
ATMOS_CLI_CONFIG_PATH = "."
}
}
data "utils_component_config" "example1" {
component = local.component
stack = local.stack
ignore_errors = false
env = local.env
}
atmos
version supports ATMOS_CLI_CONFIG_PATH
ENV var to set the path to atmos.yaml
CLI config file. This ENV var will allow using the monorepo
pattern by loading a remote repo and pointing to its atmos.yaml
using ATMOS_CLI_CONFIG_PATH
ENV varmodule "monorepo" {
source = "git::ssh://[email protected]/ACME/infrastructure.git?ref=v0.0.1"
}
locals {
monorepo_local_path = "${path.module}/.terraform/modules/monorepo"
stack_config_local_path = "${local.monorepo_local_path}/stacks"
}
module "iam_roles" {
source = "git::ssh://[email protected]/ACME/infrastructure.git//components/terraform/account-map/modules/iam-roles?ref=v0.0.1"
env = {
ATMOS_CLI_CONFIG_PATH = "${path.module}/.terraform/modules/monorepo/rootfs/usr/local/etc/atmos"
}
}
Published by cloudpossebot over 2 years ago
atmos
1.4.20 and testsatmos
versionatmos
to the utils
provider to be able to run the same tests as atmos
)Published by cloudpossebot over 2 years ago
atmos
and testsatmos
versionatmos
to the utils
provider to be able to run the same tests as atmos
)Published by cloudpossebot over 2 years ago
atmos
and tests-
in the tenant, environment and stage namesatmos
supported dashes in the names (because it was filename-based, not logical stack name based)atmos
)Published by cloudpossebot over 2 years ago
utils_aws_eks_update_kubeconfig
datasourcekubeconfig
from EKS clusters and save it to a file using Terraform, then use the downloaded kubeconfig
in the Terraform helmfile
provider to provision helm charts with helmfilesThe data source can executes 'aws eks update-kubeconfig' commands in four different ways:
1. If all the required parameters (cluster name and AWS profile/role) are provided,
then it executes the command without requiring the CLI config ('atmos.yaml') and component/stack/context.
'atmos.yaml' is not required/needed in this case.
2. If 'component' and 'stack' are provided,
then it executes the command using the atmos CLI config (see atmos.yaml) and the context by searching for the following settings:
- 'components.helmfile.cluster_name_pattern' in 'atmos.yaml' CLI config (and calculates the '--name' parameter using the pattern)
- 'components.helmfile.helm_aws_profile_pattern' in 'atmos.yaml' CLI config (and calculates the '--profile' parameter using the pattern)
- 'components.helmfile.kubeconfig_path' in 'atmos.yaml' CLI config
- the variables for the component in the provided stack
- 'region' from the variables for the component in the stack
3. If the context ('tenant', 'environment', 'stage') and 'component' are provided,
then it builds the stack name by using the 'stacks.name_pattern' CLI config from 'atmos.yaml', then performs the same steps as example #2.
4. Combination of the above. Provide a component and a stack (or context), and override other parameters (e.g. 'kubeconfig', 'region').
If 'kubeconfig' (the filename to write the kubeconfig to) is not provided, then it's calculated by joining
the base path from 'components.helmfile.kubeconfig_path' CLI config from 'atmos.yaml' and the stack name.
Supported inputs of the 'utils_aws_eks_update_kubeconfig' data source:
- component
- stack
- tenant
- environment
- stage
- cluster_name
- kubeconfig
- profile
- role_arn
- alias
- region
Published by cloudpossebot over 2 years ago
Bumps github.com/cloudposse/atmos from 1.4.5 to 1.4.8.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)Published by cloudpossebot over 2 years ago
atmos
atmos
has many new features, bug fixes and improvementsatmos
Published by cloudpossebot over 2 years ago
atmos
init_run_reconfigure
CLI configstack_name_pattern
init_run_reconfigure
CLI config allows enabling/disabling the -reconfigure
argument for terraform init
when running it before running other terraform commandsstack_name_pattern
because it used {tenant}
which is not available for all clientsterraform plan
and terraform workspace
on abstract components creates terraform workspaces which is not needed