The Cloud Posse Terraform Provider for various utilities (E.g. deep merging)

Overview

terraform-provider-utils Latest Release Slack Community Discourse Forum

README Header

Cloud Posse

Terraform provider to add additional missing functionality to Terraform


This project is part of our comprehensive "SweetOps" approach towards DevOps.

It's 100% Open Source and licensed under the APACHE2.

Usage

Here is how to use this provider in your own Terraform code:

terraform {
  required_providers {
    utils = {
      source = "cloudposse/utils"
      version = "0.2.0"
    }
  }
}

See the Docs for additional information.

Examples

Here is an example of using this provider:

terraform {
  required_providers {
    utils = {
      source = "cloudposse/utils"
    }
  }
}

locals {
  yaml_data_1 = file("${path.module}/data1.yaml")
  yaml_data_2 = file("${path.module}/data2.yaml")
}

data "utils_deep_merge_yaml" "example" {
  input = [
    local.yaml_data_1,
    local.yaml_data_2
  ]
}

output "deep_merge_output" {
  value = data.utils_deep_merge_yaml.example.output
}

Here are some additional examples:

Developing the Provider

If you wish to work on the provider, you'll first need Go installed on your machine (see Requirements above).

To compile the provider, run go install. This will build the provider and put the provider binary in the $GOPATH/bin directory.

To generate or update documentation, run go generate.

In order to run the full suite of Acceptance tests, run make testacc.

Note: Acceptance tests create real resources, and often cost money to run.

$ make testacc

Testing Locally

You can test the provider locally by using the provider_installation functionality.

For testing this provider, you can edit your ~/.terraformrc file with the following:

provider_installation {
  dev_overrides  {
    "cloudposse/utils" = "/path/to/your/code/github.com/cloudposse/terraform-provider-utils/"
  }

  # For all other providers, install them directly from their origin provider
  # registries as normal. If you omit this, Terraform will _only_ use
  # the dev_overrides block, and so no other providers will be available.
  direct {}
}

With that in place, you can build the provider (see above) and add a provider block:

required_providers {
    utils = {
      source = "cloudposse/utils"
    }
  }

Then run terraform init, terraform plan and terraform apply as normal.

$ terraform init
Initializing the backend...

Initializing provider plugins...
- Finding latest version of cloudposse/utils...

Warning: Provider development overrides are in effect

The following provider development overrides are set in the CLI configuration:
 - cloudposse/utils in /path/to/your/code/github.com/cloudposse/terraform-provider-utils

The behavior may therefore not match any released version of the provider and
applying changes may cause the state to become incompatible with published
releases.
terraform apply

Warning: Provider development overrides are in effect

The following provider development overrides are set in the CLI configuration:
 - cloudposse/utils in /Users/matt/code/src/github.com/cloudposse/terraform-provider-utils

The behavior may therefore not match any released version of the provider and
applying changes may cause the state to become incompatible with published
releases.


An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:

Terraform will perform the following actions:

Plan: 0 to add, 0 to change, 0 to destroy.

