diff --git a/docs/welcome/contributing.md b/docs/contributing/contributing.md similarity index 100% rename from docs/welcome/contributing.md rename to docs/contributing/contributing.md diff --git a/docs/development/homebrew.md b/docs/contributing/homebrew.md similarity index 100% rename from docs/development/homebrew.md rename to docs/contributing/homebrew.md diff --git a/docs/development/new_kubernetes_version.md b/docs/contributing/new_kubernetes_version.md similarity index 100% rename from docs/development/new_kubernetes_version.md rename to docs/contributing/new_kubernetes_version.md diff --git a/docs/development/release.md b/docs/contributing/release.md similarity index 100% rename from docs/development/release.md rename to docs/contributing/release.md diff --git a/docs/contributing/update_ami_versions.md b/docs/contributing/update_ami_versions.md new file mode 100644 index 0000000000..8317ccb452 --- /dev/null +++ b/docs/contributing/update_ami_versions.md @@ -0,0 +1,16 @@ +# Updating The Default Base AMI + +With the release of `kOps 1.18`, the base AMI was switched over from a pre-baked `kOps` AMI to the official Ubuntu 20.04 LTS image. +This makes the image update process easier, because kOps contributors no longer have to fully build an test a full AMI, but rather base off of the latest stable Ubuntu image. +In order to make sure we're up to date with the latest releases, we regularly follow the official [Ubuntu EC2 AMI Locator](https://cloud-images.ubuntu.com/locator/ec2/) website and update to the latest version of `focal` which is available across **all AWS regions**, including `gov` and `cn`, for full support. + +The process of updating the AMI version is as following: + +- Find the most recent release on the official [Ubuntu EC2 AMI Locator](https://cloud-images.ubuntu.com/locator/ec2/). Make sure it's available across all regions. The ones with the slowest release cycle are usually `gov`, `ap` and `cn` ones, so the best option would usually be to take the most recent release from one of these regions. +- Replace the timestamp on this line in the `alpha` channel, where the `ubuntu` image is referred. [Example](https://github.com/kubernetes/kops/blob/25eb1c98225450bed82d38e52d150d7a69a2c95a/channels/alpha#L47). + + !!!note + Before updating `alpha` channel, check and see if `alpha` and `stable` channel are both running the same AMI version. If `stable` currently runs a different version, and more than 7-10 days passed since `alpha` was updated- it's safe to also push the version currently in `alpha`, to `stable` in the same PR. + e.g., let's say that the most recent available on Ubuntu image locator is `20201210`, `alpha` is currently using `20201101` and `stable` is currently using `20201015`. If `alpha` was updated at least 7-10 days prior to your desired change, you can update `stable` with the version that was listed in `alpha` **before** your change. Then- you may update `alpha` with the most recent version of Ubuntu. + +- Let the new AMI version bake-in in `alpha` channel for at least 7-10 days, afterwhich it's safe to create a follow-up PR to push the latest version to `stable` channel. diff --git a/mkdocs.yml b/mkdocs.yml index 8ec30a2283..e5eb8e2918 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -34,7 +34,6 @@ nav: - Welcome: - Welcome: "index.md" - Releases & Versioning: "welcome/releases.md" - - Contributing: "welcome/contributing.md" - Office Hours: "welcome/office_hours.md" - Getting Started: - Installing: "getting_started/install.md" @@ -131,11 +130,16 @@ nav: - Rotate Secrets: "rotate-secrets.md" - Terraform: "terraform.md" - Authentication: "authentication.md" + - Contributing: + - Getting Involved and Contributing: "contributing/contributing.md" + - New Kubernetes Version: "contributing/new_kubernetes_version.md" + - Our Release Process: "contributing/release.md" + - Releasing With Homebrew: "contributing/homebrew.md" + - Updating The Default Base AMI: "contributing/update_ami_versions.md" - Development: - Building: "development/building.md" - Adding a feature: "development/adding_a_feature.md" - Testing: "development/testing.md" - - New Kubernetes Version: "development/new_kubernetes_version.md" - Developing using Docker: "development/Docker.md" - Documentation Guidelines: "development/documentation.md" - Hack Directory: "development/hack.md" @@ -143,8 +147,6 @@ nav: - Low level description on how kOps works: "development/how_it_works.md" - Notes on Gossip design: "development/gossip.md" - Notes on master instance sizing: "development/instancesizes.md" - - Our release process: "development/release.md" - - Releasing with Homebrew: "development/homebrew.md" - Bazel: "development/bazel.md" - Vendoring: "development/vendoring.md" - Ports: "development/ports.md"