I am looking to merge two different JSON files into one file -
file 1
[
{
"namespace": "lerjr-rb26-sandbox-keycloak",
"name": "keycloak",
"url": "REMOVED"
},
{
"namespace": "prometheus-brr1-sandbox",
"name": "abacus",
"url": "REMOVED"
},
{
"namespace": "prometheus-brr1-sandbox",
"name": "keycloak",
"url": "REMOVED"
},
{
"namespace": "prometheus-nginxredirect-sandbox",
"name": "riskpoynt-redirect444",
"url": "REMOVED"
},
{
"namespace": "prometheus-nginxredirect-sandbox",
"name": "riskpoynt-redirect447",
"url": "REMOVED"
},
{
"namespace": "prometheus-x105-sandbox",
"name": "epas",
"url": "REMOVED"
},
{
"namespace": "prometheus-x105-sandbox",
"name": "epas-oidc",
"url": "REMOVED"
},
{
"namespace": "prometheus-x105-sandbox",
"name": "keycloak",
"url": "REMOVED"
}
]
file 2
[
{
"namespace": "ler-rb26-sandbox",
"labels": {
"pg.customerName": "prometheus",
"pg.customerCode": "rb26",
"pg.product": "keycloak",
"pg.environment": null
}
},
{
"namespace": "lerjr-rb26-sandbox-keycloak",
"labels": {
"pg.customerName": "lerjr",
"pg.customerCode": "rb26",
"pg.product": "keycloak",
"pg.environment": null
}
},
{
"namespace": "prometheus-brr1-sandbox",
"labels": {
"pg.customerName": "prometheus",
"pg.customerCode": null,
"pg.product": null,
"pg.environment": null
}
}
]
EXPECTED OUTPUT
[
{
"namespace": "lerjr-rb26-sandbox-keycloak",
"labels": {
"pg.customerName": "lerjr",
"pg.customerCode": "rb26",
"pg.product": "keycloak",
"pg.environment": null
},
"ingresses": [
{
"name": "keycloak",
"url": "REMOVED"
}
]
},
{
"namespace": "prometheus-brr1-sandbox",
"labels": {
"pg.customerName": "prometheus",
"pg.customerCode": null,
"pg.product": null,
"pg.environment": null
},
"ingresses": [
{
"name": "abacus",
"url": "REMOVED"
},
{
"name": "keycloak",
"url": "REMOVED"
}
]
},
{
"namespace": "prometheus-nginxredirect-sandbox",
"labels": {
"pg.customerName": "null",
"pg.customerCode": null,
"pg.product": null,
"pg.environment": null
},
"ingresses": [
{
"name": "riskpoynt-redirect444",
"url": "REMOVED"
},
{
"name": "riskpoynt-redirect447",
"url": "REMOVED"
}
]
},
{
"namespace": "prometheus-x105-sandbox",
"labels": {
"pg.customerName": "null",
"pg.customerCode": null,
"pg.product": null,
"pg.environment": null
},
"ingresses": [
{
"name": "epas",
"url": "REMOVED"
},
{
"name": "epas-oidc",
"url": "REMOVED"
},
{
"name": "keycloak",
"url": "REMOVED"
}
]
}
]
NOTE that the final product has labels (null if not present) and if there are no ingresses the namespace entry is removed. the namespace key/value pair is the link between the two files - file 1 is the primary file I suppose, I do not want the namespace entry from file 2 if there is no namespace entry in file 1.
Any and all help would be greatly appreciated I have been struggling with this.