Skip to content

Commit 906350b

Browse files
committed
feat(argocd-understack): refactor deployment directory layout
This introduces three new understackctl deploy subcommands to streamline deployment repository management. The deploy init command creates a cluster directory with a deploy.yaml configuration file that follows the ArgoCD Helm chart values structure, where each component has an individual enabled flag. Component names use underscores in the YAML to match Helm conventions. The deploy update command syncs the filesystem by creating manifests directories for enabled components and removing directories for disabled ones, automatically generating kustomization.yaml and values.yaml files in each component directory. The deploy check command validates that all required files exist for enabled components. These commands replace the manual directory creation and gitops-deploy.sh script workflow previously documented. The ArgoCD chart templates are updated to look for Helm values at manifests/component/values.yaml instead of helm-configs/component.yaml, consolidating all component configuration into a single manifests directory structure. This allows Kustomize resources and Helm values to coexist in the same component directory, simplifying the deployment repository layout. Documentation is updated throughout the deploy guide to use the new understackctl commands instead of manual mkdir and file creation steps. The gitops-deploy.sh script is deprecated with a notice directing users to the new CLI commands. A GitHub Actions workflow is added to run Go tests for all Go projects in the repository, ensuring the new deploy commands remain tested in CI.
1 parent 0682838 commit 906350b

66 files changed

