From 654e34cd0a34ce1cf1af77141aa298ce6f6e6ca4 Mon Sep 17 00:00:00 2001 From: OmriGez Date: Tue, 9 Apr 2024 13:31:23 +0300 Subject: [PATCH] updates node blueprint to support Unknown ready status --- .../argo-argo_rollouts-blueprints.json | 841 +++++++------- kubernetes/blueprints/argo-blueprints.json | 839 +++++++------- kubernetes/blueprints/fluxcd-blueprints.json | 945 +++++++-------- kubernetes/blueprints/istio-blueprints.json | 45 +- .../kubernetes_complete_usecase_bps.json | 702 ++++++------ .../kubernetes_knative_usecase.json | 1012 ++++++++--------- kubernetes/blueprints/kyverno-blueprints.json | 853 +++++++------- kubernetes/blueprints/opencosts_bps.json | 926 +++++++-------- .../blueprints/openshift-blueprints.json | 823 +++++++------- kubernetes/blueprints/trivy-blueprints.json | 909 +++++++-------- 10 files changed, 3916 insertions(+), 3979 deletions(-) diff --git a/kubernetes/blueprints/argo-argo_rollouts-blueprints.json b/kubernetes/blueprints/argo-argo_rollouts-blueprints.json index 059a83f..a7f385a 100644 --- a/kubernetes/blueprints/argo-argo_rollouts-blueprints.json +++ b/kubernetes/blueprints/argo-argo_rollouts-blueprints.json @@ -1,443 +1,416 @@ [ - { - "identifier":"cluster", - "description":"This blueprint represents a Kubernetes Cluster", - "title":"Cluster", - "icon":"Cluster", - "schema":{ - "properties":{ - - }, - "required":[ - - ] - }, - "mirrorProperties":{ - - }, - "calculationProperties":{ - - }, - "relations":{ - - } + { + "identifier": "cluster", + "description": "This blueprint represents a Kubernetes Cluster", + "title": "Cluster", + "icon": "Cluster", + "schema": { + "properties": {}, + "required": [] }, - { - "identifier":"node", - "description":"This blueprint represents a k8s Node", - "title":"Node", - "icon":"Node", - "schema":{ - "properties":{ - "creationTimestamp":{ - "type":"string", - "icon":"DeployedAt", - "title":"Created", - "format":"date-time", - "description":"When the Node was created (added to the cluster)" - }, - "labels":{ - "type":"object", - "title":"Labels", - "description":"Labels of the Node" - }, - "ready":{ - "type":"string", - "title":"Node Readiness", - "description":"Node ready status", - "enum":[ - "True", - "False" - ], - "enumColors":{ - "False":"red", - "True":"green" - } - }, - "totalMemory":{ - "type":"string", - "icon":"GPU", - "title":"Total Memory (kibibytes)", - "description":"Total memory capacity of the Node" - }, - "kubeletVersion":{ - "type":"string", - "title":"Kubelet Version", - "description":"The node's kubelet version" - }, - "totalCPU":{ - "type":"string", - "icon":"CPU", - "title":"Total CPU (milli-cores)", - "description":"Total CPU capacity of the Node" - } - }, - "required":[ - - ] - }, - "mirrorProperties":{ - - }, - "calculationProperties":{ - - }, - "relations":{ - "Cluster":{ - "title":"Cluster", - "target":"cluster", - "required":false, - "many":true + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": {} + }, + { + "identifier": "node", + "description": "This blueprint represents a k8s Node", + "title": "Node", + "icon": "Node", + "schema": { + "properties": { + "creationTimestamp": { + "type": "string", + "icon": "DeployedAt", + "title": "Created", + "format": "date-time", + "description": "When the Node was created (added to the cluster)" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Node" + }, + "ready": { + "type": "string", + "title": "Node Readiness", + "description": "Node ready status", + "enum": [ + "True", + "False", + "Unknown" + ], + "enumColors": { + "False": "red", + "True": "green" } - } + }, + "totalMemory": { + "type": "string", + "icon": "GPU", + "title": "Total Memory (kibibytes)", + "description": "Total memory capacity of the Node" + }, + "kubeletVersion": { + "type": "string", + "title": "Kubelet Version", + "description": "The node's kubelet version" + }, + "totalCPU": { + "type": "string", + "icon": "CPU", + "title": "Total CPU (milli-cores)", + "description": "Total CPU capacity of the Node" + } + }, + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Cluster": { + "title": "Cluster", + "target": "cluster", + "required": false, + "many": true + } + } + }, + { + "identifier": "namespace", + "description": "This blueprint represents a k8s Namespace", + "title": "Namespace", + "icon": "Environment", + "schema": { + "properties": { + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Namespace was created" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Namespace" + } + }, + "required": [] }, - { - "identifier":"namespace", - "description":"This blueprint represents a k8s Namespace", - "title":"Namespace", - "icon":"Environment", - "schema":{ - "properties":{ - "creationTimestamp":{ - "type":"string", - "title":"Created", - "format":"date-time", - "description":"When the Namespace was created" - }, - "labels":{ - "type":"object", - "title":"Labels", - "description":"Labels of the Namespace" - } + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Cluster": { + "title": "Cluster", + "description": "The namespace's Kubernetes cluster", + "target": "cluster", + "required": false, + "many": false + } + } + }, + { + "identifier": "workload", + "description": "This blueprint represents a k8s Workload. This includes all k8s objects which can create pods (deployments[replicasets], daemonsets, statefulsets...)", + "title": "Workload", + "icon": "Deployment", + "schema": { + "properties": { + "availableReplicas": { + "type": "number", + "title": "Running Replicas", + "description": "Current running replica count" + }, + "containers": { + "type": "array", + "title": "Containers", + "default": [], + "description": "The containers for each pod instance of the Workload" + }, + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Workload was created" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Workload" + }, + "replicas": { + "type": "number", + "title": "Wanted Replicas", + "description": "Wanted replica count" + }, + "strategy": { + "type": "string", + "title": "Strategy", + "description": "Rollout Strategy" + }, + "hasPrivileged": { + "type": "boolean", + "title": "Has Privileged Container" + }, + "hasLatest": { + "type": "boolean", + "title": "Has 'latest' tag", + "description": "Has Container with 'latest' as image tag" + }, + "hasLimits": { + "type": "boolean", + "title": "All containers have limits" + }, + "isHealthy": { + "type": "string", + "enum": [ + "Healthy", + "Unhealthy" + ], + "enumColors": { + "Healthy": "green", + "Unhealthy": "red" }, - "required":[ - + "title": "Workload Health" + }, + "kind": { + "title": "Workload Kind", + "description": "The kind of Workload", + "type": "string", + "enum": [ + "StatefulSet", + "DaemonSet", + "Deployment", + "ReplicaSet", + "Rollout" ] - }, - "mirrorProperties":{ - - }, - "calculationProperties":{ - - }, - "relations":{ - "Cluster":{ - "title":"Cluster", - "description":"The namespace's Kubernetes cluster", - "target":"cluster", - "required":false, - "many":false - } - } + }, + "strategyConfig": { + "type": "object", + "title": "Strategy Config", + "description": "The workloads rollout strategy" + } + }, + "required": [] }, - { - "identifier": "workload", - "description": "This blueprint represents a k8s Workload. This includes all k8s objects which can create pods (deployments[replicasets], daemonsets, statefulsets...)", - "title": "Workload", - "icon": "Deployment", - "schema": { - "properties": { - "availableReplicas": { - "type": "number", - "title": "Running Replicas", - "description": "Current running replica count" - }, - "containers": { - "type": "array", - "title": "Containers", - "default": [], - "description": "The containers for each pod instance of the Workload" - }, - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Workload was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Workload" - }, - "replicas": { - "type": "number", - "title": "Wanted Replicas", - "description": "Wanted replica count" - }, - "strategy": { - "type": "string", - "title": "Strategy", - "description": "Rollout Strategy" - }, - "hasPrivileged": { - "type": "boolean", - "title": "Has Privileged Container" - }, - "hasLatest": { - "type": "boolean", - "title": "Has 'latest' tag", - "description": "Has Container with 'latest' as image tag" - }, - "hasLimits": { - "type": "boolean", - "title": "All containers have limits" - }, - "isHealthy": { - "type": "string", - "enum": [ - "Healthy", - "Unhealthy" - ], - "enumColors": { - "Healthy": "green", - "Unhealthy": "red" - }, - "title": "Workload Health" - }, - "kind": { - "title": "Workload Kind", - "description": "The kind of Workload", - "type": "string", - "enum": [ - "StatefulSet", - "DaemonSet", - "Deployment", - "ReplicaSet", - "Rollout" - ] - }, - "strategyConfig": { - "type": "object", - "title": "Strategy Config", - "description": "The workloads rollout strategy" - } - }, - "required": [] - }, - "mirrorProperties": { - "Cluster": { - "title": "Cluster", - "path": "Namespace.Cluster.$title" - }, - "namespace": { - "title": "Namespace", - "path": "Namespace.$title" - } - }, - "calculationProperties": {}, - "relations": { - "workloadManager": { - "title": "Manager", - "description": "A replicaset's workload. For example, Workload abc-ReplicaSet is managed by Workload xyz-Depolyment", - "target": "workload", - "required": false, - "many": false - }, - "Namespace": { - "title": "Namespace", - "target": "namespace", - "required": false, - "many": false - } - } + "mirrorProperties": { + "Cluster": { + "title": "Cluster", + "path": "Namespace.Cluster.$title" + }, + "namespace": { + "title": "Namespace", + "path": "Namespace.$title" + } }, - { - "identifier":"pod", - "description":"This blueprint represents a k8s Pod", - "title":"Pod", - "icon":"Service", - "schema":{ - "properties":{ - "conditions":{ - "type":"array", - "title":"Conditions", - "default":[ - - ], - "description":"Pod's conditions" - }, - "labels":{ - "type":"object", - "title":"Labels", - "description":"Labels of the Pod" - }, - "phase":{ - "type":"string", - "title":"Pod phase", - "description":"Pod's running phase" - }, - "startTime":{ - "type":"string", - "title":"Created", - "format":"date-time", - "description":"Pod's creation date" - } - }, - "required":[ - - ] - }, - "mirrorProperties":{ - "containers":{ - "title":"Containers", - "path":"workload.containers" - }, - "cluster":{ - "title":"Cluster", - "path":"workload.Namespace.Cluster.$identifier" - }, - "namespace":{ - "title":"Namespace", - "path":"workload.Namespace.$title" - } - }, - "calculationProperties":{ - - }, - "relations":{ - "Node":{ - "title":"Node", - "description":"The node the pod is running on", - "target":"node", - "required":false, - "many":false - }, - "workload":{ - "title":"Workload", - "description":"The workload responsible for the pod", - "target":"workload", - "required":false, - "many":false - } - } + "calculationProperties": {}, + "relations": { + "workloadManager": { + "title": "Manager", + "description": "A replicaset's workload. For example, Workload abc-ReplicaSet is managed by Workload xyz-Depolyment", + "target": "workload", + "required": false, + "many": false + }, + "Namespace": { + "title": "Namespace", + "target": "namespace", + "required": false, + "many": false + } + } + }, + { + "identifier": "pod", + "description": "This blueprint represents a k8s Pod", + "title": "Pod", + "icon": "Service", + "schema": { + "properties": { + "conditions": { + "type": "array", + "title": "Conditions", + "default": [], + "description": "Pod's conditions" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Pod" + }, + "phase": { + "type": "string", + "title": "Pod phase", + "description": "Pod's running phase" + }, + "startTime": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "Pod's creation date" + } + }, + "required": [] + }, + "mirrorProperties": { + "containers": { + "title": "Containers", + "path": "workload.containers" + }, + "cluster": { + "title": "Cluster", + "path": "workload.Namespace.Cluster.$identifier" + }, + "namespace": { + "title": "Namespace", + "path": "workload.Namespace.$title" + } + }, + "calculationProperties": {}, + "relations": { + "Node": { + "title": "Node", + "description": "The node the pod is running on", + "target": "node", + "required": false, + "many": false + }, + "workload": { + "title": "Workload", + "description": "The workload responsible for the pod", + "target": "workload", + "required": false, + "many": false + } + } + }, + { + "identifier": "argocdProject", + "description": "This blueprint ArgoCD Project", + "title": "ArgoCD Project", + "icon": "Argo", + "schema": { + "properties": {}, + "required": [] + }, + "mirrorProperties": { + "Cluster": { + "title": "Cluster", + "path": "Namespace.Cluster.$title" + } + }, + "calculationProperties": {}, + "relations": { + "Namespace": { + "title": "Namespace", + "description": "The project's Namespace", + "target": "namespace", + "required": false, + "many": false + } + } + }, + { + "identifier": "argocdRepo", + "description": "This blueprint represents a ArgoCD Repository", + "title": "ArgoCD Repository", + "icon": "Git", + "schema": { + "properties": { + "repoUrl": { + "type": "string", + "title": "Repository URL", + "format": "url", + "description": "The link to the repository" + }, + "repoType": { + "type": "string", + "title": "Repository Type", + "description": "The repository type" + } + }, + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Namespace": { + "target": "namespace", + "required": false, + "many": false + } + } + }, + { + "identifier": "argocdApp", + "description": "This blueprint represents an Argo CD Application", + "title": "ArgoCD App", + "icon": "Deployment", + "schema": { + "properties": { + "syncPolicy": { + "type": "object", + "title": "Sync Policy", + "description": "Options for syncing the application with the Git repository" + }, + "gitRepo": { + "type": "string", + "icon": "Git", + "title": "Repository URL", + "description": "The URL of the Git repository containing the application source code" + }, + "gitPath": { + "type": "string", + "title": "Path", + "description": "The path within the Git repository where the application manifests are located" + }, + "syncStatus": { + "type": "string", + "title": "Sync Status", + "description": "The sync status of the application" + }, + "gitRev": { + "type": "string", + "title": "Target Revision", + "description": "The Git revision (branch, tag, or commit hash) to deploy" + } + }, + "required": [] + }, + "mirrorProperties": { + "Cluster": { + "title": "Cluster", + "path": "destinationNamespace.Cluster.$title" + }, + "Namespace": { + "title": "Namespace", + "path": "argocdProject.Namespace.$title" + }, + "DestinationNamespace": { + "title": "Cluster", + "path": "destinationNamespace.$title" + } }, - { - "identifier": "argocdProject", - "description": "This blueprint ArgoCD Project", - "title": "ArgoCD Project", - "icon": "Argo", - "schema": { - "properties": {}, - "required": [] - }, - "mirrorProperties": { - "Cluster": { - "title": "Cluster", - "path": "Namespace.Cluster.$title" - } - }, - "calculationProperties": {}, - "relations": { - "Namespace": { - "title": "Namespace", - "description": "The project's Namespace", - "target": "namespace", - "required": false, - "many": false - } - } - }, - { - "identifier": "argocdRepo", - "description": "This blueprint represents a ArgoCD Repository", - "title": "ArgoCD Repository", - "icon": "Git", - "schema": { - "properties": { - "repoUrl": { - "type": "string", - "title": "Repository URL", - "format": "url", - "description": "The link to the repository" - }, - "repoType": { - "type": "string", - "title": "Repository Type", - "description": "The repository type" - } - }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "Namespace": { - "target": "namespace", - "required": false, - "many": false - } - } - }, - { - "identifier": "argocdApp", - "description": "This blueprint represents an Argo CD Application", - "title": "ArgoCD App", - "icon": "Deployment", - "schema": { - "properties": { - "syncPolicy": { - "type": "object", - "title": "Sync Policy", - "description": "Options for syncing the application with the Git repository" - }, - "gitRepo": { - "type": "string", - "icon": "Git", - "title": "Repository URL", - "description": "The URL of the Git repository containing the application source code" - }, - "gitPath": { - "type": "string", - "title": "Path", - "description": "The path within the Git repository where the application manifests are located" - }, - "syncStatus": { - "type": "string", - "title": "Sync Status", - "description": "The sync status of the application" - }, - "gitRev": { - "type": "string", - "title": "Target Revision", - "description": "The Git revision (branch, tag, or commit hash) to deploy" - } - }, - "required": [] - }, - "mirrorProperties": { - "Cluster": { - "title": "Cluster", - "path": "destinationNamespace.Cluster.$title" - }, - "Namespace": { - "title": "Namespace", - "path": "argocdProject.Namespace.$title" - }, - "DestinationNamespace": { - "title": "Cluster", - "path": "destinationNamespace.$title" - } - }, - "calculationProperties": {}, - "relations": { - "destinationNamespace": { - "title": "Destination Namespace", - "target": "namespace", - "required": false, - "many": false - }, - "argocdProject": { - "title": "Argo Project", - "target": "argocdProject", - "required": false, - "many": false - }, - "workload": { - "title": "Workload", - "target": "workload", - "required": false, - "many": true - } - } - } - ] \ No newline at end of file + "calculationProperties": {}, + "relations": { + "destinationNamespace": { + "title": "Destination Namespace", + "target": "namespace", + "required": false, + "many": false + }, + "argocdProject": { + "title": "Argo Project", + "target": "argocdProject", + "required": false, + "many": false + }, + "workload": { + "title": "Workload", + "target": "workload", + "required": false, + "many": true + } + } + } +] \ No newline at end of file diff --git a/kubernetes/blueprints/argo-blueprints.json b/kubernetes/blueprints/argo-blueprints.json index 73a3cc1..0973b90 100644 --- a/kubernetes/blueprints/argo-blueprints.json +++ b/kubernetes/blueprints/argo-blueprints.json @@ -1,442 +1,415 @@ [ - { - "identifier":"cluster", - "description":"This blueprint represents a Kubernetes Cluster", - "title":"Cluster", - "icon":"Cluster", - "schema":{ - "properties":{ - - }, - "required":[ - - ] - }, - "mirrorProperties":{ - - }, - "calculationProperties":{ - - }, - "relations":{ - - } + { + "identifier": "cluster", + "description": "This blueprint represents a Kubernetes Cluster", + "title": "Cluster", + "icon": "Cluster", + "schema": { + "properties": {}, + "required": [] }, - { - "identifier":"node", - "description":"This blueprint represents a k8s Node", - "title":"Node", - "icon":"Node", - "schema":{ - "properties":{ - "creationTimestamp":{ - "type":"string", - "icon":"DeployedAt", - "title":"Created", - "format":"date-time", - "description":"When the Node was created (added to the cluster)" - }, - "labels":{ - "type":"object", - "title":"Labels", - "description":"Labels of the Node" - }, - "ready":{ - "type":"string", - "title":"Node Readiness", - "description":"Node ready status", - "enum":[ - "True", - "False" - ], - "enumColors":{ - "False":"red", - "True":"green" - } - }, - "totalMemory":{ - "type":"string", - "icon":"GPU", - "title":"Total Memory (kibibytes)", - "description":"Total memory capacity of the Node" - }, - "kubeletVersion":{ - "type":"string", - "title":"Kubelet Version", - "description":"The node's kubelet version" - }, - "totalCPU":{ - "type":"string", - "icon":"CPU", - "title":"Total CPU (milli-cores)", - "description":"Total CPU capacity of the Node" - } - }, - "required":[ - - ] - }, - "mirrorProperties":{ - - }, - "calculationProperties":{ - - }, - "relations":{ - "Cluster":{ - "title":"Cluster", - "target":"cluster", - "required":false, - "many":true + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": {} + }, + { + "identifier": "node", + "description": "This blueprint represents a k8s Node", + "title": "Node", + "icon": "Node", + "schema": { + "properties": { + "creationTimestamp": { + "type": "string", + "icon": "DeployedAt", + "title": "Created", + "format": "date-time", + "description": "When the Node was created (added to the cluster)" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Node" + }, + "ready": { + "type": "string", + "title": "Node Readiness", + "description": "Node ready status", + "enum": [ + "True", + "False", + "Unknown" + ], + "enumColors": { + "False": "red", + "True": "green" } - } + }, + "totalMemory": { + "type": "string", + "icon": "GPU", + "title": "Total Memory (kibibytes)", + "description": "Total memory capacity of the Node" + }, + "kubeletVersion": { + "type": "string", + "title": "Kubelet Version", + "description": "The node's kubelet version" + }, + "totalCPU": { + "type": "string", + "icon": "CPU", + "title": "Total CPU (milli-cores)", + "description": "Total CPU capacity of the Node" + } + }, + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Cluster": { + "title": "Cluster", + "target": "cluster", + "required": false, + "many": true + } + } + }, + { + "identifier": "namespace", + "description": "This blueprint represents a k8s Namespace", + "title": "Namespace", + "icon": "Environment", + "schema": { + "properties": { + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Namespace was created" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Namespace" + } + }, + "required": [] }, - { - "identifier":"namespace", - "description":"This blueprint represents a k8s Namespace", - "title":"Namespace", - "icon":"Environment", - "schema":{ - "properties":{ - "creationTimestamp":{ - "type":"string", - "title":"Created", - "format":"date-time", - "description":"When the Namespace was created" - }, - "labels":{ - "type":"object", - "title":"Labels", - "description":"Labels of the Namespace" - } + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Cluster": { + "title": "Cluster", + "description": "The namespace's Kubernetes cluster", + "target": "cluster", + "required": false, + "many": false + } + } + }, + { + "identifier": "workload", + "description": "This blueprint represents a k8s Workload. This includes all k8s objects which can create pods (deployments[replicasets], daemonsets, statefulsets...)", + "title": "Workload", + "icon": "Deployment", + "schema": { + "properties": { + "availableReplicas": { + "type": "number", + "title": "Running Replicas", + "description": "Current running replica count" + }, + "containers": { + "type": "array", + "title": "Containers", + "default": [], + "description": "The containers for each pod instance of the Workload" + }, + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Workload was created" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Workload" + }, + "replicas": { + "type": "number", + "title": "Wanted Replicas", + "description": "Wanted replica count" + }, + "strategy": { + "type": "string", + "title": "Strategy", + "description": "Rollout Strategy" + }, + "hasPrivileged": { + "type": "boolean", + "title": "Has Privileged Container" + }, + "hasLatest": { + "type": "boolean", + "title": "Has 'latest' tag", + "description": "Has Container with 'latest' as image tag" + }, + "hasLimits": { + "type": "boolean", + "title": "All containers have limits" + }, + "isHealthy": { + "type": "string", + "enum": [ + "Healthy", + "Unhealthy" + ], + "enumColors": { + "Healthy": "green", + "Unhealthy": "red" }, - "required":[ - + "title": "Workload Health" + }, + "kind": { + "title": "Workload Kind", + "description": "The kind of Workload", + "type": "string", + "enum": [ + "StatefulSet", + "DaemonSet", + "Deployment", + "ReplicaSet" ] - }, - "mirrorProperties":{ - - }, - "calculationProperties":{ - - }, - "relations":{ - "Cluster":{ - "title":"Cluster", - "description":"The namespace's Kubernetes cluster", - "target":"cluster", - "required":false, - "many":false - } - } + }, + "strategyConfig": { + "type": "object", + "title": "Strategy Config", + "description": "The workloads rollout strategy" + } + }, + "required": [] }, - { - "identifier": "workload", - "description": "This blueprint represents a k8s Workload. This includes all k8s objects which can create pods (deployments[replicasets], daemonsets, statefulsets...)", - "title": "Workload", - "icon": "Deployment", - "schema": { - "properties": { - "availableReplicas": { - "type": "number", - "title": "Running Replicas", - "description": "Current running replica count" - }, - "containers": { - "type": "array", - "title": "Containers", - "default": [], - "description": "The containers for each pod instance of the Workload" - }, - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Workload was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Workload" - }, - "replicas": { - "type": "number", - "title": "Wanted Replicas", - "description": "Wanted replica count" - }, - "strategy": { - "type": "string", - "title": "Strategy", - "description": "Rollout Strategy" - }, - "hasPrivileged": { - "type": "boolean", - "title": "Has Privileged Container" - }, - "hasLatest": { - "type": "boolean", - "title": "Has 'latest' tag", - "description": "Has Container with 'latest' as image tag" - }, - "hasLimits": { - "type": "boolean", - "title": "All containers have limits" - }, - "isHealthy": { - "type": "string", - "enum": [ - "Healthy", - "Unhealthy" - ], - "enumColors": { - "Healthy": "green", - "Unhealthy": "red" - }, - "title": "Workload Health" - }, - "kind": { - "title": "Workload Kind", - "description": "The kind of Workload", - "type": "string", - "enum": [ - "StatefulSet", - "DaemonSet", - "Deployment", - "ReplicaSet" - ] - }, - "strategyConfig": { - "type": "object", - "title": "Strategy Config", - "description": "The workloads rollout strategy" - } - }, - "required": [] - }, - "mirrorProperties": { - "Cluster": { - "title": "Cluster", - "path": "Namespace.Cluster.$title" - }, - "namespace": { - "title": "Namespace", - "path": "Namespace.$title" - } - }, - "calculationProperties": {}, - "relations": { - "workloadManager": { - "title": "Manager", - "description": "A replicaset's workload. For example, Workload abc-ReplicaSet is managed by Workload xyz-Depolyment", - "target": "workload", - "required": false, - "many": false - }, - "Namespace": { - "title": "Namespace", - "target": "namespace", - "required": false, - "many": false - } - } + "mirrorProperties": { + "Cluster": { + "title": "Cluster", + "path": "Namespace.Cluster.$title" + }, + "namespace": { + "title": "Namespace", + "path": "Namespace.$title" + } }, - { - "identifier":"pod", - "description":"This blueprint represents a k8s Pod", - "title":"Pod", - "icon":"Service", - "schema":{ - "properties":{ - "conditions":{ - "type":"array", - "title":"Conditions", - "default":[ - - ], - "description":"Pod's conditions" - }, - "labels":{ - "type":"object", - "title":"Labels", - "description":"Labels of the Pod" - }, - "phase":{ - "type":"string", - "title":"Pod phase", - "description":"Pod's running phase" - }, - "startTime":{ - "type":"string", - "title":"Created", - "format":"date-time", - "description":"Pod's creation date" - } - }, - "required":[ - - ] - }, - "mirrorProperties":{ - "containers":{ - "title":"Containers", - "path":"workload.containers" - }, - "cluster":{ - "title":"Cluster", - "path":"workload.Namespace.Cluster.$identifier" - }, - "namespace":{ - "title":"Namespace", - "path":"workload.Namespace.$title" - } - }, - "calculationProperties":{ - - }, - "relations":{ - "Node":{ - "title":"Node", - "description":"The node the pod is running on", - "target":"node", - "required":false, - "many":false - }, - "workload":{ - "title":"Workload", - "description":"The workload responsible for the pod", - "target":"workload", - "required":false, - "many":false - } - } + "calculationProperties": {}, + "relations": { + "workloadManager": { + "title": "Manager", + "description": "A replicaset's workload. For example, Workload abc-ReplicaSet is managed by Workload xyz-Depolyment", + "target": "workload", + "required": false, + "many": false + }, + "Namespace": { + "title": "Namespace", + "target": "namespace", + "required": false, + "many": false + } + } + }, + { + "identifier": "pod", + "description": "This blueprint represents a k8s Pod", + "title": "Pod", + "icon": "Service", + "schema": { + "properties": { + "conditions": { + "type": "array", + "title": "Conditions", + "default": [], + "description": "Pod's conditions" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Pod" + }, + "phase": { + "type": "string", + "title": "Pod phase", + "description": "Pod's running phase" + }, + "startTime": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "Pod's creation date" + } + }, + "required": [] + }, + "mirrorProperties": { + "containers": { + "title": "Containers", + "path": "workload.containers" + }, + "cluster": { + "title": "Cluster", + "path": "workload.Namespace.Cluster.$identifier" + }, + "namespace": { + "title": "Namespace", + "path": "workload.Namespace.$title" + } + }, + "calculationProperties": {}, + "relations": { + "Node": { + "title": "Node", + "description": "The node the pod is running on", + "target": "node", + "required": false, + "many": false + }, + "workload": { + "title": "Workload", + "description": "The workload responsible for the pod", + "target": "workload", + "required": false, + "many": false + } + } + }, + { + "identifier": "argocdProject", + "description": "This blueprint ArgoCD Project", + "title": "ArgoCD Project", + "icon": "Argo", + "schema": { + "properties": {}, + "required": [] + }, + "mirrorProperties": { + "Cluster": { + "title": "Cluster", + "path": "Namespace.Cluster.$title" + } + }, + "calculationProperties": {}, + "relations": { + "Namespace": { + "title": "Namespace", + "description": "The project's Namespace", + "target": "namespace", + "required": false, + "many": false + } + } + }, + { + "identifier": "argocdRepo", + "description": "This blueprint represents a ArgoCD Repository", + "title": "ArgoCD Repository", + "icon": "Git", + "schema": { + "properties": { + "repoUrl": { + "type": "string", + "title": "Repository URL", + "format": "url", + "description": "The link to the repository" + }, + "repoType": { + "type": "string", + "title": "Repository Type", + "description": "The repository type" + } + }, + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Namespace": { + "target": "namespace", + "required": false, + "many": false + } + } + }, + { + "identifier": "argocdApp", + "description": "This blueprint represents an Argo CD Application", + "title": "ArgoCD App", + "icon": "Deployment", + "schema": { + "properties": { + "syncPolicy": { + "type": "object", + "title": "Sync Policy", + "description": "Options for syncing the application with the Git repository" + }, + "gitRepo": { + "type": "string", + "icon": "Git", + "title": "Repository URL", + "description": "The URL of the Git repository containing the application source code" + }, + "gitPath": { + "type": "string", + "title": "Path", + "description": "The path within the Git repository where the application manifests are located" + }, + "syncStatus": { + "type": "string", + "title": "Sync Status", + "description": "The sync status of the application" + }, + "gitRev": { + "type": "string", + "title": "Target Revision", + "description": "The Git revision (branch, tag, or commit hash) to deploy" + } + }, + "required": [] + }, + "mirrorProperties": { + "Cluster": { + "title": "Cluster", + "path": "destinationNamespace.Cluster.$title" + }, + "Namespace": { + "title": "Namespace", + "path": "argocdProject.Namespace.$title" + }, + "DestinationNamespace": { + "title": "Cluster", + "path": "destinationNamespace.$title" + } }, - { - "identifier": "argocdProject", - "description": "This blueprint ArgoCD Project", - "title": "ArgoCD Project", - "icon": "Argo", - "schema": { - "properties": {}, - "required": [] - }, - "mirrorProperties": { - "Cluster": { - "title": "Cluster", - "path": "Namespace.Cluster.$title" - } - }, - "calculationProperties": {}, - "relations": { - "Namespace": { - "title": "Namespace", - "description": "The project's Namespace", - "target": "namespace", - "required": false, - "many": false - } - } - }, - { - "identifier": "argocdRepo", - "description": "This blueprint represents a ArgoCD Repository", - "title": "ArgoCD Repository", - "icon": "Git", - "schema": { - "properties": { - "repoUrl": { - "type": "string", - "title": "Repository URL", - "format": "url", - "description": "The link to the repository" - }, - "repoType": { - "type": "string", - "title": "Repository Type", - "description": "The repository type" - } - }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "Namespace": { - "target": "namespace", - "required": false, - "many": false - } - } - }, - { - "identifier": "argocdApp", - "description": "This blueprint represents an Argo CD Application", - "title": "ArgoCD App", - "icon": "Deployment", - "schema": { - "properties": { - "syncPolicy": { - "type": "object", - "title": "Sync Policy", - "description": "Options for syncing the application with the Git repository" - }, - "gitRepo": { - "type": "string", - "icon": "Git", - "title": "Repository URL", - "description": "The URL of the Git repository containing the application source code" - }, - "gitPath": { - "type": "string", - "title": "Path", - "description": "The path within the Git repository where the application manifests are located" - }, - "syncStatus": { - "type": "string", - "title": "Sync Status", - "description": "The sync status of the application" - }, - "gitRev": { - "type": "string", - "title": "Target Revision", - "description": "The Git revision (branch, tag, or commit hash) to deploy" - } - }, - "required": [] - }, - "mirrorProperties": { - "Cluster": { - "title": "Cluster", - "path": "destinationNamespace.Cluster.$title" - }, - "Namespace": { - "title": "Namespace", - "path": "argocdProject.Namespace.$title" - }, - "DestinationNamespace": { - "title": "Cluster", - "path": "destinationNamespace.$title" - } - }, - "calculationProperties": {}, - "relations": { - "destinationNamespace": { - "title": "Destination Namespace", - "target": "namespace", - "required": false, - "many": false - }, - "argocdProject": { - "title": "Argo Project", - "target": "argocdProject", - "required": false, - "many": false - }, - "workload": { - "title": "Workload", - "target": "workload", - "required": false, - "many": true - } - } - } - ] \ No newline at end of file + "calculationProperties": {}, + "relations": { + "destinationNamespace": { + "title": "Destination Namespace", + "target": "namespace", + "required": false, + "many": false + }, + "argocdProject": { + "title": "Argo Project", + "target": "argocdProject", + "required": false, + "many": false + }, + "workload": { + "title": "Workload", + "target": "workload", + "required": false, + "many": true + } + } + } +] \ No newline at end of file diff --git a/kubernetes/blueprints/fluxcd-blueprints.json b/kubernetes/blueprints/fluxcd-blueprints.json index 2772735..187594e 100644 --- a/kubernetes/blueprints/fluxcd-blueprints.json +++ b/kubernetes/blueprints/fluxcd-blueprints.json @@ -1,499 +1,500 @@ [ - { - "identifier": "cluster", - "description": "This blueprint represents a Kubernetes Cluster", - "title": "Cluster", - "icon": "Cluster", - "schema": { - "properties": {}, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": {} + { + "identifier": "cluster", + "description": "This blueprint represents a Kubernetes Cluster", + "title": "Cluster", + "icon": "Cluster", + "schema": { + "properties": {}, + "required": [] }, - { - "identifier": "namespace", - "description": "This blueprint represents a k8s Namespace", - "title": "Namespace", - "icon": "Environment", - "schema": { - "properties": { - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Namespace was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Namespace" - } + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": {} + }, + { + "identifier": "namespace", + "description": "This blueprint represents a k8s Namespace", + "title": "Namespace", + "icon": "Environment", + "schema": { + "properties": { + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Namespace was created" }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "Cluster": { - "title": "Cluster", - "description": "The namespace's Kubernetes cluster", - "target": "cluster", - "required": false, - "many": false + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Namespace" } - } - }, - { - "identifier": "node", - "description": "This blueprint represents a k8s Node", - "title": "Node", - "icon": "Node", - "schema": { - "properties": { - "creationTimestamp": { - "type": "string", - "icon": "DeployedAt", - "title": "Created", - "format": "date-time", - "description": "When the Node was created (added to the cluster)" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Node" - }, - "ready": { - "type": "string", - "title": "Node Readiness", - "description": "Node ready status", - "enum": [ - "True", - "False" - ], - "enumColors": { - "False": "red", - "True": "green" - } - }, - "totalMemory": { - "type": "string", - "icon": "GPU", - "title": "Total Memory (kibibytes)", - "description": "Total memory capacity of the Node" - }, - "kubeletVersion": { - "type": "string", - "title": "Kubelet Version", - "description": "The node's kubelet version" - }, - "totalCPU": { - "type": "string", - "icon": "CPU", - "title": "Total CPU (milli-cores)", - "description": "Total CPU capacity of the Node" - } - }, - "required": [] }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "Cluster": { - "title": "Cluster", - "target": "cluster", - "required": false, - "many": true - } - } + "required": [] }, - { - "identifier": "workload", - "description": "This blueprint represents a k8s Workload. This includes all k8s objects which can create pods (deployments[replicasets], daemonsets, statefulsets...)", - "title": "Workload", - "icon": "Deployment", - "schema": { - "properties": { - "availableReplicas": { - "type": "number", - "title": "Running Replicas", - "description": "Current running replica count" - }, - "containers": { - "type": "array", - "title": "Containers", - "default": [], - "description": "The containers for each pod instance of the Workload" - }, - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Workload was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Workload" - }, - "replicas": { - "type": "number", - "title": "Wanted Replicas", - "description": "Wanted replica count" - }, - "strategy": { - "type": "string", - "title": "Strategy", - "description": "Rollout Strategy" - }, - "hasPrivileged": { - "type": "boolean", - "title": "Has Privileged Container" - }, - "hasLatest": { - "type": "boolean", - "title": "Has 'latest' tag", - "description": "Has Container with 'latest' as image tag" - }, - "hasLimits": { - "type": "boolean", - "title": "All containers have limits" - }, - "isHealthy": { - "type": "string", - "enum": [ - "Healthy", - "Unhealthy" - ], - "enumColors": { - "Healthy": "green", - "Unhealthy": "red" - }, - "title": "Workload Health" - }, - "kind": { - "title": "Workload Kind", - "description": "The kind of Workload", - "type": "string", - "enum": [ - "StatefulSet", - "DaemonSet", - "Deployment", - "Rollout" - ] - }, - "strategyConfig": { - "type": "object", - "title": "Strategy Config", - "description": "The workloads rollout strategy" + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Cluster": { + "title": "Cluster", + "description": "The namespace's Kubernetes cluster", + "target": "cluster", + "required": false, + "many": false + } + } + }, + { + "identifier": "node", + "description": "This blueprint represents a k8s Node", + "title": "Node", + "icon": "Node", + "schema": { + "properties": { + "creationTimestamp": { + "type": "string", + "icon": "DeployedAt", + "title": "Created", + "format": "date-time", + "description": "When the Node was created (added to the cluster)" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Node" + }, + "ready": { + "type": "string", + "title": "Node Readiness", + "description": "Node ready status", + "enum": [ + "True", + "False", + "Unknown" + ], + "enumColors": { + "False": "red", + "True": "green" } }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "namespace": { - "title": "Namespace", - "target": "namespace", - "required": false, - "many": false + "totalMemory": { + "type": "string", + "icon": "GPU", + "title": "Total Memory (kibibytes)", + "description": "Total memory capacity of the Node" + }, + "kubeletVersion": { + "type": "string", + "title": "Kubelet Version", + "description": "The node's kubelet version" + }, + "totalCPU": { + "type": "string", + "icon": "CPU", + "title": "Total CPU (milli-cores)", + "description": "Total CPU capacity of the Node" } - } + }, + "required": [] }, - { - "identifier": "replicaSet", - "description": "This blueprint represents a k8s ReplicaSet", - "title": "ReplicaSet", - "icon": "Deployment", - "schema": { - "properties": { - "replicaSetJson": { - "title": "ReplicaSet Json", - "type": "object", - "description": "The ReplicaSet json" - }, - "availableReplicas": { - "type": "number", - "title": "Running Replicas", - "description": "Current running replica count" - }, - "containers": { - "type": "array", - "title": "Containers", - "default": [], - "description": "The containers for each pod instance of the Workload" - }, - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Workload was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Workload" - }, - "replicas": { - "type": "number", - "title": "Wanted Replicas", - "description": "Wanted replica count" - }, - "strategy": { - "type": "string", - "title": "Strategy", - "description": "Rollout Strategy" - }, - "hasPrivileged": { - "type": "boolean", - "title": "Has Privileged Container" - }, - "hasLatest": { - "type": "boolean", - "title": "Has 'latest' tag", - "description": "Has Container with 'latest' as image tag" - }, - "hasLimits": { - "type": "boolean", - "title": "All containers have limits" - }, - "isHealthy": { - "type": "string", - "enum": [ - "Healthy", - "Unhealthy" - ], - "enumColors": { - "Healthy": "green", - "Unhealthy": "red" - }, - "title": "ReplicaSet Health" - }, - "strategyConfig": { - "type": "object", - "title": "Strategy Config", - "description": "The ReplicaSet rollout strategy" - } + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Cluster": { + "title": "Cluster", + "target": "cluster", + "required": false, + "many": true + } + } + }, + { + "identifier": "workload", + "description": "This blueprint represents a k8s Workload. This includes all k8s objects which can create pods (deployments[replicasets], daemonsets, statefulsets...)", + "title": "Workload", + "icon": "Deployment", + "schema": { + "properties": { + "availableReplicas": { + "type": "number", + "title": "Running Replicas", + "description": "Current running replica count" }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "replicaSetManager": { - "title": "Manager", - "target": "workload", - "required": false, - "many": false + "containers": { + "type": "array", + "title": "Containers", + "default": [], + "description": "The containers for each pod instance of the Workload" + }, + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Workload was created" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Workload" + }, + "replicas": { + "type": "number", + "title": "Wanted Replicas", + "description": "Wanted replica count" + }, + "strategy": { + "type": "string", + "title": "Strategy", + "description": "Rollout Strategy" + }, + "hasPrivileged": { + "type": "boolean", + "title": "Has Privileged Container" + }, + "hasLatest": { + "type": "boolean", + "title": "Has 'latest' tag", + "description": "Has Container with 'latest' as image tag" + }, + "hasLimits": { + "type": "boolean", + "title": "All containers have limits" + }, + "isHealthy": { + "type": "string", + "enum": [ + "Healthy", + "Unhealthy" + ], + "enumColors": { + "Healthy": "green", + "Unhealthy": "red" + }, + "title": "Workload Health" + }, + "kind": { + "title": "Workload Kind", + "description": "The kind of Workload", + "type": "string", + "enum": [ + "StatefulSet", + "DaemonSet", + "Deployment", + "Rollout" + ] + }, + "strategyConfig": { + "type": "object", + "title": "Strategy Config", + "description": "The workloads rollout strategy" } - } + }, + "required": [] }, - { - "identifier": "pod", - "description": "This blueprint represents a k8s Pod", - "title": "Pod", - "icon": "Service", - "schema": { - "properties": { - "conditions": { - "type": "array", - "title": "Conditions", - "default": [], - "description": "Pod's conditions" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Pod" - }, - "phase": { - "type": "string", - "title": "Pod phase", - "description": "Pod's running phase" - }, - "startTime": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "Pod's creation date" - } + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "namespace": { + "title": "Namespace", + "target": "namespace", + "required": false, + "many": false + } + } + }, + { + "identifier": "replicaSet", + "description": "This blueprint represents a k8s ReplicaSet", + "title": "ReplicaSet", + "icon": "Deployment", + "schema": { + "properties": { + "replicaSetJson": { + "title": "ReplicaSet Json", + "type": "object", + "description": "The ReplicaSet json" + }, + "availableReplicas": { + "type": "number", + "title": "Running Replicas", + "description": "Current running replica count" }, - "required": [] - }, - "mirrorProperties": { "containers": { + "type": "array", "title": "Containers", - "path": "workload.containers" + "default": [], + "description": "The containers for each pod instance of the Workload" + }, + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Workload was created" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Workload" + }, + "replicas": { + "type": "number", + "title": "Wanted Replicas", + "description": "Wanted replica count" + }, + "strategy": { + "type": "string", + "title": "Strategy", + "description": "Rollout Strategy" + }, + "hasPrivileged": { + "type": "boolean", + "title": "Has Privileged Container" + }, + "hasLatest": { + "type": "boolean", + "title": "Has 'latest' tag", + "description": "Has Container with 'latest' as image tag" + }, + "hasLimits": { + "type": "boolean", + "title": "All containers have limits" + }, + "isHealthy": { + "type": "string", + "enum": [ + "Healthy", + "Unhealthy" + ], + "enumColors": { + "Healthy": "green", + "Unhealthy": "red" + }, + "title": "ReplicaSet Health" + }, + "strategyConfig": { + "type": "object", + "title": "Strategy Config", + "description": "The ReplicaSet rollout strategy" } }, - "calculationProperties": {}, - "relations": { - "Node": { - "title": "Node", - "description": "The node the pod is running on", - "target": "node", - "required": false, - "many": false - }, - "workload": { - "title": "Workload", - "description": "The workload responsible for the pod", - "target": "workload", - "required": false, - "many": false - }, - "replicaSet": { - "title": "ReplicaSet", - "description": "The ReplicaSet managing the pod (if it exists)", - "target": "replicaSet", - "required": false, - "many": false + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "replicaSetManager": { + "title": "Manager", + "target": "workload", + "required": false, + "many": false + } + } + }, + { + "identifier": "pod", + "description": "This blueprint represents a k8s Pod", + "title": "Pod", + "icon": "Service", + "schema": { + "properties": { + "conditions": { + "type": "array", + "title": "Conditions", + "default": [], + "description": "Pod's conditions" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Pod" + }, + "phase": { + "type": "string", + "title": "Pod phase", + "description": "Pod's running phase" + }, + "startTime": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "Pod's creation date" } + }, + "required": [] + }, + "mirrorProperties": { + "containers": { + "title": "Containers", + "path": "workload.containers" } }, - { - "identifier": "fluxSource", - "description": "Flux Source", - "title": "Flux Source", - "icon": "Fluxcd", - "schema": { - "properties": { - "repoURL": { - "type": "string", - "icon": "Git", - "title": "Repository URL", - "description": "The URL of the repository containing the application source code" - }, - "sourceType": { - "icon": "DefaultProperty", - "title": "Source Type", - "description": "The flux source type", - "type": "string", - "enum": [ - "HelmRepository", - "GitRepository" - ], - "enumColors": { - "HelmRepository": "turquoise", - "GitRepository": "green" - } - }, - "interval": { - "icon": "Clock", - "type": "string", - "title": "Interval", - "description": "Interval at which the GitRepository URL is checked for updates" - }, - "createdAt": { - "title": "Created At", - "type": "string", - "format": "date-time", - "icon": "DefaultProperty" - }, - "branch": { - "title": "Branch", - "type": "string", - "icon": "DefaultProperty" - } - }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "aggregationProperties": {}, - "relations": { - "namespace": { - "title": "Namespace", - "target": "namespace", - "required": false, - "many": false + "calculationProperties": {}, + "relations": { + "Node": { + "title": "Node", + "description": "The node the pod is running on", + "target": "node", + "required": false, + "many": false + }, + "workload": { + "title": "Workload", + "description": "The workload responsible for the pod", + "target": "workload", + "required": false, + "many": false + }, + "replicaSet": { + "title": "ReplicaSet", + "description": "The ReplicaSet managing the pod (if it exists)", + "target": "replicaSet", + "required": false, + "many": false + } + } + }, + { + "identifier": "fluxSource", + "description": "Flux Source", + "title": "Flux Source", + "icon": "Fluxcd", + "schema": { + "properties": { + "repoURL": { + "type": "string", + "icon": "Git", + "title": "Repository URL", + "description": "The URL of the repository containing the application source code" + }, + "sourceType": { + "icon": "DefaultProperty", + "title": "Source Type", + "description": "The flux source type", + "type": "string", + "enum": [ + "HelmRepository", + "GitRepository" + ], + "enumColors": { + "HelmRepository": "turquoise", + "GitRepository": "green" } + }, + "interval": { + "icon": "Clock", + "type": "string", + "title": "Interval", + "description": "Interval at which the GitRepository URL is checked for updates" + }, + "createdAt": { + "title": "Created At", + "type": "string", + "format": "date-time", + "icon": "DefaultProperty" + }, + "branch": { + "title": "Branch", + "type": "string", + "icon": "DefaultProperty" } }, - { - "identifier": "fluxApplication", - "description": "This blueprint represents Flux Application which can be HelmRelease or Kustomization", - "title": "Flux Application", - "icon": "Fluxcd", - "schema": { - "properties": { - "targetNamespace": { - "icon": "DefaultProperty", - "type": "string", - "title": "Target Namespace" - }, - "namespace": { - "type": "string", - "title": "Namespace", - "icon": "DefaultProperty" - }, - "ready": { - "icon": "DefaultProperty", - "title": "Health Status", - "description": "The health status of the application", - "type": "string", - "enum": [ - "True", - "False", - "Unknown" - ], - "enumColors": { - "True": "green", - "False": "red", - "Unknown": "yellow" - } - }, - "createdAt": { - "title": "Created At", - "type": "string", - "format": "date-time", - "icon": "DefaultProperty" - }, - "applicationType": { - "icon": "DefaultProperty", - "title": "Application Type", - "description": "Kustomization or HelmRelease", - "type": "string", - "enum": [ - "HelmRelease", - "Kustomization" - ], - "enumColors": { - "HelmRelease": "lightGray", - "Kustomization": "lightGray" - } - }, - "interval": { - "icon": "Clock", - "type": "string", - "title": "Interval", - "description": "The interval at which the application will be reconciled" - }, - "path": { - "title": "Path", - "type": "string", - "icon": "DefaultProperty" - }, - "prune": { - "title": "Prune", - "type": "boolean", - "icon": "DefaultProperty" - } - }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "aggregationProperties": {}, - "relations": { - "source": { - "title": "Source", - "target": "fluxSource", - "required": false, - "many": false + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "aggregationProperties": {}, + "relations": { + "namespace": { + "title": "Namespace", + "target": "namespace", + "required": false, + "many": false + } + } + }, + { + "identifier": "fluxApplication", + "description": "This blueprint represents Flux Application which can be HelmRelease or Kustomization", + "title": "Flux Application", + "icon": "Fluxcd", + "schema": { + "properties": { + "targetNamespace": { + "icon": "DefaultProperty", + "type": "string", + "title": "Target Namespace" + }, + "namespace": { + "type": "string", + "title": "Namespace", + "icon": "DefaultProperty" + }, + "ready": { + "icon": "DefaultProperty", + "title": "Health Status", + "description": "The health status of the application", + "type": "string", + "enum": [ + "True", + "False", + "Unknown" + ], + "enumColors": { + "True": "green", + "False": "red", + "Unknown": "yellow" } + }, + "createdAt": { + "title": "Created At", + "type": "string", + "format": "date-time", + "icon": "DefaultProperty" + }, + "applicationType": { + "icon": "DefaultProperty", + "title": "Application Type", + "description": "Kustomization or HelmRelease", + "type": "string", + "enum": [ + "HelmRelease", + "Kustomization" + ], + "enumColors": { + "HelmRelease": "lightGray", + "Kustomization": "lightGray" + } + }, + "interval": { + "icon": "Clock", + "type": "string", + "title": "Interval", + "description": "The interval at which the application will be reconciled" + }, + "path": { + "title": "Path", + "type": "string", + "icon": "DefaultProperty" + }, + "prune": { + "title": "Prune", + "type": "boolean", + "icon": "DefaultProperty" } + }, + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "aggregationProperties": {}, + "relations": { + "source": { + "title": "Source", + "target": "fluxSource", + "required": false, + "many": false } - ] \ No newline at end of file + } + } +] \ No newline at end of file diff --git a/kubernetes/blueprints/istio-blueprints.json b/kubernetes/blueprints/istio-blueprints.json index aa7dafe..246acb8 100644 --- a/kubernetes/blueprints/istio-blueprints.json +++ b/kubernetes/blueprints/istio-blueprints.json @@ -5,17 +5,12 @@ "title": "Cluster", "icon": "Cluster", "schema": { - "properties": { - }, - "required": [ - ] - }, - "mirrorProperties": { - }, - "calculationProperties": { + "properties": {}, + "required": [] }, - "relations": { - } + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": {} }, { "identifier": "node", @@ -42,7 +37,8 @@ "description": "Node ready status", "enum": [ "True", - "False" + "False", + "Unknown" ], "enumColors": { "False": "red", @@ -67,13 +63,10 @@ "description": "Total CPU capacity of the Node" } }, - "required": [ - ] - }, - "mirrorProperties": { - }, - "calculationProperties": { + "required": [] }, + "mirrorProperties": {}, + "calculationProperties": {}, "relations": { "Cluster": { "title": "Cluster", @@ -102,13 +95,10 @@ "description": "Labels of the Namespace" } }, - "required": [ - ] - }, - "mirrorProperties": { - }, - "calculationProperties": { + "required": [] }, + "mirrorProperties": {}, + "calculationProperties": {}, "relations": { "Cluster": { "title": "Cluster", @@ -239,8 +229,7 @@ "conditions": { "type": "array", "title": "Conditions", - "default": [ - ], + "default": [], "description": "Pod's conditions" }, "labels": { @@ -260,8 +249,7 @@ "description": "Pod's creation date" } }, - "required": [ - ] + "required": [] }, "mirrorProperties": { "containers": { @@ -277,8 +265,7 @@ "path": "workload.Namespace.$title" } }, - "calculationProperties": { - }, + "calculationProperties": {}, "relations": { "replicaSet": { "title": "ReplicaSet", diff --git a/kubernetes/blueprints/kubernetes_complete_usecase_bps.json b/kubernetes/blueprints/kubernetes_complete_usecase_bps.json index 4084092..8b7e47c 100644 --- a/kubernetes/blueprints/kubernetes_complete_usecase_bps.json +++ b/kubernetes/blueprints/kubernetes_complete_usecase_bps.json @@ -1,381 +1,381 @@ [ - { - "identifier": "cluster", - "description": "This blueprint represents a Kubernetes Cluster", - "title": "Cluster", - "icon": "Cluster", - "schema": { - "properties": {}, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": {} + { + "identifier": "cluster", + "description": "This blueprint represents a Kubernetes Cluster", + "title": "Cluster", + "icon": "Cluster", + "schema": { + "properties": {}, + "required": [] }, - { - "identifier": "node", - "description": "This blueprint represents a k8s Node", - "title": "Node", - "icon": "Node", - "schema": { - "properties": { - "creationTimestamp": { - "type": "string", - "icon": "DeployedAt", - "title": "Created", - "format": "date-time", - "description": "When the Node was created (added to the cluster)" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Node" - }, - "ready": { - "type": "string", - "title": "Node Readiness", - "description": "Node ready status", - "enum": [ - "True", - "False" - ], - "enumColors": { - "False": "red", - "True": "green" - } - }, - "totalMemory": { - "type": "string", - "icon": "GPU", - "title": "Total Memory (kibibytes)", - "description": "Total memory capacity of the Node" - }, - "kubeletVersion": { - "type": "string", - "title": "Kubelet Version", - "description": "The node's kubelet version" - }, - "totalCPU": { - "type": "string", - "icon": "CPU", - "title": "Total CPU (milli-cores)", - "description": "Total CPU capacity of the Node" + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": {} + }, + { + "identifier": "node", + "description": "This blueprint represents a k8s Node", + "title": "Node", + "icon": "Node", + "schema": { + "properties": { + "creationTimestamp": { + "type": "string", + "icon": "DeployedAt", + "title": "Created", + "format": "date-time", + "description": "When the Node was created (added to the cluster)" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Node" + }, + "ready": { + "type": "string", + "title": "Node Readiness", + "description": "Node ready status", + "enum": [ + "True", + "False", + "Unknown" + ], + "enumColors": { + "False": "red", + "True": "green" } }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "Cluster": { - "title": "Cluster", - "target": "cluster", - "required": false, - "many": true + "totalMemory": { + "type": "string", + "icon": "GPU", + "title": "Total Memory (kibibytes)", + "description": "Total memory capacity of the Node" + }, + "kubeletVersion": { + "type": "string", + "title": "Kubelet Version", + "description": "The node's kubelet version" + }, + "totalCPU": { + "type": "string", + "icon": "CPU", + "title": "Total CPU (milli-cores)", + "description": "Total CPU capacity of the Node" } - } + }, + "required": [] }, - { - "identifier": "namespace", - "description": "This blueprint represents a k8s Namespace", - "title": "Namespace", - "icon": "Environment", - "schema": { - "properties": { - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Namespace was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Namespace" - } + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Cluster": { + "title": "Cluster", + "target": "cluster", + "required": false, + "many": true + } + } + }, + { + "identifier": "namespace", + "description": "This blueprint represents a k8s Namespace", + "title": "Namespace", + "icon": "Environment", + "schema": { + "properties": { + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Namespace was created" }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "Cluster": { - "title": "Cluster", - "description": "The namespace's Kubernetes cluster", - "target": "cluster", - "required": false, - "many": false + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Namespace" } - } + }, + "required": [] }, - { - "identifier": "workload", - "description": "This blueprint represents a k8s Workload. This includes all k8s objects which can create pods (deployments[replicasets], daemonsets, statefulsets...)", - "title": "Workload", - "icon": "Deployment", - "schema": { - "properties": { - "availableReplicas": { - "type": "number", - "title": "Running Replicas", - "description": "Current running replica count" - }, - "containers": { - "type": "array", - "title": "Containers", - "default": [], - "description": "The containers for each pod instance of the Workload" - }, - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Workload was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Workload" - }, - "replicas": { - "type": "number", - "title": "Wanted Replicas", - "description": "Wanted replica count" - }, - "strategy": { - "type": "string", - "title": "Strategy", - "description": "Rollout Strategy" - }, - "hasPrivileged": { - "type": "boolean", - "title": "Has Privileged Container" - }, - "hasLatest": { - "type": "boolean", - "title": "Has 'latest' tag", - "description": "Has Container with 'latest' as image tag" - }, - "hasLimits": { - "type": "boolean", - "title": "All containers have limits" - }, - "isHealthy": { - "type": "string", - "enum": [ - "Healthy", - "Unhealthy" - ], - "enumColors": { - "Healthy": "green", - "Unhealthy": "red" - }, - "title": "Workload Health" - }, - "kind": { - "title": "Workload Kind", - "description": "The kind of Workload", - "type": "string", - "enum": [ - "StatefulSet", - "DaemonSet", - "Deployment", - "Rollout" - ] + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Cluster": { + "title": "Cluster", + "description": "The namespace's Kubernetes cluster", + "target": "cluster", + "required": false, + "many": false + } + } + }, + { + "identifier": "workload", + "description": "This blueprint represents a k8s Workload. This includes all k8s objects which can create pods (deployments[replicasets], daemonsets, statefulsets...)", + "title": "Workload", + "icon": "Deployment", + "schema": { + "properties": { + "availableReplicas": { + "type": "number", + "title": "Running Replicas", + "description": "Current running replica count" + }, + "containers": { + "type": "array", + "title": "Containers", + "default": [], + "description": "The containers for each pod instance of the Workload" + }, + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Workload was created" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Workload" + }, + "replicas": { + "type": "number", + "title": "Wanted Replicas", + "description": "Wanted replica count" + }, + "strategy": { + "type": "string", + "title": "Strategy", + "description": "Rollout Strategy" + }, + "hasPrivileged": { + "type": "boolean", + "title": "Has Privileged Container" + }, + "hasLatest": { + "type": "boolean", + "title": "Has 'latest' tag", + "description": "Has Container with 'latest' as image tag" + }, + "hasLimits": { + "type": "boolean", + "title": "All containers have limits" + }, + "isHealthy": { + "type": "string", + "enum": [ + "Healthy", + "Unhealthy" + ], + "enumColors": { + "Healthy": "green", + "Unhealthy": "red" }, - "strategyConfig": { - "type": "object", - "title": "Strategy Config", - "description": "The workloads rollout strategy" - } + "title": "Workload Health" }, - "required": [] - }, - "mirrorProperties": { - "Cluster": { - "title": "Cluster", - "path": "Namespace.Cluster.$title" + "kind": { + "title": "Workload Kind", + "description": "The kind of Workload", + "type": "string", + "enum": [ + "StatefulSet", + "DaemonSet", + "Deployment", + "Rollout" + ] }, - "namespace": { - "title": "Namespace", - "path": "Namespace.$title" + "strategyConfig": { + "type": "object", + "title": "Strategy Config", + "description": "The workloads rollout strategy" } }, - "calculationProperties": {}, - "relations": { - "workloadManager": { - "title": "Manager", - "description": "A replicaset's workload. For example, Workload abc-ReplicaSet is managed by Workload xyz-Depolyment", - "target": "workload", - "required": false, - "many": false - }, - "Namespace": { - "title": "Namespace", - "target": "namespace", - "required": false, - "many": false - } - } + "required": [] }, - { - "identifier": "replicaSet", - "description": "This blueprint represents a k8s ReplicaSet", - "title": "ReplicaSet", - "icon": "Deployment", - "schema": { - "properties": { - "replicaSetJson": { - "title": "ReplicaSet Json", - "type": "object", - "description": "The ReplicaSet json" - }, - "availableReplicas": { - "type": "number", - "title": "Running Replicas", - "description": "Current running replica count" - }, - "containers": { - "type": "array", - "title": "Containers", - "default": [], - "description": "The containers for each pod instance of the Workload" - }, - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Workload was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Workload" - }, - "replicas": { - "type": "number", - "title": "Wanted Replicas", - "description": "Wanted replica count" - }, - "strategy": { - "type": "string", - "title": "Strategy", - "description": "Rollout Strategy" - }, - "hasPrivileged": { - "type": "boolean", - "title": "Has Privileged Container" - }, - "hasLatest": { - "type": "boolean", - "title": "Has 'latest' tag", - "description": "Has Container with 'latest' as image tag" - }, - "hasLimits": { - "type": "boolean", - "title": "All containers have limits" - }, - "isHealthy": { - "type": "string", - "enum": [ - "Healthy", - "Unhealthy" - ], - "enumColors": { - "Healthy": "green", - "Unhealthy": "red" - }, - "title": "ReplicaSet Health" - }, - "strategyConfig": { - "type": "object", - "title": "Strategy Config", - "description": "The ReplicaSet rollout strategy" - } - }, - "required": [] + "mirrorProperties": { + "Cluster": { + "title": "Cluster", + "path": "Namespace.Cluster.$title" }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "replicaSetManager": { - "title": "Manager", - "target": "workload", - "required": false, - "many": false - } + "namespace": { + "title": "Namespace", + "path": "Namespace.$title" } }, - { - "identifier": "pod", - "description": "This blueprint represents a k8s Pod", - "title": "Pod", - "icon": "Service", - "schema": { - "properties": { - "conditions": { - "type": "array", - "title": "Conditions", - "default": [], - "description": "Pod's conditions" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Pod" - }, - "phase": { - "type": "string", - "title": "Pod phase", - "description": "Pod's running phase" - }, - "startTime": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "Pod's creation date" - } - }, - "required": [] + "calculationProperties": {}, + "relations": { + "workloadManager": { + "title": "Manager", + "description": "A replicaset's workload. For example, Workload abc-ReplicaSet is managed by Workload xyz-Depolyment", + "target": "workload", + "required": false, + "many": false }, - "mirrorProperties": { + "Namespace": { + "title": "Namespace", + "target": "namespace", + "required": false, + "many": false + } + } + }, + { + "identifier": "replicaSet", + "description": "This blueprint represents a k8s ReplicaSet", + "title": "ReplicaSet", + "icon": "Deployment", + "schema": { + "properties": { + "replicaSetJson": { + "title": "ReplicaSet Json", + "type": "object", + "description": "The ReplicaSet json" + }, + "availableReplicas": { + "type": "number", + "title": "Running Replicas", + "description": "Current running replica count" + }, "containers": { + "type": "array", "title": "Containers", - "path": "workload.containers" + "default": [], + "description": "The containers for each pod instance of the Workload" + }, + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Workload was created" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Workload" + }, + "replicas": { + "type": "number", + "title": "Wanted Replicas", + "description": "Wanted replica count" + }, + "strategy": { + "type": "string", + "title": "Strategy", + "description": "Rollout Strategy" }, - "cluster": { - "title": "Cluster", - "path": "workload.Namespace.Cluster.$identifier" + "hasPrivileged": { + "type": "boolean", + "title": "Has Privileged Container" }, - "namespace": { - "title": "Namespace", - "path": "workload.Namespace.$title" + "hasLatest": { + "type": "boolean", + "title": "Has 'latest' tag", + "description": "Has Container with 'latest' as image tag" + }, + "hasLimits": { + "type": "boolean", + "title": "All containers have limits" + }, + "isHealthy": { + "type": "string", + "enum": [ + "Healthy", + "Unhealthy" + ], + "enumColors": { + "Healthy": "green", + "Unhealthy": "red" + }, + "title": "ReplicaSet Health" + }, + "strategyConfig": { + "type": "object", + "title": "Strategy Config", + "description": "The ReplicaSet rollout strategy" } }, - "calculationProperties": {}, - "relations": { - "replicaSet": { - "title": "ReplicaSet", - "description": "The ReplicaSet managing the pod (if it exists)", - "target": "replicaSet", - "required": false, - "many": false + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "replicaSetManager": { + "title": "Manager", + "target": "workload", + "required": false, + "many": false + } + } + }, + { + "identifier": "pod", + "description": "This blueprint represents a k8s Pod", + "title": "Pod", + "icon": "Service", + "schema": { + "properties": { + "conditions": { + "type": "array", + "title": "Conditions", + "default": [], + "description": "Pod's conditions" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Pod" }, - "Node": { - "title": "Node", - "description": "The node the pod is running on", - "target": "node", - "required": false, - "many": false + "phase": { + "type": "string", + "title": "Pod phase", + "description": "Pod's running phase" }, - "workload": { - "title": "Workload", - "description": "The workload responsible for the pod", - "target": "workload", - "required": false, - "many": false + "startTime": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "Pod's creation date" } + }, + "required": [] + }, + "mirrorProperties": { + "containers": { + "title": "Containers", + "path": "workload.containers" + }, + "cluster": { + "title": "Cluster", + "path": "workload.Namespace.Cluster.$identifier" + }, + "namespace": { + "title": "Namespace", + "path": "workload.Namespace.$title" + } + }, + "calculationProperties": {}, + "relations": { + "replicaSet": { + "title": "ReplicaSet", + "description": "The ReplicaSet managing the pod (if it exists)", + "target": "replicaSet", + "required": false, + "many": false + }, + "Node": { + "title": "Node", + "description": "The node the pod is running on", + "target": "node", + "required": false, + "many": false + }, + "workload": { + "title": "Workload", + "description": "The workload responsible for the pod", + "target": "workload", + "required": false, + "many": false } } -] - + } +] \ No newline at end of file diff --git a/kubernetes/blueprints/kubernetes_knative_usecase.json b/kubernetes/blueprints/kubernetes_knative_usecase.json index 4a5f725..39bf6eb 100644 --- a/kubernetes/blueprints/kubernetes_knative_usecase.json +++ b/kubernetes/blueprints/kubernetes_knative_usecase.json @@ -1,539 +1,539 @@ [ - { - "identifier": "cluster", - "description": "This blueprint represents a Kubernetes Cluster", - "title": "Cluster", - "icon": "Cluster", - "schema": { - "properties": {}, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": {} + { + "identifier": "cluster", + "description": "This blueprint represents a Kubernetes Cluster", + "title": "Cluster", + "icon": "Cluster", + "schema": { + "properties": {}, + "required": [] }, - { - "identifier": "node", - "description": "This blueprint represents a k8s Node", - "title": "Node", - "icon": "Node", - "schema": { - "properties": { - "creationTimestamp": { - "type": "string", - "icon": "DeployedAt", - "title": "Created", - "format": "date-time", - "description": "When the Node was created (added to the cluster)" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Node" - }, - "ready": { - "type": "string", - "title": "Node Readiness", - "description": "Node ready status", - "enum": [ - "True", - "False" - ], - "enumColors": { - "False": "red", - "True": "green" - } - }, - "totalMemory": { - "type": "string", - "icon": "GPU", - "title": "Total Memory (kibibytes)", - "description": "Total memory capacity of the Node" - }, - "kubeletVersion": { - "type": "string", - "title": "Kubelet Version", - "description": "The node's kubelet version" - }, - "totalCPU": { - "type": "string", - "icon": "CPU", - "title": "Total CPU (milli-cores)", - "description": "Total CPU capacity of the Node" + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": {} + }, + { + "identifier": "node", + "description": "This blueprint represents a k8s Node", + "title": "Node", + "icon": "Node", + "schema": { + "properties": { + "creationTimestamp": { + "type": "string", + "icon": "DeployedAt", + "title": "Created", + "format": "date-time", + "description": "When the Node was created (added to the cluster)" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Node" + }, + "ready": { + "type": "string", + "title": "Node Readiness", + "description": "Node ready status", + "enum": [ + "True", + "False", + "Unknown" + ], + "enumColors": { + "False": "red", + "True": "green" } }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "Cluster": { - "title": "Cluster", - "target": "cluster", - "required": false, - "many": true + "totalMemory": { + "type": "string", + "icon": "GPU", + "title": "Total Memory (kibibytes)", + "description": "Total memory capacity of the Node" + }, + "kubeletVersion": { + "type": "string", + "title": "Kubelet Version", + "description": "The node's kubelet version" + }, + "totalCPU": { + "type": "string", + "icon": "CPU", + "title": "Total CPU (milli-cores)", + "description": "Total CPU capacity of the Node" } - } + }, + "required": [] }, - { - "identifier": "namespace", - "description": "This blueprint represents a k8s Namespace", - "title": "Namespace", - "icon": "Environment", - "schema": { - "properties": { - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Namespace was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Namespace" - } + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Cluster": { + "title": "Cluster", + "target": "cluster", + "required": false, + "many": true + } + } + }, + { + "identifier": "namespace", + "description": "This blueprint represents a k8s Namespace", + "title": "Namespace", + "icon": "Environment", + "schema": { + "properties": { + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Namespace was created" }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "Cluster": { - "title": "Cluster", - "description": "The namespace's Kubernetes cluster", - "target": "cluster", - "required": false, - "many": false + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Namespace" } - } + }, + "required": [] }, - { - "identifier": "knativeService", - "description": "This blueprint represents a Knative service", - "title": "Knative Service", - "icon": "Service", - "schema": { - "properties": { - "creationTimestamp": { - "icon": "Clock", - "type": "string", - "title": "Created", - "description": "When the Knative service was created", - "format": "date-time" - }, - "labels": { - "icon": "BlankPage", - "type": "object", - "title": "Labels", - "description": "Labels of the Knative service" - }, - "containerConcurrency": { - "type": "number", - "title": "Container Concurrency" - }, - "containers": { - "icon": "Docker", - "title": "Containers", - "type": "array", - "description": "The array of containers configured for this service" - }, - "trafficConfiguration": { - "icon": "Cloud", - "title": "Traffic Configuration", - "type": "array", - "description": "The traffic configuration of this service" - }, - "url": { - "title": "URL", - "type": "string", - "description": "The knative service's URL", - "icon": "RestApi", - "format": "url" - }, - "generation": { - "title": "Generation", - "description": "The Knative service's generation", - "type": "number" - }, - "ready": { - "title": "Ready", - "type": "string", - "enum": [ - "True", - "False" - ], - "enumColors": { - "True": "green", - "False": "red" - } - }, - "serviceTimeout": { - "icon": "DefaultProperty", - "title": "Service Timeout(s)", - "description": "The timeout configured for this service in seconds", - "type": "number" - } - }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "namespace": { - "title": "Namespace", - "target": "namespace", - "required": false, - "many": false + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Cluster": { + "title": "Cluster", + "description": "The namespace's Kubernetes cluster", + "target": "cluster", + "required": false, + "many": false + } + } + }, + { + "identifier": "knativeService", + "description": "This blueprint represents a Knative service", + "title": "Knative Service", + "icon": "Service", + "schema": { + "properties": { + "creationTimestamp": { + "icon": "Clock", + "type": "string", + "title": "Created", + "description": "When the Knative service was created", + "format": "date-time" + }, + "labels": { + "icon": "BlankPage", + "type": "object", + "title": "Labels", + "description": "Labels of the Knative service" + }, + "containerConcurrency": { + "type": "number", + "title": "Container Concurrency" + }, + "containers": { + "icon": "Docker", + "title": "Containers", + "type": "array", + "description": "The array of containers configured for this service" + }, + "trafficConfiguration": { + "icon": "Cloud", + "title": "Traffic Configuration", + "type": "array", + "description": "The traffic configuration of this service" + }, + "url": { + "title": "URL", + "type": "string", + "description": "The knative service's URL", + "icon": "RestApi", + "format": "url" + }, + "generation": { + "title": "Generation", + "description": "The Knative service's generation", + "type": "number" + }, + "ready": { + "title": "Ready", + "type": "string", + "enum": [ + "True", + "False" + ], + "enumColors": { + "True": "green", + "False": "red" } + }, + "serviceTimeout": { + "icon": "DefaultProperty", + "title": "Service Timeout(s)", + "description": "The timeout configured for this service in seconds", + "type": "number" } + }, + "required": [] }, - { - "identifier": "knativeConfiguration", - "description": "This blueprint represents a Knative Configuration", - "title": "Knative Configuration", - "icon": "CICD", - "schema": { - "properties": { - "creationTimestamp": { - "icon": "Clock", - "type": "string", - "title": "Created", - "description": "When the Knative service was created", - "format": "date-time" - }, - "labels": { - "icon": "BlankPage", - "type": "object", - "title": "Labels", - "description": "Labels of the Knative service" - }, - "ready": { - "title": "Ready", - "type": "string", - "enum": [ - "True", - "False" - ], - "enumColors": { - "True": "green", - "False": "red" - } - }, - "containers": { - "icon": "Docker", - "title": "Containers", - "type": "array", - "description": "Container specs for this configuration" - } - }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "knativeService": { - "title": "Kative Service", - "description": "The service managing this configuration", - "target": "knativeService", - "required": false, - "many": false + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "namespace": { + "title": "Namespace", + "target": "namespace", + "required": false, + "many": false + } + } + }, + { + "identifier": "knativeConfiguration", + "description": "This blueprint represents a Knative Configuration", + "title": "Knative Configuration", + "icon": "CICD", + "schema": { + "properties": { + "creationTimestamp": { + "icon": "Clock", + "type": "string", + "title": "Created", + "description": "When the Knative service was created", + "format": "date-time" + }, + "labels": { + "icon": "BlankPage", + "type": "object", + "title": "Labels", + "description": "Labels of the Knative service" + }, + "ready": { + "title": "Ready", + "type": "string", + "enum": [ + "True", + "False" + ], + "enumColors": { + "True": "green", + "False": "red" } + }, + "containers": { + "icon": "Docker", + "title": "Containers", + "type": "array", + "description": "Container specs for this configuration" } + }, + "required": [] }, - { - "identifier": "knativeRevision", - "description": "This blueprint represents a Knative revision", - "title": "Knative Revision", - "icon": "Docker", - "schema": { - "properties": { - "creationTimestamp": { - "icon": "Clock", - "type": "string", - "title": "Created", - "description": "When the Knative service was created", - "format": "date-time" - }, - "labels": { - "icon": "BlankPage", - "type": "object", - "title": "Labels", - "description": "Labels of the Knative service" - }, - "isActive": { - "type": "string", - "title": "Is Active", - "description": "Is the revision active currently", - "enum": [ - "True", - "False" - ], - "enumColors": { - "True": "green", - "False": "red" - } - }, - "containers": { - "icon": "Docker", - "title": "Containers", - "type": "array", - "description": "This revisions container configuration" - }, - "replicaCount": { - "title": "Replica Count", - "description": "This revision's current replica count", - "type": "number" - } - }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "knativeConfiguration": { - "title": "Knative Configuration", - "description": "The revisions configuration", - "target": "knativeConfiguration", - "required": false, - "many": false + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "knativeService": { + "title": "Kative Service", + "description": "The service managing this configuration", + "target": "knativeService", + "required": false, + "many": false + } + } + }, + { + "identifier": "knativeRevision", + "description": "This blueprint represents a Knative revision", + "title": "Knative Revision", + "icon": "Docker", + "schema": { + "properties": { + "creationTimestamp": { + "icon": "Clock", + "type": "string", + "title": "Created", + "description": "When the Knative service was created", + "format": "date-time" + }, + "labels": { + "icon": "BlankPage", + "type": "object", + "title": "Labels", + "description": "Labels of the Knative service" + }, + "isActive": { + "type": "string", + "title": "Is Active", + "description": "Is the revision active currently", + "enum": [ + "True", + "False" + ], + "enumColors": { + "True": "green", + "False": "red" } + }, + "containers": { + "icon": "Docker", + "title": "Containers", + "type": "array", + "description": "This revisions container configuration" + }, + "replicaCount": { + "title": "Replica Count", + "description": "This revision's current replica count", + "type": "number" } + }, + "required": [] }, - { - "identifier": "knativeRoute", - "description": "This blueprint represents a Knative Route in our k8s cluster", - "title": "Knative Route", - "icon": "Cloud", - "schema": { - "properties": { - "creationTimestamp": { - "icon": "Clock", - "type": "string", - "title": "Created", - "description": "When the Knative service was created", - "format": "date-time" - }, - "labels": { - "icon": "DefaultProperty", - "type": "object", - "title": "Labels", - "description": "Labels of the Knative service" - }, - "trafficConfiguration": { - "icon": "DefaultProperty", - "title": "Traffic Configuration", - "type": "array", - "description": "The routes traffic configuration" - }, - "url": { - "icon": "RestApi", - "title": "URL", - "type": "string", - "description": "The URL of this route", - "format": "url" - } - }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "knativeService": { - "title": "Knative Service", - "target": "knativeService", - "required": false, - "many": false - }, - "knativeRevision": { - "title": "knativeRevision", - "target": "knativeRevision", - "required": false, - "many": true - } + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "knativeConfiguration": { + "title": "Knative Configuration", + "description": "The revisions configuration", + "target": "knativeConfiguration", + "required": false, + "many": false + } + } + }, + { + "identifier": "knativeRoute", + "description": "This blueprint represents a Knative Route in our k8s cluster", + "title": "Knative Route", + "icon": "Cloud", + "schema": { + "properties": { + "creationTimestamp": { + "icon": "Clock", + "type": "string", + "title": "Created", + "description": "When the Knative service was created", + "format": "date-time" + }, + "labels": { + "icon": "DefaultProperty", + "type": "object", + "title": "Labels", + "description": "Labels of the Knative service" + }, + "trafficConfiguration": { + "icon": "DefaultProperty", + "title": "Traffic Configuration", + "type": "array", + "description": "The routes traffic configuration" + }, + "url": { + "icon": "RestApi", + "title": "URL", + "type": "string", + "description": "The URL of this route", + "format": "url" } + }, + "required": [] }, - { - "identifier": "workload", - "description": "This blueprint represents a k8s Workload. This includes all k8s objects which can create pods (deployments[replicasets], daemonsets, statefulsets...)", - "title": "Workload", - "icon": "Deployment", - "schema": { - "properties": { - "availableReplicas": { - "type": "number", - "title": "Running Replicas", - "description": "Current running replica count" - }, - "containers": { - "type": "array", - "title": "Containers", - "default": [], - "description": "The containers for each pod instance of the Workload" - }, - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Workload was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Workload" - }, - "replicas": { - "type": "number", - "title": "Wanted Replicas", - "description": "Wanted replica count" - }, - "strategy": { - "type": "string", - "title": "Strategy", - "description": "Rollout Strategy" - }, - "hasPrivileged": { - "type": "boolean", - "title": "Has Privileged Container" - }, - "hasLatest": { - "type": "boolean", - "title": "Has 'latest' tag", - "description": "Has Container with 'latest' as image tag" - }, - "hasLimits": { - "type": "boolean", - "title": "All containers have limits" - }, - "isHealthy": { - "type": "string", - "enum": [ - "Healthy", - "Unhealthy" - ], - "enumColors": { - "Healthy": "green", - "Unhealthy": "red" - }, - "title": "Workload Health" - }, - "kind": { - "title": "Workload Kind", - "description": "The kind of Workload", - "type": "string", - "enum": [ - "StatefulSet", - "DaemonSet", - "Deployment", - "ReplicaSet", - "Rollout" - ] + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "knativeService": { + "title": "Knative Service", + "target": "knativeService", + "required": false, + "many": false + }, + "knativeRevision": { + "title": "knativeRevision", + "target": "knativeRevision", + "required": false, + "many": true + } + } + }, + { + "identifier": "workload", + "description": "This blueprint represents a k8s Workload. This includes all k8s objects which can create pods (deployments[replicasets], daemonsets, statefulsets...)", + "title": "Workload", + "icon": "Deployment", + "schema": { + "properties": { + "availableReplicas": { + "type": "number", + "title": "Running Replicas", + "description": "Current running replica count" + }, + "containers": { + "type": "array", + "title": "Containers", + "default": [], + "description": "The containers for each pod instance of the Workload" + }, + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Workload was created" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Workload" + }, + "replicas": { + "type": "number", + "title": "Wanted Replicas", + "description": "Wanted replica count" + }, + "strategy": { + "type": "string", + "title": "Strategy", + "description": "Rollout Strategy" + }, + "hasPrivileged": { + "type": "boolean", + "title": "Has Privileged Container" + }, + "hasLatest": { + "type": "boolean", + "title": "Has 'latest' tag", + "description": "Has Container with 'latest' as image tag" + }, + "hasLimits": { + "type": "boolean", + "title": "All containers have limits" + }, + "isHealthy": { + "type": "string", + "enum": [ + "Healthy", + "Unhealthy" + ], + "enumColors": { + "Healthy": "green", + "Unhealthy": "red" }, - "strategyConfig": { - "type": "object", - "title": "Strategy Config", - "description": "The workloads rollout strategy" - } + "title": "Workload Health" }, - "required": [] - }, - "mirrorProperties": { - "Cluster": { - "title": "Cluster", - "path": "Namespace.Cluster.$title" - }, - "namespace": { - "title": "Namespace", - "path": "Namespace.$title" + "kind": { + "title": "Workload Kind", + "description": "The kind of Workload", + "type": "string", + "enum": [ + "StatefulSet", + "DaemonSet", + "Deployment", + "ReplicaSet", + "Rollout" + ] + }, + "strategyConfig": { + "type": "object", + "title": "Strategy Config", + "description": "The workloads rollout strategy" } }, - "calculationProperties": {}, - "relations": { - "workloadManager": { - "title": "Manager", - "description": "A replicaset's workload. For example, Workload abc-ReplicaSet is managed by Workload xyz-Depolyment", - "target": "workload", - "required": false, - "many": false - }, - "knativeRevision": { - "title": "Knative Revision", - "description": "The knative revision which manages this workload", - "target": "knativeRevision", - "required": false, - "many": false - }, - "Namespace": { - "title": "Namespace", - "target": "namespace", - "required": false, - "many": false - } + "required": [] + }, + "mirrorProperties": { + "Cluster": { + "title": "Cluster", + "path": "Namespace.Cluster.$title" + }, + "namespace": { + "title": "Namespace", + "path": "Namespace.$title" } }, - { - "identifier": "pod", - "description": "This blueprint represents a k8s Pod", - "title": "Pod", - "icon": "Service", - "schema": { - "properties": { - "conditions": { - "type": "array", - "title": "Conditions", - "default": [], - "description": "Pod's conditions" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Pod" - }, - "phase": { - "type": "string", - "title": "Pod phase", - "description": "Pod's running phase" - }, - "startTime": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "Pod's creation date" - } - }, - "required": [] + "calculationProperties": {}, + "relations": { + "workloadManager": { + "title": "Manager", + "description": "A replicaset's workload. For example, Workload abc-ReplicaSet is managed by Workload xyz-Depolyment", + "target": "workload", + "required": false, + "many": false }, - "mirrorProperties": { - "containers": { - "title": "Containers", - "path": "workload.containers" + "knativeRevision": { + "title": "Knative Revision", + "description": "The knative revision which manages this workload", + "target": "knativeRevision", + "required": false, + "many": false + }, + "Namespace": { + "title": "Namespace", + "target": "namespace", + "required": false, + "many": false + } + } + }, + { + "identifier": "pod", + "description": "This blueprint represents a k8s Pod", + "title": "Pod", + "icon": "Service", + "schema": { + "properties": { + "conditions": { + "type": "array", + "title": "Conditions", + "default": [], + "description": "Pod's conditions" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Pod" }, - "cluster": { - "title": "Cluster", - "path": "workload.Namespace.Cluster.$identifier" + "phase": { + "type": "string", + "title": "Pod phase", + "description": "Pod's running phase" }, - "namespace": { - "title": "Namespace", - "path": "workload.Namespace.$title" + "startTime": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "Pod's creation date" } }, - "calculationProperties": {}, - "relations": { - "Node": { - "title": "Node", - "description": "The node the pod is running on", - "target": "node", - "required": false, - "many": false - }, - "workload": { - "title": "Workload", - "description": "The workload responsible for the pod", - "target": "workload", - "required": false, - "many": false - } + "required": [] + }, + "mirrorProperties": { + "containers": { + "title": "Containers", + "path": "workload.containers" + }, + "cluster": { + "title": "Cluster", + "path": "workload.Namespace.Cluster.$identifier" + }, + "namespace": { + "title": "Namespace", + "path": "workload.Namespace.$title" + } + }, + "calculationProperties": {}, + "relations": { + "Node": { + "title": "Node", + "description": "The node the pod is running on", + "target": "node", + "required": false, + "many": false + }, + "workload": { + "title": "Workload", + "description": "The workload responsible for the pod", + "target": "workload", + "required": false, + "many": false } } -] - \ No newline at end of file + } +] \ No newline at end of file diff --git a/kubernetes/blueprints/kyverno-blueprints.json b/kubernetes/blueprints/kyverno-blueprints.json index 44108ca..d68246f 100644 --- a/kubernetes/blueprints/kyverno-blueprints.json +++ b/kubernetes/blueprints/kyverno-blueprints.json @@ -1,452 +1,453 @@ [ - { - "identifier": "cluster", - "description": "This blueprint represents a Kubernetes Cluster", - "title": "Cluster", - "icon": "Cluster", - "schema": { - "properties": {}, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": {} + { + "identifier": "cluster", + "description": "This blueprint represents a Kubernetes Cluster", + "title": "Cluster", + "icon": "Cluster", + "schema": { + "properties": {}, + "required": [] }, - { - "identifier": "namespace", - "description": "This blueprint represents a k8s Namespace", - "title": "Namespace", - "icon": "Environment", - "schema": { - "properties": { - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Namespace was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Namespace" - } + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": {} + }, + { + "identifier": "namespace", + "description": "This blueprint represents a k8s Namespace", + "title": "Namespace", + "icon": "Environment", + "schema": { + "properties": { + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Namespace was created" }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "Cluster": { - "title": "Cluster", - "description": "The namespace's Kubernetes cluster", - "target": "cluster", - "required": false, - "many": false + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Namespace" } - } - }, - { - "identifier": "node", - "description": "This blueprint represents a k8s Node", - "title": "Node", - "icon": "Node", - "schema": { - "properties": { - "creationTimestamp": { - "type": "string", - "icon": "DeployedAt", - "title": "Created", - "format": "date-time", - "description": "When the Node was created (added to the cluster)" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Node" - }, - "ready": { - "type": "string", - "title": "Node Readiness", - "description": "Node ready status", - "enum": [ - "True", - "False" - ], - "enumColors": { - "False": "red", - "True": "green" - } - }, - "totalMemory": { - "type": "string", - "icon": "GPU", - "title": "Total Memory (kibibytes)", - "description": "Total memory capacity of the Node" - }, - "kubeletVersion": { - "type": "string", - "title": "Kubelet Version", - "description": "The node's kubelet version" - }, - "totalCPU": { - "type": "string", - "icon": "CPU", - "title": "Total CPU (milli-cores)", - "description": "Total CPU capacity of the Node" - } - }, - "required": [] }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "Cluster": { - "title": "Cluster", - "target": "cluster", - "required": false, - "many": true - } - } + "required": [] }, - { - "identifier": "workload", - "description": "This blueprint represents a k8s Workload. This includes all k8s objects which can create pods (deployments[replicasets], daemonsets, statefulsets...)", - "title": "Workload", - "icon": "Deployment", - "schema": { - "properties": { - "availableReplicas": { - "type": "number", - "title": "Running Replicas", - "description": "Current running replica count" - }, - "containers": { - "type": "array", - "title": "Containers", - "default": [], - "description": "The containers for each pod instance of the Workload" - }, - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Workload was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Workload" - }, - "replicas": { - "type": "number", - "title": "Wanted Replicas", - "description": "Wanted replica count" - }, - "strategy": { - "type": "string", - "title": "Strategy", - "description": "Rollout Strategy" - }, - "hasPrivileged": { - "type": "boolean", - "title": "Has Privileged Container" - }, - "hasLatest": { - "type": "boolean", - "title": "Has 'latest' tag", - "description": "Has Container with 'latest' as image tag" - }, - "hasLimits": { - "type": "boolean", - "title": "All containers have limits" - }, - "isHealthy": { - "type": "string", - "enum": [ - "Healthy", - "Unhealthy" - ], - "enumColors": { - "Healthy": "green", - "Unhealthy": "red" - }, - "title": "Workload Health" - }, - "kind": { - "title": "Workload Kind", - "description": "The kind of Workload", - "type": "string", - "enum": [ - "StatefulSet", - "DaemonSet", - "Deployment", - "Rollout" - ] - }, - "strategyConfig": { - "type": "object", - "title": "Strategy Config", - "description": "The workloads rollout strategy" + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Cluster": { + "title": "Cluster", + "description": "The namespace's Kubernetes cluster", + "target": "cluster", + "required": false, + "many": false + } + } + }, + { + "identifier": "node", + "description": "This blueprint represents a k8s Node", + "title": "Node", + "icon": "Node", + "schema": { + "properties": { + "creationTimestamp": { + "type": "string", + "icon": "DeployedAt", + "title": "Created", + "format": "date-time", + "description": "When the Node was created (added to the cluster)" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Node" + }, + "ready": { + "type": "string", + "title": "Node Readiness", + "description": "Node ready status", + "enum": [ + "True", + "False", + "Unknown" + ], + "enumColors": { + "False": "red", + "True": "green" } }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "namespace": { - "title": "Namespace", - "target": "namespace", - "required": false, - "many": false + "totalMemory": { + "type": "string", + "icon": "GPU", + "title": "Total Memory (kibibytes)", + "description": "Total memory capacity of the Node" + }, + "kubeletVersion": { + "type": "string", + "title": "Kubelet Version", + "description": "The node's kubelet version" + }, + "totalCPU": { + "type": "string", + "icon": "CPU", + "title": "Total CPU (milli-cores)", + "description": "Total CPU capacity of the Node" } - } + }, + "required": [] }, - { - "identifier": "replicaSet", - "description": "This blueprint represents a k8s ReplicaSet", - "title": "ReplicaSet", - "icon": "Deployment", - "schema": { - "properties": { - "replicaSetJson": { - "title": "ReplicaSet Json", - "type": "object", - "description": "The ReplicaSet json" - }, - "availableReplicas": { - "type": "number", - "title": "Running Replicas", - "description": "Current running replica count" - }, - "containers": { - "type": "array", - "title": "Containers", - "default": [], - "description": "The containers for each pod instance of the Workload" - }, - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Workload was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Workload" - }, - "replicas": { - "type": "number", - "title": "Wanted Replicas", - "description": "Wanted replica count" - }, - "strategy": { - "type": "string", - "title": "Strategy", - "description": "Rollout Strategy" - }, - "hasPrivileged": { - "type": "boolean", - "title": "Has Privileged Container" - }, - "hasLatest": { - "type": "boolean", - "title": "Has 'latest' tag", - "description": "Has Container with 'latest' as image tag" - }, - "hasLimits": { - "type": "boolean", - "title": "All containers have limits" - }, - "isHealthy": { - "type": "string", - "enum": [ - "Healthy", - "Unhealthy" - ], - "enumColors": { - "Healthy": "green", - "Unhealthy": "red" - }, - "title": "ReplicaSet Health" - }, - "strategyConfig": { - "type": "object", - "title": "Strategy Config", - "description": "The ReplicaSet rollout strategy" - } + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Cluster": { + "title": "Cluster", + "target": "cluster", + "required": false, + "many": true + } + } + }, + { + "identifier": "workload", + "description": "This blueprint represents a k8s Workload. This includes all k8s objects which can create pods (deployments[replicasets], daemonsets, statefulsets...)", + "title": "Workload", + "icon": "Deployment", + "schema": { + "properties": { + "availableReplicas": { + "type": "number", + "title": "Running Replicas", + "description": "Current running replica count" }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "replicaSetManager": { - "title": "Manager", - "target": "workload", - "required": false, - "many": false + "containers": { + "type": "array", + "title": "Containers", + "default": [], + "description": "The containers for each pod instance of the Workload" + }, + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Workload was created" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Workload" + }, + "replicas": { + "type": "number", + "title": "Wanted Replicas", + "description": "Wanted replica count" + }, + "strategy": { + "type": "string", + "title": "Strategy", + "description": "Rollout Strategy" + }, + "hasPrivileged": { + "type": "boolean", + "title": "Has Privileged Container" + }, + "hasLatest": { + "type": "boolean", + "title": "Has 'latest' tag", + "description": "Has Container with 'latest' as image tag" + }, + "hasLimits": { + "type": "boolean", + "title": "All containers have limits" + }, + "isHealthy": { + "type": "string", + "enum": [ + "Healthy", + "Unhealthy" + ], + "enumColors": { + "Healthy": "green", + "Unhealthy": "red" + }, + "title": "Workload Health" + }, + "kind": { + "title": "Workload Kind", + "description": "The kind of Workload", + "type": "string", + "enum": [ + "StatefulSet", + "DaemonSet", + "Deployment", + "Rollout" + ] + }, + "strategyConfig": { + "type": "object", + "title": "Strategy Config", + "description": "The workloads rollout strategy" } - } + }, + "required": [] }, - { - "identifier": "pod", - "description": "This blueprint represents a k8s Pod", - "title": "Pod", - "icon": "Service", - "schema": { - "properties": { - "conditions": { - "type": "array", - "title": "Conditions", - "default": [], - "description": "Pod's conditions" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Pod" - }, - "phase": { - "type": "string", - "title": "Pod phase", - "description": "Pod's running phase" - }, - "startTime": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "Pod's creation date" - } + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "namespace": { + "title": "Namespace", + "target": "namespace", + "required": false, + "many": false + } + } + }, + { + "identifier": "replicaSet", + "description": "This blueprint represents a k8s ReplicaSet", + "title": "ReplicaSet", + "icon": "Deployment", + "schema": { + "properties": { + "replicaSetJson": { + "title": "ReplicaSet Json", + "type": "object", + "description": "The ReplicaSet json" + }, + "availableReplicas": { + "type": "number", + "title": "Running Replicas", + "description": "Current running replica count" }, - "required": [] - }, - "mirrorProperties": { "containers": { + "type": "array", "title": "Containers", - "path": "workload.containers" + "default": [], + "description": "The containers for each pod instance of the Workload" + }, + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Workload was created" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Workload" + }, + "replicas": { + "type": "number", + "title": "Wanted Replicas", + "description": "Wanted replica count" + }, + "strategy": { + "type": "string", + "title": "Strategy", + "description": "Rollout Strategy" + }, + "hasPrivileged": { + "type": "boolean", + "title": "Has Privileged Container" + }, + "hasLatest": { + "type": "boolean", + "title": "Has 'latest' tag", + "description": "Has Container with 'latest' as image tag" + }, + "hasLimits": { + "type": "boolean", + "title": "All containers have limits" + }, + "isHealthy": { + "type": "string", + "enum": [ + "Healthy", + "Unhealthy" + ], + "enumColors": { + "Healthy": "green", + "Unhealthy": "red" + }, + "title": "ReplicaSet Health" + }, + "strategyConfig": { + "type": "object", + "title": "Strategy Config", + "description": "The ReplicaSet rollout strategy" } }, - "calculationProperties": {}, - "relations": { - "Node": { - "title": "Node", - "description": "The node the pod is running on", - "target": "node", - "required": false, - "many": false - }, - "workload": { - "title": "Workload", - "description": "The workload responsible for the pod", - "target": "workload", - "required": false, - "many": false - }, - "replicaSet": { - "title": "ReplicaSet", - "description": "The ReplicaSet managing the pod (if it exists)", - "target": "replicaSet", - "required": false, - "many": false + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "replicaSetManager": { + "title": "Manager", + "target": "workload", + "required": false, + "many": false + } + } + }, + { + "identifier": "pod", + "description": "This blueprint represents a k8s Pod", + "title": "Pod", + "icon": "Service", + "schema": { + "properties": { + "conditions": { + "type": "array", + "title": "Conditions", + "default": [], + "description": "Pod's conditions" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Pod" + }, + "phase": { + "type": "string", + "title": "Pod phase", + "description": "Pod's running phase" + }, + "startTime": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "Pod's creation date" } + }, + "required": [] + }, + "mirrorProperties": { + "containers": { + "title": "Containers", + "path": "workload.containers" } }, - { - "identifier": "kyvernoPolicy", - "title": "Kyverno Policy", - "icon": "Cluster", - "schema": { - "properties": { - "admission": { - "title": "Admission", - "type": "boolean", - "icon": "DefaultProperty" - }, - "background": { - "title": "Background", - "type": "boolean", - "icon": "DefaultProperty" - }, - "createdAt": { - "title": "Created At", - "type": "string", - "format": "date-time", - "icon": "DefaultProperty" - }, - "validationFailureAction": { - "icon": "DefaultProperty", - "title": "Validation Failure Action", - "type": "string", - "enum": [ - "Audit", - "Enforce" - ], - "enumColors": { - "Audit": "lightGray", - "Enforce": "lightGray" - } - } - }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "aggregationProperties": {}, - "relations": { - "namespace": { - "title": "Namespace", - "target": "namespace", - "required": false, - "many": false + "calculationProperties": {}, + "relations": { + "Node": { + "title": "Node", + "description": "The node the pod is running on", + "target": "node", + "required": false, + "many": false + }, + "workload": { + "title": "Workload", + "description": "The workload responsible for the pod", + "target": "workload", + "required": false, + "many": false + }, + "replicaSet": { + "title": "ReplicaSet", + "description": "The ReplicaSet managing the pod (if it exists)", + "target": "replicaSet", + "required": false, + "many": false + } + } + }, + { + "identifier": "kyvernoPolicy", + "title": "Kyverno Policy", + "icon": "Cluster", + "schema": { + "properties": { + "admission": { + "title": "Admission", + "type": "boolean", + "icon": "DefaultProperty" + }, + "background": { + "title": "Background", + "type": "boolean", + "icon": "DefaultProperty" + }, + "createdAt": { + "title": "Created At", + "type": "string", + "format": "date-time", + "icon": "DefaultProperty" + }, + "validationFailureAction": { + "icon": "DefaultProperty", + "title": "Validation Failure Action", + "type": "string", + "enum": [ + "Audit", + "Enforce" + ], + "enumColors": { + "Audit": "lightGray", + "Enforce": "lightGray" } } }, - { - "identifier": "kyvernoPolicyReport", - "title": "Kyverno Policy Report", - "icon": "Cluster", - "schema": { - "properties": { - "createdAt": { - "title": "Created At", - "type": "string", - "format": "date-time" - }, - "pass": { - "title": "Pass", - "type": "number" - }, - "fail": { - "title": "Fail", - "type": "number" - }, - "warn": { - "title": "Warn", - "type": "number" - }, - "error": { - "title": "Error", - "type": "number" - }, - "skip": { - "title": "Skip", - "type": "number" - } - }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "aggregationProperties": {}, - "relations": { - "namespace": { - "title": "Namespace", - "target": "namespace", - "required": false, - "many": false - } + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "aggregationProperties": {}, + "relations": { + "namespace": { + "title": "Namespace", + "target": "namespace", + "required": false, + "many": false + } + } + }, + { + "identifier": "kyvernoPolicyReport", + "title": "Kyverno Policy Report", + "icon": "Cluster", + "schema": { + "properties": { + "createdAt": { + "title": "Created At", + "type": "string", + "format": "date-time" + }, + "pass": { + "title": "Pass", + "type": "number" + }, + "fail": { + "title": "Fail", + "type": "number" + }, + "warn": { + "title": "Warn", + "type": "number" + }, + "error": { + "title": "Error", + "type": "number" + }, + "skip": { + "title": "Skip", + "type": "number" } + }, + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "aggregationProperties": {}, + "relations": { + "namespace": { + "title": "Namespace", + "target": "namespace", + "required": false, + "many": false } - ] \ No newline at end of file + } + } +] \ No newline at end of file diff --git a/kubernetes/blueprints/opencosts_bps.json b/kubernetes/blueprints/opencosts_bps.json index d28cb4e..7cac32e 100644 --- a/kubernetes/blueprints/opencosts_bps.json +++ b/kubernetes/blueprints/opencosts_bps.json @@ -1,493 +1,493 @@ [ - { - "identifier": "cluster", - "description": "This blueprint represents a Kubernetes Cluster", - "title": "Cluster", - "icon": "Cluster", - "schema": { - "properties": {}, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": {} + { + "identifier": "cluster", + "description": "This blueprint represents a Kubernetes Cluster", + "title": "Cluster", + "icon": "Cluster", + "schema": { + "properties": {}, + "required": [] }, - { - "identifier": "node", - "description": "This blueprint represents a k8s Node", - "title": "Node", - "icon": "Node", - "schema": { - "properties": { - "creationTimestamp": { - "type": "string", - "icon": "DeployedAt", - "title": "Created", - "format": "date-time", - "description": "When the Node was created (added to the cluster)" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Node" - }, - "ready": { - "type": "string", - "title": "Node Readiness", - "description": "Node ready status", - "enum": [ - "True", - "False" - ], - "enumColors": { - "False": "red", - "True": "green" - } - }, - "totalMemory": { - "type": "string", - "icon": "GPU", - "title": "Total Memory (kibibytes)", - "description": "Total memory capacity of the Node" - }, - "kubeletVersion": { - "type": "string", - "title": "Kubelet Version", - "description": "The node's kubelet version" - }, - "totalCPU": { - "type": "string", - "icon": "CPU", - "title": "Total CPU (milli-cores)", - "description": "Total CPU capacity of the Node" + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": {} + }, + { + "identifier": "node", + "description": "This blueprint represents a k8s Node", + "title": "Node", + "icon": "Node", + "schema": { + "properties": { + "creationTimestamp": { + "type": "string", + "icon": "DeployedAt", + "title": "Created", + "format": "date-time", + "description": "When the Node was created (added to the cluster)" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Node" + }, + "ready": { + "type": "string", + "title": "Node Readiness", + "description": "Node ready status", + "enum": [ + "True", + "False", + "Unknown" + ], + "enumColors": { + "False": "red", + "True": "green" } }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "Cluster": { - "title": "Cluster", - "target": "cluster", - "required": false, - "many": true + "totalMemory": { + "type": "string", + "icon": "GPU", + "title": "Total Memory (kibibytes)", + "description": "Total memory capacity of the Node" + }, + "kubeletVersion": { + "type": "string", + "title": "Kubelet Version", + "description": "The node's kubelet version" + }, + "totalCPU": { + "type": "string", + "icon": "CPU", + "title": "Total CPU (milli-cores)", + "description": "Total CPU capacity of the Node" } - } + }, + "required": [] }, - { - "identifier": "namespace", - "description": "This blueprint represents a k8s Namespace", - "title": "Namespace", - "icon": "Environment", - "schema": { - "properties": { - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Namespace was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Namespace" - } + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Cluster": { + "title": "Cluster", + "target": "cluster", + "required": false, + "many": true + } + } + }, + { + "identifier": "namespace", + "description": "This blueprint represents a k8s Namespace", + "title": "Namespace", + "icon": "Environment", + "schema": { + "properties": { + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Namespace was created" }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "Cluster": { - "title": "Cluster", - "description": "The namespace's Kubernetes cluster", - "target": "cluster", - "required": false, - "many": false + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Namespace" } - } + }, + "required": [] }, - { - "identifier": "workload", - "description": "This blueprint represents a k8s Workload. This includes all k8s objects which can create pods (deployments[replicasets], daemonsets, statefulsets...)", - "title": "Workload", - "icon": "Deployment", - "schema": { - "properties": { - "availableReplicas": { - "type": "number", - "title": "Running Replicas", - "description": "Current running replica count" - }, - "containers": { - "type": "array", - "title": "Containers", - "default": [], - "description": "The containers for each pod instance of the Workload" - }, - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Workload was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Workload" - }, - "replicas": { - "type": "number", - "title": "Wanted Replicas", - "description": "Wanted replica count" - }, - "strategy": { - "type": "string", - "title": "Strategy", - "description": "Rollout Strategy" - }, - "hasPrivileged": { - "type": "boolean", - "title": "Has Privileged Container" - }, - "hasLatest": { - "type": "boolean", - "title": "Has 'latest' tag", - "description": "Has Container with 'latest' as image tag" - }, - "hasLimits": { - "type": "boolean", - "title": "All containers have limits" - }, - "isHealthy": { - "type": "string", - "enum": [ - "Healthy", - "Unhealthy" - ], - "enumColors": { - "Healthy": "green", - "Unhealthy": "red" - }, - "title": "Workload Health" - }, - "kind": { - "title": "Workload Kind", - "description": "The kind of Workload", - "type": "string", - "enum": [ - "StatefulSet", - "DaemonSet", - "Deployment", - "Rollout" - ] - }, - "strategyConfig": { - "type": "object", - "title": "Strategy Config", - "description": "The workloads rollout strategy" - } + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Cluster": { + "title": "Cluster", + "description": "The namespace's Kubernetes cluster", + "target": "cluster", + "required": false, + "many": false + } + } + }, + { + "identifier": "workload", + "description": "This blueprint represents a k8s Workload. This includes all k8s objects which can create pods (deployments[replicasets], daemonsets, statefulsets...)", + "title": "Workload", + "icon": "Deployment", + "schema": { + "properties": { + "availableReplicas": { + "type": "number", + "title": "Running Replicas", + "description": "Current running replica count" }, - "required": [] - }, - "mirrorProperties": { - "Cluster": { - "title": "Cluster", - "path": "Namespace.Cluster.$title" - }, - "namespace": { - "title": "Namespace", - "path": "Namespace.$title" + "containers": { + "type": "array", + "title": "Containers", + "default": [], + "description": "The containers for each pod instance of the Workload" + }, + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Workload was created" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Workload" + }, + "replicas": { + "type": "number", + "title": "Wanted Replicas", + "description": "Wanted replica count" + }, + "strategy": { + "type": "string", + "title": "Strategy", + "description": "Rollout Strategy" + }, + "hasPrivileged": { + "type": "boolean", + "title": "Has Privileged Container" + }, + "hasLatest": { + "type": "boolean", + "title": "Has 'latest' tag", + "description": "Has Container with 'latest' as image tag" + }, + "hasLimits": { + "type": "boolean", + "title": "All containers have limits" + }, + "isHealthy": { + "type": "string", + "enum": [ + "Healthy", + "Unhealthy" + ], + "enumColors": { + "Healthy": "green", + "Unhealthy": "red" + }, + "title": "Workload Health" + }, + "kind": { + "title": "Workload Kind", + "description": "The kind of Workload", + "type": "string", + "enum": [ + "StatefulSet", + "DaemonSet", + "Deployment", + "Rollout" + ] + }, + "strategyConfig": { + "type": "object", + "title": "Strategy Config", + "description": "The workloads rollout strategy" } }, - "calculationProperties": {}, - "relations": { - "workloadManager": { - "title": "Manager", - "description": "A replicaset's workload. For example, Workload abc-ReplicaSet is managed by Workload xyz-Depolyment", - "target": "workload", - "required": false, - "many": false - }, - "Namespace": { - "title": "Namespace", - "target": "namespace", - "required": false, - "many": false - } - } + "required": [] }, - { - "identifier": "replicaSet", - "description": "This blueprint represents a k8s ReplicaSet", - "title": "ReplicaSet", - "icon": "Deployment", - "schema": { - "properties": { - "replicaSetJson": { - "title": "ReplicaSet Json", - "type": "object", - "description": "The ReplicaSet json" - }, - "availableReplicas": { - "type": "number", - "title": "Running Replicas", - "description": "Current running replica count" - }, - "containers": { - "type": "array", - "title": "Containers", - "default": [], - "description": "The containers for each pod instance of the Workload" - }, - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Workload was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Workload" - }, - "replicas": { - "type": "number", - "title": "Wanted Replicas", - "description": "Wanted replica count" - }, - "strategy": { - "type": "string", - "title": "Strategy", - "description": "Rollout Strategy" - }, - "hasPrivileged": { - "type": "boolean", - "title": "Has Privileged Container" - }, - "hasLatest": { - "type": "boolean", - "title": "Has 'latest' tag", - "description": "Has Container with 'latest' as image tag" - }, - "hasLimits": { - "type": "boolean", - "title": "All containers have limits" - }, - "isHealthy": { - "type": "string", - "enum": [ - "Healthy", - "Unhealthy" - ], - "enumColors": { - "Healthy": "green", - "Unhealthy": "red" - }, - "title": "ReplicaSet Health" - }, - "strategyConfig": { - "type": "object", - "title": "Strategy Config", - "description": "The ReplicaSet rollout strategy" - } - }, - "required": [] + "mirrorProperties": { + "Cluster": { + "title": "Cluster", + "path": "Namespace.Cluster.$title" }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "replicaSetManager": { - "title": "Manager", - "target": "workload", - "required": false, - "many": false - } + "namespace": { + "title": "Namespace", + "path": "Namespace.$title" } }, - { - "identifier": "pod", - "description": "This blueprint represents a k8s Pod", - "title": "Pod", - "icon": "Service", - "schema": { - "properties": { - "conditions": { - "type": "array", - "title": "Conditions", - "default": [], - "description": "Pod's conditions" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Pod" - }, - "phase": { - "type": "string", - "title": "Pod phase", - "description": "Pod's running phase" - }, - "startTime": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "Pod's creation date" - } - }, - "required": [] + "calculationProperties": {}, + "relations": { + "workloadManager": { + "title": "Manager", + "description": "A replicaset's workload. For example, Workload abc-ReplicaSet is managed by Workload xyz-Depolyment", + "target": "workload", + "required": false, + "many": false }, - "mirrorProperties": { + "Namespace": { + "title": "Namespace", + "target": "namespace", + "required": false, + "many": false + } + } + }, + { + "identifier": "replicaSet", + "description": "This blueprint represents a k8s ReplicaSet", + "title": "ReplicaSet", + "icon": "Deployment", + "schema": { + "properties": { + "replicaSetJson": { + "title": "ReplicaSet Json", + "type": "object", + "description": "The ReplicaSet json" + }, + "availableReplicas": { + "type": "number", + "title": "Running Replicas", + "description": "Current running replica count" + }, "containers": { + "type": "array", "title": "Containers", - "path": "workload.containers" + "default": [], + "description": "The containers for each pod instance of the Workload" + }, + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Workload was created" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Workload" }, - "cluster": { - "title": "Cluster", - "path": "workload.Namespace.Cluster.$identifier" + "replicas": { + "type": "number", + "title": "Wanted Replicas", + "description": "Wanted replica count" }, - "namespace": { - "title": "Namespace", - "path": "workload.Namespace.$title" + "strategy": { + "type": "string", + "title": "Strategy", + "description": "Rollout Strategy" + }, + "hasPrivileged": { + "type": "boolean", + "title": "Has Privileged Container" + }, + "hasLatest": { + "type": "boolean", + "title": "Has 'latest' tag", + "description": "Has Container with 'latest' as image tag" + }, + "hasLimits": { + "type": "boolean", + "title": "All containers have limits" + }, + "isHealthy": { + "type": "string", + "enum": [ + "Healthy", + "Unhealthy" + ], + "enumColors": { + "Healthy": "green", + "Unhealthy": "red" + }, + "title": "ReplicaSet Health" + }, + "strategyConfig": { + "type": "object", + "title": "Strategy Config", + "description": "The ReplicaSet rollout strategy" } }, - "calculationProperties": {}, - "relations": { - "replicaSet": { - "title": "ReplicaSet", - "description": "The ReplicaSet managing the pod (if it exists)", - "target": "replicaSet", - "required": false, - "many": false - }, - "Node": { - "title": "Node", - "description": "The node the pod is running on", - "target": "node", - "required": false, - "many": false - }, - "workload": { - "title": "Workload", - "description": "The workload responsible for the pod", - "target": "workload", - "required": false, - "many": false + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "replicaSetManager": { + "title": "Manager", + "target": "workload", + "required": false, + "many": false + } + } + }, + { + "identifier": "pod", + "description": "This blueprint represents a k8s Pod", + "title": "Pod", + "icon": "Service", + "schema": { + "properties": { + "conditions": { + "type": "array", + "title": "Conditions", + "default": [], + "description": "Pod's conditions" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Pod" + }, + "phase": { + "type": "string", + "title": "Pod phase", + "description": "Pod's running phase" + }, + "startTime": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "Pod's creation date" } + }, + "required": [] + }, + "mirrorProperties": { + "containers": { + "title": "Containers", + "path": "workload.containers" + }, + "cluster": { + "title": "Cluster", + "path": "workload.Namespace.Cluster.$identifier" + }, + "namespace": { + "title": "Namespace", + "path": "workload.Namespace.$title" } }, - { - "identifier": "openCostResourceAllocation", - "description": "This blueprint represents an OpenCost resource allocation in our software catalog", - "title": "OpenCost Resource Allocation", - "icon": "Cluster", - "schema": { - "properties": { - "startDate": { - "title": "Start Date", - "type": "string", - "format": "date-time", - "icon": "DefaultProperty" - }, - "endDate": { - "title": "End Date", - "type": "string", - "format": "date-time", - "icon": "DefaultProperty" - }, - "cpuCoreHours": { - "title": "CPU Core Hours", - "type": "number", - "icon": "DefaultProperty" - }, - "cpuCost": { - "title": "CPU Cost", - "type": "number", - "icon": "DefaultProperty" - }, - "cpuEfficiency": { - "title": "CPU Efficiency", - "type": "number", - "icon": "DefaultProperty" - }, - "gpuHours": { - "title": "GPU Hours", - "type": "number", - "icon": "DefaultProperty" - }, - "gpuCost": { - "title": "GPU Cost", - "type": "number", - "icon": "DefaultProperty" - }, - "networkCost": { - "title": "Network Cost", - "type": "number", - "icon": "DefaultProperty" - }, - "loadBalancerCost": { - "title": "Load Balancer Cost", - "type": "number", - "icon": "DefaultProperty" - }, - "pvCost": { - "title": "PV Cost", - "type": "number", - "icon": "DefaultProperty" - }, - "ramBytes": { - "title": "RAM Bytes", - "type": "number", - "icon": "DefaultProperty" - }, - "ramCost": { - "title": "RAM Cost", - "type": "number", - "icon": "DefaultProperty" - }, - "ramEfficiency": { - "title": "RAM Efficiency", - "type": "number", - "icon": "DefaultProperty" - }, - "sharedCost": { - "title": "Shared Cost", - "type": "number", - "icon": "DefaultProperty" - }, - "externalCost": { - "title": "External Cost", - "type": "number", - "icon": "DefaultProperty" - }, - "totalCost": { - "title": "Total Cost", - "type": "number", - "icon": "DefaultProperty" - }, - "totalEfficiency": { - "title": "Total Efficiency", - "type": "number", - "icon": "DefaultProperty" - }, - "containerName": { - "title": "Container Name", - "type": "string" - } - }, - "required": [] + "calculationProperties": {}, + "relations": { + "replicaSet": { + "title": "ReplicaSet", + "description": "The ReplicaSet managing the pod (if it exists)", + "target": "replicaSet", + "required": false, + "many": false }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "pod": { - "title": "Pod", - "target": "pod", - "required": false, - "many": false + "Node": { + "title": "Node", + "description": "The node the pod is running on", + "target": "node", + "required": false, + "many": false + }, + "workload": { + "title": "Workload", + "description": "The workload responsible for the pod", + "target": "workload", + "required": false, + "many": false + } + } + }, + { + "identifier": "openCostResourceAllocation", + "description": "This blueprint represents an OpenCost resource allocation in our software catalog", + "title": "OpenCost Resource Allocation", + "icon": "Cluster", + "schema": { + "properties": { + "startDate": { + "title": "Start Date", + "type": "string", + "format": "date-time", + "icon": "DefaultProperty" + }, + "endDate": { + "title": "End Date", + "type": "string", + "format": "date-time", + "icon": "DefaultProperty" + }, + "cpuCoreHours": { + "title": "CPU Core Hours", + "type": "number", + "icon": "DefaultProperty" + }, + "cpuCost": { + "title": "CPU Cost", + "type": "number", + "icon": "DefaultProperty" + }, + "cpuEfficiency": { + "title": "CPU Efficiency", + "type": "number", + "icon": "DefaultProperty" + }, + "gpuHours": { + "title": "GPU Hours", + "type": "number", + "icon": "DefaultProperty" + }, + "gpuCost": { + "title": "GPU Cost", + "type": "number", + "icon": "DefaultProperty" + }, + "networkCost": { + "title": "Network Cost", + "type": "number", + "icon": "DefaultProperty" + }, + "loadBalancerCost": { + "title": "Load Balancer Cost", + "type": "number", + "icon": "DefaultProperty" + }, + "pvCost": { + "title": "PV Cost", + "type": "number", + "icon": "DefaultProperty" + }, + "ramBytes": { + "title": "RAM Bytes", + "type": "number", + "icon": "DefaultProperty" + }, + "ramCost": { + "title": "RAM Cost", + "type": "number", + "icon": "DefaultProperty" + }, + "ramEfficiency": { + "title": "RAM Efficiency", + "type": "number", + "icon": "DefaultProperty" + }, + "sharedCost": { + "title": "Shared Cost", + "type": "number", + "icon": "DefaultProperty" + }, + "externalCost": { + "title": "External Cost", + "type": "number", + "icon": "DefaultProperty" + }, + "totalCost": { + "title": "Total Cost", + "type": "number", + "icon": "DefaultProperty" + }, + "totalEfficiency": { + "title": "Total Efficiency", + "type": "number", + "icon": "DefaultProperty" + }, + "containerName": { + "title": "Container Name", + "type": "string" } + }, + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "pod": { + "title": "Pod", + "target": "pod", + "required": false, + "many": false } } -] - + } +] \ No newline at end of file diff --git a/kubernetes/blueprints/openshift-blueprints.json b/kubernetes/blueprints/openshift-blueprints.json index 9614efb..c0ffd0e 100644 --- a/kubernetes/blueprints/openshift-blueprints.json +++ b/kubernetes/blueprints/openshift-blueprints.json @@ -1,439 +1,440 @@ [ - { - "identifier": "cluster", - "description": "This blueprint represents a Kubernetes Cluster", - "title": "Cluster", - "icon": "Cluster", - "schema": { - "properties": {}, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": {} + { + "identifier": "cluster", + "description": "This blueprint represents a Kubernetes Cluster", + "title": "Cluster", + "icon": "Cluster", + "schema": { + "properties": {}, + "required": [] }, - { - "identifier": "namespace", - "description": "This blueprint represents a k8s Namespace", - "title": "Namespace", - "icon": "Environment", - "schema": { - "properties": { - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Namespace was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Namespace" - } + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": {} + }, + { + "identifier": "namespace", + "description": "This blueprint represents a k8s Namespace", + "title": "Namespace", + "icon": "Environment", + "schema": { + "properties": { + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Namespace was created" }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "Cluster": { - "title": "Cluster", - "description": "The namespace's Kubernetes cluster", - "target": "cluster", - "required": false, - "many": false + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Namespace" } - } - }, - { - "identifier": "node", - "description": "This blueprint represents a k8s Node", - "title": "Node", - "icon": "Node", - "schema": { - "properties": { - "creationTimestamp": { - "type": "string", - "icon": "DeployedAt", - "title": "Created", - "format": "date-time", - "description": "When the Node was created (added to the cluster)" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Node" - }, - "ready": { - "type": "string", - "title": "Node Readiness", - "description": "Node ready status", - "enum": [ - "True", - "False" - ], - "enumColors": { - "False": "red", - "True": "green" - } - }, - "totalMemory": { - "type": "string", - "icon": "GPU", - "title": "Total Memory (kibibytes)", - "description": "Total memory capacity of the Node" - }, - "kubeletVersion": { - "type": "string", - "title": "Kubelet Version", - "description": "The node's kubelet version" - }, - "totalCPU": { - "type": "string", - "icon": "CPU", - "title": "Total CPU (milli-cores)", - "description": "Total CPU capacity of the Node" - } - }, - "required": [] }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "Cluster": { - "title": "Cluster", - "target": "cluster", - "required": false, - "many": true - } - } + "required": [] }, - { - "identifier": "workload", - "description": "This blueprint represents a k8s Workload. This includes all k8s objects which can create pods (deployments[replicasets], daemonsets, statefulsets...)", - "title": "Workload", - "icon": "Deployment", - "schema": { - "properties": { - "availableReplicas": { - "type": "number", - "title": "Running Replicas", - "description": "Current running replica count" - }, - "containers": { - "type": "array", - "title": "Containers", - "default": [], - "description": "The containers for each pod instance of the Workload" - }, - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Workload was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Workload" - }, - "replicas": { - "type": "number", - "title": "Wanted Replicas", - "description": "Wanted replica count" - }, - "strategy": { - "type": "string", - "title": "Strategy", - "description": "Rollout Strategy" - }, - "hasPrivileged": { - "type": "boolean", - "title": "Has Privileged Container" - }, - "hasLatest": { - "type": "boolean", - "title": "Has 'latest' tag", - "description": "Has Container with 'latest' as image tag" - }, - "hasLimits": { - "type": "boolean", - "title": "All containers have limits" - }, - "isHealthy": { - "type": "string", - "enum": [ - "Healthy", - "Unhealthy" - ], - "enumColors": { - "Healthy": "green", - "Unhealthy": "red" - }, - "title": "Workload Health" - }, - "kind": { - "title": "Workload Kind", - "description": "The kind of Workload", - "type": "string", - "enum": [ - "StatefulSet", - "DaemonSet", - "Deployment", - "Rollout" - ] - }, - "strategyConfig": { - "type": "object", - "title": "Strategy Config", - "description": "The workloads rollout strategy" + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Cluster": { + "title": "Cluster", + "description": "The namespace's Kubernetes cluster", + "target": "cluster", + "required": false, + "many": false + } + } + }, + { + "identifier": "node", + "description": "This blueprint represents a k8s Node", + "title": "Node", + "icon": "Node", + "schema": { + "properties": { + "creationTimestamp": { + "type": "string", + "icon": "DeployedAt", + "title": "Created", + "format": "date-time", + "description": "When the Node was created (added to the cluster)" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Node" + }, + "ready": { + "type": "string", + "title": "Node Readiness", + "description": "Node ready status", + "enum": [ + "True", + "False", + "Unknown" + ], + "enumColors": { + "False": "red", + "True": "green" } }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "namespace": { - "title": "Namespace", - "target": "namespace", - "required": false, - "many": false + "totalMemory": { + "type": "string", + "icon": "GPU", + "title": "Total Memory (kibibytes)", + "description": "Total memory capacity of the Node" + }, + "kubeletVersion": { + "type": "string", + "title": "Kubelet Version", + "description": "The node's kubelet version" + }, + "totalCPU": { + "type": "string", + "icon": "CPU", + "title": "Total CPU (milli-cores)", + "description": "Total CPU capacity of the Node" } - } + }, + "required": [] }, - { - "identifier": "replicaSet", - "description": "This blueprint represents a k8s ReplicaSet", - "title": "ReplicaSet", - "icon": "Deployment", - "schema": { - "properties": { - "replicaSetJson": { - "title": "ReplicaSet Json", - "type": "object", - "description": "The ReplicaSet json" - }, - "availableReplicas": { - "type": "number", - "title": "Running Replicas", - "description": "Current running replica count" - }, - "containers": { - "type": "array", - "title": "Containers", - "default": [], - "description": "The containers for each pod instance of the Workload" - }, - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Workload was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Workload" - }, - "replicas": { - "type": "number", - "title": "Wanted Replicas", - "description": "Wanted replica count" - }, - "strategy": { - "type": "string", - "title": "Strategy", - "description": "Rollout Strategy" - }, - "hasPrivileged": { - "type": "boolean", - "title": "Has Privileged Container" - }, - "hasLatest": { - "type": "boolean", - "title": "Has 'latest' tag", - "description": "Has Container with 'latest' as image tag" - }, - "hasLimits": { - "type": "boolean", - "title": "All containers have limits" - }, - "isHealthy": { - "type": "string", - "enum": [ - "Healthy", - "Unhealthy" - ], - "enumColors": { - "Healthy": "green", - "Unhealthy": "red" - }, - "title": "ReplicaSet Health" - }, - "strategyConfig": { - "type": "object", - "title": "Strategy Config", - "description": "The ReplicaSet rollout strategy" - } + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Cluster": { + "title": "Cluster", + "target": "cluster", + "required": false, + "many": true + } + } + }, + { + "identifier": "workload", + "description": "This blueprint represents a k8s Workload. This includes all k8s objects which can create pods (deployments[replicasets], daemonsets, statefulsets...)", + "title": "Workload", + "icon": "Deployment", + "schema": { + "properties": { + "availableReplicas": { + "type": "number", + "title": "Running Replicas", + "description": "Current running replica count" }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "replicaSetManager": { - "title": "Manager", - "target": "workload", - "required": false, - "many": false + "containers": { + "type": "array", + "title": "Containers", + "default": [], + "description": "The containers for each pod instance of the Workload" + }, + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Workload was created" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Workload" + }, + "replicas": { + "type": "number", + "title": "Wanted Replicas", + "description": "Wanted replica count" + }, + "strategy": { + "type": "string", + "title": "Strategy", + "description": "Rollout Strategy" + }, + "hasPrivileged": { + "type": "boolean", + "title": "Has Privileged Container" + }, + "hasLatest": { + "type": "boolean", + "title": "Has 'latest' tag", + "description": "Has Container with 'latest' as image tag" + }, + "hasLimits": { + "type": "boolean", + "title": "All containers have limits" + }, + "isHealthy": { + "type": "string", + "enum": [ + "Healthy", + "Unhealthy" + ], + "enumColors": { + "Healthy": "green", + "Unhealthy": "red" + }, + "title": "Workload Health" + }, + "kind": { + "title": "Workload Kind", + "description": "The kind of Workload", + "type": "string", + "enum": [ + "StatefulSet", + "DaemonSet", + "Deployment", + "Rollout" + ] + }, + "strategyConfig": { + "type": "object", + "title": "Strategy Config", + "description": "The workloads rollout strategy" } - } + }, + "required": [] }, - { - "identifier": "pod", - "description": "This blueprint represents a k8s Pod", - "title": "Pod", - "icon": "Service", - "schema": { - "properties": { - "conditions": { - "type": "array", - "title": "Conditions", - "default": [], - "description": "Pod's conditions" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Pod" - }, - "phase": { - "type": "string", - "title": "Pod phase", - "description": "Pod's running phase" - }, - "startTime": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "Pod's creation date" - } + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "namespace": { + "title": "Namespace", + "target": "namespace", + "required": false, + "many": false + } + } + }, + { + "identifier": "replicaSet", + "description": "This blueprint represents a k8s ReplicaSet", + "title": "ReplicaSet", + "icon": "Deployment", + "schema": { + "properties": { + "replicaSetJson": { + "title": "ReplicaSet Json", + "type": "object", + "description": "The ReplicaSet json" + }, + "availableReplicas": { + "type": "number", + "title": "Running Replicas", + "description": "Current running replica count" }, - "required": [] - }, - "mirrorProperties": { "containers": { + "type": "array", "title": "Containers", - "path": "workload.containers" + "default": [], + "description": "The containers for each pod instance of the Workload" + }, + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Workload was created" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Workload" + }, + "replicas": { + "type": "number", + "title": "Wanted Replicas", + "description": "Wanted replica count" + }, + "strategy": { + "type": "string", + "title": "Strategy", + "description": "Rollout Strategy" + }, + "hasPrivileged": { + "type": "boolean", + "title": "Has Privileged Container" + }, + "hasLatest": { + "type": "boolean", + "title": "Has 'latest' tag", + "description": "Has Container with 'latest' as image tag" + }, + "hasLimits": { + "type": "boolean", + "title": "All containers have limits" + }, + "isHealthy": { + "type": "string", + "enum": [ + "Healthy", + "Unhealthy" + ], + "enumColors": { + "Healthy": "green", + "Unhealthy": "red" + }, + "title": "ReplicaSet Health" + }, + "strategyConfig": { + "type": "object", + "title": "Strategy Config", + "description": "The ReplicaSet rollout strategy" } }, - "calculationProperties": {}, - "relations": { - "Node": { - "title": "Node", - "description": "The node the pod is running on", - "target": "node", - "required": false, - "many": false - }, - "workload": { - "title": "Workload", - "description": "The workload responsible for the pod", - "target": "workload", - "required": false, - "many": false - }, - "replicaSet": { - "title": "ReplicaSet", - "description": "The ReplicaSet managing the pod (if it exists)", - "target": "replicaSet", - "required": false, - "many": false - } - } + "required": [] }, - { - "identifier": "k8sService", - "title": "K8s Serivce", - "description": "This blueprint represents a k8s Service", - "icon": "Microservice", - "schema": { - "properties": { - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Namespace was created", - "icon": "DefaultProperty" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Pod", - "icon": "DefaultProperty" - }, - "type": { - "type": "string", - "title": "Service Type", - "description": "Service Type", - "icon": "DefaultProperty" - }, - "selectors": { - "icon": "DefaultProperty", - "type": "object", - "title": "Service Selectors", - "description": "Pod selectors for the service" - } + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "replicaSetManager": { + "title": "Manager", + "target": "workload", + "required": false, + "many": false + } + } + }, + { + "identifier": "pod", + "description": "This blueprint represents a k8s Pod", + "title": "Pod", + "icon": "Service", + "schema": { + "properties": { + "conditions": { + "type": "array", + "title": "Conditions", + "default": [], + "description": "Pod's conditions" }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "pods": { - "title": "Pods", - "target": "pod", - "required": false, - "many": true - }, - "namespace": { - "title": "Namespace", - "target": "namespace", - "required": false, - "many": false + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Pod" + }, + "phase": { + "type": "string", + "title": "Pod phase", + "description": "Pod's running phase" + }, + "startTime": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "Pod's creation date" } + }, + "required": [] + }, + "mirrorProperties": { + "containers": { + "title": "Containers", + "path": "workload.containers" } }, - { - "identifier": "openshiftRoute", - "title": "Openshift Route", - "description": "This blueprint represents an Openshift route", - "icon": "EC2", - "schema": { - "properties": { - "hostName": { - "icon": "DefaultProperty", - "title": "Hostname", - "type": "string", - "format": "url" - }, - "spec": { - "title": "Spec", - "type": "object" - } + "calculationProperties": {}, + "relations": { + "Node": { + "title": "Node", + "description": "The node the pod is running on", + "target": "node", + "required": false, + "many": false + }, + "workload": { + "title": "Workload", + "description": "The workload responsible for the pod", + "target": "workload", + "required": false, + "many": false + }, + "replicaSet": { + "title": "ReplicaSet", + "description": "The ReplicaSet managing the pod (if it exists)", + "target": "replicaSet", + "required": false, + "many": false + } + } + }, + { + "identifier": "k8sService", + "title": "K8s Serivce", + "description": "This blueprint represents a k8s Service", + "icon": "Microservice", + "schema": { + "properties": { + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Namespace was created", + "icon": "DefaultProperty" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Pod", + "icon": "DefaultProperty" }, - "required": [] + "type": { + "type": "string", + "title": "Service Type", + "description": "Service Type", + "icon": "DefaultProperty" + }, + "selectors": { + "icon": "DefaultProperty", + "type": "object", + "title": "Service Selectors", + "description": "Pod selectors for the service" + } }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "service": { - "title": "Service", - "target": "k8sService", - "required": false, - "many": true + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "pods": { + "title": "Pods", + "target": "pod", + "required": false, + "many": true + }, + "namespace": { + "title": "Namespace", + "target": "namespace", + "required": false, + "many": false + } + } + }, + { + "identifier": "openshiftRoute", + "title": "Openshift Route", + "description": "This blueprint represents an Openshift route", + "icon": "EC2", + "schema": { + "properties": { + "hostName": { + "icon": "DefaultProperty", + "title": "Hostname", + "type": "string", + "format": "url" + }, + "spec": { + "title": "Spec", + "type": "object" } + }, + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "service": { + "title": "Service", + "target": "k8sService", + "required": false, + "many": true } } - ] \ No newline at end of file + } +] \ No newline at end of file diff --git a/kubernetes/blueprints/trivy-blueprints.json b/kubernetes/blueprints/trivy-blueprints.json index 149bc59..f09db60 100644 --- a/kubernetes/blueprints/trivy-blueprints.json +++ b/kubernetes/blueprints/trivy-blueprints.json @@ -1,456 +1,457 @@ [ - { - "identifier": "cluster", - "description": "This blueprint represents a Kubernetes Cluster", - "title": "Cluster", - "icon": "Cluster", - "schema": { - "properties": {}, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": {} - }, - { - "identifier": "node", - "description": "This blueprint represents a k8s Node", - "title": "Node", - "icon": "Node", - "schema": { - "properties": { - "creationTimestamp": { - "type": "string", - "icon": "DeployedAt", - "title": "Created", - "format": "date-time", - "description": "When the Node was created (added to the cluster)" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Node" - }, - "ready": { - "type": "string", - "title": "Node Readiness", - "description": "Node ready status", - "enum": [ - "True", - "False" - ], - "enumColors": { - "False": "red", - "True": "green" - } - }, - "totalMemory": { - "type": "string", - "icon": "GPU", - "title": "Total Memory (kibibytes)", - "description": "Total memory capacity of the Node" - }, - "kubeletVersion": { - "type": "string", - "title": "Kubelet Version", - "description": "The node's kubelet version" - }, - "totalCPU": { - "type": "string", - "icon": "CPU", - "title": "Total CPU (milli-cores)", - "description": "Total CPU capacity of the Node" - } - }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "Cluster": { - "title": "Cluster", - "target": "cluster", - "required": false, - "many": true - } - } - }, - { - "identifier": "namespace", - "description": "This blueprint represents a k8s Namespace", - "title": "Namespace", - "icon": "Environment", - "schema": { - "properties": { - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Namespace was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Namespace" - } - }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "Cluster": { - "title": "Cluster", - "description": "The namespace's Kubernetes cluster", - "target": "cluster", - "required": false, - "many": false - } - } - }, - { - "identifier": "workload", - "description": "This blueprint represents a k8s Workload. This includes all k8s objects which can create pods (deployments[replicasets], daemonsets, statefulsets...)", - "title": "Workload", - "icon": "Deployment", - "schema": { - "properties": { - "availableReplicas": { - "type": "number", - "title": "Running Replicas", - "description": "Current running replica count" - }, - "containers": { - "type": "array", - "title": "Containers", - "default": [], - "description": "The containers for each pod instance of the Workload" - }, - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Workload was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Workload" - }, - "replicas": { - "type": "number", - "title": "Wanted Replicas", - "description": "Wanted replica count" - }, - "strategy": { - "type": "string", - "title": "Strategy", - "description": "Rollout Strategy" - }, - "hasPrivileged": { - "type": "boolean", - "title": "Has Privileged Container" - }, - "hasLatest": { - "type": "boolean", - "title": "Has 'latest' tag", - "description": "Has Container with 'latest' as image tag" - }, - "hasLimits": { - "type": "boolean", - "title": "All containers have limits" - }, - "isHealthy": { - "type": "string", - "enum": [ - "Healthy", - "Unhealthy" - ], - "enumColors": { - "Healthy": "green", - "Unhealthy": "red" - }, - "title": "Workload Health" - }, - "kind": { - "title": "Workload Kind", - "description": "The kind of Workload", - "type": "string", - "enum": [ - "StatefulSet", - "DaemonSet", - "Deployment", - "ReplicaSet" - ] - }, - "strategyConfig": { - "type": "object", - "title": "Strategy Config", - "description": "The workloads rollout strategy" - } - }, - "required": [] - }, - "mirrorProperties": { - "Cluster": { - "title": "Cluster", - "path": "Namespace.Cluster.$title" - }, - "namespace": { - "title": "namespace", - "path": "Namespace.$title" - } - }, - "calculationProperties": {}, - "relations": { - "workloadManager": { - "title": "Manager", - "description": "A replicaset's workload. For example, Workload abc-ReplicaSet is managed by Workload xyz-Depolyment", - "target": "workload", - "required": false, - "many": false - }, - "Namespace": { - "title": "Namespace", - "target": "namespace", - "required": false, - "many": false - } - } - }, - { - "identifier": "pod", - "description": "This blueprint represents a k8s Pod", - "title": "Pod", - "icon": "Service", - "schema": { - "properties": { - "conditions": { - "type": "array", - "title": "Conditions", - "default": [], - "description": "Pod's conditions" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Pod" - }, - "phase": { - "type": "string", - "title": "Pod phase", - "description": "Pod's running phase" - }, - "startTime": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "Pod's creation date" - } - }, - "required": [] - }, - "mirrorProperties": { - "containers": { - "title": "Containers", - "path": "workload.containers" - }, - "cluster": { - "title": "Cluster", - "path": "workload.Namespace.Cluster.$identifier" - }, - "namespace": { - "title": "Namespace", - "path": "workload.Namespace.$title" - } - }, - "calculationProperties": {}, - "relations": { - "replicaSet": { - "title": "ReplicaSet", - "description": "The ReplicaSet managing the pod (if it exists)", - "target": "replicaSet", - "required": false, - "many": false - }, - "Node": { - "title": "Node", - "description": "The node the pod is running on", - "target": "node", - "required": false, - "many": false - }, - "workload": { - "title": "Workload", - "description": "The workload responsible for the pod", - "target": "workload", - "required": false, - "many": false - } - } - }, - { - "identifier": "replicaSet", - "description": "This blueprint represents a k8s ReplicaSet", - "title": "ReplicaSet", - "icon": "Deployment", - "schema": { - "properties": { - "replicaSetJson": { - "title": "ReplicaSet Json", - "type": "object", - "description": "The ReplicaSet json" - }, - "availableReplicas": { - "type": "number", - "title": "Running Replicas", - "description": "Current running replica count" - }, - "containers": { - "type": "array", - "title": "Containers", - "default": [], - "description": "The containers for each pod instance of the Workload" - }, - "creationTimestamp": { - "type": "string", - "title": "Created", - "format": "date-time", - "description": "When the Workload was created" - }, - "labels": { - "type": "object", - "title": "Labels", - "description": "Labels of the Workload" - }, - "replicas": { - "type": "number", - "title": "Wanted Replicas", - "description": "Wanted replica count" - }, - "strategy": { - "type": "string", - "title": "Strategy", - "description": "Rollout Strategy" - }, - "hasPrivileged": { - "type": "boolean", - "title": "Has Privileged Container" - }, - "hasLatest": { - "type": "boolean", - "title": "Has 'latest' tag", - "description": "Has Container with 'latest' as image tag" - }, - "hasLimits": { - "type": "boolean", - "title": "All containers have limits" - }, - "isHealthy": { - "type": "string", - "enum": [ - "Healthy", - "Unhealthy" - ], - "enumColors": { - "Healthy": "green", - "Unhealthy": "red" - }, - "title": "ReplicaSet Health" - }, - "strategyConfig": { - "type": "object", - "title": "Strategy Config", - "description": "The ReplicaSet rollout strategy" - } - }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "relations": { - "replicaSetManager": { - "title": "Manager", - "target": "workload", - "required": false, - "many": false - } - } - }, - { - "identifier": "trivyVulnerabilities", - "title": "Trivy Vulnerabilities", - "icon": "Trivy", - "schema": { - "properties": { - "scanner": { - "title": "Scanner", - "type": "string" - }, - "criticalCount": { - "title": "Critical Count", - "type": "number" - }, - "highCount": { - "title": "High Count", - "type": "number" - }, - "lowCount": { - "title": "Low Count", - "type": "number" - }, - "mediumCount": { - "title": "Medium Count", - "type": "number" - }, - "category": { - "title": "Category", - "type": "string" - }, - "message": { - "title": "Message", - "type": "array" - }, - "severity": { - "title": "Severity", - "type": "string", - "enum": [ - "LOW", - "MEDIUM", - "HIGH", - "CRITICAL", - "UNKNOWN" - ], - "enumColors": { - "LOW": "green", - "MEDIUM": "yellow", - "HIGH": "red", - "CRITICAL": "red", - "UNKNOWN": "lightGray" - } - }, - "scannerVersion": { - "title": "Scanner Version", - "type": "string" - }, - "createdAt": { - "title": "Created At", - "type": "string", - "format": "date-time" - } - }, - "required": [] - }, - "mirrorProperties": {}, - "calculationProperties": {}, - "aggregationProperties": {}, - "relations": { - "namespace": { - "title": "Namespace", - "target": "namespace", - "required": false, - "many": false - } - } - } + { + "identifier": "cluster", + "description": "This blueprint represents a Kubernetes Cluster", + "title": "Cluster", + "icon": "Cluster", + "schema": { + "properties": {}, + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": {} + }, + { + "identifier": "node", + "description": "This blueprint represents a k8s Node", + "title": "Node", + "icon": "Node", + "schema": { + "properties": { + "creationTimestamp": { + "type": "string", + "icon": "DeployedAt", + "title": "Created", + "format": "date-time", + "description": "When the Node was created (added to the cluster)" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Node" + }, + "ready": { + "type": "string", + "title": "Node Readiness", + "description": "Node ready status", + "enum": [ + "True", + "False", + "Unknown" + ], + "enumColors": { + "False": "red", + "True": "green" + } + }, + "totalMemory": { + "type": "string", + "icon": "GPU", + "title": "Total Memory (kibibytes)", + "description": "Total memory capacity of the Node" + }, + "kubeletVersion": { + "type": "string", + "title": "Kubelet Version", + "description": "The node's kubelet version" + }, + "totalCPU": { + "type": "string", + "icon": "CPU", + "title": "Total CPU (milli-cores)", + "description": "Total CPU capacity of the Node" + } + }, + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Cluster": { + "title": "Cluster", + "target": "cluster", + "required": false, + "many": true + } + } + }, + { + "identifier": "namespace", + "description": "This blueprint represents a k8s Namespace", + "title": "Namespace", + "icon": "Environment", + "schema": { + "properties": { + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Namespace was created" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Namespace" + } + }, + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "Cluster": { + "title": "Cluster", + "description": "The namespace's Kubernetes cluster", + "target": "cluster", + "required": false, + "many": false + } + } + }, + { + "identifier": "workload", + "description": "This blueprint represents a k8s Workload. This includes all k8s objects which can create pods (deployments[replicasets], daemonsets, statefulsets...)", + "title": "Workload", + "icon": "Deployment", + "schema": { + "properties": { + "availableReplicas": { + "type": "number", + "title": "Running Replicas", + "description": "Current running replica count" + }, + "containers": { + "type": "array", + "title": "Containers", + "default": [], + "description": "The containers for each pod instance of the Workload" + }, + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Workload was created" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Workload" + }, + "replicas": { + "type": "number", + "title": "Wanted Replicas", + "description": "Wanted replica count" + }, + "strategy": { + "type": "string", + "title": "Strategy", + "description": "Rollout Strategy" + }, + "hasPrivileged": { + "type": "boolean", + "title": "Has Privileged Container" + }, + "hasLatest": { + "type": "boolean", + "title": "Has 'latest' tag", + "description": "Has Container with 'latest' as image tag" + }, + "hasLimits": { + "type": "boolean", + "title": "All containers have limits" + }, + "isHealthy": { + "type": "string", + "enum": [ + "Healthy", + "Unhealthy" + ], + "enumColors": { + "Healthy": "green", + "Unhealthy": "red" + }, + "title": "Workload Health" + }, + "kind": { + "title": "Workload Kind", + "description": "The kind of Workload", + "type": "string", + "enum": [ + "StatefulSet", + "DaemonSet", + "Deployment", + "ReplicaSet" + ] + }, + "strategyConfig": { + "type": "object", + "title": "Strategy Config", + "description": "The workloads rollout strategy" + } + }, + "required": [] + }, + "mirrorProperties": { + "Cluster": { + "title": "Cluster", + "path": "Namespace.Cluster.$title" + }, + "namespace": { + "title": "namespace", + "path": "Namespace.$title" + } + }, + "calculationProperties": {}, + "relations": { + "workloadManager": { + "title": "Manager", + "description": "A replicaset's workload. For example, Workload abc-ReplicaSet is managed by Workload xyz-Depolyment", + "target": "workload", + "required": false, + "many": false + }, + "Namespace": { + "title": "Namespace", + "target": "namespace", + "required": false, + "many": false + } + } + }, + { + "identifier": "pod", + "description": "This blueprint represents a k8s Pod", + "title": "Pod", + "icon": "Service", + "schema": { + "properties": { + "conditions": { + "type": "array", + "title": "Conditions", + "default": [], + "description": "Pod's conditions" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Pod" + }, + "phase": { + "type": "string", + "title": "Pod phase", + "description": "Pod's running phase" + }, + "startTime": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "Pod's creation date" + } + }, + "required": [] + }, + "mirrorProperties": { + "containers": { + "title": "Containers", + "path": "workload.containers" + }, + "cluster": { + "title": "Cluster", + "path": "workload.Namespace.Cluster.$identifier" + }, + "namespace": { + "title": "Namespace", + "path": "workload.Namespace.$title" + } + }, + "calculationProperties": {}, + "relations": { + "replicaSet": { + "title": "ReplicaSet", + "description": "The ReplicaSet managing the pod (if it exists)", + "target": "replicaSet", + "required": false, + "many": false + }, + "Node": { + "title": "Node", + "description": "The node the pod is running on", + "target": "node", + "required": false, + "many": false + }, + "workload": { + "title": "Workload", + "description": "The workload responsible for the pod", + "target": "workload", + "required": false, + "many": false + } + } + }, + { + "identifier": "replicaSet", + "description": "This blueprint represents a k8s ReplicaSet", + "title": "ReplicaSet", + "icon": "Deployment", + "schema": { + "properties": { + "replicaSetJson": { + "title": "ReplicaSet Json", + "type": "object", + "description": "The ReplicaSet json" + }, + "availableReplicas": { + "type": "number", + "title": "Running Replicas", + "description": "Current running replica count" + }, + "containers": { + "type": "array", + "title": "Containers", + "default": [], + "description": "The containers for each pod instance of the Workload" + }, + "creationTimestamp": { + "type": "string", + "title": "Created", + "format": "date-time", + "description": "When the Workload was created" + }, + "labels": { + "type": "object", + "title": "Labels", + "description": "Labels of the Workload" + }, + "replicas": { + "type": "number", + "title": "Wanted Replicas", + "description": "Wanted replica count" + }, + "strategy": { + "type": "string", + "title": "Strategy", + "description": "Rollout Strategy" + }, + "hasPrivileged": { + "type": "boolean", + "title": "Has Privileged Container" + }, + "hasLatest": { + "type": "boolean", + "title": "Has 'latest' tag", + "description": "Has Container with 'latest' as image tag" + }, + "hasLimits": { + "type": "boolean", + "title": "All containers have limits" + }, + "isHealthy": { + "type": "string", + "enum": [ + "Healthy", + "Unhealthy" + ], + "enumColors": { + "Healthy": "green", + "Unhealthy": "red" + }, + "title": "ReplicaSet Health" + }, + "strategyConfig": { + "type": "object", + "title": "Strategy Config", + "description": "The ReplicaSet rollout strategy" + } + }, + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "relations": { + "replicaSetManager": { + "title": "Manager", + "target": "workload", + "required": false, + "many": false + } + } + }, + { + "identifier": "trivyVulnerabilities", + "title": "Trivy Vulnerabilities", + "icon": "Trivy", + "schema": { + "properties": { + "scanner": { + "title": "Scanner", + "type": "string" + }, + "criticalCount": { + "title": "Critical Count", + "type": "number" + }, + "highCount": { + "title": "High Count", + "type": "number" + }, + "lowCount": { + "title": "Low Count", + "type": "number" + }, + "mediumCount": { + "title": "Medium Count", + "type": "number" + }, + "category": { + "title": "Category", + "type": "string" + }, + "message": { + "title": "Message", + "type": "array" + }, + "severity": { + "title": "Severity", + "type": "string", + "enum": [ + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL", + "UNKNOWN" + ], + "enumColors": { + "LOW": "green", + "MEDIUM": "yellow", + "HIGH": "red", + "CRITICAL": "red", + "UNKNOWN": "lightGray" + } + }, + "scannerVersion": { + "title": "Scanner Version", + "type": "string" + }, + "createdAt": { + "title": "Created At", + "type": "string", + "format": "date-time" + } + }, + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "aggregationProperties": {}, + "relations": { + "namespace": { + "title": "Namespace", + "target": "namespace", + "required": false, + "many": false + } + } + } ] \ No newline at end of file