{
    "$schema": "https://json-schema.org/draft/2019-09/schema",
    "type": "object",
    "required": [
        "resources",
        "securityContext"
    ],
    "properties": {
        "affinity": {
            "default": {
                "nodeAffinity": {
                    "requiredDuringSchedulingIgnoredDuringExecution": {
                        "nodeSelectorTerms": [
                            {
                                "matchExpressions": [
                                    {
                                        "key": "kubernetes.io/os",
                                        "operator": "In",
                                        "values": [
                                            "linux"
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                }
            },
            "type": "object",
            "properties": {
                "nodeAffinity": {
                    "type": "object",
                    "properties": {
                        "requiredDuringSchedulingIgnoredDuringExecution": {
                            "type": "object",
                            "properties": {
                                "nodeSelectorTerms": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "matchExpressions": {
                                                "type": "array",
                                                "items": {
                                                    "type": "object",
                                                    "properties": {
                                                        "key": {
                                                            "type": "string"
                                                        },
                                                        "operator": {
                                                            "type": "string"
                                                        },
                                                        "values": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "apiPriority": {
            "default": {
                "enabled": false,
                "extraServiceAccounts": [],
                "level": "workload-high"
            },
            "type": "object",
            "properties": {
                "enabled": {
                    "type": "boolean"
                },
                "extraServiceAccounts": {
                    "type": "array"
                },
                "level": {
                    "type": "string"
                }
            }
        },
        "commonAnnotations": {
            "type": "object"
        },
        "commonLabels": {
            "type": "object"
        },
        "extraArgs": {
            "type": "array",
            "uniqueItems": true,
            "items": {
                "type": "string"
            }
        },
        "extraEnvs": {
            "type": "array",
            "uniqueItems": true,
            "items": {
                "type": "object"
            }
        },
        "extraVolumeMounts": {
            "type": "array",
            "uniqueItems": true,
            "items": {
                "type": "object"
            }
        },
        "extraVolumes": {
            "type": "array",
            "uniqueItems": true,
            "items": {
                "type": "object"
            }
        },
        "fullnameOverride": {
            "type": "string"
        },
        "hostNetwork": {
            "default": false,
            "type": "boolean"
        },
        "image": {
            "type": "object",
            "required": [
                "repository"
            ],
            "properties": {
                "imagePullPolicy": {
                    "type": "string",
                    "enum": [
                        "IfNotPresent",
                        "Always",
                        "Never"
                    ]
                },
                "pullSecrets": {
                    "type": "array",
                    "uniqueItems": true,
                    "items": {
                        "type": "object"
                    }
                },
                "repository": {
                    "type": "string"
                },
                "tag": {
                    "type": "string"
                }
            }
        },
        "installCRDs": {
            "default": true,
            "type": "boolean"
        },
        "livenessProbe": {
            "default": {
                "httpGet": {
                    "path": "/healthz",
                    "port": 8081
                },
                "initialDelaySeconds": 15,
                "periodSeconds": 20
            },
            "type": "object",
            "properties": {
                "httpGet": {
                    "type": "object",
                    "properties": {
                        "path": {
                            "type": "string"
                        },
                        "port": {
                            "type": "integer"
                        }
                    }
                },
                "initialDelaySeconds": {
                    "type": "integer"
                },
                "periodSeconds": {
                    "type": "integer"
                }
            }
        },
        "logLevel": {
            "type": "string",
            "enum": [
                "debug",
                "info",
                "error"
            ]
        },
        "marketplace": {
            "type": "object",
            "properties": {
                "account": {
                    "type": "string"
                },
                "license": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "multitenancy": {
            "type": "object",
            "required": [
                "defaultServiceAccount",
                "defaultWorkloadIdentityServiceAccount"
            ],
            "properties": {
                "defaultServiceAccount": {
                    "type": "string"
                },
                "defaultWorkloadIdentityServiceAccount": {
                    "type": "string"
                },
                "enabled": {
                    "type": "boolean"
                },
                "enabledForWorkloadIdentity": {
                    "type": "boolean"
                }
            }
        },
        "nameOverride": {
            "type": "string"
        },
        "nodeSelector": {
            "type": "object"
        },
        "podSecurityContext": {
            "default": {
                "fsGroup": 1337
            },
            "type": "object"
        },
        "priorityClassName": {
            "default": "system-cluster-critical",
            "type": "string"
        },
        "rbac": {
            "type": "object",
            "properties": {
                "create": {
                    "type": "boolean"
                },
                "createAggregation": {
                    "type": "boolean"
                }
            }
        },
        "readinessProbe": {
            "default": {
                "httpGet": {
                    "path": "/readyz",
                    "port": 8081
                },
                "initialDelaySeconds": 5,
                "periodSeconds": 10
            },
            "type": "object",
            "properties": {
                "httpGet": {
                    "type": "object",
                    "properties": {
                        "path": {
                            "type": "string"
                        },
                        "port": {
                            "type": "integer"
                        }
                    }
                },
                "initialDelaySeconds": {
                    "type": "integer"
                },
                "periodSeconds": {
                    "type": "integer"
                }
            }
        },
        "reporting": {
            "type": "object",
            "required": [
                "interval"
            ],
            "properties": {
                "interval": {
                    "type": "string"
                }
            }
        },
        "resources": {
            "type": "object",
            "properties": {
                "limits": {
                    "type": "object",
                    "properties": {
                        "cpu": {
                            "type": "string"
                        },
                        "memory": {
                            "type": "string"
                        }
                    }
                },
                "requests": {
                    "default": {
                        "cpu": "100m",
                        "memory": "64Mi"
                    },
                    "type": "object",
                    "properties": {
                        "cpu": {
                            "type": "string"
                        },
                        "memory": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "securityContext": {
            "type": "object",
            "properties": {
                "allowPrivilegeEscalation": {
                    "default": false,
                    "type": "boolean"
                },
                "capabilities": {
                    "default": {
                        "drop": [
                            "ALL"
                        ]
                    },
                    "type": "object",
                    "properties": {
                        "drop": {
                            "type": "array",
                            "uniqueItems": true,
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                },
                "readOnlyRootFilesystem": {
                    "default": true,
                    "type": "boolean"
                },
                "runAsNonRoot": {
                    "default": true,
                    "type": "boolean"
                },
                "seccompProfile": {
                    "default": {
                        "type": "RuntimeDefault"
                    },
                    "type": "object",
                    "properties": {
                        "type": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "serviceAccount": {
            "default": {
                "automount": true,
                "create": true,
                "name": ""
            },
            "type": "object",
            "properties": {
                "automount": {
                    "type": "boolean"
                },
                "create": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "serviceMonitor": {
            "default": {
                "create": false,
                "interval": "60s",
                "scrapeTimeout": "30s"
            },
            "type": "object",
            "properties": {
                "create": {
                    "type": "boolean"
                },
                "interval": {
                    "type": "string"
                },
                "labels": {
                    "type": "object"
                },
                "scrapeTimeout": {
                    "type": "string"
                }
            }
        },
        "tolerations": {
            "type": "array",
            "uniqueItems": true,
            "items": {
                "type": "object"
            }
        },
        "web": {
            "type": "object",
            "properties": {
                "config": {
                    "type": "object"
                },
                "configSecretName": {
                    "default": "",
                    "type": "string"
                },
                "enabled": {
                    "type": "boolean"
                },
                "httpRoute": {
                    "default": {
                        "annotations": {},
                        "enabled": false,
                        "hostnames": [],
                        "parentRefs": []
                    },
                    "type": "object",
                    "properties": {
                        "annotations": {
                            "type": "object"
                        },
                        "enabled": {
                            "default": false,
                            "type": "boolean"
                        },
                        "hostnames": {
                            "type": "array",
                            "uniqueItems": true,
                            "items": {
                                "type": "string"
                            }
                        },
                        "parentRefs": {
                            "type": "array",
                            "uniqueItems": true,
                            "items": {
                                "type": "object"
                            }
                        }
                    }
                },
                "ingress": {
                    "default": {
                        "annotations": {},
                        "className": "",
                        "enabled": false
                    },
                    "type": "object",
                    "properties": {
                        "annotations": {
                            "type": "object"
                        },
                        "className": {
                            "type": "string"
                        },
                        "enabled": {
                            "default": false,
                            "type": "boolean"
                        },
                        "hosts": {
                            "type": "array",
                            "uniqueItems": true,
                            "items": {
                                "type": "object"
                            }
                        },
                        "tls": {
                            "type": "array",
                            "uniqueItems": true,
                            "items": {
                                "type": "object"
                            }
                        }
                    }
                },
                "networkPolicy": {
                    "type": "object",
                    "properties": {
                        "create": {
                            "type": "boolean"
                        }
                    }
                },
                "rbac": {
                    "type": "object",
                    "properties": {
                        "createAggregation": {
                            "default": false,
                            "type": "boolean"
                        },
                        "createRoles": {
                            "default": true,
                            "type": "boolean"
                        }
                    }
                },
                "serverOnly": {
                    "type": "boolean"
                },
                "serverReplicas": {
                    "default": 1,
                    "type": "integer"
                }
            }
        }
    }
}
