feat: add aws for omni with manifests - #104
Open
rothgar wants to merge 1 commit into
Open
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new examples/omni/aws/ “Omni on AWS” example that provisions a Talos-based Kubernetes cluster via Omni using the community AWS infra provider, and installs an EKS-like addon set via Omni Manifest Sync.
Changes:
- Introduces an AWS Omni cluster template (
cluster.yaml) plus MachineClass templates and Talos patches for control-plane/worker nodes. - Adds a rendered
manifests/bundle for core AWS/Kubernetes controllers (CNI, CCM, CSI, autoscaler, etc.) intended to be synced declaratively by Omni. - Documents prerequisites, AWS setup, and regeneration instructions in a new README.
Reviewed changes
Copilot reviewed 17 out of 18 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| examples/omni/aws/README.md | End-to-end instructions for deploying the AWS example and regenerating manifests. |
| examples/omni/aws/cluster.yaml | Omni cluster template wiring Talos/Kubernetes versions, patches, and manifest sync entries. |
| examples/omni/aws/aws-controlplane.yaml | MachineClass template for AWS control-plane nodes (templated via envsubst). |
| examples/omni/aws/aws-worker.yaml | MachineClass template for AWS worker nodes (templated via envsubst). |
| examples/omni/aws/machineconfig.yaml | SideroLink join configuration template baked into the Talos AMI/user-data. |
| examples/omni/aws/.gitignore | Prevents rendered outputs and .envrc from being committed. |
| examples/omni/aws/patches/cluster.yaml | Cluster-wide Talos patch disabling flannel and configuring ECR credential provider + external CCM. |
| examples/omni/aws/patches/controlplane.yaml | Control-plane Talos patch (kubespan off, kubelet settings). |
| examples/omni/aws/patches/worker.yaml | Worker Talos patch (kubespan off, kubelet settings). |
| examples/omni/aws/manifests/vpc-cni.yaml | Rendered AWS VPC CNI resources to replace flannel. |
| examples/omni/aws/manifests/ccm.yaml | Rendered AWS Cloud Controller Manager manifest. |
| examples/omni/aws/manifests/ebs-csi.yaml | Rendered AWS EBS CSI driver manifests. |
| examples/omni/aws/manifests/snapshot-controller.yaml | Rendered VolumeSnapshot CRDs/controller bundle. |
| examples/omni/aws/manifests/storageclass-gp3.yaml | Default encrypted gp3 StorageClass. |
| examples/omni/aws/manifests/lb-controller.yaml | Rendered AWS Load Balancer Controller bundle. |
| examples/omni/aws/manifests/metrics-server.yaml | Rendered metrics-server deployment/APIService bundle. |
| examples/omni/aws/manifests/external-dns.yaml | Rendered external-dns deployment configured for AWS. |
| examples/omni/aws/manifests/cluster-autoscaler.yaml | Rendered cluster-autoscaler deployment configured for AWS ASG discovery. |
Suppressed comments (3)
examples/omni/aws/README.md:22
- The "What you get" table says
metrics-servercomes from a release YAML, butmanifests/metrics-server.yamlis Helm-rendered (it contains# Source: metrics-server/templates/...). The table should match the actual artifact source so regeneration steps are accurate.
| `cluster-autoscaler` | `cluster-autoscaler` Helm chart | Scales worker MachineSets on demand |
| `metrics-server` | `metrics-server` release YAML | `kubectl top` and HPA metrics |
examples/omni/aws/README.md:214
manifests/vpc-cni.yamlappears to be Helm-rendered, but the regeneration recipe downloads the release YAML viacurl. Regenerating via curl will produce a different file (and likely different defaults) than what’s committed here.
# vpc-cni — pin to the desired release
curl -sL https://github.com/aws/amazon-vpc-cni-k8s/releases/download/v1.19.5/aws-k8s-cni.yaml \
> manifests/vpc-cni.yaml
examples/omni/aws/README.md:237
manifests/metrics-server.yamlis Helm-rendered, but the regeneration recipe usescurlto downloadcomponents.yaml. That will not reproduce the committed manifest structure and can lead to drift.
# metrics-server
curl -sL https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml \
> manifests/metrics-server.yaml
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| kind: Cluster | ||
| name: aws | ||
| kubernetes: | ||
| version: v1.36.2 |
Comment on lines
+152
to
+154
| - name: aws-cloud-controller-manager | ||
| image: registry.k8s.io/provider-aws/cloud-controller-manager:v1.27.1 | ||
| args: |
Comment on lines
+345
to
+366
| - name: aws-cluster-autoscaler | ||
| image: "registry.k8s.io/autoscaling/cluster-autoscaler:v1.35.0" | ||
| imagePullPolicy: "IfNotPresent" | ||
| command: | ||
| - ./cluster-autoscaler | ||
| - --cloud-provider=aws | ||
| - --namespace=kube-system | ||
| - --node-group-auto-discovery=asg:tag=k8s.io/cluster-autoscaler/enabled,k8s.io/cluster-autoscaler/aws | ||
| - --logtostderr=true | ||
| - --stderrthreshold=info | ||
| - --v=4 | ||
| env: | ||
| - name: POD_NAMESPACE | ||
| valueFrom: | ||
| fieldRef: | ||
| fieldPath: metadata.namespace | ||
| - name: SERVICE_ACCOUNT | ||
| valueFrom: | ||
| fieldRef: | ||
| fieldPath: spec.serviceAccountName | ||
| - name: AWS_REGION | ||
| value: "us-east-2" |
Member
|
i used claude to review this PR, and this is the output:
now claude is probably wrong but maybe you'd like to read through it |
Templates configuration and requires an AWS infrastructure provider. Signed-off-by: Justin Garrison <justin.garrison@siderolabs.com>
Member
Author
|
I think I addressed all of the points in this latest commit |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Templates configuration and requires an AWS infrastructure provider.