Hello, Here’s a quick overview on my experiments w...
# aws
y
Hello, Here’s a quick overview on my experiments with infra-as-code here. I’ve started using ACK/KRO/FluxCD/Helm to deploy Kube applications that need AWS resources: • KRO (https://kro.run) allows you to define a resource graph. • ACK (https://github.com/aws-controllers-k8s/community) lets you manage AWS resources from Kube. Advantages: • It's a natural integration with ArgoCD/Flux. • Declared as YAML (no more yaml/json/hcl mix) in Git and applied directly to the cluster. • Developers only need to interact with the Kubernetes (already the case). They do not need to learn Terraform or manage Terraform state files. • With KRO, I can define custom, simplified APIs for developers, hiding the underlying complexity of cloud resources and Helm deployments behind a single custom resource. • No more *he "*Two-State*"* problem (tfstate and Kubernetes state). It’s really promising. I hesitated to use Helm provider in Atmos, but that would mean granting extensive AWS permissions, and I would then lose Kube’s reconciliation loop and the ability to manipulate objects from Kube.
🙂 1
e
Yes, both are awesome!
I think helm will continue to exist for sometime as a way to distribute 3rd party apps, but KRO and ACK for in-house apps is where things are headed
Maybe with KRO+ACK a raw manifest component type would make sense? That could build on atmos auth
Lmk!
Copy code
components:
  kubernetes:
    app:
      source:
        path: catalog/kubernetes/myapp

      driver:
        kind: kustomize
Could have
kind: kubectl
Or even add
target
which could be an argocd/flux deployment repo
y
I think helm will continue to exist for sometime as a way to distribute 3rd party apps, but KRO and ACK for in-house apps is where things are headed
I still using Helm 'cause it's the only way to create packages. I don't want to deploy a bunch of Manifests, but a single app with a simple values section (but I dislike the templating).
e
Are you using Helm+KRO?
m
Have you compared ACK+KRO with Crossplane?
y
Are you using Helm+KRO?
Helm remains very useful for understanding what has been deployed (easy installation and uninstallation, metadata for all manifests, and saving the current configuration) and integrates very well with Flux. KRO+Flux+Helm is great combo to me.
👍 1
> Have you compared ACK+KRO with Crossplane? I’ve read quite a bit of feedback on Crossplane (and talked to people who’ve deployed it), and my impression is that it’s far too complicated and not integrated enough with Kubernetes. I’m always looking for the "simplest" tools, that combine a few well-chosen concepts that are properly integrated with each other. KRO is just a single CRD for schema creation using the CEL language (which is now built into Kube). The ACK/KRO/Flux/Helm stack integrates well and remains very simple to understand and use to me. In addition, KRO is a SIG Cloud project and is supported by AWS and GCP. I think this is going to become my go-to stack.
👍 1