34 messages
Discuss atmos core development (golang). If you want to help out, reach out to @Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)6 months ago(edited)
@Andriy Knysh (Cloud Posse) this fixes one of the panics we were getting https://github.com/cloudposse/atmos/pull/1440
Erik Osterman (Cloud Posse)6 months ago
@Andriy Knysh (Cloud Posse) https://github.com/cloudposse/atmos/pull/1449
I'm working towards ensuring that tests always run locally and skip when the preconditions aren't met. That will improve the ability for third parties to contribute. As part of that, I want to introduce the convention of always explaining why a test is skipped, instead of failing.
I'm working towards ensuring that tests always run locally and skip when the preconditions aren't met. That will improve the ability for third parties to contribute. As part of that, I want to introduce the convention of always explaining why a test is skipped, instead of failing.
Erik Osterman (Cloud Posse)6 months ago
@Andriy Knysh (Cloud Posse) already a new go-getter version for 1.8.0
https://github.com/cloudposse/atmos/pull/1455
https://github.com/cloudposse/atmos/pull/1455
Erik Osterman (Cloud Posse)5 months ago
Erik Osterman (Cloud Posse)5 months ago
@shirkevich have time to finish up the GCS support for store?
https://github.com/cloudposse/atmos/pull/1393#issuecomment-3308240011
https://github.com/cloudposse/atmos/pull/1393#issuecomment-3308240011
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) cc @Igor Rodionov https://github.com/cloudposse/atmos/pull/1489
This builds on @Igor Rodionov’s previous PR, but refactors it into smaller testable functions. The problem I've been having is flakey tests on Windows. It appears to be related to file locking. This fix is only implemented in the windows binary using build tags.
This builds on @Igor Rodionov’s previous PR, but refactors it into smaller testable functions. The problem I've been having is flakey tests on Windows. It appears to be related to file locking. This fix is only implemented in the windows binary using build tags.
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) @Igor Rodionov this ensures we don't pollute output with telemetry errors which are not important. posthog supports passing a custom logger, so we implemeneted one that proxies our charm logger. Then added a setting to enable/disable logging of posthog telemetry events.
https://github.com/cloudposse/atmos/pull/1491
https://github.com/cloudposse/atmos/pull/1491
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) this adds support for pre-commit, to ensure golanglint-ci is always run and files are properly formatted. It also formats all the files for proper whitespace. It adds a developer config for atmos in
https://github.com/cloudposse/atmos/pull/1469
.atmos.d/dev.yaml which required that our automated tests ignore this. THere was a lot of yak shaving to get this working. #1489 fix: restore config import override behavior while maintaining Windows fix was discovered as a result of this PR.https://github.com/cloudposse/atmos/pull/1469
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) this implements the
https://github.com/cloudposse/atmos/pull/1493
!include.raw YAML functionhttps://github.com/cloudposse/atmos/pull/1493
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) this makes it so all tests (for me) pass locally, by adding preconditions and skips. Meaning, someone can locally test most things, even though they don't have a full integration environment.
The overall strategy is to check if the conditions are met to run the tests, and otherwise skip with a reason.
https://github.com/cloudposse/atmos/pull/1450
The overall strategy is to check if the conditions are met to run the tests, and otherwise skip with a reason.
https://github.com/cloudposse/atmos/pull/1450
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) this disables the pager by default, simplifies the flag implementation by centralizing it and making it global. the
https://github.com/cloudposse/atmos/pull/1430
pager was incorrectly nested under the syntax highlighting.https://github.com/cloudposse/atmos/pull/1430
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) this is a minor formatting change in docs to consistently use the
https://github.com/cloudposse/atmos/pull/1501
<Intro/> component rather than an admonition.https://github.com/cloudposse/atmos/pull/1501
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) this adds the labels that dependabot config expects. also it addresses a common issue with codecov failing when there's a small reduction of coverage even if no code was changed.
https://github.com/cloudposse/atmos/pull/1508
https://github.com/cloudposse/atmos/pull/1508
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) this is ready for review. it fixes the problem raised in #atmos about deleting duplicate files.
https://github.com/cloudposse/atmos/pull/1510
https://github.com/cloudposse/atmos/pull/1510
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) cosmetic changes to finish converting tables to definition lists.
https://github.com/cloudposse/atmos/pull/1505
https://github.com/cloudposse/atmos/pull/1505
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) this adds stricter validation of
https://github.com/cloudposse/atmos/pull/1497
stdout output in our smoketests by testing YAML/JSON deserialization ensuring we don't accidentally pollute the output.https://github.com/cloudposse/atmos/pull/1497
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) this reduces the amount of images we pull from docker hub. we were getting rate limited, even on the public runners due to the number of open PRs and tests running.
still not able to find a image for k3s which is not on dockerhub. so I left it.
https://github.com/cloudposse/atmos/pull/1511
still not able to find a image for k3s which is not on dockerhub. so I left it.
https://github.com/cloudposse/atmos/pull/1511
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) this moves functions to reference section where they belong.
https://github.com/cloudposse/atmos/pull/1503
cc @PePe Amengual
https://github.com/cloudposse/atmos/pull/1503
cc @PePe Amengual
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) this documents the _defaults pattern we use.
https://github.com/cloudposse/atmos/pull/1514
https://github.com/cloudposse/atmos/pull/1514
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) this isolates tests that opt-in to a "sandbox" setting for components. It also standardizes how we compute the component path by refactoring that into a reusable function with thorough tests. This is most likely the root cause of the recent windows failures, we we may rollback the changes that retry
The root problem is tests run concurrently, and the components are shared by scenarios. This means that sporadically we'll see files cleaned up while another test was running. If we continue to see failures from test-cases, we should enable sandbox for them to see if it solves the problem.
https://github.com/cloudposse/atmos/pull/1512
terraform output lookups with retries.The root problem is tests run concurrently, and the components are shared by scenarios. This means that sporadically we'll see files cleaned up while another test was running. If we continue to see failures from test-cases, we should enable sandbox for them to see if it solves the problem.
https://github.com/cloudposse/atmos/pull/1512
Michael5 months ago
Running into an interesting
In
All stacks validate and plan as intended, but the
Maybe I'm missing something?
!include error this morning after upgrading to 1.191.0 . We have a catalog item that declares:components:
terraform:
waf:
metadata:
inherits:
- waf/defaults
settings:
ips:
org:
inet_gws: !include "stacks/objects/ips-org-gateways.yaml"
datadog:
synthetics: !include "stacks/objects/ips-datadog-synthetics.yaml"
vars:
name: waf
description: WAF
ip_set_reference_statement_rules:
- name: "allow-org"
action: "allow"
priority: 26
statement:
ip_set:
ip_address_version: "IPV4"
addresses:
!template '{{ toJson (concat
.settings.ips.org.inet_gws.addresses
.settings.ips.datadog.synthetics.addresses
) }}'In
stacks/objects/ips-datadog-synthetics.yaml, the address list looks like:# Datadog Synthetics IP Ranges
addresses:
- "3.1.36.99/32"
- "3.1.219.207/32"
- "3.18.172.189/32"
- "3.18.188.104/32"All stacks validate and plan as intended, but the
describe affected command is failing in our CI:Run base_cmd="atmos describe affected --include-settings=false --file affected-stacks.json --repo-path \"$GITHUB_WORKSPACE/base-ref\""
# Error
invalid stack manifest: failed to download file 'stacks/objects/ips-org-gateways': relative paths require a module with a pwd
File being processed: catalog/waf/waf.yaml
Import chain:
→ orgs/XXXX/XXX/XXX/us-east-1.yaml
→ catalog/waf/waf.yaml
stack manifest 'catalog/waf/waf.yaml' Maybe I'm missing something?
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) can you review https://github.com/cloudposse/atmos/pull/1523
small UI fix
small UI fix
Erik Osterman (Cloud Posse)5 months ago(edited)
@Andriy Knysh (Cloud Posse) this eliminates the error prone implementation we had for calling the atmos binary from cli_test.go and uses the conventional go way to build/run binaries as subshells (which we require for PTY testing). This removes some complexity and adds the ability to get go test coverage reports, despite it being a subprocess.
https://github.com/cloudposse/atmos/pull/1526
https://github.com/cloudposse/atmos/pull/1526
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) small fix for GitHub API rate limits.
https://github.com/cloudposse/atmos/pull/1527
https://github.com/cloudposse/atmos/pull/1527
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) this adds XDG support for our cache implementation and closes an issue opened this week.
https://github.com/cloudposse/atmos/pull/1524
https://github.com/cloudposse/atmos/pull/1524
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) this implements our own AtmosLogger that wraps the Charm logger so we can have more control over the logging and log levels. Also, so we can add masking in later to support secrets safely.
https://github.com/cloudposse/atmos/pull/1525
https://github.com/cloudposse/atmos/pull/1525
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) hopefully this fixes the command import presedence order in atmos.yaml / imports, once and for all. This adds extensive tests with edge cases. https://github.com/cloudposse/atmos/pull/1533
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) this fixes regressions in testing related to how we handle environment variables. we still use os.Setenv where we should call t.Setenv. But this fixes ones that were causing tests in my other PRs to fail, and adds extensive unit tests on the functionality.
https://github.com/cloudposse/atmos/pull/1543
https://github.com/cloudposse/atmos/pull/1543
Michael5 months ago
Just checked in this morning and am not seeing
1.192.0 in Cloudsmith or the packages repository. Did a pipeline fail along the way?Erik Osterman (Cloud Posse)5 months ago(edited)
@Andriy Knysh (Cloud Posse) https://github.com/cloudposse/atmos/pull/1535 this addresses the path duplication bug that @Michael brought to our attention last week. We were able to reproduce it with tests. Then added tons of test for all other platforms and edge cases. Since we didn’t have the extensive tests previously and documented edge cases or expected outcomes, there’s no guarantee that this doesn’t introduce a breaking change. But if there is a breaking change with this change, using these new tests, we can now codify and document that particular expected behavior.
Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) this fixes a regression that was introduced with
!include.raw that affected !include https://github.com/cloudposse/atmos/pull/1522Erik Osterman (Cloud Posse)5 months ago
@Andriy Knysh (Cloud Posse) this closes out some of the dependabot vulnerabilities on the docs site. https://github.com/cloudposse/atmos/pull/1559