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
633 stars 559 forks source link

AMI build/test/publish automation Prow jobs #1982

Open sedefsavas opened 3 years ago

sedefsavas commented 3 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 3 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 2 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 2 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 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

Skarlso commented 1 year ago

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

Skarlso commented 1 year ago

/lifecycle active

Skarlso commented 1 year ago

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

Skarlso commented 1 year 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 7 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 6 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