You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: "A Kustomize function that represents a Java based app"
@@ -302,7 +304,7 @@ kind: Catalog
302
304
metadata:
303
305
name: "example-co-functions"
304
306
spec:
305
-
providers:
307
+
krmFunctions:
306
308
- apiVersion: example.com/v1
307
309
kind: GroovyApplication
308
310
description: "A Kustomize function that can handle groovy apps"
@@ -330,7 +332,7 @@ kind: Catalog
330
332
metadata:
331
333
name: "example-co-functions"
332
334
spec:
333
-
providers:
335
+
krmFunctions:
334
336
- apiVersion: example.com/v1
335
337
kind: JavaApplication
336
338
description: "A Kustomize function that can handle Java apps"
@@ -462,7 +464,7 @@ kind: Catalog
462
464
metadata:
463
465
name: "official-kustomize-functions"
464
466
spec:
465
-
providers:
467
+
krmFunctions:
466
468
- apiVersion: kustomize.io/v1
467
469
kind: Helm
468
470
description: "A Kustomize function that can handle Helm charts"
@@ -475,6 +477,71 @@ This official extension will be embedded within the Kustomize binary and require
475
477
476
478
Alternatively, this could be published as an external resource that can be pulled by Kustomize as would any other catalog. This would decouple the release cadence of Kustomize and the official extensions, but would introduce extra latency for the end user.
477
479
480
+
#### Story 5
481
+
482
+
As a KRM function developer at company Example Co, I want to contribute a KRM function to the official extension catalog.
483
+
484
+
I publish the implementation of my function as a container to a public Docker registry. I then contribute the necessary metadata to the public catalog, including:
485
+
486
+
* Provider information
487
+
* Network access requirements
488
+
* Storage/volume requirements
489
+
490
+
Once this has been approved and included into the officially published catalog, my function is available for others to discover:
491
+
492
+
```yaml
493
+
apiVersion: kustomize.io/v1
494
+
kind: Catalog
495
+
metadata:
496
+
name: "official-kustomize-functions"
497
+
spec:
498
+
krmFunctions:
499
+
- apiVersion: kustomize.io/v1
500
+
kind: Helm
501
+
description: "A Kustomize function that can handle Helm charts"
502
+
provider:
503
+
container:
504
+
image: k8s.gcr.io/kustomize/helm-function:v1.0.0
505
+
- apiVersion: example.co/v1
506
+
kind: McGuffin
507
+
description: "A KRM function that everyone is searching for"
As a platform developer at enterprise company Example Co, I wish to publish a trusted function catalog containing functions published by multiple sources, with appropriate metadata:
516
+
517
+
* One plugin developed by Banana Co
518
+
* One plugin developed by Watermelon Co
519
+
* One plugin developed by my company Example Co
520
+
521
+
Using the provider information and the metadata for each function, I publish a trusted catalog for use at Example Co
522
+
523
+
```yaml
524
+
apiVersion: kustomize.io/v1
525
+
kind: Catalog
526
+
metadata:
527
+
name: "example-co-aggregated-catalog"
528
+
spec:
529
+
krmFunctions:
530
+
- apiVersion: banana.co/v1
531
+
kind: Split
532
+
description: "A KRM function that splits a deployment into multiple deployments"
Not all registries currently support OCI Artifacts, which will constrain the use of that capability. Most major cloud providers and several open source projects, however, support this:
@@ -508,7 +575,7 @@ metadata:
508
575
labels:
509
576
author: ExampleCo
510
577
spec:
511
-
providers:
578
+
krmFunctions:
512
579
- apiVersion: example.com/v1
513
580
kind: JavaApplication
514
581
description: "A Kustomize function provider that can handle Java apps"
0 commit comments