Files
kustomize/plugin/someteam.example.com/v1/starlarkmixer/mixer.star

38 lines
979 B
Plaintext

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",
"metadata": {
"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"])