New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add OCI Support #437
Add OCI Support #437
Conversation
Co-authored-by: Erik Osterman (CEO @ Cloud Posse) <erik@cloudposse.com>
u.LogTrace(cliConfig, "Deleting 'backend.tf.json' file") | ||
u.LogInfo(cliConfig, "Deleting 'backend.tf.json' file") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why are we changing from Trace to Info?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
b/c the command does not show anything at all, which is confusing and not clear if it did anything or not - you have to go to the file system and check all the files manually
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
atmos terraform clean
is for people, not for processes, so it should show meaningful outputs
what
Go
1.21atmos vendor pull
command error handlingatmos.yaml
and docsGo
templates in Atmos vendoringcontext
functionality in imports withGo
templates. Update docs. See https://pr-437.atmos-docs.ue2.dev.plat.cloudposse.org/core-concepts/stacks/imports/atmos vendor
commandwhy
Update to
Go
1.21.1.21 is the latest
Go
version with new features and improvementsUpdate/improve Atmos help for atmos-specific commands.
Atmos supports Terraform commands that are not Terraform native. Update the commands help to better describe the commands and don't call the native Terraform help on them (since it fails). For example:
atmos vendor pull
command error handling.If a user specifies the flags incorrectly, the command now shows a more descriptive error message. For example, executing
atmos vendor pull infra/vpc2
will generate the following error message:atmos.yaml
and docsThe new custom commands extend Atmos functionality. Especially useful is the
atmos describe eks upgrade <eks_component> -s <stack>
command that shows all the steps that needs to be performed to upgrade an EKS cluster to the next Kubernetes version, including checking for failing Pods and containers, EKS add-ons versions, and for the deleted k8s API versions (which need to be fixed by updating the Helm Charts before upgrading to the next Kubernetes version)For example, to describe the steps to upgrade the
eks
Atmos component in the stacktenant1-ue1-dev
, execute the following command:Add examples of Rego policies for Atmos components and stacks validation. Update docs.
Some useful examples of OPA Rego policies to validate Atmos components and stacks added to the examples and described in the docs
Add Sprig functions support to
Go
templates in Atmos vendoring.The Sprig library provides over 70 template functions for Go’s template language.
Atmos supported the Sprig functions in imports. This update adds it to Atmos vendoring and the functions can be used in the attributes in the
component.yaml
vendoring config fileImprove
context
functionality in imports withGo
templates.Before this update, imports with
Go
templates could use only one schema at the time in one file, either a list of strings (paths to the imported stack manifests), or a list of objects withcontext
. Now, both schemas can be mixed in oneimport
. For example:Also, imports with
Go
templates now support two new attributes:skip_templates_processing
- (boolean) Skip template processing for the imported file. Can be used if the imported file usesGo
templates to configure external systems, e.g. Datadogignore_missing_template_values
- (boolean) Ignore the missing template values in the imported file. Can be used if the imported file usesGo
templates to configure external systems, e.g. Datadog. In this case, Atmos will process all template values that are provided in thecontext
, and will skip the missing values in the templates for the external systems without throwing an error. Theignore_missing_template_values
setting is different fromskip_templates_processing
in thatskip_templates_processing
skips the template processing completely in the imported file, whileignore_missing_template_values
processes the templates using the values provided in thecontext
and skips all the missing valuesFor example:
atmos vendor
commandAtmos now supports vendoring components from OCI registries.
To specify a repository in an OCI registry, use the
oci://<registry>/<repository>:tag
scheme in thesources
andmixins
.Components from OCI repositories are downloaded as Docker image tarballs, then all the layers are processed, un-tarred and un-compressed, and the component's source files are written into the component's directory.
For example, to vendor the
vpc
component from thepublic.ecr.aws/cloudposse/components/terraform/stable/aws/vpc
AWS public ECR registry, use the following
uri
:The schema of a
component.yaml
file is as follows:When the following command is executed
Atmos downloads the Docker image tarball from the AWS public ECR repository
public.ecr.aws/cloudposse/components/terraform/stable/aws/vpc:latest
, then all the layers are processed, un-tarred and un-compressed, and the component's source files are written into the component's directory.