-
Notifications
You must be signed in to change notification settings - Fork 61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add localstack to reference implementation #248
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) <[email protected]>
b30ad0d
to
8c13d5b
Compare
Signed-off-by: Bradon Kanyid (rattboi) <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome to see localstack integrations. Left some comments, please take a look. We should add documentation about this too.
localhost.localstack.cloud:53 { | ||
errors | ||
cache 30 | ||
forward . 10.96.100.10 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Possible to re-write instead of pointing to a static IP?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
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) <[email protected]>
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-helm
added 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.