kubernetes-sigs / cluster-api-provider-aws

Kubernetes Cluster API Provider AWS provides consistent deployment and day 2 operations of "self-managed" and EKS Kubernetes clusters on AWS.
http://cluster-api-aws.sigs.k8s.io/
Apache License 2.0
646 stars 574 forks source link

AMI build/test/publish automation #1982

Closed sedefsavas closed 2 weeks ago

sedefsavas commented 4 years ago

Based on the feedbacks in https://docs.google.com/document/d/142YzzRj2H_OWEUE03Vrw3D-XpDCWM8RviFGHT5-RBxo/edit?usp=sharing:

An AMI-version.yaml will be added to the CAPA repository that contains all Kubernetes releases that CAPA AMIs are created from. AMI-version.yaml can be similar to:

BUILDS:
  - '1.18.8':
      GO_VERSION: 1.13.5
      K8S_RELEASE:1.18.8
      IMAGE_BUILDER_VERSION: 0.1.6
      BUILD_REVISION: 0
      ARCHITECTURE: x86-64
      EXTRA_CONFIG_FILE: 'extra-configs.yaml'
      OS:
       - centos-7
       - ubuntu-1804
  - '1.19.1':
      CONFIG: '1.16'
      GO_VERSION: 1.13.5
      K8S_RELEASE:1.19.1

Aso, a CAPA-robot similar to k8s-release-robot will be created to automatically create PRs when there are new Kubernetes releases.

Roughly, we will need 4 different Prow jobs to automate build/test/publish workflow:

Periodic Kubernetes release detection job: will periodically checks if there is a new Kubernetes release and if there is a new release, it creates a new-release PR using CAPA-bot to CAPA repository by adding the new release to the AMI-version.yaml.

Pre-submit test-AMI build job: This job will get triggered when there is a PR that modifies AMI-version.yaml like new-release PR. It builds AMIs following the changes in the AMI-version.yaml. These AMIs will be used to run conformance tests. Here, we need to have a way to detect changes in the AMI-version.yaml and only act on them. api-machinery is one option. This job will use CNCF AWS account.

Pre-submit AMI conformance test job: will detect the changes in AMI-version.yaml and run conformance tests using only the AMIs that are recently built. This job will use test AWS account.

Post-submit AMI promote job: After manually merging the PR created by the CAPA-robot (after observing conformance tests pass), new “published” AMIs will be created referencing the same EBS snapshot used by test AMIs, which acts as “promotion” of the image. This job will use CNCF AWS account.

Pre-submit clean-up job: This can be a job that will be triggered manually to delete all the newly created AMIs after a PR is created. This may become handy if conformance tests fails and we will need to retrigger Pre-submit test-AMI build job.

To initiate a rebuild for either fixing a previous AMI image or including some OS patches; instead of the periodic job, a PR will be manually created with a new BUILD_REVISION. The rest of the workflow is same with creating a new AMI.

Follow up issue to https://github.com/kubernetes-sigs/cluster-api-provider-aws/issues/1861

sedefsavas commented 4 years ago

cc @randomvariable @detiber

fejta-bot commented 3 years ago

Issues go stale after 90d of inactivity. Mark the issue as fresh with /remove-lifecycle stale. Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale

fejta-bot commented 3 years ago

Stale issues rot after 30d of inactivity. Mark the issue as fresh with /remove-lifecycle rotten. Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community. /lifecycle rotten

sedefsavas commented 3 years ago

/lifecycle stale

fejta-bot commented 3 years ago

Stale issues rot after 30d of inactivity. Mark the issue as fresh with /remove-lifecycle rotten. Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community. /lifecycle rotten

sedefsavas commented 3 years ago

/remove-lifecycle rotten

fejta-bot commented 3 years ago

Issues go stale after 90d of inactivity. Mark the issue as fresh with /remove-lifecycle stale. Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale

k8s-triage-robot commented 3 years ago

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

k8s-triage-robot commented 3 years ago

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

k8s-ci-robot commented 3 years ago

@k8s-triage-robot: Closing this issue.

In response to [this](https://github.com/kubernetes-sigs/cluster-api-provider-aws/issues/1982#issuecomment-917176538): >The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. > >This bot triages issues and PRs according to the following rules: >- After 90d of inactivity, `lifecycle/stale` is applied >- After 30d of inactivity since `lifecycle/stale` was applied, `lifecycle/rotten` is applied >- After 30d of inactivity since `lifecycle/rotten` was applied, the issue is closed > >You can: >- Reopen this issue or PR with `/reopen` >- Mark this issue or PR as fresh with `/remove-lifecycle rotten` >- Offer to help out with [Issue Triage][1] > >Please send feedback to sig-contributor-experience at [kubernetes/community](https://github.com/kubernetes/community). > >/close > >[1]: https://www.kubernetes.dev/docs/guide/issue-triage/ Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.
sedefsavas commented 2 years ago

/lifecycle frozen

sedefsavas commented 2 years ago

Related to this issue: https://github.com/kubernetes-sigs/cluster-api-provider-aws/issues/2088

richardcase commented 2 years ago

/remove-lifecycle frozen

k8s-triage-robot commented 2 years ago

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

Skarlso commented 2 years ago

/triage accepted /remove-lifecycle stale /life-cycle active

Skarlso commented 2 years ago

/lifecycle active

Skarlso commented 2 years ago

There are several PRs open around this issue regarding github actions ATM and permissions for running them.

Skarlso commented 2 years ago

/priority important-soon

k8s-triage-robot commented 1 year ago

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

k8s-triage-robot commented 1 year ago

This issue is labeled with priority/important-soon but has not been updated in over 90 days, and should be re-triaged. Important-soon issues must be staffed and worked on either currently, or very soon, ideally in time for the next release.

You can:

For more details on the triage process, see https://www.kubernetes.dev/docs/guide/issue-triage/

/remove-triage accepted

dlipovetsky commented 1 year ago

/triage accepted /priority important-longterm

k8s-triage-robot commented 10 months ago

This issue is labeled with priority/important-soon but has not been updated in over 90 days, and should be re-triaged. Important-soon issues must be staffed and worked on either currently, or very soon, ideally in time for the next release.

You can:

For more details on the triage process, see https://www.kubernetes.dev/docs/guide/issue-triage/

/remove-triage accepted

k8s-triage-robot commented 9 months ago

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

richardcase commented 1 month ago

/retitle AMI build/test/publish automation

richardcase commented 1 month ago

/assign /lifecycle active

richardcase commented 1 month ago

/triage accepted /priority critical-urgent

richardcase commented 1 month ago

With the new AWS account i have started work on the automation for this using GHA.

k8s-triage-robot commented 2 weeks ago

This issue is labeled with priority/critical-urgent but has not been updated in over 30 days, and should be re-triaged. Critical-urgent issues must be actively worked on as someone's top priority right now.

You can:

For more details on the triage process, see https://www.kubernetes.dev/docs/guide/issue-triage/

/remove-triage accepted

richardcase commented 2 weeks ago

We have some automation now with GHA. So

/close

k8s-ci-robot commented 2 weeks ago

@richardcase: Closing this issue.

In response to [this](https://github.com/kubernetes-sigs/cluster-api-provider-aws/issues/1982#issuecomment-2454245680): >We have some automation now with GHA. So > >/close Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.