department-of-veterans-affairs / va.gov-team

Public resources for building on and in support of VA.gov. Visit complete Knowledge Hub:
https://depo-platform-documentation.scrollhelp.site/index.html
283 stars 203 forks source link

Hey y’all, I have some questions about how to get started wi... #96083

Open platform-support-slack-integration[bot] opened 2 days ago

platform-support-slack-integration[bot] commented 2 days ago

Submitted By: louis Topic: App Setup Team: Tier 1 Support

Hey y’all, I have some questions about how to get started with infra development for a new application. I’m working on building out some of the foundation for EventBus Gateway (which has already been set up in Argo CD).

Some context: I’ve already reviewed the repos for vsp-infra-application-manifests and vsp-infra-argocd, and I have a rough idea of how everything works. In terms of development and deployment workflow, I imagine that EventBus Gateway will function pretty similarly to Vets API, where a commit made to main in the eventbus-gateway repository will kick off a GH Actions workflow to build an image, push it to ECR, tag the pushed image, and then commit the new image tag to the manifests repo so that Argo CD can auto-sync and deploy it (although we might prefer the sync to be manual for an environment like production).

With that in mind, questions:

  1. First things first, is there documentation y’all can point me to? I looked through the platform docs and saw some links to Confluence in the repos, so I requested access under my VA email address (louis.fettet@va.gov), but I’m awaiting approval on that.
  2. It doesn’t seem like I can point the eventbus-gateway-dev application in Argo CD to anything other than HEAD due to how the app-of-apps is set up; I was hoping to work on a development branch where I could throw spaghetti at the wall until I had something a bit more solid (and I’d rather not commit to main or create a PR for every change I want to try). Are there any workarounds for this?
  3. For the application infra, I don’t expect that the templates will differ all that much between environments (this might be a wrong assumption in the long-run, but I’d like to start as DRY as possible). I was hoping I could set up a single chart with environment values files rather than duplicating charts and templates across different directories, e.g. have values.yaml include all defaults and then separate environment yaml files to selectively override those defaults, via a command like helm install ./apps/eventbus-gateway -f values.yaml -f dev.yaml. It doesn’t seem like this is currently feasible since the path is hard-coded to look at an environment directory and there's no way to provide additional values files. Unless there’s something I can do to override this behavior? (I suppose this is a similar question to the above, since in both cases I’d like to edit the Argo CD application config).
platform-support-slack-integration[bot] commented 2 days ago

Slack Thread Link: https://dsva.slack.com/archives/CBU0KDSB1/p1730230446521219