## **Image Builder** ![Version](https://img.shields.io/badge/version-v0.1.16-blue) | Artifact | Build Status | | --- | --- | | 1-23 OVA | ![Build Status](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiS010OXdXZkVSemtPY01QdEVXTmJoZHd5SE11SEpqZXRLdUlyNFRERlp1RjJRY3k5emNXclFSQ29mN1krNy9nOVAzMUp1QlhoemFqQkc0S0lpbmZ0YitNPSIsIml2UGFyYW1ldGVyU3BlYyI6InRKMzFzY0FTZFQ5ZXJ0cXYiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main) | | 1-24 OVA | ![Build Status](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoid2wreW55NTlKclBJZ3NzR3FmQnppdmZOVmErSnZhL2NzQW1ycFgwanVTTEhrR20vRmVQYU9TWWFtWlVCQWs2elhyRmwrZ0dxeW9sbERHWnBESzh0MWxBPSIsIml2UGFyYW1ldGVyU3BlYyI6IlZzOENKNnhHbENYMElsTG4iLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main) | | 1-25 OVA | ![Build Status](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiclZha0pmcTZsNkVpNElMNWwrN2FvZTVCSTVvbkdyd1ZXZnpjSEhaT2JNcUV6eVZOV054dFV4b2dQVDZPb0xNL2Foa0tuRUlSQ3FLaStDbkliR3Zqb1NVPSIsIml2UGFyYW1ldGVyU3BlYyI6ImdBQk5VR2FjdW53b1VkRlEiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main) | | 1-26 OVA | ![Build Status](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiT2RMSTIrS0toc21CWFBObS9hOC9TZzVJV2VURjVRZWhralZURFk3aHJoaFI1UFpwYVlPSUw2bjN0UkJsVEF1TmN0SlJGMzA0VWpkTHZxK0dwTnV3cklNPSIsIml2UGFyYW1ldGVyU3BlYyI6ImgzYTJUaXZ6U0sydnFTeU8iLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main) | | 1-27 OVA | ![Build Status](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiM2NtaXphdE9aTUF5bVpPdEV4b0hxczB4Y0FGWG9lMG1zaEZibDZJaWVzclhYa1A1N1FSUFlQOHNkTmRydjc4Y29Xc0xQbjQvZHplYkdDM3c0NURIdndVPSIsIml2UGFyYW1ldGVyU3BlYyI6IkRHMlhxKy93d0NsbDFaUnYiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main) | | 1-23 Raw | ![Build Status](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoid1Z0MFo5Um9vZUxuUGtPZnhDQVJSODl6NHNUbm9MMnhuaUZTN2JmdWFvVHZGeUJnZm9EOGtvY2xFUmd1U0NLeWxIeXpPYjZ4aWxTWDRlNjB5WXNaVEhVPSIsIml2UGFyYW1ldGVyU3BlYyI6InUvMktUTG9EL1lreWlsOXkiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main) | | 1-24 Raw | ![Build Status](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiUFd5RFZVbjNLMlNrSWNSKzNpQ0JSTm93K3Z0L0hXKzdFeXdnMlR5UzNnTGVPYzhkekszU0JacStHUzBObUlnWUdOMFZUVUIzRG1UVWRNTUtiQU5iUnNNPSIsIml2UGFyYW1ldGVyU3BlYyI6ImgwWTV0MkZGRU1LQm1ocWEiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main) | | 1-25 Raw | ![Build Status](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiUW0zM3hac2xLZTYrNlQ1TThIcm1qL2t1UlBFbUtFUGkwYUl3ZzUvUW1xb0Qxd2ZaWmQvZjBFdUZRU3NVRllERm9oVll5cW51bVpQR3YydmhxZy9TcXNFPSIsIml2UGFyYW1ldGVyU3BlYyI6IjVkSmU1aHBRSWtwY09ZaTMiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main) | | 1-26 Raw | ![Build Status](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiNVZHZ1Z4OFRTU3hvbHRNR2ppK21TYUw1Y0xiSGVuMkJuWnFheVNWN2VSTTVUWCtNT3hZRyttZHl4enNyV3B0Wms3QWoxTnNiR0RCdWVsQm9YaGYwTk5nPSIsIml2UGFyYW1ldGVyU3BlYyI6IlhmYk1EcTVSUG9mb2VyYzciLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main) | | 1-27 Raw | ![Build Status](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiSXlGbnpEMVhXaWJqdnB1QTVieFFwTWc3Y3VqcUczZ3krb2oxempFM2hJc1JnbVBDd3lsdEZTL0JZSE4wLzRzQjJXNUZLaXl4bVg0TjFFRkpaWFNEQXZJPSIsIml2UGFyYW1ldGVyU3BlYyI6IkUxYllhTXlwVXV3N2pGTTQiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main) | The [Image Builder project](https://github.com/kubernetes-sigs/image-builder) offers a collection of cross-provider Kubernetes virtual machine image building utilities. It can be used to build images intended for use with Kubernetes Cluster API providers. Each provider has its own format of images that it can work with, for example, AMIs for AWS instances, and OVAs for vSphere. The Image Builder project relies on Packer configuration files and Ansible playbooks to build the images and store them in appropriate locations and accounts. EKS-A CLI project uses these images as the node image when constructing workload clusters for different infrastructure providers like AWS and vSphere. ### Updating 1. Review releases and changelogs in upstream [repo](https://github.com/kubernetes-sigs/image-builder) and decide on new version. Please review carefully and if there are questions about changes necessary to eks-anywhere to support the new version reach out to @vignesh-goutham or @jaxesn. 1. Follow these steps for changes to the patches/ folder: 1. Checkout the desired tag on upstream [repo](https://github.com/kubernetes-sigs/image-builder) and create a new branch on your local workspace. 1. Review the patches under patches/ folder in this repo. Apply the required patches to the new branch in the local clone of upstream repo created in the above step. 1. Run `git am ` on the upstream clone. 1. For patches that need some manual changes, you will see a similar error: `Patch failed at *` 1. For that patch, run `git apply --reject --whitespace=fix *.patch`. This will apply hunks of the patch that do apply correctly, leaving the failing parts in a new file ending in `.rej`. This file shows what changes weren't applied and you need to manually apply. 1. Once the changes are done, delete the `.rej` file and run `git add .` and `git am --continue` 1. Remove any patches that are either merged upstream or no longer needed. Please reach out to @vignesh-goutham or @jaxesn if there are any questions regarding keeping/removing patches. 1. Run `git format-patch `, where `` is the last upstream commit on that tag. Move the generated patches from under the upstream fork to the projects/kubernetes-sigs/image-builder/patches/ folder in this repo. 1. Update the `GIT_TAG` file to have the new desired version based on the upstream release tags. 1. Compare the old tag to the new, looking specifically for Makefile changes. If any of the make targets used in projects/kubernetes-sigs/image-builder/Makefile to call upstream make changed, make those appropriate changes. 1. Update the version at the top of this Readme. 1. Monitor node image builds and e2e tests as updates to this project can potentially break cluster create and update process.