Allow exec and function transformers to generate resources

This commit is contained in:
Katrina Verey
2021-02-04 10:24:01 -08:00
parent f927cf0b8e
commit 97a2b15be6
3 changed files with 65 additions and 11 deletions

View File

@@ -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
`)
}

View File

@@ -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"])