cluster-api-provider-aws icon indicating copy to clipboard operation
cluster-api-provider-aws copied to clipboard

AMI build/test/publish automation

Open sedefsavas opened this issue 5 years ago • 27 comments

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 avatar Sep 28 '20 19:09 sedefsavas

cc @randomvariable @detiber

sedefsavas avatar Sep 28 '20 19:09 sedefsavas

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 avatar Feb 07 '21 14:02 fejta-bot

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

fejta-bot avatar Mar 09 '21 15:03 fejta-bot

/lifecycle stale

sedefsavas avatar Mar 09 '21 15:03 sedefsavas

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

fejta-bot avatar Apr 10 '21 20:04 fejta-bot

/remove-lifecycle rotten

sedefsavas avatar Apr 13 '21 18:04 sedefsavas

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 avatar Jul 12 '21 19:07 fejta-bot

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:

  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

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

/lifecycle rotten

k8s-triage-robot avatar Aug 11 '21 19:08 k8s-triage-robot

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

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

/close

k8s-triage-robot avatar Sep 10 '21 20:09 k8s-triage-robot

@k8s-triage-robot: Closing this issue.

In response to this:

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

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

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

k8s-ci-robot avatar Sep 10 '21 20:09 k8s-ci-robot

/lifecycle frozen

sedefsavas avatar Jan 04 '22 22:01 sedefsavas

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

sedefsavas avatar Feb 02 '22 06:02 sedefsavas

/remove-lifecycle frozen

richardcase avatar Jul 12 '22 15:07 richardcase

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:

  • 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:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

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

/lifecycle stale

k8s-triage-robot avatar Oct 10 '22 15:10 k8s-triage-robot

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

Skarlso avatar Oct 31 '22 16:10 Skarlso

/lifecycle active

Skarlso avatar Oct 31 '22 16:10 Skarlso

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

Skarlso avatar Oct 31 '22 16:10 Skarlso

/priority important-soon

Skarlso avatar Oct 31 '22 16:10 Skarlso

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:

  • 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:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

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

/lifecycle stale

k8s-triage-robot avatar Jan 29 '23 16:01 k8s-triage-robot

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:

  • Confirm that this issue is still relevant with /triage accepted (org members only)
  • Deprioritize it with /priority important-longterm or /priority backlog
  • Close this issue with /close

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

/remove-triage accepted

k8s-triage-robot avatar Apr 29 '23 17:04 k8s-triage-robot

/triage accepted /priority important-longterm

dlipovetsky avatar May 01 '23 16:05 dlipovetsky

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:

  • Confirm that this issue is still relevant with /triage accepted (org members only)
  • Deprioritize it with /priority important-longterm or /priority backlog
  • Close this issue with /close

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

/remove-triage accepted

k8s-triage-robot avatar Jan 18 '24 23:01 k8s-triage-robot

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:

  • 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:

  • Mark this issue as fresh with /remove-lifecycle rotten
  • Close this issue with /close
  • Offer to help out with Issue Triage

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

/lifecycle rotten

k8s-triage-robot avatar Feb 17 '24 23:02 k8s-triage-robot