-
Notifications
You must be signed in to change notification settings - Fork 207
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into repo-sync-973b7272da018d817323f99f409d2dd3a8…
…dbbb8b-38.1
- Loading branch information
Showing
1,028 changed files
with
18,074 additions
and
38,334 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
# Description of the issue | ||
An automated PR to kickstart the process of syncing the latest changes from [cw-agent](https://github.com/aws/amazon-cloudwatch-agent/) | ||
|
||
# Description of changes | ||
|
||
### Follow the git CLI instructions resolve the merge conflicts | ||
|
||
```shell | ||
git pull origin main | ||
git checkout repo-sync-<hash>-<run_id> | ||
git merge main # do a regular merge -- we want to keep the commits | ||
# resolve merge conflicts in your preferred IDE | ||
git push -u origin repo-sync-<hash>-<run_id> | ||
``` | ||
|
||
Some useful commands | ||
* [Restore conflict resolution in a single file](https://stackoverflow.com/questions/14409420/restart-undo-conflict-resolution-in-a-single-file) - `git checkout -m <FILE>` | ||
* Total reset - `git merge --abort` | ||
|
||
### Related docs | ||
* Resolving conflicts with: | ||
* [Git CLI](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line) | ||
* [IntelliJ](https://www.jetbrains.com/help/idea/resolving-conflicts.html#distributed-version-control-systems) | ||
* [GoLand](https://www.jetbrains.com/help/go/resolve-conflicts.html) | ||
* [VSCode](https://learn.microsoft.com/en-us/visualstudio/version-control/git-resolve-conflicts?view=vs-2022) | ||
|
||
### Best practices | ||
|
||
* Remember to update all references from `amazon-cloudwatch-agent` to `private-amazon-cloudwatch-agent-staging` | ||
* Resolve the `go.sum` with `go mod tidy`. Don't bother manually resolving conflicts in this file | ||
* When finished, ensure builds work by using `make build` or `make release` | ||
* When unsure or blocked, do a deep dive on the `git blame` for greater context. Maybe even look for the associated PR's and ask the original authors and PR approvers | ||
* If another automated PR arrives before your work is merged, just close your current one and save the branch | ||
* After your PR is approved, **do a regular merge to preserve the commits**. | ||
* Remember to cleanup your commits because none of them will be squashed in a regular merge | ||
|
||
# License | ||
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice. | ||
|
||
# Tests | ||
n/a | ||
|
||
# Requirements | ||
_Before commit the code, please do the following steps._ | ||
1. Run `make fmt` and `make fmt-sh` | ||
2. Run `make lint` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. | ||
# SPDX-License-Identifier: MIT | ||
|
||
# alpha-release.yml - releasing CWA artifacts for customers and will be safe to deleted after Alpha release etc. | ||
name: Alpha Release | ||
env: | ||
TERRAFORM_AWS_ASSUME_ROLE: ${{ secrets.TERRAFORM_AWS_ASSUME_ROLE }} | ||
S3_INTEGRATION_BUCKET: ${{ secrets.S3_INTEGRATION_BUCKET }} | ||
|
||
on: | ||
release: | ||
types: [published] | ||
|
||
jobs: | ||
UploadRelease: | ||
name: "UploadRelease" | ||
runs-on: ubuntu-latest | ||
environment: release | ||
permissions: | ||
id-token: write | ||
contents: read | ||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Configure AWS Credentials | ||
uses: aws-actions/configure-aws-credentials@v1 | ||
with: | ||
role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }} | ||
aws-region: us-west-2 | ||
|
||
- name: Set up Go 1.x | ||
uses: actions/setup-go@v2 | ||
with: | ||
go-version: ~1.19.2 | ||
|
||
- name: Cache go | ||
id: cached_go | ||
uses: actions/cache@v2 | ||
with: | ||
path: | | ||
~/go/pkg/mod | ||
~/.cache/go-build | ||
key: v1-go-pkg-mod-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | ||
|
||
# Required to build rpm again to reset cw agent version to new tag version | ||
- name: Build RPM | ||
run: make build package-rpm | ||
|
||
- name: Check current release version against new version and ensure they are different | ||
run: | | ||
aws s3 cp s3://${S3_INTEGRATION_BUCKET}/release/CWAGENT_VERSION /tmp/ | ||
current_val=`cat /tmp/CWAGENT_VERSION` | ||
new_val=`cat build/bin/CWAGENT_VERSION` | ||
if [ "$current_val" = "$new_val" ]; then | ||
echo "This version has already been published. Do nothing." | ||
exit 1 | ||
fi | ||
- name: Copy RPM To Release | ||
run: | | ||
aws s3 cp build/bin/linux/amd64/amazon-cloudwatch-agent.rpm s3://${S3_INTEGRATION_BUCKET}/release/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm | ||
aws s3 cp build/bin/linux/arm64/amazon-cloudwatch-agent.rpm s3://${S3_INTEGRATION_BUCKET}/release/amazon_linux/arm64/latest/amazon-cloudwatch-agent.rpm | ||
aws s3 cp build/bin/CWAGENT_VERSION s3://${S3_INTEGRATION_BUCKET}/release/CWAGENT_VERSION | ||
- name: Copy RPM To Tag | ||
run: | | ||
export tag=$(cat build/bin/CWAGENT_VERSION) | ||
aws s3 cp build/bin/linux/amd64/amazon-cloudwatch-agent.rpm s3://${S3_INTEGRATION_BUCKET}/release/${tag}/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm | ||
aws s3 cp build/bin/linux/arm64/amazon-cloudwatch-agent.rpm s3://${S3_INTEGRATION_BUCKET}/release/${tag}/amazon_linux/arm64/latest/amazon-cloudwatch-agent.rpm | ||
aws s3 cp build/bin/CWAGENT_VERSION s3://${S3_INTEGRATION_BUCKET}/release/${tag}/CWAGENT_VERSION | ||
# Assume we do not run 2 releases at the same time | ||
DeployCanary: | ||
needs: [UploadRelease] | ||
uses: ./.github/workflows/deploy-canary.yml | ||
secrets: inherit |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. | ||
# SPDX-License-Identifier: MIT | ||
|
||
name: Deploy Canary | ||
env: | ||
TERRAFORM_AWS_ASSUME_ROLE: ${{ secrets.TERRAFORM_AWS_ASSUME_ROLE }} | ||
S3_INTEGRATION_BUCKET: ${{ secrets.S3_INTEGRATION_BUCKET }} | ||
KEY_NAME: ${{ secrets.KEY_NAME }} | ||
PRIVATE_KEY: ${{ secrets.AWS_PRIVATE_KEY }} | ||
CWA_GITHUB_TEST_REPO_NAME: "aws/amazon-cloudwatch-agent-test" | ||
CWA_GITHUB_TEST_REPO_URL: "https://github.com/aws/amazon-cloudwatch-agent-test.git" | ||
CWA_GITHUB_TEST_REPO_BRANCH: "main" | ||
|
||
on: | ||
schedule: | ||
- cron: "0 15 * * *" # Run daily at 15:00 UTC | ||
workflow_call: | ||
workflow_dispatch: | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref_name }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
DeployCanary: | ||
name: "DeployCanary" | ||
runs-on: ubuntu-latest | ||
permissions: | ||
id-token: write | ||
contents: read | ||
steps: | ||
- uses: actions/checkout@v2 | ||
with: | ||
repository: ${{env.CWA_GITHUB_TEST_REPO_NAME}} | ||
ref: ${{env.CWA_GITHUB_TEST_REPO_BRANCH}} | ||
|
||
- name: Configure AWS Credentials | ||
uses: aws-actions/configure-aws-credentials@v1 | ||
with: | ||
role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }} | ||
aws-region: us-west-2 | ||
|
||
- name: Terminate Last Canary | ||
run: | | ||
if aws s3api wait object-exists --bucket ${S3_INTEGRATION_BUCKET} --key canary/al2/terraform.tfstate ; | ||
then | ||
cd terraform/ec2/linux | ||
aws s3 cp s3://${S3_INTEGRATION_BUCKET}/canary/al2/terraform.tfstate . | ||
terraform --version | ||
terraform init | ||
terraform destroy -auto-approve | ||
aws s3api delete-object --bucket ${S3_INTEGRATION_BUCKET} --key canary/al2/terraform.tfstate | ||
fi | ||
# @TODO we can add a matrix in the future but for alpha we will only deploy to al2 | ||
- name: Terraform apply | ||
uses: nick-fields/retry@v2 | ||
with: | ||
max_attempts: 3 | ||
timeout_minutes: 60 | ||
retry_wait_seconds: 5 | ||
command: | | ||
cd terraform/ec2/linux | ||
terraform init | ||
if terraform apply --auto-approve \ | ||
-var="github_test_repo=${{env.CWA_GITHUB_TEST_REPO_URL}}" \ | ||
-var="github_test_repo_branch=${{env.CWA_GITHUB_TEST_REPO_BRANCH}}" \ | ||
-var="user=ec2-user" \ | ||
-var="ami=cloudwatch-agent-integration-test-al2*" \ | ||
-var="arc=amd64" \ | ||
-var="binary_name=amazon-cloudwatch-agent.rpm" \ | ||
-var="s3_bucket=${S3_INTEGRATION_BUCKET}" \ | ||
-var="ssh_key_name=${KEY_NAME}" \ | ||
-var="ssh_key_value=${PRIVATE_KEY}" \ | ||
-var="test_name=canary" \ | ||
-var="is_canary=true" \ | ||
-var="test_dir=./test/canary" ; then aws s3 cp terraform.tfstate s3://${S3_INTEGRATION_BUCKET}/canary/al2/terraform.tfstate | ||
else | ||
terraform destroy -auto-approve && exit 1 | ||
fi | ||
#This is here just in case workflow cancel | ||
- name: Terraform destroy | ||
if: ${{ cancelled() }} | ||
uses: nick-fields/retry@v2 | ||
with: | ||
max_attempts: 3 | ||
timeout_minutes: 8 | ||
retry_wait_seconds: 5 | ||
command: cd terraform/ec2/linux && terraform destroy --auto-approve |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.