Skip to content

Commit 345227f

Browse files
patrickleetclaude
andcommitted
feat: simplify crossplane app and rename projects-app to apps
- Remove AppProject (everything uses default project) - Collapse two crossplane apps into one at path crossplane/ - Rename argocd-projects-app to argocd-apps Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent c2b269a commit 345227f

File tree

6 files changed

+31
-129
lines changed

6 files changed

+31
-129
lines changed

examples/test/mocks/observed-resources/eso/steps/3/argocd-projects-app.yaml renamed to examples/test/mocks/observed-resources/eso/steps/3/argocd-apps.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
apiVersion: kubernetes.m.crossplane.io/v1alpha1
22
kind: Object
33
metadata:
4-
name: gitops-argocd-projects-app
4+
name: gitops-argocd-apps
55
annotations:
6-
crossplane.io/composition-resource-name: argocd-projects-app
6+
crossplane.io/composition-resource-name: argocd-apps
77
status:
88
conditions:
99
- type: Ready

examples/test/mocks/observed-resources/standard/steps/2/argocd-projects-app.yaml renamed to examples/test/mocks/observed-resources/standard/steps/2/argocd-apps.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
apiVersion: kubernetes.m.crossplane.io/v1alpha1
22
kind: Object
33
metadata:
4-
name: gitops-argocd-projects-app
4+
name: gitops-argocd-apps
55
annotations:
6-
crossplane.io/composition-resource-name: argocd-projects-app
6+
crossplane.io/composition-resource-name: argocd-apps
77
status:
88
conditions:
99
- type: Ready

functions/render/010-state-status.yaml.gotmpl

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
# ==============================================================================
1111

1212
{{- $checkReady := dict }}
13-
{{- range $key := list "helm-release-argocd" "github-repository" "argocd-projects-app" "crossplane-app-project" "crossplane-configs-app" "crossplane-provider-configs-app" "external-secret-argocd-repo-creds" }}
13+
{{- range $key := list "helm-release-argocd" "github-repository" "argocd-apps" "crossplane-app" "external-secret-argocd-repo-creds" }}
1414
{{- $entry := get $observed $key | default dict }}
1515
{{- $resource := $entry.resource | default dict }}
1616
{{- $status := $resource.status | default dict }}
@@ -44,10 +44,8 @@
4444
"url" $observedRepoUrl
4545
)
4646
"repoCreds" (dict "ready" (get $checkReady "external-secret-argocd-repo-creds"))
47-
"projectsApp" (dict "ready" (get $checkReady "argocd-projects-app"))
48-
"crossplaneProject" (dict "ready" (get $checkReady "crossplane-app-project"))
49-
"crossplaneConfigs" (dict "ready" (get $checkReady "crossplane-configs-app"))
50-
"crossplaneProviderConfigs" (dict "ready" (get $checkReady "crossplane-provider-configs-app"))
47+
"projectsApp" (dict "ready" (get $checkReady "argocd-apps"))
48+
"crossplaneApp" (dict "ready" (get $checkReady "crossplane-app"))
5149
) }}
5250

5351
# ==============================================================================

functions/render/220-argocd-projects-app.yaml.gotmpl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
apiVersion: kubernetes.m.crossplane.io/v1alpha1
2121
kind: Object
2222
metadata:
23-
name: {{ $state.name }}-argocd-projects-app
23+
name: {{ $state.name }}-argocd-apps
2424
annotations:
25-
{{ setResourceNameAnnotation "argocd-projects-app" }}
25+
{{ setResourceNameAnnotation "argocd-apps" }}
2626
labels: {{ $state.labels | toJson }}
2727
spec:
2828
managementPolicies: {{ $state.managementPolicies | toJson }}
@@ -60,7 +60,7 @@ spec:
6060
apiVersion: protection.crossplane.io/v1beta1
6161
kind: Usage
6262
metadata:
63-
name: {{ $state.name }}-delete-projects-app-before-argocd
63+
name: {{ $state.name }}-delete-apps-before-argocd
6464
annotations:
6565
{{ setResourceNameAnnotation "usage-projects-argocd" }}
6666
labels: {{ $state.labels | toJson }}
@@ -75,7 +75,7 @@ spec:
7575
apiVersion: kubernetes.m.crossplane.io/v1alpha1
7676
kind: Object
7777
resourceRef:
78-
name: {{ $state.name }}-argocd-projects-app
78+
name: {{ $state.name }}-argocd-apps
7979
{{- end }}
8080

8181
{{- end }}

functions/render/230-argocd-crossplane-apps.yaml.gotmpl

