atmos 1.3.9 (new formula)
Closes #89482. Signed-off-by: Sean Molenaar <1484494+SMillerDev@users.noreply.github.com> Signed-off-by: BrewTestBot <1589480+BrewTestBot@users.noreply.github.com>master
parent
caf7758aba
commit
606221a4fa
|
@ -0,0 +1,95 @@
|
|||
class Atmos < Formula
|
||||
desc "Universal Tool for DevOps and Cloud Automation"
|
||||
homepage "https://github.com/cloudposse/atmos"
|
||||
url "https://github.com/cloudposse/atmos/archive/refs/tags/v1.3.9.tar.gz"
|
||||
sha256 "dabae8c89e508bd150640ec562f2642854c50a8e6ffbfd881a701ae40394f533"
|
||||
license "Apache-2.0"
|
||||
|
||||
depends_on "go" => :build
|
||||
|
||||
def install
|
||||
system "go", "build", *std_go_args(ldflags: "-s -w -X 'github.com/cloudposse/atmos/cmd.Version=#{version}'")
|
||||
end
|
||||
|
||||
test do
|
||||
# create basic atmos.yaml
|
||||
(testpath/"atmos.yaml").write <<~EOT
|
||||
components:
|
||||
terraform:
|
||||
base_path: "./components/terraform"
|
||||
apply_auto_approve: false
|
||||
deploy_run_init: true
|
||||
auto_generate_backend_file: false
|
||||
helmfile:
|
||||
base_path: "./components/helmfile"
|
||||
kubeconfig_path: "/dev/shm"
|
||||
helm_aws_profile_pattern: "{namespace}-{tenant}-gbl-{stage}-helm"
|
||||
cluster_name_pattern: "{namespace}-{tenant}-{environment}-{stage}-eks-cluster"
|
||||
stacks:
|
||||
base_path: "./stacks"
|
||||
included_paths:
|
||||
- "**/*"
|
||||
excluded_paths:
|
||||
- "globals/**/*"
|
||||
- "catalog/**/*"
|
||||
- "**/*globals*"
|
||||
name_pattern: "{tenant}-{environment}-{stage}"
|
||||
logs:
|
||||
verbose: false
|
||||
colors: true
|
||||
EOT
|
||||
|
||||
# create scaffold
|
||||
mkdir_p testpath/"stacks"
|
||||
mkdir_p testpath/"components/terraform/top-level-component1"
|
||||
(testpath/"stacks/tenant1-ue2-dev.yaml").write <<~EOT
|
||||
terraform:
|
||||
backend_type: s3 # s3, remote, vault, static, etc.
|
||||
backend:
|
||||
s3:
|
||||
encrypt: true
|
||||
bucket: "eg-ue2-root-tfstate"
|
||||
key: "terraform.tfstate"
|
||||
dynamodb_table: "eg-ue2-root-tfstate-lock"
|
||||
acl: "bucket-owner-full-control"
|
||||
region: "us-east-2"
|
||||
role_arn: null
|
||||
remote:
|
||||
vault:
|
||||
|
||||
vars:
|
||||
tenant: tenant1
|
||||
region: us-east-2
|
||||
environment: ue2
|
||||
|
||||
components:
|
||||
terraform:
|
||||
top-level-component1: {}
|
||||
EOT
|
||||
|
||||
# create expected file
|
||||
(testpath/"backend.tf.json").write <<~EOT
|
||||
{
|
||||
"terraform": {
|
||||
"backend": {
|
||||
"s3": {
|
||||
"workspace_key_prefix": "top-level-component1",
|
||||
"acl": "bucket-owner-full-control",
|
||||
"bucket": "eg-ue2-root-tfstate",
|
||||
"dynamodb_table": "eg-ue2-root-tfstate-lock",
|
||||
"encrypt": true,
|
||||
"key": "terraform.tfstate",
|
||||
"region": "us-east-2",
|
||||
"role_arn": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
EOT
|
||||
|
||||
system bin/"atmos", "terraform", "generate", "backend", "top-level-component1", "--stack", "tenant1-ue2-dev"
|
||||
actual_json = JSON.parse(File.read(testpath/"components/terraform/top-level-component1/backend.tf.json"))
|
||||
expected_json = JSON.parse(File.read(testpath/"backend.tf.json"))
|
||||
assert_equal expected_json["terraform"].to_set, actual_json["terraform"].to_set
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue