@three14/pulumi-argocd 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +80 -0
  3. package/accountToken.d.ts +127 -0
  4. package/accountToken.js +82 -0
  5. package/accountToken.js.map +1 -0
  6. package/application.d.ts +267 -0
  7. package/application.js +226 -0
  8. package/application.js.map +1 -0
  9. package/applicationSet.d.ts +528 -0
  10. package/applicationSet.js +523 -0
  11. package/applicationSet.js.map +1 -0
  12. package/cluster.d.ts +258 -0
  13. package/cluster.js +194 -0
  14. package/cluster.js.map +1 -0
  15. package/config/index.d.ts +1 -0
  16. package/config/index.js +21 -0
  17. package/config/index.js.map +1 -0
  18. package/config/vars.d.ts +95 -0
  19. package/config/vars.js +127 -0
  20. package/config/vars.js.map +1 -0
  21. package/index.d.ts +33 -0
  22. package/index.js +78 -0
  23. package/index.js.map +1 -0
  24. package/package.json +28 -0
  25. package/project.d.ts +198 -0
  26. package/project.js +193 -0
  27. package/project.js.map +1 -0
  28. package/projectToken.d.ts +150 -0
  29. package/projectToken.js +91 -0
  30. package/projectToken.js.map +1 -0
  31. package/provider.d.ts +174 -0
  32. package/provider.js +66 -0
  33. package/provider.js.map +1 -0
  34. package/repository.d.ts +291 -0
  35. package/repository.js +135 -0
  36. package/repository.js.map +1 -0
  37. package/repositoryCertificate.d.ts +84 -0
  38. package/repositoryCertificate.js +73 -0
  39. package/repositoryCertificate.js.map +1 -0
  40. package/repositoryCredentials.d.ts +207 -0
  41. package/repositoryCredentials.js +113 -0
  42. package/repositoryCredentials.js.map +1 -0
  43. package/types/index.d.ts +3 -0
  44. package/types/index.js +11 -0
  45. package/types/index.js.map +1 -0
  46. package/types/input.d.ts +28046 -0
  47. package/types/input.js +5 -0
  48. package/types/input.js.map +1 -0
  49. package/types/output.d.ts +28045 -0
  50. package/types/output.js +5 -0
  51. package/types/output.js.map +1 -0
  52. package/utilities.d.ts +8 -0
  53. package/utilities.js +101 -0
  54. package/utilities.js.map +1 -0