Lines changed: 9 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# code: language=yaml
22
#
3-
# ArgoCD Crossplane integration: AppProject + Applications for configurations,
4-
# provider-configs, and self-managed resources.
3+
# ArgoCD Crossplane Application — syncs Configuration packages and other
4+
# Crossplane resources from the gitops repo.
55
#
66
# Gated on: crossplane.enabled AND argocd ready
77
#
@@ -16,89 +16,13 @@
1616
{{- end }}
1717

1818
{{- if and $apps.crossplane.enabled $obs.argocd.ready $repoCredsReady }}
19-
20-
---
21-
apiVersion: kubernetes.m.crossplane.io/v1alpha1
22-
kind: Object
23-
metadata:
24-
name: {{ $state.name }}-crossplane-app-project
25-
annotations:
26-
{{ setResourceNameAnnotation "crossplane-app-project" }}
27-
labels: {{ $state.labels | toJson }}
28-
spec:
29-
managementPolicies: {{ $state.managementPolicies | toJson }}
30-
forProvider:
31-
manifest:
32-
apiVersion: argoproj.io/v1alpha1
33-
kind: AppProject
34-
metadata:
35-
name: crossplane
36-
namespace: {{ $state.argocd.namespace }}
37-
annotations:
38-
argocd.argoproj.io/sync-wave: "-1"
39-
finalizers:
40-
- resources-finalizer.argocd.argoproj.io
41-
spec:
42-
description: Crossplane resources
43-
sourceRepos:
44-
- '*'
45-
destinations:
46-
- namespace: '*'
47-
server: https://kubernetes.default.svc
48-
clusterResourceWhitelist:
49-
- group: '*'
50-
kind: '*'
51-
namespaceResourceWhitelist:
52-
- group: '*'
53-
kind: '*'
54-
providerConfigRef:
55-
name: {{ $state.kubernetesProviderConfigRef.name }}
56-
kind: {{ $state.kubernetesProviderConfigRef.kind }}
57-
58-
---
59-
apiVersion: kubernetes.m.crossplane.io/v1alpha1
60-
kind: Object
61-
metadata:
62-
name: {{ $state.name }}-crossplane-configs-app
63-
annotations:
64-
{{ setResourceNameAnnotation "crossplane-configs-app" }}
65-
labels: {{ $state.labels | toJson }}
66-
spec:
67-
managementPolicies: {{ $state.managementPolicies | toJson }}
68-
forProvider:
69-
manifest:
70-
apiVersion: argoproj.io/v1alpha1
71-
kind: Application
72-
metadata:
73-
name: crossplane-configurations
74-
namespace: {{ $state.argocd.namespace }}
75-
annotations:
76-
argocd.argoproj.io/sync-wave: "0"
77-
spec:
78-
project: crossplane
79-
source:
80-
repoURL: {{ $repo.url }}
81-
targetRevision: HEAD
82-
path: resources/crossplane/configurations
83-
destination:
84-
server: https://kubernetes.default.svc
85-
namespace: crossplane-system
86-
syncPolicy:
87-
automated:
88-
selfHeal: true
89-
prune: true
90-
allowEmpty: true
91-
providerConfigRef:
92-
name: {{ $state.kubernetesProviderConfigRef.name }}
93-
kind: {{ $state.kubernetesProviderConfigRef.kind }}
94-
9519
---
9620
apiVersion: kubernetes.m.crossplane.io/v1alpha1
9721
kind: Object
9822
metadata:
99-
name: {{ $state.name }}-crossplane-provider-configs-app
23+
name: {{ $state.name }}-crossplane-app
10024
annotations:
101-
{{ setResourceNameAnnotation "crossplane-provider-configs-app" }}
25+
{{ setResourceNameAnnotation "crossplane-app" }}
10226
labels: {{ $state.labels | toJson }}
10327
spec:
10428
managementPolicies: {{ $state.managementPolicies | toJson }}
@@ -107,16 +31,14 @@ spec:
10731
apiVersion: argoproj.io/v1alpha1
10832
kind: Application
10933
metadata:
110-
name: crossplane-provider-configs
34+
name: crossplane
11135
namespace: {{ $state.argocd.namespace }}
112-
annotations:
113-
argocd.argoproj.io/sync-wave: "1"
11436
spec:
115-
project: crossplane
37+
project: default
11638
source:
11739
repoURL: {{ $repo.url }}
11840
targetRevision: HEAD
119-
path: resources/crossplane/provider-configs
41+
path: crossplane
12042
destination:
12143
server: https://kubernetes.default.svc
12244
namespace: crossplane-system
@@ -125,6 +47,8 @@ spec:
12547
selfHeal: true
12648
prune: true
12749
allowEmpty: true
50+
syncOptions:
51+
- CreateNamespace=true
12852
providerConfigRef:
12953
name: {{ $state.kubernetesProviderConfigRef.name }}
13054
kind: {{ $state.kubernetesProviderConfigRef.kind }}