Changes to Outputs:
  + deep_merge_output = <<-EOT
        Statement:
        - Action:
          - s3:*
          Effect: Allow
          Resource:
          - '*'
          Sid: FullAccess
        - Action:
          - s3:*
          Complex:
            ExtraComplex:
              ExtraExtraComplex:
                Foo: bazzz
                SomeArray:
                - one
                - two
                - three
          Effect: Deny
          Resource:
          - arn:aws:s3:::customer
          - arn:aws:s3:::customer/*
          - foo
          Sid: DenyCustomerBucket
        Version: "2012-10-17"
    EOT

Share the Love

Like this project? Please give it a ★ on our GitHub! (it helps us a lot)

Are you using this project or any of our other projects? Consider leaving a testimonial. =)

Related Projects

Check out these related projects.

References

For additional context, refer to some of these links.

  • Terraform Plugins - Terraform is logically split into two main parts: Terraform Core and Terraform Plugins. Each plugin exposes an implementation for a specific service, such as the AWS provider or the cloud-init provider.

Help

Got a question? We got answers.

File a GitHub issue, send us an email or join our Slack Community.

README Commercial Support

DevOps Accelerator for Startups

We are a DevOps Accelerator. We'll help you build your cloud infrastructure from the ground up so you can own it. Then we'll show you how to operate it and stick around for as long as you need us.

Learn More

Work directly with our team of DevOps experts via email, slack, and video conferencing.

We deliver 10x the value for a fraction of the cost of a full-time engineer. Our track record is not even funny. If you want things done right and you need it done FAST, then we're your best bet.

  • Reference Architecture. You'll get everything you need from the ground up built using 100% infrastructure as code.
  • Release Engineering. You'll have end-to-end CI/CD with unlimited staging environments.
  • Site Reliability Engineering. You'll have total visibility into your apps and microservices.
  • Security Baseline. You'll have built-in governance with accountability and audit logs for all changes.
  • GitOps. You'll be able to operate your infrastructure via Pull Requests.
  • Training. You'll receive hands-on training so your team can operate what we build.
  • Questions. You'll have a direct line of communication between our teams via a Shared Slack channel.
  • Troubleshooting. You'll get help to triage when things aren't working.
  • Code Reviews. You'll receive constructive feedback on Pull Requests.
  • Bug Fixes. We'll rapidly work with you to fix any bugs in our projects.

Slack Community

Join our Open Source Community on Slack. It's FREE for everyone! Our "SweetOps" community is where you get to talk with others who share a similar vision for how to rollout and manage infrastructure. This is the best place to talk shop, ask questions, solicit feedback, and work together as a community to build totally sweet infrastructure.

Discourse Forums

Participate in our Discourse Forums. Here you'll find answers to commonly asked questions. Most questions will be related to the enormous number of projects we support on our GitHub. Come here to collaborate on answers, find solutions, and get ideas about the products and services we value. It only takes a minute to get started! Just sign in with SSO using your GitHub account.

Newsletter

Sign up for our newsletter that covers everything on our technology radar. Receive updates on what we're up to on GitHub as well as awesome new projects we discover.

Office Hours

Join us every Wednesday via Zoom for our weekly "Lunch & Learn" sessions. It's FREE for everyone!

zoom

Contributing

Bug Reports & Feature Requests

Please use the issue tracker to report any bugs or file feature requests.

Developing

If you are interested in being a contributor and want to get involved in developing this project or help out with our other projects, we would love to hear from you! Shoot us an email.

In general, PRs are welcome. We follow the typical "fork-and-pull" Git workflow.

  1. Fork the repo on GitHub
  2. Clone the project to your own machine
  3. Commit changes to your own branch
  4. Push your work back up to your fork
  5. Submit a Pull Request so that we can review your changes

NOTE: Be sure to merge the latest changes from "upstream" before making a pull request!

Copyrights

Copyright © 2021-2021 Cloud Posse, LLC

License

License

See LICENSE for full details.

Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.

Trademarks

All other trademarks referenced herein are the property of their respective owners.

About

This project is maintained and funded by Cloud Posse, LLC. Like it? Please let us know by leaving a testimonial!

Cloud Posse

We're a DevOps Professional Services company based in Los Angeles, CA. We ❤️ Open Source Software.

We offer paid support on all of our projects.

Check out our other projects, follow us on twitter, apply for a job, or hire us to help with your cloud strategy and implementation.

Contributors

Matt Calhoun
Matt Calhoun
Andriy Knysh
Andriy Knysh
Erik Osterman
Erik Osterman

README Footer Beacon

Comments
  • Error using provided examples

    Error using provided examples

    Found a bug? Maybe our Slack Community can help.

    Slack Community

    Describe the Bug

    I have tried to use this provider, and fallen back to the provided examples at terraform-provider-utils/examples/data-sources/utils_deep_merge_json. I get the following error:

    $ terraform plan
    ╷
    │ Error: json: unsupported type: map[interface {}]interface {}
    │ 
    │   with data.utils_deep_merge_json.example,
    │   on deep_merge.tf line 14, in data "utils_deep_merge_json" "example":
    │   14: data "utils_deep_merge_json" "example" {
    │ 
    ╵
    

    Expected Behavior

    I would expect that the examples work.

    Steps to Reproduce

    Steps to reproduce the behavior:

    1. Go to 'terraform-provider-utils/examples/data-sources/utils_deep_merge_json'
    2. Run 'terraform init && terraform plan'
    3. See error

    Environment (please complete the following information):

    Anything that will help us triage the bug will help. Here are some ideas:

    • OS: macos 11.5.2
    • Terraform: v1.0.7
    • provider registry.terraform.io/cloudposse/utils v0.14.1
    bug 
    opened by designermonkey 3
  • Fix YAML conversion with empty strings

    Fix YAML conversion with empty strings

    YAML merge fails when the input variable is an empty string or nil.

    Hey, thanks for this provider. We use it to do a merge of two Helm value files (example below) - one with a set of default values and one with user overrides/additions. In cases when user does not set any overriding values, the second input is empty (var.values).

    Passing an empty string (or nil) to the inputs, causes the provider to crash. I'm attaching the panic log below.

    data "utils_deep_merge_yaml" "values" {
      count = var.enabled ? 1 : 0
      input = [
        local.values,
        var.values
      ]
    }
    
    goroutine 34 [running]:
    github.com/cloudposse/terraform-provider-utils/internal/convert.YAMLSliceOfInterfaceToSliceOfMaps(0xc000576660, 0x2, 0x2, 0xb49b80, 0xc000338408, 0xd4ad01, 0xc00033a7c0, 0xc03b6ee8763240ae)
            github.com/cloudposse/terraform-provider-utils/internal/convert/yaml.go:20 +0x1f4
    github.com/cloudposse/terraform-provider-utils/internal/provider.dataSourceDeepMergeYAMLRead(0xd4ada8, 0xc0003346c0, 0xc000366300, 0x0, 0x0, 0xc000336a70, 0xc000375948, 0x40e0f8)
            github.com/cloudposse/terraform-provider-utils/internal/provider/data_source_deep_merge_yaml.go:40 +0x87
    github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Resource).read(0xc0003dc0e0, 0xd4ad38, 0xc00033a7c0, 0xc000366300, 0x0, 0x0, 0x0, 0x0, 0x0)
            github.com/hashicorp/terraform-plugin-sdk/[email protected]/helper/schema/resource.go:347 +0x17f
    github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Resource).ReadDataApply(0xc0003dc0e0, 0xd4ad38, 0xc00033a7c0, 0xc000576300, 0x0, 0x0, 0x0, 0xc000576300, 0x0, 0x0)
            github.com/hashicorp/terraform-plugin-sdk/[email protected]/helper/schema/resource.go:558 +0xfd
    github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*GRPCProviderServer).ReadDataSource(0xc00000c0a8, 0xd4ad38, 0xc00033a7c0, 0xc000576140, 0xc00033a7c0, 0x40b965, 0xbfbf20)
            github.com/hashicorp/terraform-plugin-sdk/[email protected]/helper/schema/grpc_provider.go:1105 +0x4d6
    github.com/hashicorp/terraform-plugin-go/tfprotov5/server.(*server).ReadDataSource(0xc0000b9ac0, 0xd4ade0, 0xc00033a7c0, 0xc0003480a0, 0xc0000b9ac0, 0xc0003461b0, 0xc00058aba0)
            github.com/hashicorp/[email protected]/tfprotov5/server/server.go:247 +0xe5
    github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5._Provider_ReadDataSource_Handler(0xc28bc0, 0xc0000b9ac0, 0xd4ade0, 0xc0003461b0, 0xc0003344e0, 0x0, 0xd4ade0, 0xc0003461b0, 0xc000360300, 0x17a)
            github.com/hashicorp/[email protected]/tfprotov5/internal/tfplugin5/tfplugin5_grpc.pb.go:416 +0x214
    google.golang.org/grpc.(*Server).processUnaryRPC(0xc00025ae00, 0xd51b58, 0xc000131980, 0xc000352000, 0xc0002c67b0, 0x11576d0, 0x0, 0x0, 0x0)
            google.golang.org/[email protected]/server.go:1194 +0x52b
    google.golang.org/grpc.(*Server).handleStream(0xc00025ae00, 0xd51b58, 0xc000131980, 0xc000352000, 0x0)
            google.golang.org/[email protected]/server.go:1517 +0xd0c
    google.golang.org/grpc.(*Server).serveStreams.func1.2(0xc000116280, 0xc00025ae00, 0xd51b58, 0xc000131980, 0xc000352000)
            google.golang.org/[email protected]/server.go:859 +0xab
    created by google.golang.org/grpc.(*Server).serveStreams.func1
            google.golang.org/[email protected]/server.go:857 +0x1fd
    
    Error: The terraform-provider-utils_v0.12.0 plugin crashed!
    

    This PR adds a switch to the YAML convert function, which asses the interface type before passing the input to the convert function. In case a non-string value is passed as input, the iteration in the inner loop is skipped.

    TL;DR

    • provider crashed when empty string is passed as input
    • PR adds type assessment and accepts only string values
    opened by martinhaus 3
  • git.io->cloudposse.tools update

    git.io->cloudposse.tools update

    what and why

    Change all references to git.io/build-harness into cloudposse.tools/build-harness, since git.io redirects will stop working on April 29th, 2022.

    References

    • DEV-143
    no-release 
    opened by dylanbannon 2
  • Add `utils_aws_eks_update_kubeconfig` datasource

    Add `utils_aws_eks_update_kubeconfig` datasource

    what

    • Add utils_aws_eks_update_kubeconfig datasource

    why

    • Download kubeconfig 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 helmfiles
    The 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
    

    references

    • https://github.com/cloudposse/atmos/pull/136
    • https://docs.aws.amazon.com/cli/latest/reference/eks/update-kubeconfig.html
    patch 
    opened by aknysh 2
  • v0.12 - Infinite Looping Dag Walk for Stack Config Remote State Module

    v0.12 - Infinite Looping Dag Walk for Stack Config Remote State Module

    Describe the Bug

    With the v0.12, there is now a bug that causes an infinite loop of dag/walk: vertex (via trace tf logging). The tracing logging show it is waiting on something from X (fill in the blank) remote-state to expand.

    Expected Behavior

    Prevent infinite looping.

    Steps to Reproduce

    This is an assumption but I may reproduce when deploying anything depends on cloudposse/stack-config/yaml//modules/remote-state but with cloudposse/utils pinned to 0.12 at the root module/component.

    In my case, I was deploying cloudposse/ecs-web-app/aws (with slight modifications) that was using remote-state components to get the vpc, ecs, and logs-bucket data.

    Anything that will help us triage the bug will help. Here are some ideas:

    • atmos container
    • tf v1.0.3

    Additional Context

    This is a subsample of the logs that were repeating infinitely. module.vpc, module.ecs, module.logs_bucket, and module.ecs are remote-state modules.

    
    2021-08-03T09:33:31.106Z [TRACE] dag/walk: vertex "module.ecr.module.backend_config.output.backend (expand)" is waiting for "module.ecr.module.backend_config.local.backend (expand)"
    2021-08-03T09:33:31.106Z [TRACE] dag/walk: vertex "root" is waiting for "provider[\"terraform.io/builtin/terraform\"] (close)"
    2021-08-03T09:33:31.106Z [TRACE] dag/walk: vertex "module.ecr.output.s3_workspace_name (expand)" is waiting for "module.ecr.local.s3_workspace (expand)"
    2021-08-03T09:33:31.106Z [TRACE] dag/walk: vertex "module.vpc.module.backend_config.local.final_component (expand)" is waiting for "module.vpc.module.backend_config.local.base_component (expand)"
    2021-08-03T09:33:31.106Z [TRACE] dag/walk: vertex "module.web_app.local.load_balancers (expand)" is waiting for "module.web_app.local.alb (expand)"
    2021-08-03T09:33:31.106Z [TRACE] dag/walk: vertex "module.vpc.local.remote_states (expand)" is waiting for "module.vpc.data.terraform_remote_state.remote (expand)"
    2021-08-03T09:33:31.106Z [TRACE] dag/walk: vertex "module.alb.output.http_redirect_listener_arn (expand)" is waiting for "module.alb.aws_lb_listener.http_redirect (expand)"
    2021-08-03T09:33:31.106Z [TRACE] dag/walk: vertex "module.web_app.module.alb_ingress.local.target_group_arn (expand)" is waiting for "module.web_app.module.alb_ingress.var.target_group_arn (expand)"
    2021-08-03T09:33:31.146Z [TRACE] dag/walk: vertex "module.ecr.local.include_component_in_workspace_name (expand)" is waiting for "module.ecr.local.base_component (expand)"
    2021-08-03T09:33:31.146Z [TRACE] dag/walk: vertex "module.alb.aws_lb_listener.http_redirect (expand)" is waiting for "module.alb.aws_lb_target_group.default (expand)"
    2021-08-03T09:33:31.153Z [TRACE] dag/walk: vertex "module.alb.aws_security_group_rule.https_ingress (expand)" is waiting for "module.alb.aws_security_group.default (expand)"
    2021-08-03T09:33:31.160Z [TRACE] dag/walk: vertex "module.alb.aws_lb_listener.https (expand)" is waiting for "module.alb.aws_lb_target_group.default (expand)"
    2021-08-03T09:33:31.160Z [TRACE] dag/walk: vertex "module.alb.aws_lb_listener.http_forward (expand)" is waiting for "module.alb.aws_lb_target_group.default (expand)"
    2021-08-03T09:33:31.160Z [TRACE] dag/walk: vertex "module.alb.aws_security_group_rule.http_ingress (expand)" is waiting for "module.alb.aws_security_group.default (expand)"
    2021-08-03T09:33:31.161Z [TRACE] dag/walk: vertex "module.alb.aws_lb.default (expand)" is waiting for "module.alb.var.subnet_ids (expand)"
    2021-08-03T09:33:31.169Z [TRACE] dag/walk: vertex "module.vpc.local.s3_workspace (expand)" is waiting for "module.vpc.local.s3_workspace_from_stack (expand)"
    2021-08-03T09:33:31.176Z [TRACE] dag/walk: vertex "module.ecr.data.terraform_remote_state.remote (expand)" is waiting for "module.ecr.local.backend (expand)"
    2021-08-03T09:33:31.178Z [TRACE] dag/walk: vertex "module.ecr.data.terraform_remote_state.s3 (expand)" is waiting for "module.ecr.local.backend_type (expand)"
    2021-08-03T09:33:31.182Z [TRACE] dag/walk: vertex "module.vpc.module.backend_config.local.base_component (expand)" is waiting for "module.vpc.module.backend_config.local.config (expand)"
    2021-08-03T09:33:31.210Z [TRACE] dag/walk: vertex "module.ecs.module.backend_config.local.base_component (expand)" is waiting for "module.ecs.module.backend_config.local.config (expand)"
    2021-08-03T09:33:31.213Z [TRACE] dag/walk: vertex "module.ecr.module.backend_config.local.base_component (expand)" is waiting for "module.ecr.module.backend_config.local.config (expand)"
    2021-08-03T09:33:31.24
    
    bug 
    opened by sgtoj 2
  • Bump goreleaser/goreleaser-action from 2 to 2.5.0

    Bump goreleaser/goreleaser-action from 2 to 2.5.0

    Bumps goreleaser/goreleaser-action from 2 to 2.5.0.

    Release notes

    Sourced from goreleaser/goreleaser-action's releases.

    v2.5.0

    • Bump y18n from 4.0.0 to 4.0.1 (#272)
    • Bump @​actions/http-client from 1.0.9 to 1.0.11 (#270)
    • Enhance workflow (#271)
    • Bump node-notifier from 8.0.0 to 8.0.1 (#263)

    v2.4.1

    • Do not overwrite GORELEASER_CURRENT_TAG if already declared (#260)

    v2.4.0

    • Set GORELEASER_CURRENT_TAG (#259)
    • Container based developer flow (#258)
    • Upload artifact example (#257)
    • Bump @​actions/tool-cache from 1.6.0 to 1.6.1 (#256)

    v2.3.0

    • Add install-only option for using goreleaser in user scripts (#252)
    • Update deps

    v2.2.1

    • Fix CVE-2020-15228

    v2.2.0

    • Use GITHUB_REF to retrieve tag before checking the most recent tag (#238)
    • Update deps

    v2.1.1

    • Fix workdir (#224)

    v2.1.0

    • Implement (optional) semver parsing of version (#213)
    • Remove unshallow step (goreleaser/goreleaser#1608)

    v2.0.2

    • Use template in sign.args

    v2.0.1

    • Dummy release to mark v2 as latest on the marketplace
    Changelog

    Sourced from goreleaser/goreleaser-action's changelog.

    Commits

    Dependabot compatibility score

    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.


    Dependabot commands and options

    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)
    dependencies github_actions 
    opened by dependabot[bot] 2
  • Bump github.com/cloudposse/atmos from 1.8.1 to 1.8.2

    Bump github.com/cloudposse/atmos from 1.8.1 to 1.8.2

    Bumps github.com/cloudposse/atmos from 1.8.1 to 1.8.2.

    Release notes

    Sourced from github.com/cloudposse/atmos's releases.

    v1.8.2

    what

    • Fix atlantis projects generation

    why

    • apply_requirements should be under project, not under autoplan

    references

    Commits

    Dependabot compatibility score

    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.


    Dependabot commands and options

    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)
    patch dependencies go 
    opened by dependabot[bot] 1
  • Bump github.com/hashicorp/terraform-plugin-sdk/v2 from 2.22.0 to 2.23.0

    Bump github.com/hashicorp/terraform-plugin-sdk/v2 from 2.22.0 to 2.23.0

    Bumps github.com/hashicorp/terraform-plugin-sdk/v2 from 2.22.0 to 2.23.0.

    Release notes

    Sourced from github.com/hashicorp/terraform-plugin-sdk/v2's releases.

    v2.23.0

    ENHANCEMENTS:

    • helper/resource: Added Terraform configuration to TRACE logging (#1059)
    • helper/resource: Added terraform plan output to TRACE logging (#1058)

    BUG FIXES:

    • helper/resource: Prevented Inconsistent dependency lock file errors when using ExternalProviders outside the hashicorp namespace (#1057)
    Changelog

    Sourced from github.com/hashicorp/terraform-plugin-sdk/v2's changelog.

    2.23.0 (September 15, 2022)

    ENHANCEMENTS:

    • helper/resource: Added Terraform configuration to TRACE logging (#1059)
    • helper/resource: Added terraform plan output to TRACE logging (#1058)

    BUG FIXES:

    • helper/resource: Prevented Inconsistent dependency lock file errors when using ExternalProviders outside the hashicorp namespace (#1057)
    Commits
    • a0ace48 Update CHANGELOG for 2.23.0
    • 755f211 helper/resource: Add Terraform configuration to TRACE logging (#1059)
    • 0f41bb0 helper/resource: Add terraform plan output to TRACE logging (#1058)
    • a096f3a internal/plugintest: Switch from (os.File).Readdir() to os.ReadDir() (#1056)
    • ef65fde helper/resource: Prevent Inconsistent dependency lock file errors when usin...
    • 44ccfdc build(deps): Bump github.com/google/go-cmp from 0.5.8 to 0.5.9 (#1054)
    • See full diff in compare view

    Dependabot compatibility score

    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.


    Dependabot commands and options

    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)
    dependencies go minor 
    opened by dependabot[bot] 1
  • Bump github.com/cloudposse/atmos from 1.4.26 to 1.7.1

    Bump github.com/cloudposse/atmos from 1.4.26 to 1.7.1

    Bumps github.com/cloudposse/atmos from 1.4.26 to 1.7.1.

    Release notes

    Sourced from github.com/cloudposse/atmos's releases.

    v1.7.1

    what

    • Fixes an issue where ATMOS_CLI_CONFIG_PATH points to a non directory and results in a panic.

    why

    • This provides proper messaging and gracefully fails.
    • The error in question here that was getting skipped over by os.IsNotExist(err) was the following:
      • stat /usr/local/etc/atmos/atmos.yaml/atmos.yaml: not a directory

    v1.7.0

    what

    • Add atmos terraform generate backends command

    why

    • Generate terraform backend configs for all terraform components
    • Supported formats HCL and JSON
    • A GitHub Action that generates all .tfvar files and backend.tf files so that projects can be used with conventional terraform GitOps tools like atlantis, Terraform Cloud, et al.

    test

    # hcl is default, no need to specify it
    atmos terraform generate backends --format=hcl
    

    Writing backend config for the terraform component 'test/test-component' to file 'examples/complete/components/terraform/test/test-component/backend.tf' Writing backend config for the terraform component 'infra/vpc' to file 'examples/complete/components/terraform/infra/vpc/backend.tf' Writing backend config for the terraform component 'top-level-component1' to file 'examples/complete/components/terraform/top-level-component1/backend.tf'

    atmos terraform generate backends --format=json
    

    Writing backend config for the terraform component 'test/test-component' to file 'examples/complete/components/terraform/test/test-component/backend.tf.json' Writing backend config for the terraform component 'infra/vpc' to file 'examples/complete/components/terraform/infra/vpc/backend.tf.json' Writing backend config for the terraform component 'top-level-component1' to file 'examples/complete/components/terraform/top-level-component1/backend.tf.json'

    v1.6.0

    what

    • Update atmos atlantis generate repo-config command
    • Support native HCL output format in atmos terraform generate varfiles command

    why

    • Do not iterate over Go maps in atmos atlantis generate repo-config command. Go iterates over maps in a non-deterministic order resulting in constant drift in the final atlantis.yaml file. Instead, get the map keys, sort them, and iterate over the sorted keys
    • Support native HCL output format in atmos terraform generate varfiles command - when ejecting from atmos, the varfiles should be in the more native terraform format of HCL rather than JSON (although JSON is definitely a supported format and useful in some situations). The --format command-line argument now support --format=hcl

    ... (truncated)

    Commits
    • e36d548 fix: updates file_utils#FileExists to check for err (#191) (#195)
    • c7e5f64 Add atmos terraform generate backends command (#200)
    • 9556860 Update atmos atlantis generate repo-config command. Support HCL in `atmos t...
    • 317ed16 feat: adds --skip-init flag (#193)
    • 9189ae8 Add Atlantis support. Add atmos terraform generate varfiles and `atmos atla...
    • 9940032 Update atmos vendor pull (#188)
    • 337c965 Update atmos vendor pull (#186)
    • See full diff in compare view

    Dependabot compatibility score

    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.


    Dependabot commands and options

    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)
    dependencies go minor 
    opened by dependabot[bot] 1
  • Bump github.com/cloudposse/atmos from 1.4.26 to 1.7.0

    Bump github.com/cloudposse/atmos from 1.4.26 to 1.7.0

    Bumps github.com/cloudposse/atmos from 1.4.26 to 1.7.0.

    Release notes

    Sourced from github.com/cloudposse/atmos's releases.

    v1.7.0

    what

    • Add atmos terraform generate backends command

    why

    • Generate terraform backend configs for all terraform components
    • Supported formats HCL and JSON
    • A GitHub Action that generates all .tfvar files and backend.tf files so that projects can be used with conventional terraform GitOps tools like atlantis, Terraform Cloud, et al.

    test

    # hcl is default, no need to specify it
    atmos terraform generate backends --format=hcl
    

    Writing backend config for the terraform component 'test/test-component' to file 'examples/complete/components/terraform/test/test-component/backend.tf' Writing backend config for the terraform component 'infra/vpc' to file 'examples/complete/components/terraform/infra/vpc/backend.tf' Writing backend config for the terraform component 'top-level-component1' to file 'examples/complete/components/terraform/top-level-component1/backend.tf'

    atmos terraform generate backends --format=json
    

    Writing backend config for the terraform component 'test/test-component' to file 'examples/complete/components/terraform/test/test-component/backend.tf.json' Writing backend config for the terraform component 'infra/vpc' to file 'examples/complete/components/terraform/infra/vpc/backend.tf.json' Writing backend config for the terraform component 'top-level-component1' to file 'examples/complete/components/terraform/top-level-component1/backend.tf.json'

    v1.6.0

    what

    • Update atmos atlantis generate repo-config command
    • Support native HCL output format in atmos terraform generate varfiles command

    why

    • Do not iterate over Go maps in atmos atlantis generate repo-config command. Go iterates over maps in a non-deterministic order resulting in constant drift in the final atlantis.yaml file. Instead, get the map keys, sort them, and iterate over the sorted keys
    • Support native HCL output format in atmos terraform generate varfiles command - when ejecting from atmos, the varfiles should be in the more native terraform format of HCL rather than JSON (although JSON is definitely a supported format and useful in some situations). The --format command-line argument now support --format=hcl

    test

    atmos terraform generate varfiles --format=hcl --file-template=./varfiles/{tenant}-{environment}-{stage}-{component}.tfvars
    

    ... (truncated)

    Commits
    • c7e5f64 Add atmos terraform generate backends command (#200)
    • 9556860 Update atmos atlantis generate repo-config command. Support HCL in `atmos t...
    • 317ed16 feat: adds --skip-init flag (#193)
    • 9189ae8 Add Atlantis support. Add atmos terraform generate varfiles and `atmos atla...
    • 9940032 Update atmos vendor pull (#188)
    • 337c965 Update atmos vendor pull (#186)
    • See full diff in compare view

    Dependabot compatibility score

    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.


    Dependabot commands and options

    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)
    dependencies go minor 
    opened by dependabot[bot] 1
  • Bump github.com/hashicorp/terraform-plugin-sdk/v2 from 2.21.0 to 2.22.0

    Bump github.com/hashicorp/terraform-plugin-sdk/v2 from 2.21.0 to 2.22.0

    Bumps github.com/hashicorp/terraform-plugin-sdk/v2 from 2.21.0 to 2.22.0.

    Release notes

    Sourced from github.com/hashicorp/terraform-plugin-sdk/v2's releases.

    v2.22.0

    ENHANCEMENTS:

    • helper/resource: Add ImportStatePersist to optionally persist state generated during import (#1052)

    BUG FIXES:

    • helper/schema: Delayed deprecated attribute warnings for unknown values, which may be null (#1047)
    • helper/schema: Included path information in list size diagnostics for cases where Terraform does not include the configuration source (#826)
    Changelog

    Sourced from github.com/hashicorp/terraform-plugin-sdk/v2's changelog.

    2.22.0 (September 8, 2022)

    ENHANCEMENTS:

    • helper/resource: Add ImportStatePersist to optionally persist state generated during import (#1052)

    BUG FIXES:

    • helper/schema: Delayed deprecated attribute warnings for unknown values, which may be null (#1047)
    • helper/schema: Included path information in list size diagnostics for cases where Terraform does not include the configuration source (#826)
    Commits
    • c425f01 Update CHANGELOG for 2.22.0
    • d0009e2 Use ImportStatePersist to preserve state generated by import operation (#1052)
    • 3951e14 build(deps): Bump leonsteinhaeuser/project-beta-automations (#1051)
    • ec0c139 build(deps): Bump github.com/hashicorp/hcl/v2 from 2.13.0 to 2.14.0 (#1046)
    • 89d4f75 build(deps): Bump github.com/hashicorp/terraform-exec (#1044)
    • 0393316 plugin: Additional documentation clarification of ServeOpts type ProviderAddr...
    • 6ffc927 Update CHANGELOG for #1047
    • 1288887 schema: fix unknown value validation bug (#1047)
    • a5eecf7 helper/logging: Update test Content-Type header to match terraform.io change ...
    • 1423b82 Update CHANGELOG for #826
    • Additional commits viewable in compare view

    Dependabot compatibility score

    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.


    Dependabot commands and options

    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)
    dependencies go minor 
    opened by dependabot[bot] 1
  • Bump github.com/cloudposse/atmos from 1.8.1 to 1.9.0

    Bump github.com/cloudposse/atmos from 1.8.1 to 1.9.0

    Bumps github.com/cloudposse/atmos from 1.8.1 to 1.9.0.

    Release notes

    Sourced from github.com/cloudposse/atmos's releases.

    v1.9.0

    what

    • Add atmos components validation using JSON Schema and OPA policies

    why

    • Validate component config (vars, settings, backend, and other sections) using JSON Schema
    • Check if the component config (including relations between different component variables) is correct to allow or deny component provisioning using OPA/Rego policies
    • Implement validation by atmos validate component command, and by adding a new section settings.validation to the component stack config to be used in other atmos commands (e.g. atmos terraform plan/apply)

    Example

    atmos validate component command supports --schema-path and --schema-type command line arguments. If the arguments are not provided, atmos will try to find and use the settings.validation section defined in the component's YAML config.

    atmos validate component infra/vpc -s tenant1-ue2-prod --schema-path validate-infra-vpc-component.json --schema-type jsonschema
    

    atmos validate component infra/vpc -s tenant1-ue2-prod --schema-path validate-infra-vpc-component.rego --schema-type opa

    atmos validate component infra/vpc -s tenant1-ue2-prod

    atmos validate component infra/vpc -s tenant1-ue2-dev

    Configure component validation

    In atmos.yaml, add the schemas config:

    # Validation schemas (for validating atmos stacks and components)
    schemas:
      # https://json-schema.org
      jsonschema:
        # Can also be set using `ATMOS_SCHEMAS_JSONSCHEMA_BASE_PATH` ENV var, or `--schemas-jsonschema-dir` command-line arguments
        # Supports both absolute and relative paths
        base_path: "stacks/schemas/jsonschema"
      # https://www.openpolicyagent.org
      opa:
        # Can also be set using `ATMOS_SCHEMAS_OPA_BASE_PATH` ENV var, or `--schemas-opa-dir` command-line arguments
        # Supports both absolute and relative paths
        base_path: "stacks/schemas/opa"
    

    In the component YAML config , add the settings.validation section:

    components:
      terraform:
    </tr></table> 
    

    ... (truncated)

    Commits

    Dependabot compatibility score

    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.


    Dependabot commands and options

    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)
    dependencies go minor 
    opened by dependabot[bot] 0
  • Bump actions/checkout from 2.3.3 to 3.0.2

    Bump actions/checkout from 2.3.3 to 3.0.2

    Bumps actions/checkout from 2.3.3 to 3.0.2.

    Release notes

    Sourced from actions/checkout's releases.

    v3.0.2

    What's Changed

    Full Changelog: https://github.com/actions/checkout/compare/v3...v3.0.2

    v3.0.1

    v3.0.0

    • Updated to the node16 runtime by default
      • This requires a minimum Actions Runner version of v2.285.0 to run, which is by default available in GHES 3.4 or later.

    v2.4.2

    What's Changed

    Full Changelog: https://github.com/actions/checkout/compare/v2...v2.4.2

    v2.4.1

    • Fixed an issue where checkout failed to run in container jobs due to the new git setting safe.directory

    v2.4.0

    • Convert SSH URLs like org-<ORG_ID>@github.com: to https://github.com/ - pr

    v2.3.5

    Update dependencies

    v2.3.4

    Changelog

    Sourced from actions/checkout's changelog.

    v3.0.2

    v3.0.1

    v3.0.0

    v2.3.1

    v2.3.0

    v2.2.0

    v2.1.1

    • Changes to support GHES (here and here)

    v2.1.0

    v2.0.0

    v2 (beta)

    • Improved fetch performance
      • The default behavior now fetches only the SHA being checked-out
    • Script authenticated git commands

    ... (truncated)

    Commits

    Dependabot compatibility score

    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.


    Dependabot commands and options

    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)
    dependencies github_actions major 
    opened by dependabot[bot] 0
  • Bump actions/setup-go from 2.1.3 to 3.3.0

    Bump actions/setup-go from 2.1.3 to 3.3.0

    Bumps actions/setup-go from 2.1.3 to 3.3.0.

    Release notes

    Sourced from actions/setup-go's releases.

    Support architecture input and fix Expand-Archive issue

    This release introduces support for architecture input for setup-go action #253. It also adds support for arm32 architecture for self-hosted runners. If architecture is not provided action will use default runner architecture. Example of usage:

    steps:
    - uses: actions/[email protected]
    - uses: actions/[email protected]
      with:
       go-version: '1.16'
       architecture: arm
    

    This release also provides fix for issue #241. #250 adds support for using explicit filename for Windows which is necessary to satisfy Expand-Archive's requirement on .zip extension.

    Update actions/cache version to 3.0.0

    In scope of this release we updated actions/cache package as the new version contains fixes for caching error handling

    Support for caching dependency files and compiler's build outputs

    This release introduces support for caching dependency files and compiler's build outputs #228. For that action uses @​toolkit/cache library under the hood that in turn allows getting rid of configuring @​actions/cache action separately and simplifies the whole workflow.

    Such input parameters as cache and cache-dependency-path were added. The cache input is optional, and caching is turned off by default, cache-dependency-path is used to specify the path to a dependency file - go.sum.

    Examples of use-cases:

    • cache input only:
    steps:
    - uses: actions/[email protected]
    - uses: actions/[email protected]
      with:
        go-version: '18'
        cache: true
    
    • cache along with cache-dependency-path:
    steps:
    - uses: actions/[email protected]
    - uses: actions/[email protected]
      with:
        go-version: '18'
        cache: true
        cache-dependency-path: subdir/go.sum
    

    Add go-version-file input

    Adding Go version file support

    ... (truncated)

    Commits
    • 268d8c0 Add support for arm32 go arch (#253)
    • f279813 Merge pull request #250 from jromero/feature/windows-download-filename
    • 1022489 Merge pull request #249 from e-korolevskii/main
    • e0dce94 Use explicit filename when downloading Windows go package
    • dab57c7 update docs
    • f2e56d8 Merge pull request #246 from e-korolevskii/Update-contributors-guide
    • edd0aca update tests path
    • f3e3b7c Update docs/contributors.md
    • 4a0c081 Update docs/contributors.md
    • 185e7f2 Update docs/contributors.md
    • Additional commits viewable in compare view

    Dependabot compatibility score

    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.


    Dependabot commands and options

    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)
    dependencies github_actions major 
    opened by dependabot[bot] 0
  • utils_deep_merge_* expose the object

    utils_deep_merge_* expose the object

    Describe the Feature

    After mergin the files you need to convert to an object the string. If you are chaining the merge a double encode is needed

    Use Case

    data "utils_deep_merge_json" "example" {
      for_each  = local.some_array
      input = [for s in each.value: jsonencode(s)]
    }
    
    resource "kubectl_manifest" "example" {    
      for_each  = data.utils_deep_merge_json.example
      yaml_body =  templatefile(**jsondecode(each.value.output).template**", merge(
                      **jsondecode(each.value.output).some_object**,
                      {
                        namespace = var.ns                    
                      },
                    ))
    }
    
    
    

    Describe Ideal Solution

    Expose the merged string as an object

    opened by sergiomcalzada 1
  • Update releases with the respective atmos version

    Update releases with the respective atmos version

    Have a question? Please checkout our Slack Community or visit our Slack Archive.

    Slack Community

    Describe the Feature

    It would be nice to see the releases with the respective atmos version. The releases are generally patch releases and most people do not pin their releases to a specific version but pin to the latest patch release. Sometimes a newer patch release comes out and breaks terraform runs because the local atmos also needs to be updated.

    Expected Behavior

    If the atmos version is included with the utils provider, it would be less hunting to find the associated atmos release associated. Sometimes these new releases do not include an atmos release update so it would be fine for those releases to use the current atmos version associated.

    Then if something breaks, we can ensure the provider release and atmos release are aligned, before submitting an issue.

    e.g. provider version 0.17.23 points to atmos version 1.4.11 so they should be used together to eliminate a version difference.

    opened by nitrocode 0
  • Consider making utils_deep_merge_* local-only data sources

    Consider making utils_deep_merge_* local-only data sources

    Describe the Feature

    Currently utils_deep_merge_yaml and utils_deep_merge_json are implemented as normal data sources, not local-only data sources. This causes changes to the yaml files on disk to not take effect when running something like a terraform import which loads the cached result from state.

    Expected Behavior

    These data sources that merge strings should be local-only data sources so that the result is re-computed every time rather than cached.

    Use Case

    We use yaml files to store some configuration. We flipped a boolean there that allows us to import a Route53 hosted zone, but are getting errors during the import but not during the plan because the import is using the cached merge rather than re-evaluating the new boolean. This also is present during the usage of terraform console.

    Describe Ideal Solution

    Ideal solution would be to make these local-only data sources so that the result is re-computed every time.

    Alternatives Considered

    I ran tf apply -target=data.utils_deep_merge_yaml.environment_config which reported no changes but updated the value in state, which allowed the next import to succeed.

    opened by timcosta 1
Releases(1.2.0)
Owner
Cloud Posse
DevOps Accelerator for Startups 🙌 Hire Us!
Cloud Posse
Terraform Provider for Confluent Cloud

Terraform Provider for Confluent Cloud The Terraform Confluent Cloud provider is a plugin for Terraform that allows for the lifecycle management of Co

Confluent Inc. 51 Jul 19, 2022
Unofficial Terraform Provider for Zscaler Private Access

Terraform Provider for ☁️ Zscaler Private Access ☁️ ⚠️ Attention: This provider is not affiliated with, nor supported by Zscaler in any way. Website:

William Guilherme 38 Sep 22, 2022
Cloud cost estimates for Terraform in your CLI and pull requests 💰📉

Infracost shows cloud cost estimates for Terraform projects. It helps developers, devops and others to quickly see the cost breakdown and compare different options upfront.

Infracost 7.9k Sep 25, 2022
TurtleDex is a decentralized cloud storage platform that radically alters the landscape of cloud storage.

TurtleDex is a decentralized cloud storage platform that radically alters the landscape of cloud storage. By leveraging smart contracts, client-side e

TurtleDev 18 Feb 17, 2021
Cloudpods is a cloud-native open source unified multi/hybrid-cloud platform developed with Golang

Cloudpods is a cloud-native open source unified multi/hybrid-cloud platform developed with Golang, i.e. Cloudpods is a cloud on clouds. Cloudpods is able to manage not only on-premise KVM/baremetals, but also resources from many cloud accounts across many cloud providers. It hides the differences of underlying cloud providers and exposes one set of APIs that allow programatically interacting with these many clouds.

null 1 Jan 11, 2022
Contentrouter - Protect static content via Firebase Hosting with Cloud Run and Google Cloud Storage

contentrouter A Cloud Run service to gate static content stored in Google Cloud

G. Hussain Chinoy 0 Jan 2, 2022
Lightweight Cloud Instance Contextualizer

Flamingo Flamingo is a lightweight contextualization tool that aims to handle initialization of cloud instances. It is meant to be a replacement for c

Tamer Tas 36 Jun 18, 2022
Go language interface to Swift / Openstack Object Storage / Rackspace cloud files (golang)

Swift This package provides an easy to use library for interfacing with Swift / Openstack Object Storage / Rackspace cloud files from the Go Language

Nick Craig-Wood 292 Jun 30, 2022
The extensible SQL interface to your favorite cloud APIs.

The extensible SQL interface to your favorite cloud APIs.

Turbot 3.3k Oct 3, 2022
Cloud-native way to provide elastic Jupyter Notebook services on Kubernetes

elastic-jupyter-operator: Elastic Jupyter on Kubernetes Kubernetes 原生的弹性 Jupyter 即服务 介绍 为用户按需提供弹性的 Jupyter Notebook 服务。elastic-jupyter-operator 提供以下特性

TKEStack 132 Sep 21, 2022
Google Cloud Client Libraries for Go.

Google Cloud Client Libraries for Go.

Google APIs 3k Sep 23, 2022
A Cloud Native Buildpack for Go

The Go Paketo Buildpack provides a set of collaborating buildpacks that enable the building of a Go-based application.

Paketo Buildpacks 56 Sep 13, 2022
cloud-native local storage management system

Open-Local是由多个组件构成的本地磁盘管理系统,目标是解决当前 Kubernetes 本地存储能力缺失问题。通过Open-Local,使用本地存储会像集中式存储一样简单。

null 293 Sep 29, 2022
Fleex allows you to create multiple VPS on cloud providers and use them to distribute your workload.

Fleex allows you to create multiple VPS on cloud providers and use them to distribute your workload. Run tools like masscan, puredns, ffuf, httpx or anything you need and get results quickly!

null 170 Sep 28, 2022
☁️🏃 Get up and running with Go on Google Cloud.

Get up and running with Go and gRPC on Google Cloud Platform, with this lightweight, opinionated, batteries-included service SDK.

Einride 21 Sep 25, 2022
Elkeid is a Cloud-Native Host-Based Intrusion Detection solution project to provide next-generation Threat Detection and Behavior Audition with modern architecture.

Elkeid is a Cloud-Native Host-Based Intrusion Detection solution project to provide next-generation Threat Detection and Behavior Audition with modern architecture.

Bytedance Inc. 1.4k Sep 27, 2022
Sample apps and code written for Google Cloud in the Go programming language.

Google Cloud Platform Go Samples This repository holds sample code written in Go that demonstrates the Google Cloud Platform. Some samples have accomp

Google Cloud Platform 3.6k Sep 27, 2022
Use Google Cloud KMS as an io.Reader and rand.Source.

Google Cloud KMS Go io.Reader and rand.Source This package provides a struct that implements Go's io.Reader and math/rand.Source interfaces, using Goo

Seth Vargo 4 Sep 23, 2022
A local emulator for Cloud Bigtable with persistance to a sqlite3 backend.

Little Bigtable A local emulator for Cloud Bigtable with persistance to a sqlite3 backend. The Cloud SDK provided cbtemulator is in-memory and does no

Bitly 14 Sep 21, 2022