Add localstack to reference implementation#248
Conversation
This adds localstack, which involves the following: 1) Install localstack as argo application This needs patching as the helm chart doesn't expose enough to access DNS port. I used kustomize + helmCharts directive in order to do a service patch. That required... 2) --enable-helm added to argocd, via configmap. 3) Delegation of localstack DNS to the localstack service, via Coredns Corefile 4) Add a new Crossplane ProviderConfig for localstack This should all be non-breaking changes One further enhancement I'll be working on is making the providerconfig selectable in the backstage template, so that a user can select between targetting localstack or aws proper when generating their app + bucket. Signed-off-by: Bradon Kanyid (rattboi) <rattboi@gmail.com>
b30ad0d to
8c13d5b
Compare
Signed-off-by: Bradon Kanyid (rattboi) <rattboi@gmail.com>
| localhost.localstack.cloud:53 { | ||
| errors | ||
| cache 30 | ||
| forward . 10.96.100.10 |
There was a problem hiding this comment.
Possible to re-write instead of pointing to a static IP?
There was a problem hiding this comment.
see:
Note:
CoreDNS does not support FQDNs for stub-domains and nameservers (eg: "ns.foo.com"). During translation, all FQDN nameservers will be omitted from the CoreDNS config.
I'd rather point at the service, but that's apparently not an option, which is why I went the ClusterIP route.
There was a problem hiding this comment.
This file is generated. Changes should be made to https://github.com/cnoe-io/idpbuilder/blob/main/hack/argo-cd/argocd-cm.yaml
Then run make build or make embedded-resources
Updated scripts to use more-portable `/usr/bin/env bash`. Was necessary to run the scripts from nixos (no /bin/bash). Signed-off-by: Bradon Kanyid (rattboi) <rattboi@gmail.com>
|
Changes seems ok but I'm not too familiar with localstack. @csantanapr do you wanna take a look? |
|
FYI, I also just opened a PR with localstack to properly expose their DNS service to the kubernetes service. If this is merged any time soon, I would be able to just reference the new helm chart + values object to drive it, instead of kustomize + helmCharts directive. That would mean not needing to add the |
|
thanks @rattboi for the great work. As discussed during the community call, I would love to see whether and how much of it we can pull out into a separate add-on custom package that can go hand in hand with the reference implementation rather than baking it into the ref-impl. Similar to how we have done it with the terraform-integration. Let me know if you can find some cycles to experiment with it and I will try to do it on my end too, hopefully before the next community meeting. |
|
It would be easy enough to do, but you would lose certain integration potentials.
A lot of this goes back to what @greghaynes was saying about finding good interfaces to make these pieces composable. As it is today, I could make this not a part of ref-impl and instead a separate custom package, but it will mean a less-good solution. Perhaps that will spur us to develop the interfaces needed. I'm not sure. |
|
yeah, thanks for highlighting the parts with a tight integration. Let me think through those a bit and we can discuss how to proceed here. |
|
I think the cross-cutting composable integrations aren't likely to be solved in my PR, so I will move the It does mean no dropdown in the backstage template, but I can just remark about that in a readme in the custom package root. |
|
I think we can leave Creating a separate custom package sounds good for now. I think I might have a pathway to be able to pull in the config changes for the dns stuff in as well, but will have to try out a few things and I can add those to your changes as I experiment here. Modifying backstage templates will remain as an outstanding item for now though. |
|
closing this since #257 got merged in place of this. |
This adds localstack, which involves the following:
This needs patching as the helm chart doesn't expose enough to access
DNS port. I used kustomize + helmCharts directive in order to do a
service patch. That required...
--enable-helmadded to argocd, via configmap.Corefile
This should all be non-breaking changes
One further enhancement I'll be working on is making the providerconfig selectable in the backstage template, so that a user can select between targetting localstack or aws proper when generating their app + bucket.