tests/test-render/main.k

Lines changed: 11 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ _items = [
302302
{
303303
apiVersion = "kubernetes.m.crossplane.io/v1alpha1"
304304
kind = "Object"
305-
metadata.name = "gate-test-argocd-projects-app"
305+
metadata.name = "gate-test-argocd-apps"
306306
spec.forProvider.manifest = {
307307
apiVersion = "argoproj.io/v1alpha1"
308308
kind = "Application"
@@ -316,7 +316,7 @@ _items = [
316316
{
317317
apiVersion = "protection.crossplane.io/v1beta1"
318318
kind = "Usage"
319-
metadata.name = "gate-test-delete-projects-app-before-argocd"
319+
metadata.name = "gate-test-delete-apps-before-argocd"
320320
}
321321
]
322322
}
@@ -345,7 +345,7 @@ _items = [
345345
{
346346
apiVersion = "kubernetes.m.crossplane.io/v1alpha1"
347347
kind = "Object"
348-
metadata.name = "no-xp-argocd-projects-app"
348+
metadata.name = "no-xp-argocd-apps"
349349
}
350350
]
351351
}
@@ -374,33 +374,13 @@ _items = [
374374
{
375375
apiVersion = "kubernetes.m.crossplane.io/v1alpha1"
376376
kind = "Object"
377-
metadata.name = "xp-test-crossplane-app-project"
378-
spec.forProvider.manifest = {
379-
apiVersion = "argoproj.io/v1alpha1"
380-
kind = "AppProject"
381-
metadata.name = "crossplane"
382-
}
383-
}
384-
{
385-
apiVersion = "kubernetes.m.crossplane.io/v1alpha1"
386-
kind = "Object"
387-
metadata.name = "xp-test-crossplane-configs-app"
377+
metadata.name = "xp-test-crossplane-app"
388378
spec.forProvider.manifest = {
389379
apiVersion = "argoproj.io/v1alpha1"
390380
kind = "Application"
391-
metadata.name = "crossplane-configurations"
392-
spec.source.path = "resources/crossplane/configurations"
393-
}
394-
}
395-
{
396-
apiVersion = "kubernetes.m.crossplane.io/v1alpha1"
397-
kind = "Object"
398-
metadata.name = "xp-test-crossplane-provider-configs-app"
399-
spec.forProvider.manifest = {
400-
apiVersion = "argoproj.io/v1alpha1"
401-
kind = "Application"
402-
metadata.name = "crossplane-provider-configs"
403-
spec.source.path = "resources/crossplane/provider-configs"
381+
metadata.name = "crossplane"
382+
spec.project = "default"
383+
spec.source.path = "crossplane"
404384
}
405385
}
406386
]
@@ -514,7 +494,7 @@ _items = [
514494
{
515495
apiVersion = "kubernetes.m.crossplane.io/v1alpha1"
516496
kind = "Object"
517-
metadata.name = "path-test-argocd-projects-app"
497+
metadata.name = "path-test-argocd-apps"
518498
spec.forProvider.manifest.spec.source.path = "deploy/argocd"
519499
}
520500
]
@@ -545,7 +525,7 @@ _items = [
545525
{
546526
apiVersion = "kubernetes.m.crossplane.io/v1alpha1"
547527
kind = "Object"
548-
metadata.name = "no-eso-argocd-projects-app"
528+
metadata.name = "no-eso-argocd-apps"
549529
}
550530
]
551531
}
@@ -692,7 +672,7 @@ _items = [
692672
{
693673
apiVersion = "kubernetes.m.crossplane.io/v1alpha1"
694674
kind = "Object"
695-
metadata.name = "eso-unlock-argocd-projects-app"
675+
metadata.name = "eso-unlock-argocd-apps"
696676
}
697677
{
698678
apiVersion = "protection.crossplane.io/v1beta1"
@@ -702,7 +682,7 @@ _items = [
702682
{
703683
apiVersion = "protection.crossplane.io/v1beta1"
704684
kind = "Usage"
705-
metadata.name = "eso-unlock-delete-projects-app-before-argocd"
685+
metadata.name = "eso-unlock-delete-apps-before-argocd"
706686
}
707687
]
708688
}

0 commit comments

Comments
 (0)