Lines changed: 1437 additions & 295 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/go-test.yaml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Go Tests
2+
on:
3+
push:
4+
branches:
5+
- main
6+
paths:
7+
- "go/**"
8+
- .github/workflows/go-test.yaml
9+
pull_request:
10+
paths:
11+
- "go/**"
12+
- .github/workflows/go-test.yaml
13+
workflow_dispatch:
14+
merge_group:
15+
types: [checks_requested]
16+
paths:
17+
- "go/**"
18+
- .github/workflows/go-test.yaml
19+
20+
permissions:
21+
contents: read
22+
23+
jobs:
24+
setup:
25+
runs-on: ubuntu-latest
26+
steps:
27+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
28+
29+
- name: List Applications
30+
id: list_dirs
31+
run: |
32+
apps=$(ls -d go/* | xargs -n1 basename | jq -R -s -c 'split("\n")[:-1]')
33+
echo "apps=${apps}"
34+
# TODO: dexop does not pass tests
35+
#echo "apps=%s" "${app_array}" >> "$GITHUB_OUTPUT"
36+
echo "apps=[\"understackctl\"]" >> "$GITHUB_OUTPUT"
37+
shell: bash
38+
outputs:
39+
apps: ${{ steps.list_dirs.outputs.apps }}
40+
41+
test:
42+
runs-on: ubuntu-latest
43+
needs: setup
44+
strategy:
45+
matrix:
46+
app: ${{ fromJson(needs.setup.outputs.apps) }}
47+
steps:
48+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
49+
50+
- uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6
51+
with:
52+
go-version-file: go/${{ matrix.app }}/go.mod
53+
54+
- name: Test ${{ matrix.app }}
55+
working-directory: go/${{ matrix.app }}
56+
run: go test -v ./...

charts/argocd-understack/templates/_helpers.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ Examples:
108108
deploy_path_prefix: "us/east" -> "us/east/uc-iad3-prod"
109109
110110
Usage in valueFiles:
111-
- $deploy/{{ include "understack.deploy_path" $ }}/helm-configs/dex.yaml
111+
- $deploy/{{ include "understack.deploy_path" $ }}/manifests/dex/values.yaml
112112
113113
Usage in source path:
114114
path: {{ include "understack.deploy_path" $ }}/manifests/dex

charts/argocd-understack/templates/application-argo-events-workflows.yaml.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ spec:
1616
ref: understack
1717
repoURL: {{ include "understack.understack_url" $ }}
1818
targetRevision: {{ include "understack.understack_ref" $ }}
19-
- path: {{ include "understack.deploy_path" $ }}/manifests/argo-events-workflows
19+
- path: {{ include "understack.deploy_path" $ }}/argo-events-workflows
2020
ref: deploy
2121
repoURL: {{ include "understack.deploy_url" $ }}
2222
targetRevision: {{ include "understack.deploy_ref" $ }}

charts/argocd-understack/templates/application-argo-events.yaml.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ spec:
1515
ref: understack
1616
repoURL: {{ include "understack.understack_url" $ }}
1717
targetRevision: {{ include "understack.understack_ref" $ }}
18-
- path: {{ include "understack.deploy_path" $ }}/manifests/argo-events
18+
- path: {{ include "understack.deploy_path" $ }}/argo-events
1919
ref: deploy
2020
repoURL: {{ include "understack.deploy_url" $ }}
2121
targetRevision: {{ include "understack.deploy_ref" $ }}

charts/argocd-understack/templates/application-argo-workflows.yaml.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ spec:
1212
server: {{ $.Values.cluster_server }}
1313
project: understack
1414
sources:
15-
- path: {{ include "understack.deploy_path" $ }}/manifests/argo-workflows
15+
- path: {{ include "understack.deploy_path" $ }}/argo-workflows
1616
ref: deploy
1717
repoURL: {{ include "understack.deploy_url" $ }}
1818
targetRevision: {{ include "understack.deploy_ref" $ }}

charts/argocd-understack/templates/application-cilium.yaml.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ spec:
1212
server: {{ $.Values.cluster_server }}
1313
project: understack-infra
1414
sources:
15-
- path: {{ include "understack.deploy_path" $ }}/manifests/cilium
15+
- path: {{ include "understack.deploy_path" $ }}/cilium
1616
ref: deploy
1717
repoURL: {{ include "understack.deploy_url" $ }}
1818
targetRevision: {{ include "understack.deploy_ref" $ }}

charts/argocd-understack/templates/application-dex.yaml.tpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ spec:
1818
releaseName: dex
1919
valueFiles:
2020
- $understack/components/dex/values.yaml
21-
- $deploy/{{ include "understack.deploy_path" $ }}/helm-configs/dex.yaml
21+
- $deploy/{{ include "understack.deploy_path" $ }}/dex/values.yaml
2222
repoURL: https://charts.dexidp.io
2323
targetRevision: 0.16.0
2424
- path: components/dex
2525
ref: understack
2626
repoURL: {{ include "understack.understack_url" $ }}
2727
targetRevision: {{ include "understack.understack_ref" $ }}
28-
- path: {{ include "understack.deploy_path" $ }}/manifests/dex
28+
- path: {{ include "understack.deploy_path" $ }}/dex
2929
ref: deploy
3030
repoURL: {{ include "understack.deploy_url" $ }}
3131
targetRevision: {{ include "understack.deploy_ref" $ }}

charts/argocd-understack/templates/application-envoy-configs.yaml.tpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ spec:
1717
ignoreMissingValueFiles: true
1818
valueFiles:
1919
- $understack/components/envoy-configs/values.yaml
20-
- $deploy/{{ include "understack.deploy_path" $ }}/helm-configs/envoy-configs.yaml
20+
- $deploy/{{ include "understack.deploy_path" $ }}/envoy-configs/values.yaml
2121
ref: understack
2222
repoURL: {{ include "understack.understack_url" $ }}
2323
targetRevision: {{ include "understack.understack_ref" $ }}
24-
- path: {{ include "understack.deploy_path" $ }}/manifests/envoy-configs
24+
- path: {{ include "understack.deploy_path" $ }}/envoy-configs
2525
ref: deploy
2626
repoURL: {{ include "understack.deploy_url" $ }}
2727
targetRevision: {{ include "understack.deploy_ref" $ }}

charts/argocd-understack/templates/application-envoy-gateway.yaml.tpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ spec:
1818
releaseName: gateway-helm
1919
valueFiles:
2020
- $understack/components/envoy-gateway/values.yaml
21-
- $deploy/{{ include "understack.deploy_path" $ }}/helm-configs/envoy-gateway.yaml
21+
- $deploy/{{ include "understack.deploy_path" $ }}/envoy-gateway/values.yaml
2222
repoURL: docker.io/envoyproxy
2323
targetRevision: v1.6.0
2424
- path: components/envoy-gateway
2525
ref: understack
2626
repoURL: {{ include "understack.understack_url" $ }}
2727
targetRevision: {{ include "understack.understack_ref" $ }}
28-
- path: {{ include "understack.deploy_path" $ }}/manifests/envoy-gateway
28+
- path: {{ include "understack.deploy_path" $ }}/envoy-gateway
2929
ref: deploy
3030
repoURL: {{ include "understack.deploy_url" $ }}
3131
targetRevision: {{ include "understack.deploy_ref" $ }}

charts/argocd-understack/templates/application-etcdbackup.yaml.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ spec:
1616
ignoreMissingValueFiles: true
1717
valueFiles:
1818
- $understack/components/etcdbackup/values.yaml
19-
- $deploy/{{ include "understack.deploy_path" $ }}/helm-configs/etcdbackup.yaml
19+
- $deploy/{{ include "understack.deploy_path" $ }}/etcdbackup/values.yaml
2020
path: components/etcdbackup
2121
ref: understack
2222
repoURL: {{ include "understack.understack_url" $ }}

0 commit comments

Comments
 (0)