mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 18:25:26 +00:00
Allow exec and function transformers to generate resources
This commit is contained in:
@@ -38,12 +38,24 @@ data:
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
annotations:
|
||||
config.kubernetes.io/path: configmap_some-cm.yaml
|
||||
modified-by: mixer-instance
|
||||
name: some-cm
|
||||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
foo: bar
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
annotations:
|
||||
config.kubernetes.io/path: configmap_some-cm-copy.yaml
|
||||
name: some-cm-copy
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
annotations:
|
||||
config.kubernetes.io/path: configmap_net-new.yaml
|
||||
name: net-new
|
||||
`)
|
||||
}
|
||||
|
||||
@@ -1,11 +1,27 @@
|
||||
def run(r, fc):
|
||||
add = []
|
||||
remove = []
|
||||
for resource in r:
|
||||
if resource.get("metadata") == None:
|
||||
resource["metadata"] = {}
|
||||
if resource["metadata"].get("annotations") == None:
|
||||
resource["metadata"]["annotations"] = {}
|
||||
|
||||
# Flag for deletion
|
||||
if resource["metadata"]["name"] == "delete-me":
|
||||
remove.append(resource)
|
||||
continue
|
||||
|
||||
# Deep-ish copy the resource
|
||||
cp = dict(resource)
|
||||
cp["metadata"] = dict(cp["metadata"])
|
||||
cp["metadata"]["annotations"] = dict(cp["metadata"]["annotations"])
|
||||
cp["metadata"]["name"] = resource["metadata"]["name"]+"-copy"
|
||||
add.append(cp)
|
||||
|
||||
resource["metadata"]["annotations"]["modified-by"] = fc["metadata"]["name"]
|
||||
|
||||
# Add something
|
||||
new = {
|
||||
"kind": "ConfigMap",
|
||||
"apiVersion": "v1",
|
||||
@@ -13,6 +29,9 @@ def run(r, fc):
|
||||
"name": "net-new"
|
||||
}
|
||||
}
|
||||
r.extend(add)
|
||||
r.append(new)
|
||||
for resource in remove:
|
||||
r.remove(resource)
|
||||
|
||||
run(ctx.resource_list["items"], ctx.resource_list["functionConfig"])
|
||||
|
||||
Reference in New Issue
Block a user