-
Notifications
You must be signed in to change notification settings - Fork 90
/
Copy pathdata_source_application_test.go
521 lines (480 loc) · 23.4 KB
/
data_source_application_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
package provider
import (
"fmt"
"testing"
"github.com/argoproj-labs/terraform-provider-argocd/internal/features"
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
)
func TestAccArgoCDApplicationDataSource(t *testing.T) {
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t); testAccPreCheckFeatureSupported(t, features.MultipleApplicationSources) },
Steps: []resource.TestStep{
{
ExternalProviders: map[string]resource.ExternalProvider{
"argocd": {
VersionConstraint: "~> 5.0",
Source: "argoproj-labs/argocd",
},
},
Config: `
resource "argocd_project" "foo" {
metadata {
name = "foo"
namespace = "argocd"
}
spec {
description = "project with source namespace"
source_repos = ["*"]
source_namespaces = ["mynamespace-1"]
destination {
server = "https://kubernetes.default.svc"
namespace = "mynamespace-1"
}
}
}
resource "argocd_application" "foo" {
metadata {
name = "foo"
namespace = "mynamespace-1"
labels = {
acceptance = "true"
}
}
spec {
destination {
server = "https://kubernetes.default.svc"
namespace = "mynamespace-1"
}
ignore_difference {
group = "apps"
kind = "Deployment"
jq_path_expressions = [".spec.replicas"]
json_pointers = ["/spec/replicas"]
}
info {
name = "foo"
value = "foo"
}
project = argocd_project.foo.metadata[0].name
revision_history_limit = 1
source {
repo_url = "https://helm.elastic.co"
chart = "elasticsearch"
target_revision = "8.5.1"
helm {
parameter {
name = "replicas"
value = "1"
}
parameter {
name = "minimumMasterNodes"
value = "1"
}
parameter {
name = "persistence.enabled"
value = "false"
}
}
}
source {
repo_url = "https://github.com/argoproj/argocd-example-apps.git"
path = "guestbook"
target_revision = "HEAD"
}
sync_policy {
automated {
allow_empty = true
prune = true
self_heal = true
}
retry {
backoff {
duration = "30s"
factor = "2"
max_duration = "2m"
}
limit = "5"
}
sync_options = ["ApplyOutOfSyncOnly=true"]
}
}
wait = true
}
`,
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("argocd_application.foo", "metadata.0.uid"),
resource.TestCheckResourceAttr("argocd_application.foo", "metadata.0.name", "foo"),
resource.TestCheckResourceAttr("argocd_application.foo", "metadata.0.namespace", "mynamespace-1"),
resource.TestCheckResourceAttrSet("argocd_application.foo", "metadata.0.labels.%"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.destination.0.server", "https://kubernetes.default.svc"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.destination.0.namespace", "mynamespace-1"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.ignore_difference.0.group", "apps"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.ignore_difference.0.kind", "Deployment"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.ignore_difference.0.jq_path_expressions.0", ".spec.replicas"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.ignore_difference.0.json_pointers.0", "/spec/replicas"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.info.0.name", "foo"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.info.0.value", "foo"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.project", "foo"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.revision_history_limit", "1"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.source.0.repo_url", "https://helm.elastic.co"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.source.0.chart", "elasticsearch"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.source.0.target_revision", "8.5.1"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.source.1.repo_url", "https://github.com/argoproj/argocd-example-apps.git"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.source.1.path", "guestbook"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.source.1.target_revision", "HEAD"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.sync_policy.0.automated.0.allow_empty", "true"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.sync_policy.0.automated.0.prune", "true"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.sync_policy.0.automated.0.self_heal", "true"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.sync_policy.0.retry.0.backoff.0.duration", "30s"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.sync_policy.0.retry.0.backoff.0.factor", "2"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.sync_policy.0.retry.0.backoff.0.max_duration", "2m"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.sync_policy.0.retry.0.limit", "5"),
resource.TestCheckResourceAttr("argocd_application.foo", "spec.0.sync_policy.0.sync_options.0", "ApplyOutOfSyncOnly=true"),
),
},
{
ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
Config: `
data "argocd_application" "foo" {
metadata = {
name = "foo"
namespace = "mynamespace-1"
}
}
`,
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("data.argocd_application.foo", "metadata.uid"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "metadata.name", "foo"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "metadata.namespace", "mynamespace-1"),
resource.TestCheckResourceAttrSet("data.argocd_application.foo", "metadata.labels.%"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.destination.server", "https://kubernetes.default.svc"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.destination.namespace", "mynamespace-1"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.ignore_differences.0.group", "apps"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.ignore_differences.0.kind", "Deployment"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.ignore_differences.0.jq_path_expressions.0", ".spec.replicas"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.ignore_differences.0.json_pointers.0", "/spec/replicas"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.info.name", "foo"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.info.value", "foo"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.project", "foo"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.revision_history_limit", "1"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.sources.0.repo_url", "https://helm.elastic.co"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.sources.0.chart", "elasticsearch"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.sources.0.target_revision", "8.5.1"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.sources.1.repo_url", "https://github.com/argoproj/argocd-example-apps.git"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.sources.1.path", "guestbook"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.sources.1.target_revision", "HEAD"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.sync_policy.automated.allow_empty", "true"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.sync_policy.automated.prune", "true"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.sync_policy.automated.self_heal", "true"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.sync_policy.retry.backoff.duration", "30s"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.sync_policy.retry.backoff.factor", "2"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.sync_policy.retry.backoff.max_duration", "2m"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.sync_policy.retry.limit", "5"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "spec.sync_policy.sync_options.0", "ApplyOutOfSyncOnly=true"),
resource.TestCheckResourceAttrSet("data.argocd_application.foo", "status.conditions.%"),
resource.TestCheckResourceAttr("data.argocd_application.foo", "status.health.status", "Healthy"),
resource.TestCheckResourceAttrSet("data.argocd_application.foo", "status.operation_state"),
resource.TestCheckResourceAttrSet("data.argocd_application.foo", "status.reconciled_at"),
resource.TestCheckResourceAttrSet("data.argocd_application.foo", "status.resources.%"),
resource.TestCheckResourceAttrSet("data.argocd_application.foo", "status.summary"),
resource.TestCheckResourceAttrSet("data.argocd_application.foo", "status.sync"),
),
ExpectNonEmptyPlan: true,
PlanOnly: true,
},
},
})
}
func TestAccArgoCDApplicationDataSource_Directory(t *testing.T) {
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Steps: []resource.TestStep{
{
ExternalProviders: map[string]resource.ExternalProvider{
"argocd": {
VersionConstraint: "~> 5.0",
Source: "argoproj-labs/argocd",
},
},
Config: `
resource "argocd_application" "directory" {
metadata {
name = "directory"
namespace = "argocd"
}
spec {
destination {
server = "https://kubernetes.default.svc"
namespace = "directory"
}
source {
repo_url = "https://github.com/solo-io/gloo"
path = "install/helm/gloo"
target_revision = "v1.4.2"
directory {
jsonnet {
ext_var {
name = "somename"
value = "somevalue"
code = false
}
libs = ["vendor", "foo"]
tla {
name = "yetanothername"
value = "yetanothervalue"
code = true
}
}
recurse = false
}
}
}
}
`,
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("argocd_application.directory", "metadata.0.uid"),
resource.TestCheckResourceAttr("argocd_application.directory", "spec.0.source.0.directory.0.jsonnet.0.ext_var.0.name", "somename"),
resource.TestCheckResourceAttr("argocd_application.directory", "spec.0.source.0.directory.0.jsonnet.0.ext_var.0.value", "somevalue"),
resource.TestCheckResourceAttr("argocd_application.directory", "spec.0.source.0.directory.0.jsonnet.0.ext_var.0.code", "false"),
resource.TestCheckResourceAttr("argocd_application.directory", "spec.0.source.0.directory.0.jsonnet.0.libs.0", "vendor"),
resource.TestCheckResourceAttr("argocd_application.directory", "spec.0.source.0.directory.0.jsonnet.0.tla.0.name", "yetanothername"),
resource.TestCheckResourceAttr("argocd_application.directory", "spec.0.source.0.directory.0.jsonnet.0.tla.0.value", "yetanothervalue"),
resource.TestCheckResourceAttr("argocd_application.directory", "spec.0.source.0.directory.0.jsonnet.0.tla.0.code", "true"),
resource.TestCheckResourceAttr("argocd_application.directory", "spec.0.source.0.directory.0.recurse", "false"),
),
},
{
ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
Config: `
data "argocd_application" "directory" {
metadata = {
name = "directory"
}
}
`,
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("data.argocd_application.directory", "metadata.uid"),
resource.TestCheckResourceAttr("data.argocd_application.directory", "spec.sources.0.directory.jsonnet.0.name", "image.tag"),
resource.TestCheckResourceAttr("data.argocd_application.directory", "spec.sources.0.directory.jsonnet.ext_vars.0.name", "somename"),
resource.TestCheckResourceAttr("data.argocd_application.directory", "spec.sources.0.directory.jsonnet.ext_vars.0.value", "somevalue"),
resource.TestCheckResourceAttr("data.argocd_application.directory", "spec.sources.0.directory.jsonnet.ext_vars.0.code", "false"),
resource.TestCheckResourceAttr("data.argocd_application.directory", "spec.sources.0.directory.jsonnet.libs.0", "vendor"),
resource.TestCheckResourceAttr("data.argocd_application.directory", "spec.sources.0.directory.jsonnet.tlas.0.name", "yetanothername"),
resource.TestCheckResourceAttr("data.argocd_application.directory", "spec.sources.0.directory.jsonnet.tlas.0.value", "yetanothervalue"),
resource.TestCheckResourceAttr("data.argocd_application.directory", "spec.sources.0.directory.jsonnet.tlas.0.code", "true"),
resource.TestCheckResourceAttr("data.argocd_application.directory", "spec.sources.0.directory.recurse", "false"),
),
ExpectNonEmptyPlan: true,
PlanOnly: true,
},
},
})
}
func TestAccArgoCDApplicationDataSource_Helm(t *testing.T) {
helmValues := `
ingress:
enabled: true
path: /
hosts:
- mydomain.example.com
annotations:
kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: "true"
labels: {}
tls:
- secretName: mydomain-tls
hosts:
- mydomain.example.com
`
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Steps: []resource.TestStep{
{
ExternalProviders: map[string]resource.ExternalProvider{
"argocd": {
VersionConstraint: "~> 5.0",
Source: "argoproj-labs/argocd",
},
},
Config: fmt.Sprintf(`
resource "argocd_application" "helm" {
metadata {
name = "helm"
namespace = "argocd"
}
spec {
destination {
server = "https://kubernetes.default.svc"
namespace = "helm"
}
source {
repo_url = "https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami"
chart = "redis"
target_revision = "16.9.11"
helm {
ignore_missing_value_files = true
# file_parameter {
# name = "foo"
# path = "values.yaml"
# }
parameter {
force_string = true
name = "image.tag"
value = "6.2.5"
}
pass_credentials = true
release_name = "testing"
skip_crds = true
value_files = ["values.yaml"]
values = <<EOT
%s
EOT
}
}
}
}
`, helmValues),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("argocd_application.helm", "metadata.0.uid"),
resource.TestCheckResourceAttr("argocd_application.helm", "metadata.0.name", "helm"),
resource.TestCheckResourceAttr("argocd_application.helm", "metadata.0.namespace", "argocd"),
resource.TestCheckResourceAttr("argocd_application.helm", "spec.0.destination.0.server", "https://kubernetes.default.svc"),
resource.TestCheckResourceAttr("argocd_application.helm", "spec.0.destination.0.namespace", "helm"),
resource.TestCheckResourceAttr("argocd_application.helm", "spec.0.source.0.repo_url", "https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami"),
resource.TestCheckResourceAttr("argocd_application.helm", "spec.0.source.0.chart", "redis"),
resource.TestCheckResourceAttr("argocd_application.helm", "spec.0.source.0.target_revision", "16.9.11"),
resource.TestCheckResourceAttr("argocd_application.helm", "spec.0.source.0.helm.0.ignore_missing_value_files", "true"),
resource.TestCheckResourceAttr("argocd_application.helm", "spec.0.source.0.helm.0.parameter.0.force_string", "true"),
resource.TestCheckResourceAttr("argocd_application.helm", "spec.0.source.0.helm.0.parameter.0.name", "image.tag"),
resource.TestCheckResourceAttr("argocd_application.helm", "spec.0.source.0.helm.0.parameter.0.value", "6.2.5"),
resource.TestCheckResourceAttr("argocd_application.helm", "spec.0.source.0.helm.0.pass_credentials", "true"),
resource.TestCheckResourceAttr("argocd_application.helm", "spec.0.source.0.helm.0.release_name", "testing"),
resource.TestCheckResourceAttr("argocd_application.helm", "spec.0.source.0.helm.0.skip_crds", "true"),
resource.TestCheckResourceAttr("argocd_application.helm", "spec.0.source.0.helm.0.value_files.0", "values.yaml"),
resource.TestCheckResourceAttr("argocd_application.helm", "spec.0.source.0.helm.0.values", helmValues+"\n"),
),
},
{
ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
Config: `
data "argocd_application" "helm" {
metadata = {
name = "helm"
}
}
`,
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("data.argocd_application.helm", "metadata.uid"),
resource.TestCheckResourceAttr("data.argocd_application.helm", "metadata.name", "helm"),
resource.TestCheckResourceAttr("data.argocd_application.helm", "metadata.namespace", "argocd"),
resource.TestCheckResourceAttr("data.argocd_application.helm", "spec.destination.server", "https://kubernetes.default.svc"),
resource.TestCheckResourceAttr("data.argocd_application.helm", "spec.destination.namespace", "helm"),
resource.TestCheckResourceAttr("data.argocd_application.helm", "spec.sources.0.repo_url", "https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami"),
resource.TestCheckResourceAttr("data.argocd_application.helm", "spec.sources.0.chart", "redis"),
resource.TestCheckResourceAttr("data.argocd_application.helm", "spec.sources.0.target_revision", "16.9.11"),
resource.TestCheckResourceAttr("data.argocd_application.helm", "spec.sources.0.helm.ignore_missing_value_files", "true"),
resource.TestCheckResourceAttr("data.argocd_application.helm", "spec.sources.0.helm.parameters.0.force_string", "true"),
resource.TestCheckResourceAttr("data.argocd_application.helm", "spec.sources.0.helm.parameters.0.name", "image.tag"),
resource.TestCheckResourceAttr("data.argocd_application.helm", "spec.sources.0.helm.parameters.0.value", "6.2.5"),
resource.TestCheckResourceAttr("data.argocd_application.helm", "spec.sources.0.helm.pass_credentials", "true"),
resource.TestCheckResourceAttr("data.argocd_application.helm", "spec.sources.0.helm.release_name", "testing"),
resource.TestCheckResourceAttr("data.argocd_application.helm", "spec.sources.0.helm.skip_crds", "true"),
resource.TestCheckResourceAttr("data.argocd_application.helm", "spec.sources.0.helm.value_files.0", "values.yaml"),
resource.TestCheckResourceAttr("data.argocd_application.helm", "spec.sources.0.helm.values", helmValues+"\n"),
),
ExpectNonEmptyPlan: true,
PlanOnly: true,
},
},
})
}
func TestAccArgoCDApplicationDataSource_Kustomize(t *testing.T) {
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Steps: []resource.TestStep{
{
ExternalProviders: map[string]resource.ExternalProvider{
"argocd": {
VersionConstraint: "~> 5.0",
Source: "argoproj-labs/argocd",
},
},
Config: `
resource "argocd_application" "kustomize" {
metadata {
name = "kustomize"
namespace = "argocd"
}
spec {
destination {
server = "https://kubernetes.default.svc"
namespace = "kustomize"
}
source {
repo_url = "https://github.com/kubernetes-sigs/kustomize"
path = "examples/helloWorld"
target_revision = "release-kustomize-v3.7"
kustomize {
common_annotations = {
"this.is.a.common" = "anno-tation"
}
common_labels = {
"another.io/one" = "true"
}
images = ["hashicorp/terraform:light"]
name_prefix = "foo-"
name_suffix = "-bar"
# version = "v4.5.7"
}
}
}
}
`,
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("argocd_application.kustomize", "metadata.0.uid"),
resource.TestCheckResourceAttr("argocd_application.kustomize", "metadata.0.name", "kustomize"),
resource.TestCheckResourceAttr("argocd_application.kustomize", "metadata.0.namespace", "argocd"),
resource.TestCheckResourceAttr("argocd_application.kustomize", "spec.0.destination.0.server", "https://kubernetes.default.svc"),
resource.TestCheckResourceAttr("argocd_application.kustomize", "spec.0.destination.0.namespace", "kustomize"),
resource.TestCheckResourceAttr("argocd_application.kustomize", "spec.0.source.0.repo_url", "https://github.com/kubernetes-sigs/kustomize"),
resource.TestCheckResourceAttr("argocd_application.kustomize", "spec.0.source.0.path", "examples/helloWorld"),
resource.TestCheckResourceAttr("argocd_application.kustomize", "spec.0.source.0.target_revision", "release-kustomize-v3.7"),
resource.TestCheckResourceAttrSet("argocd_application.kustomize", "spec.0.source.0.kustomize.0.common_annotations.%"),
resource.TestCheckResourceAttrSet("argocd_application.kustomize", "spec.0.source.0.kustomize.0.common_labels.%"),
resource.TestCheckResourceAttr("argocd_application.kustomize", "spec.0.source.0.kustomize.0.images.0", "hashicorp/terraform:light"),
resource.TestCheckResourceAttr("argocd_application.kustomize", "spec.0.source.0.kustomize.0.name_prefix", "foo-"),
resource.TestCheckResourceAttr("argocd_application.kustomize", "spec.0.source.0.kustomize.0.name_suffix", "-bar"),
// resource.TestCheckResourceAttr("argocd_application.kustomize", "spec.0.source.0.kustomize.0.version", "v4.5.7"),
),
},
{
ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
Config: `
data "argocd_application" "kustomize" {
metadata = {
name = "kustomize"
}
}
`,
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("data.argocd_application.kustomize", "metadata.uid"),
resource.TestCheckResourceAttr("data.argocd_application.kustomize", "metadata.name", "kustomize"),
resource.TestCheckResourceAttr("data.argocd_application.kustomize", "metadata.namespace", "argocd"),
resource.TestCheckResourceAttr("data.argocd_application.kustomize", "spec.destination.server", "https://kubernetes.default.svc"),
resource.TestCheckResourceAttr("data.argocd_application.kustomize", "spec.destination.namespace", "kustomize"),
resource.TestCheckResourceAttr("data.argocd_application.kustomize", "spec.sources.0.repo_url", "https://github.com/kubernetes-sigs/kustomize"),
resource.TestCheckResourceAttr("data.argocd_application.kustomize", "spec.sources.0.path", "examples/helloWorld"),
resource.TestCheckResourceAttr("data.argocd_application.kustomize", "spec.sources.0.target_revision", "release-kustomize-v3.7"),
resource.TestCheckResourceAttrSet("argocd_application.kustomize", "spec.0.source.0.kustomize.common_annotations.%"),
resource.TestCheckResourceAttrSet("argocd_application.kustomize", "spec.0.source.0.kustomize.common_labels.%"),
resource.TestCheckResourceAttr("argocd_application.kustomize", "spec.0.source.0.kustomize.images.0", "hashicorp/terraform:light"),
resource.TestCheckResourceAttr("argocd_application.kustomize", "spec.0.source.0.kustomize.name_prefix", "foo-"),
resource.TestCheckResourceAttr("argocd_application.kustomize", "spec.0.source.0.kustomize.name_suffix", "-bar"),
// resource.TestCheckResourceAttr("argocd_application.kustomize", "spec.0.source.0.kustomize.version", "v4.5.7"),
),
ExpectNonEmptyPlan: true,
PlanOnly: true,
},
},
})
}