@@ -0,0 +1,528 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as inputs from "./types/input";
3
+ import * as outputs from "./types/output";
4
+ /**
5
+ * Manages [application sets](https://argo-cd.readthedocs.io/en/stable/user-guide/application-set/) within ArgoCD.
6
+ *
7
+ * ## Example Usage
8
+ *
9
+ * ```typescript
10
+ * import * as pulumi from "@pulumi/pulumi";
11
+ * import * as argocd from "@three14/pulumi-argocd";
12
+ *
13
+ * // Clusters Generator
14
+ * const clustersSelector = new argocd.ApplicationSet("clusters_selector", {
15
+ * metadata: {
16
+ * name: "clusters-selector",
17
+ * },
18
+ * spec: {
19
+ * generators: [{
20
+ * clusters: [{
21
+ * selector: {
22
+ * matchLabels: {
23
+ * "argocd.argoproj.io/secret-type": "cluster",
24
+ * },
25
+ * },
26
+ * }],
27
+ * }],
28
+ * template: {
29
+ * metadata: {
30
+ * name: "{{name}}-clusters-selector",
31
+ * },
32
+ * spec: {
33
+ * sources: [{
34
+ * repoUrl: "https://github.com/argoproj/argocd-example-apps/",
35
+ * targetRevision: "HEAD",
36
+ * path: "guestbook",
37
+ * }],
38
+ * destination: {
39
+ * server: "{{server}}",
40
+ * namespace: "default",
41
+ * },
42
+ * },
43
+ * },
44
+ * },
45
+ * });
46
+ * // Cluster Decision Resource Generator
47
+ * const clusterDecisionResource = new argocd.ApplicationSet("cluster_decision_resource", {
48
+ * metadata: {
49
+ * name: "cluster-decision-resource",
50
+ * },
51
+ * spec: {
52
+ * generators: [{
53
+ * clusterDecisionResources: [{
54
+ * configMapRef: "my-configmap",
55
+ * name: "quak",
56
+ * }],
57
+ * }],
58
+ * template: {
59
+ * metadata: {
60
+ * name: "{{name}}-guestbook",
61
+ * },
62
+ * spec: {
63
+ * sources: [{
64
+ * repoUrl: "https://github.com/argoproj/argocd-example-apps/",
65
+ * targetRevision: "HEAD",
66
+ * path: "guestbook",
67
+ * }],
68
+ * destination: {
69
+ * server: "{{server}}",
70
+ * namespace: "default",
71
+ * },
72
+ * },
73
+ * },
74
+ * },
75
+ * });
76
+ * // Git Generator - Directories
77
+ * const gitDirectories = new argocd.ApplicationSet("git_directories", {
78
+ * metadata: {
79
+ * name: "git-directories",
80
+ * },
81
+ * spec: {
82
+ * generators: [{
83
+ * gits: [{
84
+ * repoUrl: "https://github.com/argoproj/argo-cd.git",
85
+ * revision: "HEAD",
86
+ * directories: [
87
+ * {
88
+ * path: "applicationset/examples/git-generator-directory/cluster-addons/*",
89
+ * },
90
+ * {
91
+ * path: "applicationset/examples/git-generator-directory/excludes/cluster-addons/exclude-helm-guestbook",
92
+ * exclude: true,
93
+ * },
94
+ * ],
95
+ * }],
96
+ * }],
97
+ * template: {
98
+ * metadata: {
99
+ * name: "{{path.basename}}-git-directories",
100
+ * },
101
+ * spec: {
102
+ * sources: [{
103
+ * repoUrl: "https://github.com/argoproj/argo-cd.git",
104
+ * targetRevision: "HEAD",
105
+ * path: "{{path}}",
106
+ * }],
107
+ * destination: {
108
+ * server: "https://kubernetes.default.svc",
109
+ * namespace: "{{path.basename}}",
110
+ * },
111
+ * },
112
+ * },
113
+ * },
114
+ * });
115
+ * // Git Generator - Files
116
+ * const gitFiles = new argocd.ApplicationSet("git_files", {
117
+ * metadata: {
118
+ * name: "git-files",
119
+ * },
120
+ * spec: {
121
+ * generators: [{
122
+ * gits: [{
123
+ * repoUrl: "https://github.com/argoproj/argo-cd.git",
124
+ * revision: "HEAD",
125
+ * files: [{
126
+ * path: "applicationset/examples/git-generator-files-discovery/cluster-config/**/config.json",
127
+ * }],
128
+ * }],
129
+ * }],
130
+ * template: {
131
+ * metadata: {
132
+ * name: "{{cluster.name}}-git-files",
133
+ * },
134
+ * spec: {
135
+ * sources: [{
136
+ * repoUrl: "https://github.com/argoproj/argo-cd.git",
137
+ * targetRevision: "HEAD",
138
+ * path: "applicationset/examples/git-generator-files-discovery/apps/guestbook",
139
+ * }],
140
+ * destination: {
141
+ * server: "{{cluster.address}}",
142
+ * namespace: "guestbook",
143
+ * },
144
+ * },
145
+ * },
146
+ * },
147
+ * });
148
+ * // List Generator
149
+ * const list = new argocd.ApplicationSet("list", {
150
+ * metadata: {
151
+ * name: "list",
152
+ * },
153
+ * spec: {
154
+ * generators: [{
155
+ * lists: [{
156
+ * elements: [
157
+ * {
158
+ * cluster: "engineering-dev",
159
+ * url: "https://kubernetes.default.svc",
160
+ * },
161
+ * {
162
+ * cluster: "engineering-prod",
163
+ * url: "https://kubernetes.default.svc",
164
+ * foo: "bar",
165
+ * },
166
+ * ],
167
+ * }],
168
+ * }],
169
+ * template: {
170
+ * metadata: {
171
+ * name: "{{cluster}}-guestbook",
172
+ * },
173
+ * spec: {
174
+ * project: "my-project",
175
+ * sources: [{
176
+ * repoUrl: "https://github.com/argoproj/argo-cd.git",
177
+ * targetRevision: "HEAD",
178
+ * path: "applicationset/examples/list-generator/guestbook/{{cluster}}",
179
+ * }],
180
+ * destination: {
181
+ * server: "{{url}}",
182
+ * namespace: "guestbook",
183
+ * },
184
+ * },
185
+ * },
186
+ * },
187
+ * });
188
+ * // Matrix Generator
189
+ * const matrix = new argocd.ApplicationSet("matrix", {
190
+ * metadata: {
191
+ * name: "matrix",
192
+ * },
193
+ * spec: {
194
+ * generators: [{
195
+ * matrices: [{
196
+ * generators: [
197
+ * {
198
+ * gits: [{
199
+ * repoUrl: "https://github.com/argoproj/argo-cd.git",
200
+ * revision: "HEAD",
201
+ * directories: [{
202
+ * path: "applicationset/examples/matrix/cluster-addons/*",
203
+ * }],
204
+ * }],
205
+ * },
206
+ * {
207
+ * clusters: [{
208
+ * selector: {
209
+ * matchLabels: {
210
+ * "argocd.argoproj.io/secret-type": "cluster",
211
+ * },
212
+ * },
213
+ * }],
214
+ * },
215
+ * ],
216
+ * }],
217
+ * }],
218
+ * template: {
219
+ * metadata: {
220
+ * name: "{{path.basename}}-{{name}}",
221
+ * },
222
+ * spec: {
223
+ * project: "default",
224
+ * sources: [{
225
+ * repoUrl: "https://github.com/argoproj/argo-cd.git",
226
+ * targetRevision: "HEAD",
227
+ * path: "{{path}}",
228
+ * }],
229
+ * destination: {
230
+ * server: "{{server}}",
231
+ * namespace: "{{path.basename}}",
232
+ * },
233
+ * },
234
+ * },
235
+ * },
236
+ * });
237
+ * // Merge Generator
238
+ * const merge = new argocd.ApplicationSet("merge", {
239
+ * metadata: {
240
+ * name: "merge",
241
+ * },
242
+ * spec: {
243
+ * generators: [{
244
+ * merges: [{
245
+ * mergeKeys: ["server"],
246
+ * generators: [
247
+ * {
248
+ * clusters: [{
249
+ * values: {
250
+ * kafka: "true",
251
+ * redis: "false",
252
+ * },
253
+ * }],
254
+ * },
255
+ * {
256
+ * clusters: [{
257
+ * selector: {
258
+ * matchLabels: {
259
+ * "use-kafka": "false",
260
+ * },
261
+ * },
262
+ * values: {
263
+ * kafka: "false",
264
+ * },
265
+ * }],
266
+ * },
267
+ * {
268
+ * lists: [{
269
+ * elements: [{
270
+ * server: "https://2.4.6.8",
271
+ * "values.redis": "true",
272
+ * }],
273
+ * }],
274
+ * },
275
+ * ],
276
+ * }],
277
+ * }],
278
+ * template: {
279
+ * metadata: {
280
+ * name: "{{name}}",
281
+ * },
282
+ * spec: {
283
+ * project: "default",
284
+ * sources: [{
285
+ * repoUrl: "https://github.com/argoproj/argo-cd.git",
286
+ * path: "app",
287
+ * targetRevision: "HEAD",
288
+ * helm: {
289
+ * parameters: [
290
+ * {
291
+ * name: "kafka",
292
+ * value: "{{values.kafka}}",
293
+ * },
294
+ * {
295
+ * name: "redis",
296
+ * value: "{{values.redis}}",
297
+ * },
298
+ * ],
299
+ * },
300
+ * }],
301
+ * destination: {
302
+ * server: "{{server}}",
303
+ * namespace: "default",
304
+ * },
305
+ * },
306
+ * },
307
+ * },
308
+ * });
309
+ * // Pull Request Generator - GitHub
310
+ * const prGithub = new argocd.ApplicationSet("pr_github", {
311
+ * metadata: {
312
+ * name: "pr-github",
313
+ * },
314
+ * spec: {
315
+ * generators: [{
316
+ * pullRequests: [{
317
+ * github: {
318
+ * api: "https://git.example.com/",
319
+ * owner: "myorg",
320
+ * repo: "myrepository",
321
+ * appSecretName: "github-app-repo-creds",
322
+ * tokenRef: {
323
+ * secretName: "github-token",
324
+ * key: "token",
325
+ * },
326
+ * labels: ["preview"],
327
+ * },
328
+ * }],
329
+ * }],
330
+ * template: {
331
+ * metadata: {
332
+ * name: "myapp-{{branch}}-{{number}}",
333
+ * },
334
+ * spec: {
335
+ * project: "default",
336
+ * sources: [{
337
+ * repoUrl: "https://github.com/myorg/myrepo.git",
338
+ * path: "kubernetes/",
339
+ * targetRevision: "{{head_sha}}",
340
+ * helm: {
341
+ * parameters: [{
342
+ * name: "image.tag",
343
+ * value: "pull-{{head_sha}}",
344
+ * }],
345
+ * },
346
+ * }],
347
+ * destination: {
348
+ * server: "https://kubernetes.default.svc",
349
+ * namespace: "default",
350
+ * },
351
+ * },
352
+ * },
353
+ * },
354
+ * });
355
+ * // SCM Provider Generator - GitHub
356
+ * const scmGithub = new argocd.ApplicationSet("scm_github", {
357
+ * metadata: {
358
+ * name: "scm-github",
359
+ * },
360
+ * spec: {
361
+ * generators: [{
362
+ * scmProviders: [{
363
+ * github: {
364
+ * appSecretName: "gh-app-repo-creds",
365
+ * organization: "myorg",
366
+ * },
367
+ * }],
368
+ * }],
369
+ * template: {
370
+ * metadata: {
371
+ * name: "{{repository}}",
372
+ * },
373
+ * spec: {
374
+ * project: "default",
375
+ * sources: [{
376
+ * repoUrl: "{{url}}",
377
+ * path: "kubernetes/",
378
+ * targetRevision: "{{branch}}",
379
+ * }],
380
+ * destination: {
381
+ * server: "https://kubernetes.default.svc",
382
+ * namespace: "default",
383
+ * },
384
+ * },
385
+ * },
386
+ * },
387
+ * });
388
+ * // Progressive Sync - Rolling Update
389
+ * const progressiveSync = new argocd.ApplicationSet("progressive_sync", {
390
+ * metadata: {
391
+ * name: "progressive-sync",
392
+ * },
393
+ * spec: {
394
+ * generators: [{
395
+ * lists: [{
396
+ * elements: [
397
+ * {
398
+ * cluster: "engineering-dev",
399
+ * url: "https://1.2.3.4",
400
+ * env: "env-dev",
401
+ * },
402
+ * {
403
+ * cluster: "engineering-qa",
404
+ * url: "https://2.4.6.8",
405
+ * env: "env-qa",
406
+ * },
407
+ * {
408
+ * cluster: "engineering-prod",
409
+ * url: "https://9.8.7.6/",
410
+ * env: "env-prod",
411
+ * },
412
+ * ],
413
+ * }],
414
+ * }],
415
+ * strategy: {
416
+ * type: "RollingSync",
417
+ * rollingSyncs: [{
418
+ * steps: [
419
+ * {
420
+ * matchExpressions: [{
421
+ * key: "envLabel",
422
+ * operator: "In",
423
+ * values: ["env-dev"],
424
+ * }],
425
+ * },
426
+ * {
427
+ * matchExpressions: [{
428
+ * key: "envLabel",
429
+ * operator: "In",
430
+ * values: ["env-qa"],
431
+ * }],
432
+ * maxUpdate: "0",
433
+ * },
434
+ * {
435
+ * matchExpressions: [{
436
+ * key: "envLabel",
437
+ * operator: "In",
438
+ * values: ["env-prod"],
439
+ * }],
440
+ * maxUpdate: "10%",
441
+ * },
442
+ * ],
443
+ * }],
444
+ * },
445
+ * goTemplate: true,
446
+ * template: {
447
+ * metadata: {
448
+ * name: "{{.cluster}}-guestbook",
449
+ * labels: {
450
+ * envLabel: "{{.env}}",
451
+ * },
452
+ * },
453
+ * spec: {
454
+ * project: "default",
455
+ * sources: [{
456
+ * repoUrl: "https://github.com/infra-team/cluster-deployments.git",
457
+ * path: "guestbook/{{.cluster}}",
458
+ * targetRevision: "HEAD",
459
+ * }],
460
+ * destination: {
461
+ * server: "{{.url}}",
462
+ * namespace: "guestbook",
463
+ * },
464
+ * },
465
+ * },
466
+ * },
467
+ * });
468
+ * ```
469
+ */
470
+ export declare class ApplicationSet extends pulumi.CustomResource {
471
+ /**
472
+ * Get an existing ApplicationSet resource's state with the given name, ID, and optional extra
473
+ * properties used to qualify the lookup.
474
+ *
475
+ * @param name The _unique_ name of the resulting resource.
476
+ * @param id The _unique_ provider ID of the resource to lookup.
477
+ * @param state Any extra arguments used during the lookup.
478
+ * @param opts Optional settings to control the behavior of the CustomResource.
479
+ */
480
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ApplicationSetState, opts?: pulumi.CustomResourceOptions): ApplicationSet;
481
+ /**
482
+ * Returns true if the given object is an instance of ApplicationSet. This is designed to work even
483
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
484
+ */
485
+ static isInstance(obj: any): obj is ApplicationSet;
486
+ /**
487
+ * Standard Kubernetes object metadata. For more info see the [Kubernetes reference](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata).
488
+ */
489
+ readonly metadata: pulumi.Output<outputs.ApplicationSetMetadata>;
490
+ /**
491
+ * ArgoCD application set resource spec.
492
+ */
493
+ readonly spec: pulumi.Output<outputs.ApplicationSetSpec>;
494
+ /**
495
+ * Create a ApplicationSet resource with the given unique name, arguments, and options.
496
+ *
497
+ * @param name The _unique_ name of the resource.
498
+ * @param args The arguments to use to populate this resource's properties.
499
+ * @param opts A bag of options that control this resource's behavior.
500
+ */
501
+ constructor(name: string, args: ApplicationSetArgs, opts?: pulumi.CustomResourceOptions);
502
+ }
503
+ /**
504
+ * Input properties used for looking up and filtering ApplicationSet resources.
505
+ */
506
+ export interface ApplicationSetState {
507
+ /**
508
+ * Standard Kubernetes object metadata. For more info see the [Kubernetes reference](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata).
509
+ */
510
+ metadata?: pulumi.Input<inputs.ApplicationSetMetadata>;
511
+ /**
512
+ * ArgoCD application set resource spec.
513
+ */
514
+ spec?: pulumi.Input<inputs.ApplicationSetSpec>;
515
+ }
516
+ /**
517
+ * The set of arguments for constructing a ApplicationSet resource.
518
+ */
519
+ export interface ApplicationSetArgs {
520
+ /**
521
+ * Standard Kubernetes object metadata. For more info see the [Kubernetes reference](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata).
522
+ */
523
+ metadata: pulumi.Input<inputs.ApplicationSetMetadata>;
524
+ /**
525
+ * ArgoCD application set resource spec.
526
+ */
527
+ spec: pulumi.Input<inputs.ApplicationSetSpec>;
528
+ }