Repository navigation
kubectl-apply: optional k8s-aibom install (default off) - #6572
glenmessenger wants to merge 2 commits into
Conversation
Adds a `k8s_aibom` input mirroring the jobset and cert_manager switches: install (default false), version (pinned 1.6.2), controller cpu/memory. Installs the CRD chart then the controller chart from oci://ghcr.io/googlecloudplatform/charts into k8s-aibom-system, with the gke-managed-components toleration. The module does not opt any namespace in; platform admins label namespaces, and the controller reports when none is labeled.
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request adds support for installing k8s-aibom via the kubectl-apply module. The feature is designed to be opt-in and disabled by default, providing users with the ability to track AI bills of materials for their workloads. The implementation follows existing patterns for similar components, ensuring consistent management of CRDs and controller resources. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request adds support for installing k8s-aibom (Kubernetes AI Bill of Materials) in the kubectl-apply management module. It introduces a new k8s_aibom input variable, configures the installation of its CRDs and controller via Helm, defines default Helm values with GKE tolerations, and updates the module's README.md with documentation and examples. There are no review comments, and I have no feedback to provide.
|
/gcbrun |
Tracking: b/582753235 (internal contribution intake).
Adds an opt-in
k8s_aibomswitch tomodules/management/kubectl-apply, default off, plus a README mention. Scope as agreed with Annie: start with the switch off and a docs mention; no example turns it on.What k8s-aibom is. https://github.com/GoogleCloudPlatform/k8s-aibom records a CycloneDX AI bill of materials per inference or training workload (models, runtime, images, signatures) in namespaces labeled
aibom.k8saibom.dev/enabled=true. It is unprivileged and reads the Kubernetes API only. NVIDIA AI Cluster Runtime ships it on its GKE recipes, pinned to 1.6.2.Shape. Mirrors
jobsetandcert_manager:Two
helm_installblocks fromoci://ghcr.io/googlecloudplatform/charts: the CRD chart first, so CRD changes stay ordinary Helm upgrades, then the controller chart intok8s-aibom-systemwith thegke-managed-componentstoleration (same reason as the jobset values file). The module installs the controller only. Namespaces are opted in by the platform admin withkubectl label namespace <name> aibom.k8saibom.dev/enabled=true; the controller'sAIBOMControllerConfigstatus says so until one is.Validation.
terraform fmt,terraform validate(Terraform 1.12.2), tflint 0.49.0, terraform-docs 0.24.0 regenerated the README tables,tools/label-check.py,tools/validate_readme_snippets.py,tools/duplicate-diff.py, catalog-gen (no changes), yamllint on the new values file.helm templateof chart 1.6.2 with the module's values renders the toleration on the controller pod.Test plan for integration tests. On any GKE blueprint that already uses
kubectl-apply, setk8s_aibom.install: true, deploy, then:Teardown is the blueprint's own destroy; the charts uninstall with the module.