mirror of
https://github.com/outbackdingo/cozystack.git
synced 2026-01-27 10:18:39 +00:00
[dashboard] refactor dashboard configuration
- Refactor code for dashboard resources creation - Move dashboard-config helm chart to dynamic dashboard controller - Move white-label configuration to separate configmap Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
This commit is contained in:
@@ -297,24 +297,6 @@ releases:
|
||||
- keycloak-configure
|
||||
{{- end }}
|
||||
|
||||
- name: dashboard-config
|
||||
releaseName: dashboard-config
|
||||
chart: cozy-dashboard-config
|
||||
namespace: cozy-dashboard
|
||||
values:
|
||||
{{- $dashboardKCconfig := lookup "v1" "ConfigMap" "cozy-dashboard" "kubeapps-auth-config" }}
|
||||
{{- $dashboardKCValues := dig "data" "values.yaml" "" $dashboardKCconfig | fromYaml }}
|
||||
{{- toYaml (deepCopy $dashboardKCValues | mergeOverwrite (fromYaml (include "cozystack.defaultDashboardValues" .))) | nindent 4 }}
|
||||
dependsOn:
|
||||
- cilium
|
||||
- kubeovn
|
||||
- dashboard
|
||||
- cozystack-api
|
||||
{{- if eq $oidcEnabled "true" }}
|
||||
- keycloak-configure
|
||||
{{- end }}
|
||||
|
||||
|
||||
- name: kamaji
|
||||
releaseName: kamaji
|
||||
chart: cozy-kamaji
|
||||
|
||||
@@ -182,22 +182,6 @@ releases:
|
||||
dependsOn: []
|
||||
{{- end }}
|
||||
|
||||
- name: dashboard-config
|
||||
releaseName: dashboard-config
|
||||
chart: cozy-dashboard-config
|
||||
namespace: cozy-dashboard
|
||||
values:
|
||||
{{- $dashboardKCconfig := lookup "v1" "ConfigMap" "cozy-dashboard" "kubeapps-auth-config" }}
|
||||
{{- $dashboardKCValues := dig "data" "values.yaml" "" $dashboardKCconfig | fromYaml }}
|
||||
{{- toYaml (deepCopy $dashboardKCValues | mergeOverwrite (fromYaml (include "cozystack.defaultDashboardValues" .))) | nindent 4 }}
|
||||
dependsOn:
|
||||
- cilium
|
||||
- kubeovn
|
||||
- dashboard
|
||||
{{- if eq $oidcEnabled "true" }}
|
||||
- keycloak-configure
|
||||
{{- end }}
|
||||
|
||||
{{- if $oidcEnabled }}
|
||||
- name: keycloak
|
||||
releaseName: keycloak
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
cozystackController:
|
||||
image: ghcr.io/cozystack/cozystack/cozystack-controller:latest@sha256:20483582c50ead02d76719d3acfe2bb5e0d5a62de7dce65ffebe4039f8f3c400
|
||||
image: ghcr.io/cozystack/cozystack/cozystack-controller:latest@sha256:1c439f383e0a0ca5eed3b3c820c8caf00b4d5347579d2f78ce6897f031041cf6
|
||||
debug: false
|
||||
disableTelemetry: false
|
||||
cozystackVersion: "latest"
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
apiVersion: v2
|
||||
version: 1.0.0
|
||||
name: cozy-dashboard-config
|
||||
@@ -1,5 +0,0 @@
|
||||
NAME := dashboard-config
|
||||
NAMESPACE := cozy-dashboard
|
||||
|
||||
include ../../../scripts/common-envs.mk
|
||||
include ../../../scripts/package.mk
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Breadcrumb
|
||||
metadata:
|
||||
name: stock-project-factory-configmap-details
|
||||
spec:
|
||||
id: "stock-project-factory-configmap-details"
|
||||
breadcrumbItems:
|
||||
- key: configmaps
|
||||
label: "v1/configmaps"
|
||||
link: "/openapi-ui/{clusterName}/{namespace}/builtin-table/configmaps"
|
||||
- key: configmap
|
||||
label: "{6}"
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Breadcrumb
|
||||
metadata:
|
||||
name: stock-cluster-factory-namespace-details
|
||||
spec:
|
||||
id: "stock-cluster-factory-namespace-details"
|
||||
breadcrumbItems:
|
||||
- key: namespaces
|
||||
label: "v1/namespaces"
|
||||
link: "/openapi-ui/{clusterName}/builtin-table/namespaces"
|
||||
- key: namespace
|
||||
label: "{5}"
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Breadcrumb
|
||||
metadata:
|
||||
name: stock-cluster-factory-node-details
|
||||
spec:
|
||||
id: "stock-cluster-factory-node-details"
|
||||
breadcrumbItems:
|
||||
- key: node
|
||||
label: "v1/nodes"
|
||||
link: "/openapi-ui/{clusterName}/builtin-table/nodes"
|
||||
- key: node
|
||||
label: "{5}"
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Breadcrumb
|
||||
metadata:
|
||||
name: stock-project-factory-pod-details
|
||||
spec:
|
||||
id: "stock-project-factory-pod-details"
|
||||
breadcrumbItems:
|
||||
- key: pods
|
||||
label: "v1/pods"
|
||||
link: "/openapi-ui/{clusterName}/{namespace}/builtin-table/pods"
|
||||
- key: pod
|
||||
label: "{6}"
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Breadcrumb
|
||||
metadata:
|
||||
name: stock-project-factory-secret-details
|
||||
spec:
|
||||
id: "stock-project-factory-secret-details"
|
||||
breadcrumbItems:
|
||||
- key: secrets
|
||||
label: "v1/secrets"
|
||||
link: "/openapi-ui/{clusterName}/{namespace}/builtin-table/secrets"
|
||||
- key: secret
|
||||
label: "{6}"
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Breadcrumb
|
||||
metadata:
|
||||
name: stock-project-factory-service-details
|
||||
spec:
|
||||
id: "stock-project-factory-service-details"
|
||||
breadcrumbItems:
|
||||
- key: services
|
||||
label: "v1/services"
|
||||
link: "/openapi-ui/{clusterName}/{namespace}/builtin-table/services"
|
||||
- key: service
|
||||
label: "{6}"
|
||||
@@ -1,38 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Breadcrumb
|
||||
metadata:
|
||||
name: stock-cluster-api-table
|
||||
spec:
|
||||
id: "stock-cluster-api-table"
|
||||
breadcrumbItems:
|
||||
- key: api
|
||||
label: "{apiGroup}/{apiVersion}/{typeName}"
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Breadcrumb
|
||||
metadata:
|
||||
name: stock-cluster-api-form
|
||||
spec:
|
||||
id: "stock-cluster-api-form"
|
||||
breadcrumbItems:
|
||||
- key: create-api-res-namespaced-table
|
||||
label: "{apiGroup}/{apiVersion}/{typeName}"
|
||||
link: "/openapi-ui/{clusterName}/api-table/{apiGroup}/{apiVersion}/{typeName}"
|
||||
- key: create-api-res-namespaced-typename
|
||||
label: Create
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Breadcrumb
|
||||
metadata:
|
||||
name: stock-cluster-api-form-edit
|
||||
spec:
|
||||
id: "stock-cluster-api-form-edit"
|
||||
breadcrumbItems:
|
||||
- key: create-api-res-namespaced-table
|
||||
label: "{apiGroup}/{apiVersion}/{typeName}"
|
||||
link: "/openapi-ui/{clusterName}/api-table/{apiGroup}/{apiVersion}/{typeName}"
|
||||
- key: create-api-res-namespaced-typename
|
||||
label: Update
|
||||
@@ -1,38 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Breadcrumb
|
||||
metadata:
|
||||
name: stock-cluster-builtin-table
|
||||
spec:
|
||||
id: "stock-cluster-builtin-table"
|
||||
breadcrumbItems:
|
||||
- key: api
|
||||
label: "v1/{typeName}"
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Breadcrumb
|
||||
metadata:
|
||||
name: stock-cluster-builtin-form
|
||||
spec:
|
||||
id: "stock-cluster-builtin-form"
|
||||
breadcrumbItems:
|
||||
- key: create-api-res-namespaced-table
|
||||
label: "v1/{typeName}"
|
||||
link: "/openapi-ui/{clusterName}/builtin-table/{typeName}"
|
||||
- key: create-api-res-namespaced-typename
|
||||
label: Create
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Breadcrumb
|
||||
metadata:
|
||||
name: stock-cluster-builtin-form-edit
|
||||
spec:
|
||||
id: "stock-cluster-builtin-form-edit"
|
||||
breadcrumbItems:
|
||||
- key: create-api-res-namespaced-table
|
||||
label: "v1/{typeName}"
|
||||
link: "/openapi-ui/{clusterName}/builtin-table/{typeName}"
|
||||
- key: create-api-res-namespaced-typename
|
||||
label: Update
|
||||
@@ -1,38 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Breadcrumb
|
||||
metadata:
|
||||
name: stock-project-api-table
|
||||
spec:
|
||||
id: "stock-project-api-table"
|
||||
breadcrumbItems:
|
||||
- key: api
|
||||
label: "{apiGroup}/{apiVersion}/{typeName}"
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Breadcrumb
|
||||
metadata:
|
||||
name: stock-project-api-form
|
||||
spec:
|
||||
id: "stock-project-api-form"
|
||||
breadcrumbItems:
|
||||
- key: create-api-res-namespaced-table
|
||||
label: "{apiGroup}/{apiVersion}/{typeName}"
|
||||
link: "/openapi-ui/{clusterName}/{namespace}/api-table/{apiGroup}/{apiVersion}/{typeName}"
|
||||
- key: create-api-res-namespaced-typename
|
||||
label: Create
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Breadcrumb
|
||||
metadata:
|
||||
name: stock-project-api-form-edit
|
||||
spec:
|
||||
id: "stock-project-api-form-edit"
|
||||
breadcrumbItems:
|
||||
- key: create-api-res-namespaced-table
|
||||
label: "{apiGroup}/{apiVersion}/{typeName}"
|
||||
link: "/openapi-ui/{clusterName}/{namespace}/api-table/{apiGroup}/{apiVersion}/{typeName}"
|
||||
- key: create-api-res-namespaced-typename
|
||||
label: Update
|
||||
@@ -1,38 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Breadcrumb
|
||||
metadata:
|
||||
name: stock-project-builtin-table
|
||||
spec:
|
||||
id: "stock-project-builtin-table"
|
||||
breadcrumbItems:
|
||||
- key: api
|
||||
label: "v1/{typeName}"
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Breadcrumb
|
||||
metadata:
|
||||
name: stock-project-builtin-form
|
||||
spec:
|
||||
id: "stock-project-builtin-form"
|
||||
breadcrumbItems:
|
||||
- key: create-api-res-namespaced-table
|
||||
label: "v1/{typeName}"
|
||||
link: "/openapi-ui/{clusterName}/{namespace}/builtin-table/{typeName}"
|
||||
- key: create-api-res-namespaced-typename
|
||||
label: Create
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Breadcrumb
|
||||
metadata:
|
||||
name: stock-project-builtin-form-edit
|
||||
spec:
|
||||
id: "stock-project-builtin-form-edit"
|
||||
breadcrumbItems:
|
||||
- key: create-api-res-namespaced-table
|
||||
label: "v1/{typeName}"
|
||||
link: "/openapi-ui/{clusterName}/{namespace}/builtin-table/{typeName}"
|
||||
- key: create-api-res-namespaced-typename
|
||||
label: Update
|
||||
@@ -1,126 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: factory-details-v1.services
|
||||
spec:
|
||||
id: factory-details-v1.services
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .metadata.name
|
||||
name: Name
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "S"
|
||||
"title" "service"
|
||||
"backgroundColor" "#6ca100"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".metadata.name"
|
||||
"namespace" "{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
"factory" "service-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .spec.clusterIP
|
||||
name: ClusterIP
|
||||
type: string
|
||||
- jsonPath: .spec.loadBalancerIP
|
||||
name: LoadbalancerIP
|
||||
type: string
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Created
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.timeblock" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
) | nindent 8
|
||||
}}
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: ClusterIP
|
||||
value: "-"
|
||||
- key: LoadbalancerIP
|
||||
value: "-"
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Name
|
||||
value: 64
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: stock-namespace-v1.services
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .metadata.name
|
||||
name: Name
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "S"
|
||||
"title" "service"
|
||||
"backgroundColor" "#6ca100"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".metadata.name"
|
||||
"namespace" "{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
"factory" "service-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .spec.clusterIP
|
||||
name: ClusterIP
|
||||
type: string
|
||||
- jsonPath: .spec.loadBalancerIP
|
||||
name: LoadbalancerIP
|
||||
type: string
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Created
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.timeblock" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
) | nindent 8
|
||||
}}
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: ClusterIP
|
||||
value: "-"
|
||||
- key: LoadbalancerIP
|
||||
value: "-"
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Name
|
||||
value: 64
|
||||
id: stock-namespace-/v1/services
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: factory-service-details-port-mapping
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .name
|
||||
name: Name
|
||||
type: string
|
||||
- jsonPath: .port
|
||||
name: Port
|
||||
type: string
|
||||
- jsonPath: .protocol
|
||||
name: Protocol
|
||||
type: string
|
||||
- jsonPath: .targetPort
|
||||
name: Pod port or name
|
||||
type: string
|
||||
id: factory-service-details-port-mapping
|
||||
@@ -1,46 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: factory-details-v1alpha1.cozystack.io.workloadmonitors
|
||||
spec:
|
||||
id: factory-details-v1alpha1.cozystack.io.workloadmonitors
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .metadata.name
|
||||
name: Name
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "W"
|
||||
"title" "workloadmonitor"
|
||||
"backgroundColor" "#c46100"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".metadata.name"
|
||||
"namespace" "{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
"factory" "workloadmonitor-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .spec.type
|
||||
name: TYPE
|
||||
type: string
|
||||
- jsonPath: .spec.version
|
||||
name: VERSION
|
||||
type: string
|
||||
- jsonPath: .spec.replicas
|
||||
name: REPLICAS
|
||||
type: string
|
||||
- jsonPath: .spec.minReplicas
|
||||
name: MINREPLICAS
|
||||
type: string
|
||||
- jsonPath: .status.availableReplicas
|
||||
name: AVAILABLE
|
||||
type: string
|
||||
- jsonPath: .status.observedReplicas
|
||||
name: OBSERVED
|
||||
type: string
|
||||
@@ -1,56 +0,0 @@
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: factory-details-v1alpha1.core.cozystack.io.tenantsecretstables
|
||||
spec:
|
||||
id: factory-details-v1alpha1.core.cozystack.io.tenantsecretstables
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .metadata.name
|
||||
name: Name
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "S"
|
||||
"title" "secret"
|
||||
"backgroundColor" "#c46100"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".metadata.name"
|
||||
"namespace" "{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
"factory" "secret-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .data.key
|
||||
name: Key
|
||||
type: string
|
||||
- name: Value
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
- type: SecretBase64Plain
|
||||
data:
|
||||
id: example-secterbase64
|
||||
plainTextValue: "hello"
|
||||
base64Value: "{reqsJsonPath[0]['.data.value']['-']}"
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Created
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.timeblock" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
) | nindent 8
|
||||
}}
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Name
|
||||
value: 64
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: Namespace
|
||||
value: '-'
|
||||
@@ -1,47 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: factory-ingress-details-rules
|
||||
spec:
|
||||
id: factory-ingress-details-rules
|
||||
# Each item is a rule. We'll display the first HTTP path data where present
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .host
|
||||
name: Host
|
||||
type: string
|
||||
- jsonPath: .http.paths[0].backend.service.name
|
||||
name: Service
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "S"
|
||||
"title" "service"
|
||||
"backgroundColor" "#6ca100"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".http.paths[0].backend.service.name"
|
||||
"namespace" "{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
"factory" "service-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .http.paths[0].backend.service.port.number
|
||||
name: Port
|
||||
type: string
|
||||
- jsonPath: .http.paths[0].path
|
||||
name: Path
|
||||
type: string
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: Service
|
||||
value: "-"
|
||||
- key: Port
|
||||
value: "-"
|
||||
- key: Path
|
||||
value: "-"
|
||||
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: factory-node-images
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .names[0]
|
||||
name: ImageID
|
||||
type: string
|
||||
- jsonPath: .sizeBytes
|
||||
name: Size
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
- type: ConverterBytes
|
||||
data:
|
||||
id: example-converter-bytes
|
||||
bytesValue: "{reqsJsonPath[0]['.sizeBytes']['-']}"
|
||||
format: true
|
||||
precision: 1
|
||||
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: Message
|
||||
value: "-"
|
||||
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: ImageID
|
||||
value: 128
|
||||
- key: Size
|
||||
value: 63
|
||||
id: "factory-node-images"
|
||||
@@ -1,11 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: factory-pod-details-volume-list
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .name
|
||||
name: Name
|
||||
type: string
|
||||
id: "factory-pod-details-volume-list"
|
||||
@@ -1,40 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: factory-status-conditions
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .type
|
||||
name: Type
|
||||
type: string
|
||||
- jsonPath: .status
|
||||
name: Status
|
||||
type: bool
|
||||
- jsonPath: .lastTransitionTime
|
||||
name: Updated
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.timeblock" (dict
|
||||
"req" ".lastTransitionTime"
|
||||
) | nindent 8
|
||||
}}
|
||||
- jsonPath: .reason
|
||||
name: Reason
|
||||
type: string
|
||||
- jsonPath: .message
|
||||
name: Message
|
||||
type: string
|
||||
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: Reason
|
||||
value: "-"
|
||||
- key: Message
|
||||
value: "-"
|
||||
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Message
|
||||
value: 63
|
||||
id: "factory-status-conditions"
|
||||
@@ -1,162 +0,0 @@
|
||||
{{- define "incloud-web-resources.customformoverride.hidden.metadata.system" -}}
|
||||
- - metadata
|
||||
- creationTimestamp
|
||||
- - metadata
|
||||
- deletionGracePeriodSeconds
|
||||
- - metadata
|
||||
- deletionTimestamp
|
||||
- - metadata
|
||||
- finalizers
|
||||
- - metadata
|
||||
- generateName
|
||||
- - metadata
|
||||
- generation
|
||||
- - metadata
|
||||
- managedFields
|
||||
- - metadata
|
||||
- ownerReferences
|
||||
- - metadata
|
||||
- resourceVersion
|
||||
- - metadata
|
||||
- selfLink
|
||||
- - metadata
|
||||
- uid
|
||||
{{- end -}}
|
||||
|
||||
{{- define "incloud-web-resources.customformoverride.hidden.metadata.system-clusterscope" -}}
|
||||
- - metadata
|
||||
- creationTimestamp
|
||||
- - metadata
|
||||
- namespace
|
||||
- - metadata
|
||||
- deletionGracePeriodSeconds
|
||||
- - metadata
|
||||
- deletionTimestamp
|
||||
- - metadata
|
||||
- finalizers
|
||||
- - metadata
|
||||
- generateName
|
||||
- - metadata
|
||||
- generation
|
||||
- - metadata
|
||||
- managedFields
|
||||
- - metadata
|
||||
- ownerReferences
|
||||
- - metadata
|
||||
- resourceVersion
|
||||
- - metadata
|
||||
- selfLink
|
||||
- - metadata
|
||||
- uid
|
||||
{{- end -}}
|
||||
|
||||
{{- define "incloud-web-resources.customformoverride.hidden.metadata.system.job-template" -}}
|
||||
- - spec
|
||||
- jobTemplate
|
||||
- metadata
|
||||
- creationTimestamp
|
||||
- - spec
|
||||
- jobTemplate
|
||||
- metadata
|
||||
- namespace
|
||||
- - spec
|
||||
- jobTemplate
|
||||
- metadata
|
||||
- deletionGracePeriodSeconds
|
||||
- - spec
|
||||
- jobTemplate
|
||||
- metadata
|
||||
- deletionTimestamp
|
||||
- - spec
|
||||
- jobTemplate
|
||||
- metadata
|
||||
- finalizers
|
||||
- - spec
|
||||
- jobTemplate
|
||||
- metadata
|
||||
- generateName
|
||||
- - spec
|
||||
- jobTemplate
|
||||
- metadata
|
||||
- generation
|
||||
- - spec
|
||||
- jobTemplate
|
||||
- metadata
|
||||
- managedFields
|
||||
- - spec
|
||||
- jobTemplate
|
||||
- metadata
|
||||
- ownerReferences
|
||||
- - spec
|
||||
- jobTemplate
|
||||
- metadata
|
||||
- resourceVersion
|
||||
- - spec
|
||||
- jobTemplate
|
||||
- metadata
|
||||
- selfLink
|
||||
- - spec
|
||||
- jobTemplate
|
||||
- metadata
|
||||
- uid
|
||||
{{- end -}}
|
||||
|
||||
{{- define "incloud-web-resources.customformoverride.hidden.metadata.system.template" -}}
|
||||
- - spec
|
||||
- template
|
||||
- metadata
|
||||
- creationTimestamp
|
||||
- - spec
|
||||
- template
|
||||
- metadata
|
||||
- namespace
|
||||
- - spec
|
||||
- template
|
||||
- metadata
|
||||
- deletionGracePeriodSeconds
|
||||
- - spec
|
||||
- template
|
||||
- metadata
|
||||
- deletionTimestamp
|
||||
- - spec
|
||||
- template
|
||||
- metadata
|
||||
- finalizers
|
||||
- - spec
|
||||
- template
|
||||
- metadata
|
||||
- generateName
|
||||
- - spec
|
||||
- template
|
||||
- metadata
|
||||
- generation
|
||||
- - spec
|
||||
- template
|
||||
- metadata
|
||||
- managedFields
|
||||
- - spec
|
||||
- template
|
||||
- metadata
|
||||
- ownerReferences
|
||||
- - spec
|
||||
- template
|
||||
- metadata
|
||||
- resourceVersion
|
||||
- - spec
|
||||
- template
|
||||
- metadata
|
||||
- selfLink
|
||||
- - spec
|
||||
- template
|
||||
- metadata
|
||||
- uid
|
||||
{{- end -}}
|
||||
|
||||
{{- define "incloud-web-resources.customformoverride.hidden.metadata.api" -}}
|
||||
- - kind
|
||||
- - apiVersion
|
||||
{{- end -}}
|
||||
|
||||
{{- define "incloud-web-resources.customformoverride.hidden.status" -}}
|
||||
- - status
|
||||
{{- end -}}
|
||||
@@ -1,89 +0,0 @@
|
||||
{{- define "incloud-web-resources.pod.icon" -}}
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: header-row
|
||||
gap: 6
|
||||
align: center
|
||||
# style:
|
||||
# marginBottom: 24px
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: header-badge
|
||||
text: P
|
||||
title: Pods
|
||||
style:
|
||||
fontSize: 20px
|
||||
lineHeight: 24px
|
||||
padding: "0 9px"
|
||||
borderRadius: "20px"
|
||||
minWidth: 24
|
||||
display: inline-block
|
||||
textAlign: center
|
||||
whiteSpace: nowrap
|
||||
color: "#fff"
|
||||
backgroundColor: "#009596"
|
||||
fontFamily: RedHatDisplay, Overpass, overpass, helvetica, arial, sans-serif
|
||||
fontWeight: 400
|
||||
{{- end -}}
|
||||
|
||||
{{- define "incloud-web-resources.namespace.icon" -}}
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: header-row
|
||||
gap: 6
|
||||
align: center
|
||||
# style:
|
||||
# marginBottom: 24px
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: header-badge
|
||||
text: NS
|
||||
title: Nanesoace
|
||||
style:
|
||||
fontSize: 20px
|
||||
lineHeight: 24px
|
||||
padding: "0 9px"
|
||||
borderRadius: "20px"
|
||||
minWidth: 24
|
||||
display: inline-block
|
||||
textAlign: center
|
||||
whiteSpace: nowrap
|
||||
color: "#fff"
|
||||
backgroundColor: "#45a703ff"
|
||||
fontFamily: RedHatDisplay, Overpass, overpass, helvetica, arial, sans-serif
|
||||
fontWeight: 400
|
||||
{{- end -}}
|
||||
|
||||
|
||||
{{- define "incloud-web-resources.icon" -}}
|
||||
{{- $text := (default "" .text) -}}
|
||||
{{- $title := (default "" .title) -}}
|
||||
{{- $backgroundColor := (default "#a25792ff" .backgroundColor) -}}
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: header-row
|
||||
gap: 6
|
||||
align: center
|
||||
children:
|
||||
# Badge with resource short name
|
||||
- type: antdText
|
||||
data:
|
||||
id: header-badge
|
||||
text: "{{ $text }}"
|
||||
title: "{{ $title }}"
|
||||
style:
|
||||
fontSize: 15px
|
||||
lineHeight: 24px
|
||||
padding: "0 9px"
|
||||
borderRadius: "20px"
|
||||
minWidth: 24
|
||||
display: inline-block
|
||||
textAlign: center
|
||||
whiteSpace: nowrap
|
||||
color: "#fff"
|
||||
backgroundColor: "{{ $backgroundColor }}"
|
||||
fontFamily: RedHatDisplay, Overpass, overpass, helvetica, arial, sans-serif
|
||||
fontWeight: 400
|
||||
{{- end -}}
|
||||
@@ -1,154 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: container-status-init-containers-list
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .name
|
||||
name: Name
|
||||
type: string
|
||||
- jsonPath: .imageID
|
||||
name: Image
|
||||
type: string
|
||||
- jsonPath: .started
|
||||
name: Started
|
||||
type: bool
|
||||
- jsonPath: .ready
|
||||
name: Ready
|
||||
type: bool
|
||||
- jsonPath: .restartCount
|
||||
name: RestartCount
|
||||
type: string
|
||||
- jsonPath: .state.waiting.reason
|
||||
name: WaitingdReason
|
||||
type: string
|
||||
- jsonPath: .state.terminated.reason
|
||||
name: TerminatedReason
|
||||
type: string
|
||||
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: TerminatedReason
|
||||
value: "-"
|
||||
- key: WaitingdReason
|
||||
value: "-"
|
||||
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Name
|
||||
value: 63
|
||||
- key: Image
|
||||
value: 63
|
||||
id: "container-status-init-containers-list"
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: container-status-containers-list
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .name
|
||||
name: Name
|
||||
type: string
|
||||
- jsonPath: .imageID
|
||||
name: Image
|
||||
type: string
|
||||
- jsonPath: .started
|
||||
name: Started
|
||||
type: bool
|
||||
- jsonPath: .ready
|
||||
name: Ready
|
||||
type: bool
|
||||
- jsonPath: .restartCount
|
||||
name: RestartCount
|
||||
type: string
|
||||
- jsonPath: .state.waiting.reason
|
||||
name: WaitingdReason
|
||||
type: string
|
||||
- jsonPath: .state.terminated.reason
|
||||
name: TerminatedReason
|
||||
type: string
|
||||
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: TerminatedReason
|
||||
value: "-"
|
||||
- key: WaitingdReason
|
||||
value: "-"
|
||||
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Name
|
||||
value: 63
|
||||
- key: Image
|
||||
value: 63
|
||||
id: "container-status-containers-list"
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: container-spec-init-containers-list
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .name
|
||||
name: Name
|
||||
type: string
|
||||
- jsonPath: .image
|
||||
name: Image
|
||||
type: string
|
||||
- jsonPath: .resources.requests
|
||||
name: Resources requests
|
||||
type: array
|
||||
- jsonPath: .resources.limits
|
||||
name: Resources limits
|
||||
type: array
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Image
|
||||
value: 64
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: Name
|
||||
value: "-"
|
||||
- key: Image
|
||||
value: "-"
|
||||
- key: Resources limits
|
||||
value: "-"
|
||||
- key: Resources requests
|
||||
value: "-"
|
||||
id: container-spec-init-containers-list
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: container-spec-containers-list
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .name
|
||||
name: Name
|
||||
type: string
|
||||
- jsonPath: .image
|
||||
name: Image
|
||||
type: string
|
||||
- jsonPath: .resources.requests
|
||||
name: Resources requests
|
||||
type: array
|
||||
- jsonPath: .resources.limits
|
||||
name: Resources limits
|
||||
type: array
|
||||
- jsonPath: .ports[*].containerPort
|
||||
name: Ports
|
||||
type: array
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Image
|
||||
value: 64
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: Name
|
||||
value: "-"
|
||||
- key: Image
|
||||
value: "-"
|
||||
- key: Resources limits
|
||||
value: "-"
|
||||
- key: Resources requests
|
||||
value: "-"
|
||||
- key: Ports
|
||||
value: "-"
|
||||
id: container-spec-containers-list
|
||||
@@ -1,117 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: factory-details-networking.k8s.io.v1.ingresses
|
||||
spec:
|
||||
id: factory-details-networking.k8s.io.v1.ingresses
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .metadata.name
|
||||
name: Name
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "I"
|
||||
"title" "ingress"
|
||||
"backgroundColor" "#2e7dff"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".metadata.name"
|
||||
"namespace" "{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
"factory" "ingress-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .spec.rules[*].host
|
||||
name: Hosts
|
||||
type: string
|
||||
- jsonPath: .status.loadBalancer.ingress[0].ip
|
||||
name: Address
|
||||
type: string
|
||||
- jsonPath: .spec.defaultBackend.service.port.number
|
||||
name: Port
|
||||
type: string
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Created
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.timeblock" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
) | nindent 8
|
||||
}}
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: Hosts
|
||||
value: "-"
|
||||
- key: Address
|
||||
value: "-"
|
||||
- key: Port
|
||||
value: "-"
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Name
|
||||
value: 64
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: stock-namespace-networking.k8s.io.v1.ingresses
|
||||
spec:
|
||||
id: stock-namespace-/networking.k8s.io/v1/ingresses
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .metadata.name
|
||||
name: Name
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "I"
|
||||
"title" "ingress"
|
||||
"backgroundColor" "#2e7dff"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".metadata.name"
|
||||
"namespace" "{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
"factory" "ingress-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .spec.rules[*].host
|
||||
name: Hosts
|
||||
type: string
|
||||
- jsonPath: .status.loadBalancer.ingress[0].ip
|
||||
name: Address
|
||||
type: string
|
||||
- jsonPath: .spec.defaultBackend.service.port.number
|
||||
name: Port
|
||||
type: string
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Created
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.timeblock" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
) | nindent 8
|
||||
}}
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: Hosts
|
||||
value: "-"
|
||||
- key: Address
|
||||
value: "-"
|
||||
- key: Port
|
||||
value: "-"
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Name
|
||||
value: 64
|
||||
|
||||
|
||||
@@ -1,169 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: "stock-cluster-v1.configmaps"
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .metadata.name
|
||||
name: Name
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "CM"
|
||||
"title" "configmap"
|
||||
"backgroundColor" "#b48c78ff"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".metadata.name"
|
||||
"namespace" "{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
"factory" "configmap-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .metadata.namespace
|
||||
name: Namespace
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "NS"
|
||||
"title" "namespace"
|
||||
"backgroundColor" "#a25792ff"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "namespace"
|
||||
"jsonPath" ".metadata.namespace"
|
||||
"factory" "namespace-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Created
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.timeblock" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
) | nindent 8
|
||||
}}
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Name
|
||||
value: 64
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: Namespace
|
||||
value: "-"
|
||||
id: "stock-cluster-/v1/configmaps"
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: "stock-namespace-v1.configmaps"
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .metadata.name
|
||||
name: Name
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "CM"
|
||||
"title" "configmap"
|
||||
"backgroundColor" "#b48c78ff"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".metadata.name"
|
||||
"namespace" "{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
"factory" "configmap-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Created
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.timeblock" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
) | nindent 8
|
||||
}}
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Name
|
||||
value: 64
|
||||
id: "stock-namespace-/v1/configmaps"
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: "cluster-v1.configmaps"
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .metadata.name
|
||||
name: Name
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "CM"
|
||||
"title" "configmap"
|
||||
"backgroundColor" "#b48c78ff"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".metadata.name"
|
||||
"namespace" "{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
"factory" "configmap-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .metadata.namespace
|
||||
name: Namespace
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "NS"
|
||||
"title" "namespace"
|
||||
"backgroundColor" "#a25792ff"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "namespace"
|
||||
"jsonPath" ".metadata.namespace"
|
||||
"factory" "namespace-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Created
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.timeblock" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
) | nindent 8
|
||||
}}
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Name
|
||||
value: 64
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: Namespace
|
||||
value: "-"
|
||||
id: "cluster-/v1/configmaps"
|
||||
@@ -1,46 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: stock-cluster-v1.nodes
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .metadata.name
|
||||
name: Name
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "N"
|
||||
"title" "node"
|
||||
"backgroundColor" "#8476d1"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".metadata.name"
|
||||
"factory" "node-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- name: Status
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.statuses.node" . | nindent 8 }}
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Created
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.timeblock" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
) | nindent 8
|
||||
}}
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Name
|
||||
value: 64
|
||||
id: stock-cluster-/v1/nodes
|
||||
@@ -1,364 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: "factory-node-details-v1.pods"
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .metadata.name
|
||||
name: Name
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "P"
|
||||
"title" "pod"
|
||||
"backgroundColor" "#009596"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".metadata.name"
|
||||
"namespace" "{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
"factory" "pod-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .metadata.namespace
|
||||
name: Namespace
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "NS"
|
||||
"title" "namespace"
|
||||
"backgroundColor" "#a25792ff"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "namespace"
|
||||
"jsonPath" ".metadata.namespace"
|
||||
"factory" "namespace-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .spec.restartPolicy
|
||||
name: Restart Policy
|
||||
type: string
|
||||
- jsonPath: .status.podIP
|
||||
name: Pod IP
|
||||
type: string
|
||||
# - jsonPath: .status.conditions[?(@.type=="ContainersReady")].status
|
||||
# name: Status Containers
|
||||
# type: string
|
||||
# - jsonPath: .status.conditions[?(@.type=="PodScheduled")].status
|
||||
# name: Status Scheduled
|
||||
# type: string
|
||||
- jsonPath: .status.qosClass
|
||||
name: QOS
|
||||
type: string
|
||||
- name: Status
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.statuses.pod" . | nindent 8 }}
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Created
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.timeblock" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
) | nindent 8
|
||||
}}
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: Node
|
||||
value: Unschedulable
|
||||
- key: Pod IP
|
||||
value: NotAllocated
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Name
|
||||
value: 64
|
||||
id: "factory-node-details-/v1/pods"
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: "factory-v1.pods"
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .metadata.name
|
||||
name: Name
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "P"
|
||||
"title" "pod"
|
||||
"backgroundColor" "#009596"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".metadata.name"
|
||||
"namespace" "{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
"factory" "pod-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- name: Node
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "N"
|
||||
"title" "node"
|
||||
"backgroundColor" "#8476d1"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".spec.nodeName"
|
||||
"factory" "node-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .spec.restartPolicy
|
||||
name: Restart Policy
|
||||
type: string
|
||||
- jsonPath: .status.podIP
|
||||
name: Pod IP
|
||||
type: string
|
||||
# - jsonPath: .status.conditions[?(@.type=="ContainersReady" || @.type=="PodReady")].status
|
||||
# name: Status Containers
|
||||
# type: string
|
||||
# - jsonPath: .status.conditions[?(@.type=="PodScheduled")].status
|
||||
# name: Status Scheduled
|
||||
# type: string
|
||||
- jsonPath: .status.qosClass
|
||||
name: QOS
|
||||
type: string
|
||||
- name: Status
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.statuses.pod" . | nindent 8 }}
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Created
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.timeblock" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
) | nindent 8
|
||||
}}
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: Node
|
||||
value: Unschedulable
|
||||
- key: Pod IP
|
||||
value: NotAllocated
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Name
|
||||
value: 64
|
||||
id: "factory-/v1/pods"
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: "stock-cluster-v1.pods"
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .metadata.name
|
||||
name: Name
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "P"
|
||||
"title" "pod"
|
||||
"backgroundColor" "#009596"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".metadata.name"
|
||||
"namespace" "{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
"factory" "pod-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .metadata.namespace
|
||||
name: Namespace
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "NS"
|
||||
"title" "namespace"
|
||||
"backgroundColor" "#a25792ff"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "namespace"
|
||||
"jsonPath" ".metadata.namespace"
|
||||
"factory" "namespace-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .spec.nodeName
|
||||
name: Node
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "N"
|
||||
"title" "node"
|
||||
"backgroundColor" "#8476d1"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".spec.nodeName"
|
||||
"factory" "node-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .spec.restartPolicy
|
||||
name: Restart Policy
|
||||
type: string
|
||||
- jsonPath: .status.podIP
|
||||
name: Pod IP
|
||||
type: string
|
||||
# - jsonPath: .status.conditions[?(@.type=="ContainersReady")].status
|
||||
# name: Status Containers
|
||||
# type: string
|
||||
# - jsonPath: .status.conditions[?(@.type=="PodScheduled")].status
|
||||
# name: Status Scheduled
|
||||
# type: string
|
||||
- jsonPath: .status.qosClass
|
||||
name: QOS
|
||||
type: string
|
||||
- name: Status
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.statuses.pod" . | nindent 8 }}
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Created
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.timeblock" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
) | nindent 8
|
||||
}}
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: Node
|
||||
value: Unschedulable
|
||||
- key: Pod IP
|
||||
value: NotAllocated
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Name
|
||||
value: 64
|
||||
id: "stock-cluster-/v1/pods"
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: "stock-namespace-v1.pods"
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .metadata.name
|
||||
name: Name
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "P"
|
||||
"title" "pod"
|
||||
"backgroundColor" "#009596"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".metadata.name"
|
||||
"namespace" "{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
"factory" "pod-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- name: Node
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "N"
|
||||
"title" "node"
|
||||
"backgroundColor" "#8476d1"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".spec.nodeName"
|
||||
"factory" "node-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .spec.restartPolicy
|
||||
name: Restart Policy
|
||||
type: string
|
||||
- jsonPath: .status.podIP
|
||||
name: Pod IP
|
||||
type: string
|
||||
# - jsonPath: .status.conditions[?(@.type=="ContainersReady")].status
|
||||
# name: Status Containers
|
||||
# type: string
|
||||
# - jsonPath: .status.conditions[?(@.type=="PodScheduled")].status
|
||||
# name: Status Scheduled
|
||||
# type: string
|
||||
- jsonPath: .status.qosClass
|
||||
name: QOS
|
||||
type: string
|
||||
- name: Status
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.statuses.pod" . | nindent 8 }}
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Created
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.timeblock" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
) | nindent 8
|
||||
}}
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: Node
|
||||
value: Unschedulable
|
||||
- key: Pod IP
|
||||
value: NotAllocated
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Name
|
||||
value: 64
|
||||
id: "stock-namespace-/v1/pods"
|
||||
@@ -1,111 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: "stock-cluster-v1.secrets"
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .metadata.name
|
||||
name: Name
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "S"
|
||||
"title" "secret"
|
||||
"backgroundColor" "#c46100"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".metadata.name"
|
||||
"namespace" "{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
"factory" "secret-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .metadata.namespace
|
||||
name: Namespace
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "NS"
|
||||
"title" "namespace"
|
||||
"backgroundColor" "#a25792ff"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "namespace"
|
||||
"jsonPath" ".metadata.namespace"
|
||||
"factory" "namespace-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .type
|
||||
name: Type
|
||||
type: string
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Created
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.timeblock" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
) | nindent 8
|
||||
}}
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Name
|
||||
value: 64
|
||||
id: "stock-cluster-/v1/secrets"
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: "stock-namespace-v1.secrets"
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .metadata.name
|
||||
name: Name
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "S"
|
||||
"title" "secret"
|
||||
"backgroundColor" "#c46100"
|
||||
)| nindent 8
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".metadata.name"
|
||||
"namespace" "{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
"factory" "secret-details"
|
||||
) | nindent 12
|
||||
}}
|
||||
- jsonPath: .type
|
||||
name: Type
|
||||
type: string
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Created
|
||||
type: factory
|
||||
customProps:
|
||||
disableEventBubbling: true
|
||||
items:
|
||||
{{ include "incloud-web-resources.factory.timeblock" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
) | nindent 8
|
||||
}}
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Name
|
||||
value: 64
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: Namespace
|
||||
value: "-"
|
||||
id: "stock-namespace-/v1/secrets"
|
||||
@@ -1,42 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomColumnsOverride
|
||||
metadata:
|
||||
name: factory-details-v1alpha1.cozystack.io.workloads
|
||||
spec:
|
||||
id: factory-details-v1alpha1.cozystack.io.workloads
|
||||
additionalPrinterColumns:
|
||||
- jsonPath: .metadata.name
|
||||
name: Name
|
||||
type: string
|
||||
- jsonPath: .status.kind
|
||||
name: Kind
|
||||
type: string
|
||||
- jsonPath: .status.type
|
||||
name: Type
|
||||
type: string
|
||||
- jsonPath: .status.resources.cpu
|
||||
name: CPU
|
||||
type: string
|
||||
- jsonPath: .status.resources.memory
|
||||
name: Memory
|
||||
type: string
|
||||
- jsonPath: .status.operational
|
||||
name: Operational
|
||||
type: string
|
||||
additionalPrinterColumnsTrimLengths:
|
||||
- key: Name
|
||||
value: 64
|
||||
additionalPrinterColumnsUndefinedValues:
|
||||
- key: Name
|
||||
value: "-"
|
||||
- key: Kind
|
||||
value: "-"
|
||||
- key: Type
|
||||
value: "-"
|
||||
- key: CPU
|
||||
value: "-"
|
||||
- key: Memory
|
||||
value: "-"
|
||||
- key: Operational
|
||||
value: "-"
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomFormsOverride
|
||||
metadata:
|
||||
name: default-networking.k8s.io.v1.ingresses
|
||||
spec:
|
||||
customizationId: "default-/networking.k8s.io/v1/ingresses"
|
||||
hidden:
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.system" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.api" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.status" . | nindent 4 }}
|
||||
schema: {}
|
||||
strategy: merge
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomFormsOverride
|
||||
metadata:
|
||||
name: default-storage.k8s.io.v1.storageclasses
|
||||
spec:
|
||||
customizationId: "default-/storage.k8s.io/v1/storageclasses"
|
||||
hidden:
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.system" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.api" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.status" . | nindent 4 }}
|
||||
schema: {}
|
||||
strategy: merge
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomFormsOverride
|
||||
metadata:
|
||||
name: default-v1.configmaps
|
||||
spec:
|
||||
customizationId: "default-/v1/configmaps"
|
||||
hidden:
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.system" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.api" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.status" . | nindent 4 }}
|
||||
schema: {}
|
||||
strategy: merge
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomFormsOverride
|
||||
metadata:
|
||||
name: default-v1.namespaces
|
||||
spec:
|
||||
customizationId: "default-/v1/namespaces"
|
||||
hidden:
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.system-clusterscope" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.api" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.status" . | nindent 4 }}
|
||||
schema: {}
|
||||
strategy: merge
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomFormsOverride
|
||||
metadata:
|
||||
name: default-v1.nodes
|
||||
spec:
|
||||
customizationId: "default-/v1/nodes"
|
||||
hidden:
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.system-clusterscope" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.api" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.status" . | nindent 4 }}
|
||||
schema: {}
|
||||
strategy: merge
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomFormsOverride
|
||||
metadata:
|
||||
name: default-v1.persistentvolumeclaims
|
||||
spec:
|
||||
customizationId: "default-/v1/persistentvolumeclaims"
|
||||
hidden:
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.system" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.api" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.status" . | nindent 4 }}
|
||||
schema: {}
|
||||
strategy: merge
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomFormsOverride
|
||||
metadata:
|
||||
name: default-v1.persistentvolumes
|
||||
spec:
|
||||
customizationId: "default-/v1/persistentvolumes"
|
||||
hidden:
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.system" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.api" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.status" . | nindent 4 }}
|
||||
schema: {}
|
||||
strategy: merge
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomFormsOverride
|
||||
metadata:
|
||||
name: default-v1.pods
|
||||
spec:
|
||||
customizationId: "default-/v1/pods"
|
||||
hidden:
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.system" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.api" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.status" . | nindent 4 }}
|
||||
schema: {}
|
||||
strategy: merge
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomFormsOverride
|
||||
metadata:
|
||||
name: default-v1.secrets
|
||||
spec:
|
||||
customizationId: "default-/v1/secrets"
|
||||
hidden:
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.system" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.api" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.status" . | nindent 4 }}
|
||||
schema: {}
|
||||
strategy: merge
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: CustomFormsOverride
|
||||
metadata:
|
||||
name: default-v1.services
|
||||
spec:
|
||||
customizationId: "default-/v1/services"
|
||||
hidden:
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.system" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.metadata.api" . | nindent 4 }}
|
||||
{{ include "incloud-web-resources.customformoverride.hidden.status" . | nindent 4 }}
|
||||
schema: {}
|
||||
strategy: merge
|
||||
@@ -1,29 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Factory
|
||||
metadata:
|
||||
name: marketplace
|
||||
spec:
|
||||
key: marketplace
|
||||
sidebarTags:
|
||||
- marketplace-sidebar
|
||||
withScrollableMainContentCard: true
|
||||
urlsToFetch: []
|
||||
data:
|
||||
- type: ContentCard
|
||||
data:
|
||||
id: 31
|
||||
title: "Marketplace"
|
||||
style:
|
||||
flexGrow: 1
|
||||
children:
|
||||
- type: MarketplaceCard
|
||||
data:
|
||||
id: 311
|
||||
clusterNamePartOfUrl: "{2}"
|
||||
namespacePartOfUrl: "{3}"
|
||||
baseApiGroup: dashboard.cozystack.io
|
||||
baseApiVersion: v1alpha1
|
||||
mpResourceName: marketplacepanels
|
||||
mpResourceKind: MarketplacePanel
|
||||
baseprefix: openapi-ui
|
||||
@@ -1,30 +0,0 @@
|
||||
{{- define "incloud-web-resources.factory.annotations.block" -}}
|
||||
{{- $i := (default 0 .reqIndex) -}}
|
||||
{{- $jsonPath := (default ".metadata.annotations" .jsonPath) -}}
|
||||
{{- $endpoint := (default "" .endpoint) -}}
|
||||
{{- $pathToValue := (default "/metadata/annotations" .pathToValue) -}}
|
||||
- type: antdText
|
||||
data:
|
||||
id: annotations
|
||||
strong: true
|
||||
text: Annotations
|
||||
- type: Annotations
|
||||
data:
|
||||
id: annotations
|
||||
reqIndex: 0
|
||||
jsonPathToObj: "{{ $jsonPath }}"
|
||||
text: "~counter~ Annotations"
|
||||
errorText: "0 Annotations"
|
||||
notificationSuccessMessage: "Updated successfully"
|
||||
notificationSuccessMessageDescription: "Annotations have been updated"
|
||||
modalTitle: "Edit annotations"
|
||||
modalDescriptionText: ""
|
||||
inputLabel: ""
|
||||
endpoint: "{{ $endpoint }}"
|
||||
pathToValue: "{{ $pathToValue }}"
|
||||
editModalWidth: "800px"
|
||||
cols:
|
||||
- 11
|
||||
- 11
|
||||
- 2
|
||||
{{- end -}}
|
||||
@@ -1,35 +0,0 @@
|
||||
{{- define "incloud-web-resources.factory.counters.fields" -}}
|
||||
{{- $i := (default 0 .reqIndex) -}}
|
||||
{{- $type := (default "counter" .type) -}}
|
||||
{{- $title := (default "" .title) -}}
|
||||
- type: antdText
|
||||
data:
|
||||
id: {{ printf "%s-label" $type }}
|
||||
strong: true
|
||||
text: "{{ $title }}"
|
||||
- type: ItemCounter
|
||||
data:
|
||||
id: {{ printf "%s-counter" $type }}
|
||||
text: "~counter~ {{ $type }}"
|
||||
reqIndex: {{$i}}
|
||||
jsonPathToArray: "{{ .jsonPath | default "" }}"
|
||||
errorText: "Error"
|
||||
{{- end -}}
|
||||
|
||||
{{- define "incloud-web-resources.factory.counters.object.fields" -}}
|
||||
{{- $i := (default 0 .reqIndex) -}}
|
||||
{{- $type := (default "counter" .type) -}}
|
||||
{{- $title := (default "" .title) -}}
|
||||
- type: antdText
|
||||
data:
|
||||
id: {{ printf "%s-label" $type }}
|
||||
strong: true
|
||||
text: "{{ $title }}"
|
||||
- type: KeyCounter
|
||||
data:
|
||||
id: {{ printf "%s-counter" $type }}
|
||||
text: "~counter~ {{ $type }}"
|
||||
reqIndex: {{$i}}
|
||||
jsonPathToObj: "{{ .jsonPath | default "" }}"
|
||||
errorText: "Error"
|
||||
{{- end -}}
|
||||
@@ -1,64 +0,0 @@
|
||||
{{- define "incloud-web-resources.factory.labels" -}}
|
||||
{{- $i := (default 0 .reqIndex) -}}
|
||||
{{- $type := (default "labels" .type) -}}
|
||||
{{- $title := (default "Labels" .title) -}}
|
||||
{{- $jsonPath := (default ".metadata.labels" .jsonPath) -}}
|
||||
{{- $endpoint := (default "" .endpoint) -}}
|
||||
{{- $pathToValue := (default "/metadata/labels" .pathToValue) -}}
|
||||
{{- $maxTagTextLength := (default 35 .maxTagTextLength) -}}
|
||||
{{- $maxEditTagTextLength := (default 35 .maxEditTagTextLength) -}}
|
||||
{{- $notificationSuccessMessage := (default "Updated successfully" .notificationSuccessMessage) -}}
|
||||
{{- $notificationSuccessMessageDescription := (default "Labels have been updated" .notificationSuccessMessageDescription) -}}
|
||||
{{- $modalTitle := (default "Edit labels" .modalTitle) -}}
|
||||
{{- $modalDescriptionText := (default "" .modalDescriptionText) -}}
|
||||
{{- $inputLabel := (default "" .inputLabel) -}}
|
||||
{{- $containerMarginTop := (default "-30px" .containerMarginTop) -}}
|
||||
- type: antdText
|
||||
data:
|
||||
id: {{ printf "%s-title" $type }}
|
||||
text: "{{ $title }}"
|
||||
strong: true
|
||||
style:
|
||||
fontSize: 14
|
||||
- type: Labels
|
||||
data:
|
||||
id: {{ printf "%s-editor" $type }}
|
||||
reqIndex: {{ $i }}
|
||||
jsonPathToLabels: "{{ $jsonPath }}"
|
||||
selectProps:
|
||||
maxTagTextLength: {{ $maxTagTextLength }}
|
||||
notificationSuccessMessage: "{{ $notificationSuccessMessage }}"
|
||||
notificationSuccessMessageDescription: "{{ $notificationSuccessMessageDescription }}"
|
||||
modalTitle: "{{ $modalTitle }}"
|
||||
modalDescriptionText: "{{ $modalDescriptionText }}"
|
||||
inputLabel: "{{ $inputLabel }}"
|
||||
containerStyle:
|
||||
marginTop: "{{ $containerMarginTop }}"
|
||||
maxEditTagTextLength: {{ $maxEditTagTextLength }}
|
||||
endpoint: "{{ $endpoint }}"
|
||||
pathToValue: "{{ $pathToValue }}"
|
||||
editModalWidth: 650
|
||||
paddingContainerEnd: "24px"
|
||||
{{- end -}}
|
||||
|
||||
{{- define "incloud-web-resources.factory.labels.base.selector" -}}
|
||||
{{- $i := (default 0 .reqIndex) -}}
|
||||
{{- $type := (default "pod-selector" .type) -}}
|
||||
{{- $title := (default "Pod selector" .title) -}}
|
||||
{{- $jsonPath := (default ".spec.template.metadata.labels" .jsonPath) -}}
|
||||
- type: antdText
|
||||
data:
|
||||
id: {{ printf "%s-selector" $type }}
|
||||
text: "{{ $title }}"
|
||||
strong: true
|
||||
style:
|
||||
fontSize: 14
|
||||
- type: LabelsToSearchParams
|
||||
data:
|
||||
id: {{ printf "%s-to-search-params" $type }}
|
||||
reqIndex: {{$i}}
|
||||
jsonPathToLabels: "{{ $jsonPath }}"
|
||||
linkPrefix: "{{ .linkPrefix | default "/openapi-ui/{2}/search" }}"
|
||||
errorText: "-"
|
||||
{{- end -}}
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
{{- define "incloud-web-resources.factory.links.details" -}}
|
||||
{{- $i := (default 0 .reqIndex) -}}
|
||||
{{- $type := (default "" .type) -}}
|
||||
{{- $title := (default "" .title) -}}
|
||||
{{- $jsonPath := (default "" .jsonPath) -}}
|
||||
{{- $factory := (default "" .factory) -}}
|
||||
{{- $ns := (default "" .namespace) -}}
|
||||
|
||||
{{- $nsPart := "" -}}
|
||||
{{- if ne $ns "" }}
|
||||
{{- $nsPart = printf "%s/" $ns -}}
|
||||
{{- end }}
|
||||
- type: parsedText
|
||||
data:
|
||||
id: {{ printf "%s-title" $type }}
|
||||
strong: true
|
||||
text: "{{ $title }}"
|
||||
style:
|
||||
fontWeight: bold
|
||||
- type: antdLink
|
||||
data:
|
||||
id: {{ printf "%s-link" $type }}
|
||||
text: "{reqsJsonPath[{{$i}}]['{{ $jsonPath }}']['-']}"
|
||||
href: "/openapi-ui/{2}/{{$nsPart}}factory/{{ $factory }}/{reqsJsonPath[{{$i}}]['{{ $jsonPath }}']['-']}"
|
||||
{{- end -}}
|
||||
|
||||
{{- define "incloud-web-resources.factory.linkblock" -}}
|
||||
{{- $i := (default 0 .reqIndex) -}}
|
||||
{{- $type := (default "" .type) -}}
|
||||
{{- $jsonPath := (default "" .jsonPath) -}}
|
||||
{{- $factory := (default "" .factory) -}}
|
||||
{{- $ns := (default "" .namespace) -}}
|
||||
|
||||
{{- $nsPart := "" -}}
|
||||
{{- if ne $ns "" }}
|
||||
{{- $nsPart = printf "%s/" $ns -}}
|
||||
{{- end }}
|
||||
- type: antdLink
|
||||
data:
|
||||
id: {{ printf "%s-link" $type }}
|
||||
text: "{reqsJsonPath[{{$i}}]['{{ $jsonPath }}']['-']}"
|
||||
href: "/openapi-ui/{2}/{{$nsPart}}factory/{{ $factory }}/{reqsJsonPath[{{$i}}]['{{ $jsonPath }}']['-']}"
|
||||
{{- end -}}
|
||||
@@ -1,189 +0,0 @@
|
||||
{{- define "incloud-web-resources.factory.statuses.deployment" -}}
|
||||
- type: StatusText
|
||||
data:
|
||||
id: header-status
|
||||
# 1) Collect all possible Deployment conditions
|
||||
values:
|
||||
- "{reqsJsonPath[0]['.status.conditions[*].reason']['-']}"
|
||||
|
||||
# 2) Criteria: positive / negative; neutral goes to fallback
|
||||
criteriaSuccess: equals
|
||||
valueToCompareSuccess:
|
||||
# Positive reasons
|
||||
- "MinimumReplicasAvailable" # Available: all replicas are healthy
|
||||
- "NewReplicaSetAvailable" # Progressing: new RS serves traffic
|
||||
- "ReplicaSetUpdated" # Progressing: RS is updated/synced
|
||||
- "Complete" # Update completed successfully
|
||||
|
||||
criteriaError: equals
|
||||
valueToCompareError:
|
||||
# Negative reasons
|
||||
- "DeploymentReplicaFailure" # General replica failure
|
||||
- "FailedCreate" # Failed to create Pod/RS
|
||||
- "FailedDelete" # Failed to delete resource
|
||||
- "FailedScaleUp" # Failed to scale up
|
||||
- "FailedScaleDown" # Failed to scale down
|
||||
|
||||
# 3) Texts to display
|
||||
successText: "Available"
|
||||
errorText: "Error"
|
||||
fallbackText: "Progressing"
|
||||
|
||||
# Notes on neutral/fallback cases:
|
||||
# - ReplicaSetUpdated → neutral/positive (update in progress)
|
||||
# - ScalingReplicaSet → neutral (normal scale up/down)
|
||||
# - Paused / DeploymentPaused→ neutral (manually paused by admin)
|
||||
# - NewReplicaSetCreated → neutral (new RS created, not yet serving)
|
||||
# - FoundNewReplicaSet → neutral (RS found, syncing)
|
||||
# - MinimumReplicasUnavailable → neutral (some replicas not ready yet)
|
||||
# - ProgressDeadlineExceeded → error-like, stuck in progress
|
||||
{{- end -}}
|
||||
|
||||
{{- define "incloud-web-resources.factory.statuses.pod" -}}
|
||||
- type: StatusText
|
||||
data:
|
||||
id: pod-status
|
||||
|
||||
# --- Collected values from Pod status -----------------------------------
|
||||
values:
|
||||
# Init containers
|
||||
- "{reqsJsonPath[0]['.status.initContainerStatuses[*].state.waiting.reason']}"
|
||||
- "{reqsJsonPath[0]['.status.initContainerStatuses[*].state.terminated.reason']}"
|
||||
- "{reqsJsonPath[0]['.status.initContainerStatuses[*].lastState.terminated.reason']}"
|
||||
|
||||
# Main containers
|
||||
- "{reqsJsonPath[0]['.status.containerStatuses[*].state.waiting.reason']}"
|
||||
- "{reqsJsonPath[0]['.status.containerStatuses[*].state.terminated.reason']}"
|
||||
- "{reqsJsonPath[0]['.status.containerStatuses[*].lastState.terminated.reason']}"
|
||||
|
||||
# Pod phase and general reason
|
||||
- "{reqsJsonPath[0]['.status.phase']}"
|
||||
- "{reqsJsonPath[0]['.status.reason']}"
|
||||
|
||||
# Condition reasons (PodScheduled / Initialized / ContainersReady / Ready)
|
||||
- "{reqsJsonPath[0]['.status.conditions[*].reason']}"
|
||||
|
||||
# --- Success criteria ---------------------------------------------------
|
||||
criteriaSuccess: notEquals
|
||||
stategySuccess: every
|
||||
valueToCompareSuccess:
|
||||
# Graceful or expected state transitions
|
||||
- "Preempted"
|
||||
- "Shutdown"
|
||||
- "NodeShutdown"
|
||||
- "DisruptionTarget"
|
||||
|
||||
# Transitional states (may require timeout)
|
||||
- "Unschedulable"
|
||||
- "SchedulingGated"
|
||||
- "ContainersNotReady"
|
||||
- "ContainersNotInitialized"
|
||||
|
||||
# Temporary failures
|
||||
- "BackOff"
|
||||
|
||||
# Controlled shutdowns or benign errors
|
||||
- "PreStopHookError"
|
||||
- "KillError"
|
||||
- "ContainerStatusUnknown"
|
||||
|
||||
# --- Error criteria -----------------------------------------------------
|
||||
criteriaError: equals
|
||||
strategyError: every
|
||||
valueToCompareError:
|
||||
# Pod-level fatal phases or errors
|
||||
- "Failed"
|
||||
- "Unknown"
|
||||
- "Evicted"
|
||||
- "NodeLost"
|
||||
- "UnexpectedAdmissionError"
|
||||
|
||||
# Scheduler-related failures
|
||||
- "SchedulerError"
|
||||
- "FailedScheduling"
|
||||
|
||||
# Container-level fatal errors
|
||||
- "CrashLoopBackOff"
|
||||
- "ImagePullBackOff"
|
||||
- "ErrImagePull"
|
||||
- "ErrImageNeverPull"
|
||||
- "InvalidImageName"
|
||||
- "ImageInspectError"
|
||||
- "CreateContainerConfigError"
|
||||
- "CreateContainerError"
|
||||
- "RunContainerError"
|
||||
- "StartError"
|
||||
- "PostStartHookError"
|
||||
- "ContainerCannotRun"
|
||||
- "OOMKilled"
|
||||
- "Error"
|
||||
- "DeadlineExceeded"
|
||||
- "CreatePodSandboxError"
|
||||
|
||||
# --- Output text rendering ----------------------------------------------
|
||||
successText: "{reqsJsonPath[0]['.status.phase']}"
|
||||
errorText: "Error"
|
||||
fallbackText: "Progressing"
|
||||
{{- end -}}
|
||||
|
||||
{{- define "incloud-web-resources.factory.statuses.node" -}}
|
||||
- type: StatusText
|
||||
data:
|
||||
id: node-status
|
||||
|
||||
# --- Collected values from Node status ----------------------------------
|
||||
values:
|
||||
# Node phase and conditions
|
||||
- "{reqsJsonPath[0]['.status.conditions[?(@.status=='True')].reason']['-']}"
|
||||
|
||||
# --- Success criteria ---------------------------------------------------
|
||||
criteriaSuccess: equals
|
||||
stategySuccess: every
|
||||
valueToCompareSuccess:
|
||||
"KubeletReady"
|
||||
|
||||
# --- Error criteria -----------------------------------------------------
|
||||
criteriaError: equals
|
||||
strategyError: every
|
||||
valueToCompareError:
|
||||
# Node condition failures
|
||||
- "KernelDeadlock"
|
||||
- "ReadonlyFilesystem"
|
||||
- "NetworkUnavailable"
|
||||
- "MemoryPressure"
|
||||
- "DiskPressure"
|
||||
- "PIDPressure"
|
||||
|
||||
# --- Output text rendering ----------------------------------------------
|
||||
successText: "Available"
|
||||
errorText: "Unavailable"
|
||||
fallbackText: "Progressing"
|
||||
{{- end -}}
|
||||
|
||||
{{- define "incloud-web-resources.factory.statuses.job" -}}
|
||||
- type: StatusText
|
||||
data:
|
||||
id: header-status
|
||||
|
||||
# --- Collected values from Job conditions -------------------------------
|
||||
values:
|
||||
# Extracts the type of any condition where type == 'Complete' or 'Failed'
|
||||
- "{reqsJsonPath[0]['.status.conditions[?(@.type=='Complete' || @.type=='Failed')].type']['-']}"
|
||||
|
||||
# --- Success criteria ---------------------------------------------------
|
||||
criteriaSuccess: equals
|
||||
stategySuccess: every
|
||||
valueToCompareSuccess:
|
||||
- "Complete" # Job succeeded
|
||||
|
||||
# --- Error criteria -----------------------------------------------------
|
||||
criteriaError: equals
|
||||
strategyError: every # ← likely meant to be `strategyError`
|
||||
valueToCompareError:
|
||||
- "Failed" # Job failed
|
||||
|
||||
# --- Output text rendering ----------------------------------------------
|
||||
successText: "Available"
|
||||
errorText: "Unavailable"
|
||||
fallbackText: "Progressing"
|
||||
{{- end -}}
|
||||
@@ -1,40 +0,0 @@
|
||||
{{- define "incloud-web-resources.factory.containers.table" -}}
|
||||
{{- $i := (default 0 .reqIndex) -}}
|
||||
{{- $type := (default "" .type) -}}
|
||||
{{- $title := (default "Init containers" .title) -}}
|
||||
{{- $jsonPath := (default "" .jsonPath) -}}
|
||||
{{- $pathToItems := (default "" .pathToItems) -}}
|
||||
{{- $apiGroup := (default "" .apiGroup) -}}
|
||||
{{- $kind := (default "" .kind) -}}
|
||||
{{- $resourceName := (default "" .resourceName) -}}
|
||||
{{- $namespace := (default "" .namespace) -}}
|
||||
{{- $namespacePart := "" -}}
|
||||
{{- if ne $namespace "" }}
|
||||
{{- $namespacePart = printf "namespaces/%s/" $namespace -}}
|
||||
{{- end }}
|
||||
- type: VisibilityContainer
|
||||
data:
|
||||
id: {{ printf "%s-container" $type }}
|
||||
value: "{reqsJsonPath[{{$i}}]['{{ $jsonPath }}']['-']}"
|
||||
style:
|
||||
margin: 0
|
||||
padding: 0
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: {{ printf "%s-title" $type }}
|
||||
text: "{{ $title }}"
|
||||
strong: true
|
||||
style:
|
||||
fontSize: 22
|
||||
marginBottom: 32px
|
||||
- type: EnrichedTable
|
||||
data:
|
||||
id: {{ printf "%s-table" $type }}
|
||||
fetchUrl: "/api/clusters/{2}/k8s/{{ $apiGroup }}/{{$namespacePart}}{{ $kind }}/{{$resourceName}}"
|
||||
clusterNamePartOfUrl: "{2}"
|
||||
customizationId: {{ .customizationId | default ("") }}
|
||||
baseprefix: "/openapi-ui"
|
||||
withoutControls: {{ default true .withoutControls }}
|
||||
pathToItems: {{ $pathToItems }}
|
||||
{{- end -}}
|
||||
@@ -1,30 +0,0 @@
|
||||
{{- define "incloud-web-resources.factory.taints.block" -}}
|
||||
{{- $i := (default 0 .reqIndex) -}}
|
||||
{{- $jsonPathToArray := (default "" .jsonPathToArray) -}}
|
||||
{{- $endpoint := (default "" .endpoint) -}}
|
||||
{{- $pathToValue := (default "" .pathToValue) -}}
|
||||
- type: antdText
|
||||
data:
|
||||
id: taints
|
||||
strong: true
|
||||
text: Taints
|
||||
- type: Taints
|
||||
data:
|
||||
id: taints
|
||||
reqIndex: {{ $i }}
|
||||
jsonPathToArray: "{{ $jsonPathToArray }}"
|
||||
text: "~counter~ Taints"
|
||||
errorText: "0 Taints"
|
||||
notificationSuccessMessage: "Updated successfully"
|
||||
notificationSuccessMessageDescription: "Taints have been updated"
|
||||
modalTitle: "Edit taints"
|
||||
modalDescriptionText: ""
|
||||
inputLabel: ""
|
||||
endpoint: "{{ $endpoint }}"
|
||||
pathToValue: "{{ $pathToValue }}"
|
||||
editModalWidth: "800px"
|
||||
cols:
|
||||
- 8
|
||||
- 8
|
||||
- 6
|
||||
{{- end -}}
|
||||
@@ -1,42 +0,0 @@
|
||||
{{- define "incloud-web-resources.factory.time.create" -}}
|
||||
{{- $i := (default 0 .reqIndex) -}}
|
||||
- type: antdText
|
||||
data:
|
||||
id: {{ .labelId | default "time-label" }}
|
||||
strong: true
|
||||
text: "{{ .text | default "Created" }}"
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: {{ .id | default "time-block" }}
|
||||
align: center
|
||||
gap: 6
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: {{ .iconId | default "time-icon" }}
|
||||
text: "🌐"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: {{ .valueId | default "time-value" }}
|
||||
text: "{reqsJsonPath[{{$i}}]['{{ .req }}']['-']}"
|
||||
formatter: timestamp
|
||||
{{- end -}}
|
||||
|
||||
{{- define "incloud-web-resources.factory.timeblock" -}}
|
||||
{{- $i := (default 0 .reqIndex) -}}
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: {{ .id | default "time-block" }}
|
||||
align: center
|
||||
gap: 6
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: {{ .iconId | default "time-icon" }}
|
||||
text: "🌐"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: {{ .valueId | default "time-value" }}
|
||||
text: "{reqsJsonPath[{{$i}}]['{{ .req }}']['-']}"
|
||||
formatter: timestamp
|
||||
{{- end -}}
|
||||
@@ -1,32 +0,0 @@
|
||||
{{- define "incloud-web-resources.factory.tolerations.block" -}}
|
||||
{{- $i := (default 0 .reqIndex) -}}
|
||||
{{- $jsonPathToArray := (default "" .jsonPathToArray) -}}
|
||||
{{- $endpoint := (default "" .endpoint) -}}
|
||||
{{- $pathToValue := (default "" .pathToValue) -}}
|
||||
- type: antdText
|
||||
data:
|
||||
id: tolerations
|
||||
strong: true
|
||||
text: Tolerations
|
||||
- type: Tolerations
|
||||
data:
|
||||
id: tolerations
|
||||
reqIndex: {{ $i }}
|
||||
jsonPathToArray: "{{ $jsonPathToArray }}"
|
||||
text: "~counter~ Tolerations"
|
||||
errorText: "0 Tolerations"
|
||||
notificationSuccessMessage: "Updated successfully"
|
||||
notificationSuccessMessageDescription: "Tolerations have been updated"
|
||||
modalTitle: "Edit tolerations"
|
||||
modalDescriptionText: ""
|
||||
inputLabel: ""
|
||||
endpoint: "{{ $endpoint }}"
|
||||
pathToValue: "{{ $pathToValue }}"
|
||||
editModalWidth: "1000px"
|
||||
cols:
|
||||
- 8
|
||||
- 3
|
||||
- 8
|
||||
- 4
|
||||
- 1
|
||||
{{- end -}}
|
||||
@@ -1,232 +0,0 @@
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Factory
|
||||
metadata:
|
||||
name: namespace-details
|
||||
spec:
|
||||
# Unique key for this factory configuration
|
||||
key: namespace-details
|
||||
|
||||
# Sidebar category tags
|
||||
sidebarTags:
|
||||
- namespace-sidebar
|
||||
|
||||
# Enable scrollable content card for main section
|
||||
withScrollableMainContentCard: true
|
||||
|
||||
# API endpoint for fetching Namespace details
|
||||
urlsToFetch:
|
||||
- "/api/clusters/{2}/k8s/api/v1/namespaces/{5}"
|
||||
|
||||
data:
|
||||
# === HEADER ROW ===
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: header-row
|
||||
gap: 6
|
||||
align: center
|
||||
style:
|
||||
marginBottom: 24px
|
||||
children:
|
||||
# Badge with resource short name
|
||||
- type: antdText
|
||||
data:
|
||||
id: header-badge
|
||||
text: "NS"
|
||||
title: Namespace
|
||||
style:
|
||||
fontSize: 20px
|
||||
lineHeight: 24px
|
||||
padding: "0 9px"
|
||||
borderRadius: "20px"
|
||||
minWidth: 24
|
||||
display: inline-block
|
||||
textAlign: center
|
||||
whiteSpace: nowrap
|
||||
color: "#fff"
|
||||
backgroundColor: "#a25792ff"
|
||||
fontFamily: RedHatDisplay, Overpass, overpass, helvetica, arial, sans-serif
|
||||
fontWeight: 400
|
||||
|
||||
# Namespace name
|
||||
- type: parsedText
|
||||
data:
|
||||
id: header-name
|
||||
text: "{reqsJsonPath[0]['.metadata.name']['-']}"
|
||||
style:
|
||||
fontSize: 20px
|
||||
lineHeight: 24px
|
||||
fontFamily: RedHatDisplay, Overpass, overpass, helvetica, arial, sans-serif
|
||||
|
||||
# === MAIN TABS ===
|
||||
- type: antdTabs
|
||||
data:
|
||||
id: tabs-root
|
||||
defaultActiveKey: "details"
|
||||
items:
|
||||
# ------ DETAILS TAB ------
|
||||
- key: "details"
|
||||
label: "Details"
|
||||
children:
|
||||
# Main card container for details section
|
||||
- type: ContentCard
|
||||
data:
|
||||
id: details-card
|
||||
style:
|
||||
marginBottom: 24px
|
||||
children:
|
||||
# Section title
|
||||
- type: antdText
|
||||
data:
|
||||
id: details-title
|
||||
text: "Namespace details"
|
||||
strong: true
|
||||
style:
|
||||
fontSize: 20
|
||||
marginBottom: 12px
|
||||
|
||||
# Spacer for visual separation
|
||||
- type: Spacer
|
||||
data:
|
||||
id: details-spacer
|
||||
"$space": 16
|
||||
|
||||
# Grid layout: left and right columns
|
||||
- type: antdRow
|
||||
data:
|
||||
id: details-grid
|
||||
gutter: [48, 12]
|
||||
children:
|
||||
# LEFT COLUMN: metadata
|
||||
- type: antdCol
|
||||
data:
|
||||
id: col-left
|
||||
span: 12
|
||||
children:
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: left-stack
|
||||
vertical: true
|
||||
gap: 24
|
||||
children:
|
||||
# Namespace name block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: name-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: name-label
|
||||
strong: true
|
||||
text: "Name"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: name-value
|
||||
text: "{reqsJsonPath[0]['.metadata.name']['-']}"
|
||||
|
||||
# Labels display block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: labels-block
|
||||
vertical: true
|
||||
gap: 8
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.labels" (dict
|
||||
"endpoint" "/api/clusters/{2}/k8s/api/v1/namespaces/{5}"
|
||||
) | nindent 34
|
||||
}}
|
||||
|
||||
# Annotations counter block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: ds-annotations
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.annotations.block" (dict
|
||||
"endpoint" "/api/clusters/{2}/k8s/api/v1/namespaces/{5}"
|
||||
) | nindent 34
|
||||
}}
|
||||
|
||||
# Creation time block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: created-time-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.time.create" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
"text" "Created"
|
||||
) | nindent 38
|
||||
}}
|
||||
|
||||
# Owner information block
|
||||
# - type: antdFlex
|
||||
# data:
|
||||
# id: owner-block
|
||||
# vertical: true
|
||||
# gap: 4
|
||||
# children:
|
||||
# - type: antdText
|
||||
# data:
|
||||
# id: owner-label
|
||||
# strong: true
|
||||
# text: "Owner"
|
||||
# - type: antdFlex
|
||||
# data:
|
||||
# id: owner-value-container
|
||||
# gap: 6
|
||||
# align: center
|
||||
# children:
|
||||
# - type: antdText
|
||||
# data:
|
||||
# id: owner-value
|
||||
# text: "No owner"
|
||||
# style:
|
||||
# color: "#FF0000"
|
||||
|
||||
# RIGHT COLUMN: status
|
||||
- type: antdCol
|
||||
data:
|
||||
id: col-right
|
||||
span: 12
|
||||
children:
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: right-stack
|
||||
vertical: true
|
||||
gap: 24
|
||||
children:
|
||||
# Namespace status phase
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: status-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: status-label
|
||||
strong: true
|
||||
text: "Status"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: status-value
|
||||
text: "{reqsJsonPath[0]['.status.phase']['-']}"
|
||||
|
||||
# ------ YAML TAB ------
|
||||
- key: "yaml"
|
||||
label: "YAML"
|
||||
children:
|
||||
# YAML editor for Namespace manifest
|
||||
- type: YamlEditorSingleton
|
||||
data:
|
||||
id: yaml-editor
|
||||
cluster: "{2}"
|
||||
isNameSpaced: false
|
||||
type: "builtin"
|
||||
typeName: namespaces
|
||||
prefillValuesRequestIndex: 0
|
||||
substractHeight: 400
|
||||
@@ -1,511 +0,0 @@
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Factory
|
||||
metadata:
|
||||
name: node-details
|
||||
spec:
|
||||
# Unique key for this factory configuration
|
||||
key: node-details
|
||||
|
||||
# Sidebar category tags
|
||||
sidebarTags:
|
||||
- node-sidebar
|
||||
|
||||
# Enable scrollable content card for main section
|
||||
withScrollableMainContentCard: true
|
||||
|
||||
# API endpoint for fetching Node details
|
||||
urlsToFetch:
|
||||
- "/api/clusters/{2}/k8s/api/v1/nodes/{5}"
|
||||
|
||||
data:
|
||||
# === HEADER ROW ===
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: header-row
|
||||
gap: 6
|
||||
align: center
|
||||
style:
|
||||
marginBottom: 24px
|
||||
children:
|
||||
# Badge with resource short name
|
||||
- type: antdText
|
||||
data:
|
||||
id: header-badge
|
||||
text: "N"
|
||||
title: nodes
|
||||
style:
|
||||
fontSize: 20px
|
||||
lineHeight: 24px
|
||||
padding: "0 9px"
|
||||
borderRadius: "20px"
|
||||
minWidth: 24
|
||||
display: inline-block
|
||||
textAlign: center
|
||||
whiteSpace: nowrap
|
||||
color: "#fff"
|
||||
backgroundColor: "#8476d1"
|
||||
fontFamily: RedHatDisplay, Overpass, overpass, helvetica, arial, sans-serif
|
||||
fontWeight: 400
|
||||
|
||||
# Node name
|
||||
- type: parsedText
|
||||
data:
|
||||
id: header-name
|
||||
text: "{reqsJsonPath[0]['.metadata.name']['-']}"
|
||||
style:
|
||||
fontSize: 20px
|
||||
lineHeight: 24px
|
||||
fontFamily: RedHatDisplay, Overpass, overpass, helvetica, arial, sans-serif
|
||||
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: status-header-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.statuses.node" . | nindent 12 }}
|
||||
|
||||
# === MAIN TABS ===
|
||||
- type: antdTabs
|
||||
data:
|
||||
id: tabs-root
|
||||
defaultActiveKey: "details"
|
||||
items:
|
||||
# ------ DETAILS TAB ------
|
||||
- key: "details"
|
||||
label: "Details"
|
||||
children:
|
||||
# Main card container for details section
|
||||
- type: ContentCard
|
||||
data:
|
||||
id: details-card
|
||||
style:
|
||||
marginBottom: 24px
|
||||
children:
|
||||
# Section title
|
||||
- type: antdText
|
||||
data:
|
||||
id: details-title
|
||||
text: "Node details"
|
||||
strong: true
|
||||
style:
|
||||
fontSize: 20
|
||||
marginBottom: 12px
|
||||
|
||||
# Spacer for visual separation
|
||||
- type: Spacer
|
||||
data:
|
||||
id: details-spacer
|
||||
"$space": 16
|
||||
|
||||
# Grid layout: left and right columns
|
||||
- type: antdRow
|
||||
data:
|
||||
id: details-grid
|
||||
gutter: [48, 12]
|
||||
children:
|
||||
# LEFT COLUMN: general metadata
|
||||
- type: antdCol
|
||||
data:
|
||||
id: col-left
|
||||
span: 12
|
||||
children:
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: left-stack
|
||||
vertical: true
|
||||
gap: 24
|
||||
children:
|
||||
# Node name block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: name-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: name-label
|
||||
strong: true
|
||||
text: "Name"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: name-value
|
||||
text: "{reqsJsonPath[0]['.metadata.name']['-']}"
|
||||
|
||||
# External ID block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: external-id-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: external-id-label
|
||||
strong: true
|
||||
text: "External ID"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: external-id-value
|
||||
text: "{reqsJsonPath[0]['.spec.externalID']['-']}"
|
||||
|
||||
# Uptime block (placeholder for future calculated value)
|
||||
# TODO To be done
|
||||
# - type: antdFlex
|
||||
# data:
|
||||
# id: uptime-block
|
||||
# vertical: true
|
||||
# gap: 4
|
||||
# children:
|
||||
# - type: antdText
|
||||
# data:
|
||||
# id: uptime-label
|
||||
# strong: true
|
||||
# text: "Uptime"
|
||||
# - type: parsedText
|
||||
# data:
|
||||
# id: uptime-value
|
||||
# text: "Function needed to calculate uptime"
|
||||
|
||||
# Node address block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: node-address-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: node-address-label
|
||||
strong: true
|
||||
text: "Node address"
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: node-address-stack
|
||||
vertical: true
|
||||
gap: 2
|
||||
children:
|
||||
- type: ArrayOfObjectsToKeyValues
|
||||
data:
|
||||
id: node-address
|
||||
reqIndex: 0
|
||||
jsonPathToArray: ".status.addresses"
|
||||
keyFieldName: type
|
||||
valueFieldName: address
|
||||
keyFieldStyle:
|
||||
color: "#aaabac"
|
||||
|
||||
# Labels block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: labels-block
|
||||
vertical: true
|
||||
gap: 8
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.labels" (dict
|
||||
"endpoint" "/api/clusters/{2}/k8s/api/v1/nodes/{5}"
|
||||
) | nindent 34
|
||||
}}
|
||||
|
||||
# Taints counter block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: taints-counter-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.taints.block" (dict
|
||||
"endpoint" "/api/clusters/{2}/k8s/api/v1/nodes/{5}"
|
||||
"jsonPathToArray" ".spec.taints"
|
||||
"pathToValue" "/spec/taints"
|
||||
) | nindent 34
|
||||
}}
|
||||
|
||||
# Annotations counter block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: ds-annotations
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.annotations.block" (dict
|
||||
"endpoint" "/api/clusters/{2}/k8s/api/v1/nodes/{5}"
|
||||
) | nindent 34
|
||||
}}
|
||||
|
||||
# Provider ID block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: provider-id-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: provider-id-label
|
||||
strong: true
|
||||
text: "Provider ID"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: provider-id-value
|
||||
text: "{reqsJsonPath[0]['.spec.providerID']['-']}"
|
||||
|
||||
# Creation time block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: created-time-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.time.create" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
"text" "Created"
|
||||
) | nindent 38
|
||||
}}
|
||||
|
||||
# RIGHT COLUMN: node info and status
|
||||
- type: antdCol
|
||||
data:
|
||||
id: col-right
|
||||
span: 12
|
||||
children:
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: right-stack
|
||||
vertical: true
|
||||
gap: 24
|
||||
children:
|
||||
# Status block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: status-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: status-label
|
||||
strong: true
|
||||
text: "Status"
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: status-header-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.statuses.node" . | nindent 38 }}
|
||||
|
||||
# Operating system block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: operating-system-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: operating-system-label
|
||||
strong: true
|
||||
text: "Operating system"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: operating-system-value
|
||||
text: "{reqsJsonPath[0]['.status.nodeInfo.operatingSystem']['-']}"
|
||||
|
||||
# OS image block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: os-image-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: os-image-label
|
||||
strong: true
|
||||
text: "OS image"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: os-image-value
|
||||
text: "{reqsJsonPath[0]['.status.nodeInfo.osImage']['-']}"
|
||||
|
||||
# Architecture block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: architecture-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: architecture-label
|
||||
strong: true
|
||||
text: "Architecture"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: architecture-value
|
||||
text: "{reqsJsonPath[0]['.status.nodeInfo.architecture']['-']}"
|
||||
|
||||
# Kernel version block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: kernel-version-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: kernel-version-label
|
||||
strong: true
|
||||
text: "Kernel versions"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: kernel-version-value
|
||||
text: "{reqsJsonPath[0]['.status.nodeInfo.kernelVersion']['-']}"
|
||||
|
||||
# Boot ID block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: boot-id-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: boot-id-label
|
||||
strong: true
|
||||
text: "Boot ID"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: boot-id-value
|
||||
text: "{reqsJsonPath[0]['.status.nodeInfo.bootID']['-']}"
|
||||
|
||||
# Container runtime block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: container-runtime-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: container-runtime-label
|
||||
strong: true
|
||||
text: "Container runtime"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: container-runtime-value
|
||||
text: "{reqsJsonPath[0]['.status.nodeInfo.containerRuntimeVersion']['-']}"
|
||||
|
||||
# Kubelet version block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: kubelet-version-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: kubelet-version-label
|
||||
strong: true
|
||||
text: "Kubelet version"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: kubelet-version-value
|
||||
text: "{reqsJsonPath[0]['.status.nodeInfo.kubeletVersion']['-']}"
|
||||
|
||||
# CONDITIONS SECTION
|
||||
- type: antdCol
|
||||
data:
|
||||
id: conditions-col
|
||||
style:
|
||||
marginTop: 32px
|
||||
padding: 16px
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: conditions-title
|
||||
text: "Conditions"
|
||||
strong: true
|
||||
style:
|
||||
fontSize: 22
|
||||
- type: EnrichedTable
|
||||
data:
|
||||
id: conditions-table
|
||||
fetchUrl: "/api/clusters/{2}/k8s/api/v1/nodes/{5}"
|
||||
clusterNamePartOfUrl: "{2}"
|
||||
customizationId: "factory-status-conditions"
|
||||
baseprefix: "/openapi-ui"
|
||||
withoutControls: true
|
||||
pathToItems: ".status.conditions"
|
||||
|
||||
# IMAGES SECTION
|
||||
- type: antdCol
|
||||
data:
|
||||
id: images-col
|
||||
style:
|
||||
marginTop: 32px
|
||||
padding: 16px
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: images-title
|
||||
text: "Images"
|
||||
strong: true
|
||||
style:
|
||||
fontSize: 22
|
||||
- type: EnrichedTable
|
||||
data:
|
||||
id: images-table
|
||||
fetchUrl: "/api/clusters/{2}/k8s/api/v1/nodes/{5}"
|
||||
clusterNamePartOfUrl: "{2}"
|
||||
customizationId: "factory-node-images"
|
||||
baseprefix: "/openapi-ui"
|
||||
withoutControls: true
|
||||
pathToItems: ".status.images"
|
||||
|
||||
# ------ YAML TAB ------
|
||||
- key: "yaml"
|
||||
label: "YAML"
|
||||
children:
|
||||
# YAML editor for Node manifest
|
||||
- type: YamlEditorSingleton
|
||||
data:
|
||||
id: yaml-editor
|
||||
cluster: "{2}"
|
||||
isNameSpaced: false
|
||||
type: "builtin"
|
||||
typeName: nodes
|
||||
prefillValuesRequestIndex: 0
|
||||
substractHeight: 400
|
||||
|
||||
# ------ PODS TAB ------
|
||||
- key: "pods"
|
||||
label: "Pods"
|
||||
children:
|
||||
# Table of Pods scheduled on this Node
|
||||
- type: EnrichedTable
|
||||
data:
|
||||
id: pods-table
|
||||
fetchUrl: "/api/clusters/{2}/k8s/api/v1/pods"
|
||||
clusterNamePartOfUrl: "{2}"
|
||||
customizationId: "factory-node-details-/v1/pods"
|
||||
baseprefix: "/openapi-ui"
|
||||
withoutControls: true
|
||||
fieldSelector:
|
||||
fieldName: "spec.nodeName"
|
||||
parsedText: "{reqsJsonPath[0]['.metadata.name']['-']}"
|
||||
pathToItems: ".items"
|
||||
|
||||
# ------ TERMINAL TAB ------
|
||||
- key: "terminal"
|
||||
label: "Terminal"
|
||||
children:
|
||||
# Interactive node terminal
|
||||
- type: NodeTerminal
|
||||
data:
|
||||
id: terminal
|
||||
cluster: "{2}"
|
||||
nodeName: "{reqsJsonPath[0]['.metadata.name']['-']}"
|
||||
substractHeight: 400
|
||||
@@ -1,533 +0,0 @@
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Factory
|
||||
metadata:
|
||||
name: pod-details
|
||||
spec:
|
||||
key: pod-details
|
||||
sidebarTags:
|
||||
- pods-sidebar
|
||||
withScrollableMainContentCard: true
|
||||
urlsToFetch:
|
||||
- "/api/clusters/{2}/k8s/api/v1/namespaces/{3}/pods/{6}"
|
||||
|
||||
# Header row with badge, pod name, and status
|
||||
data:
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: header-row
|
||||
gap: 6
|
||||
align: center
|
||||
style:
|
||||
marginBottom: 24px
|
||||
children:
|
||||
# Pod badge
|
||||
- type: antdText
|
||||
data:
|
||||
id: header-badge
|
||||
text: P
|
||||
title: Pods
|
||||
style:
|
||||
fontSize: 20px
|
||||
lineHeight: 24px
|
||||
padding: "0 9px"
|
||||
borderRadius: "20px"
|
||||
minWidth: 24
|
||||
display: inline-block
|
||||
textAlign: center
|
||||
whiteSpace: nowrap
|
||||
color: "#fff"
|
||||
backgroundColor: "#009596"
|
||||
fontFamily: RedHatDisplay, Overpass, overpass, helvetica, arial, sans-serif
|
||||
fontWeight: 400
|
||||
# Pod name next to badge
|
||||
- type: parsedText
|
||||
data:
|
||||
id: header-pod-name
|
||||
text: "{reqsJsonPath[0]['.metadata.name']['-']}"
|
||||
style:
|
||||
fontSize: 20px
|
||||
lineHeight: 24px
|
||||
fontFamily: RedHatDisplay, Overpass, overpass, helvetica, arial, sans-serif
|
||||
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: status-header-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.statuses.pod" . | nindent 38 }}
|
||||
|
||||
# Tabs with Details, YAML, Logs, and Terminal views
|
||||
- type: antdTabs
|
||||
data:
|
||||
id: pod-tabs
|
||||
defaultActiveKey: "details"
|
||||
items:
|
||||
# Details tab with metadata and spec
|
||||
- key: "details"
|
||||
label: "Details"
|
||||
children:
|
||||
- type: ContentCard
|
||||
data:
|
||||
id: details-card
|
||||
style:
|
||||
marginBottom: 24px
|
||||
children:
|
||||
# Title of the details section
|
||||
- type: antdText
|
||||
data:
|
||||
id: details-title
|
||||
text: "Pod details"
|
||||
strong: true
|
||||
style:
|
||||
fontSize: 20
|
||||
marginBottom: 12px
|
||||
# Spacer before grid
|
||||
- type: Spacer
|
||||
data:
|
||||
id: details-spacer
|
||||
"$space": 16
|
||||
# Two-column layout for metadata (left) and status/spec (right)
|
||||
|
||||
- type: antdRow
|
||||
data:
|
||||
id: details-grid
|
||||
gutter: [48, 12]
|
||||
children:
|
||||
# Left column: metadata, links, labels
|
||||
- type: antdCol
|
||||
data:
|
||||
id: col-left
|
||||
span: 12
|
||||
children:
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: col-left-stack
|
||||
vertical: true
|
||||
gap: 24
|
||||
children:
|
||||
# Display name label/value
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-name-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: meta-name-label
|
||||
strong: true
|
||||
text: "Name"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: meta-name-value
|
||||
text: "{reqsJsonPath[0]['.metadata.name']['-']}"
|
||||
|
||||
# Namespace link (kept as include)
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-namespace-block
|
||||
vertical: true
|
||||
gap: 8
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: meta-name-label
|
||||
text: Namespace
|
||||
strong: true
|
||||
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "NS"
|
||||
"title" "namespace"
|
||||
"backgroundColor" "#a25792ff"
|
||||
)| nindent 34
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "namespace"
|
||||
"jsonPath" ".metadata.namespace"
|
||||
"factory" "namespace-details"
|
||||
) | nindent 38
|
||||
}}
|
||||
# Labels list (kept as include)
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-labels-block
|
||||
vertical: true
|
||||
gap: 8
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.labels" (dict
|
||||
"endpoint" "/api/clusters/{2}/k8s/api/v1/namespaces/{3}/pods/{6}"
|
||||
) | nindent 34
|
||||
}}
|
||||
|
||||
# Node selector chips (kept as include)
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-node-selector-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.labels.base.selector" (dict
|
||||
"type" "node"
|
||||
"title" "Node selector"
|
||||
"jsonPath" ".spec.nodeSelector"
|
||||
) | nindent 34
|
||||
}}
|
||||
|
||||
# Tolerations counter (kept as include)
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-tolerations-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.tolerations.block" (dict
|
||||
"endpoint" "/api/clusters/{2}/k8s/api/v1/namespaces/{3}/pods/{6}"
|
||||
"jsonPathToArray" ".spec.tolerations"
|
||||
"pathToValue" "/spec/tolerations"
|
||||
) | nindent 34
|
||||
}}
|
||||
|
||||
# Annotations counter block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: ds-annotations
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.annotations.block" (dict
|
||||
"endpoint" "/api/clusters/{2}/k8s/api/v1/namespaces/{3}/pods/{6}"
|
||||
) | nindent 34
|
||||
}}
|
||||
|
||||
# Created timestamp (kept as include)
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-created-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.time.create" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
"text" "Created"
|
||||
) | nindent 38
|
||||
}}
|
||||
|
||||
# Owner information (fallback when absent)
|
||||
# - type: antdFlex
|
||||
# data:
|
||||
# id: meta-owner-block
|
||||
# vertical: true
|
||||
# gap: 4
|
||||
# children:
|
||||
# - type: antdText
|
||||
# data:
|
||||
# id: meta-owner-label
|
||||
# strong: true
|
||||
# text: "Owner"
|
||||
# - type: parsedText
|
||||
# data:
|
||||
# id: meta-owner-fallback
|
||||
# strong: true
|
||||
# text: "No owner"
|
||||
# style:
|
||||
# color: red
|
||||
|
||||
# Right column: status and runtime info
|
||||
- type: antdCol
|
||||
data:
|
||||
id: col-right
|
||||
span: 12
|
||||
children:
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: col-right-stack
|
||||
vertical: true
|
||||
gap: 24
|
||||
children:
|
||||
# Status block with readiness reason mapping
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: status-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: status-label
|
||||
strong: true
|
||||
text: "Status"
|
||||
# Pod readiness/status indicator
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: status-label-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.statuses.pod" . | nindent 38 }}
|
||||
|
||||
# Restart policy
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: restart-policy-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: restart-policy-label
|
||||
strong: true
|
||||
text: "Restart policy"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: restart-policy-value
|
||||
text: "{reqsJsonPath[0]['.spec.restartPolicy']['-']} restart"
|
||||
|
||||
# Active deadline seconds
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: active-deadline-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: active-deadline-label
|
||||
strong: true
|
||||
text: "Active deadline seconds"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: active-deadline-value
|
||||
text: "{reqsJsonPath[0]['.spec.activeDeadlineSeconds']['-']}"
|
||||
|
||||
# Pod IP
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: pod-ip-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: pod-ip-label
|
||||
strong: true
|
||||
text: "Pod IP"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: pod-ip-value
|
||||
text: "{reqsJsonPath[0]['.status.podIP']['-']}"
|
||||
|
||||
# Host IP
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: host-ip-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: host-ip-label
|
||||
strong: true
|
||||
text: "Host IP"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: host-ip-value
|
||||
text: "{reqsJsonPath[0]['.status.hostIP']['-']}"
|
||||
|
||||
# Node details link (kept as include)
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: node-link-block
|
||||
vertical: true
|
||||
gap: 8
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: meta-node
|
||||
text: Node
|
||||
strong: true
|
||||
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "N"
|
||||
"title" "node"
|
||||
"backgroundColor" "#8476d1"
|
||||
)| nindent 34
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "name"
|
||||
"jsonPath" ".spec.nodeName"
|
||||
"factory" "node-details"
|
||||
) | nindent 38
|
||||
}}
|
||||
|
||||
# QoS class
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: qos-class-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: qos-class-label
|
||||
strong: true
|
||||
text: "QOS class"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: qos-class-value
|
||||
text: "{reqsJsonPath[0]['.status.qosClass']['-']}"
|
||||
|
||||
# Volumes section (table is hidden if no volumes)
|
||||
# TODO to be done
|
||||
# - type: antdCol
|
||||
# data:
|
||||
# id: volumes-col
|
||||
# style:
|
||||
# marginTop: 10
|
||||
# padding: 10
|
||||
# children:
|
||||
# - type: VisibilityContainer
|
||||
# data:
|
||||
# id: volumes-visibility
|
||||
# value: "{reqsJsonPath[0]['.spec.volumes']['-']}"
|
||||
# style:
|
||||
# margin: 0
|
||||
# padding: 0
|
||||
# children:
|
||||
# # Volumes title
|
||||
# - type: antdText
|
||||
# data:
|
||||
# id: volumes-title
|
||||
# text: "Volumes"
|
||||
# strong: true
|
||||
# style:
|
||||
# fontSize: 22
|
||||
# marginBottom: 32px
|
||||
# # Volumes table
|
||||
# - type: EnrichedTable
|
||||
# data:
|
||||
# id: volumes-table
|
||||
# fetchUrl: "/api/clusters/{2}/k8s/api/v1/namespaces/{3}/pods/{6}"
|
||||
# clusterNamePartOfUrl: "{2}"
|
||||
# customizationId: factory-pod-details-volume-list
|
||||
# baseprefix: "/openapi-ui"
|
||||
# withoutControls: true
|
||||
# pathToItems: ".spec.volumes"
|
||||
|
||||
|
||||
# Init containers section (hidden if none)
|
||||
- type: antdCol
|
||||
data:
|
||||
id: init-containers-col
|
||||
style:
|
||||
marginTop: 10
|
||||
padding: 10
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.containers.table" (dict
|
||||
"title" "Init containers"
|
||||
"customizationId" "container-status-init-containers-list"
|
||||
"type" "init-containers"
|
||||
"apiGroup" "api/v1"
|
||||
"kind" "pods"
|
||||
"resourceName" "{6}"
|
||||
"namespace" "{3}"
|
||||
"jsonPath" ".status.initContainerStatuses"
|
||||
"pathToItems" "['status','initContainerStatuses']"
|
||||
) | nindent 22
|
||||
}}
|
||||
|
||||
# Containers section (hidden if none)
|
||||
- type: antdCol
|
||||
data:
|
||||
id: containers-col
|
||||
style:
|
||||
marginTop: 10
|
||||
padding: 10
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.containers.table" (dict
|
||||
"title" "Containers"
|
||||
"customizationId" "container-status-containers-list"
|
||||
"type" "containers"
|
||||
"apiGroup" "api/v1"
|
||||
"kind" "pods"
|
||||
"resourceName" "{6}"
|
||||
"namespace" "{3}"
|
||||
"jsonPath" ".status.containerStatuses"
|
||||
"pathToItems" "['status','containerStatuses']"
|
||||
) | nindent 22
|
||||
}}
|
||||
|
||||
# Conditions section (hidden if none)
|
||||
- type: antdCol
|
||||
data:
|
||||
id: conditions-col
|
||||
style:
|
||||
marginTop: 10
|
||||
padding: 10
|
||||
children:
|
||||
- type: VisibilityContainer
|
||||
data:
|
||||
id: conditions-visibility
|
||||
value: "{reqsJsonPath[0]['.status.conditions']['-']}"
|
||||
style:
|
||||
margin: 0
|
||||
padding: 0
|
||||
children:
|
||||
# Conditions title
|
||||
- type: antdText
|
||||
data:
|
||||
id: conditions-title
|
||||
text: "Conditions"
|
||||
strong: true
|
||||
style:
|
||||
fontSize: 22
|
||||
# Conditions table
|
||||
- type: EnrichedTable
|
||||
data:
|
||||
id: conditions-table
|
||||
fetchUrl: "/api/clusters/{2}/k8s/api/v1/namespaces/{3}/pods/{6}"
|
||||
clusterNamePartOfUrl: "{2}"
|
||||
customizationId: factory-status-conditions
|
||||
baseprefix: "/openapi-ui"
|
||||
withoutControls: true
|
||||
pathToItems: ".status.conditions"
|
||||
|
||||
# YAML tab with inline editor
|
||||
- key: "yaml"
|
||||
label: "YAML"
|
||||
children:
|
||||
- type: YamlEditorSingleton
|
||||
data:
|
||||
id: yaml-editor
|
||||
cluster: "{2}"
|
||||
isNameSpaced: true
|
||||
type: "builtin"
|
||||
typeName: pods
|
||||
prefillValuesRequestIndex: 0
|
||||
substractHeight: 400
|
||||
|
||||
# Logs tab with live pod logs
|
||||
- key: "logs"
|
||||
label: "Logs"
|
||||
children:
|
||||
- type: PodLogs
|
||||
data:
|
||||
id: pod-logs
|
||||
cluster: "{2}"
|
||||
namespace: "{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
podName: "{reqsJsonPath[0]['.metadata.name']['-']}"
|
||||
substractHeight: 400
|
||||
|
||||
# Terminal tab with exec into pod
|
||||
- key: "terminal"
|
||||
label: "Terminal"
|
||||
children:
|
||||
- type: PodTerminal
|
||||
data:
|
||||
id: pod-terminal
|
||||
cluster: "{2}"
|
||||
namespace: "{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
podName: "{reqsJsonPath[0]['.metadata.name']['-']}"
|
||||
substractHeight: 400
|
||||
@@ -1,268 +0,0 @@
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Factory
|
||||
metadata:
|
||||
name: secret-details
|
||||
spec:
|
||||
key: secret-details
|
||||
sidebarTags:
|
||||
- secret-sidebar
|
||||
withScrollableMainContentCard: true
|
||||
urlsToFetch:
|
||||
- "/api/clusters/{2}/k8s/api/v1/namespaces/{3}/secrets/{6}"
|
||||
|
||||
# Header row with badge and Secret name
|
||||
data:
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: header-row
|
||||
gap: 6
|
||||
align: center
|
||||
style:
|
||||
marginBottom: 24px
|
||||
children:
|
||||
# Secret badge
|
||||
- type: antdText
|
||||
data:
|
||||
id: badge-secret
|
||||
text: S
|
||||
title: secret
|
||||
style:
|
||||
fontSize: 20px
|
||||
lineHeight: 24px
|
||||
padding: "0 9px"
|
||||
borderRadius: "20px"
|
||||
minWidth: 24
|
||||
display: inline-block
|
||||
textAlign: center
|
||||
whiteSpace: nowrap
|
||||
color: "#fff"
|
||||
backgroundColor: "#c46100"
|
||||
fontFamily: RedHatDisplay, Overpass, overpass, helvetica, arial, sans-serif
|
||||
fontWeight: 400
|
||||
# Secret name
|
||||
- type: parsedText
|
||||
data:
|
||||
id: header-secret-name
|
||||
text: "{reqsJsonPath[0]['.metadata.name']['-']}"
|
||||
style:
|
||||
fontSize: 20px
|
||||
lineHeight: 24px
|
||||
fontFamily: RedHatDisplay, Overpass, overpass, helvetica, arial, sans-serif
|
||||
|
||||
# Tabs with Details and YAML
|
||||
- type: antdTabs
|
||||
data:
|
||||
id: secret-tabs
|
||||
defaultActiveKey: "details"
|
||||
items:
|
||||
# Details tab with metadata and spec info
|
||||
- key: "details"
|
||||
label: "Details"
|
||||
children:
|
||||
- type: ContentCard
|
||||
data:
|
||||
id: details-card
|
||||
style:
|
||||
marginBottom: 24px
|
||||
children:
|
||||
# Title
|
||||
- type: antdText
|
||||
data:
|
||||
id: details-title
|
||||
text: "Secret details"
|
||||
strong: true
|
||||
style:
|
||||
fontSize: 20
|
||||
marginBottom: 12px
|
||||
|
||||
# Spacer
|
||||
- type: Spacer
|
||||
data:
|
||||
id: details-spacer
|
||||
"$space": 16
|
||||
|
||||
# Two-column layout
|
||||
- type: antdRow
|
||||
data:
|
||||
id: details-grid
|
||||
gutter: [48, 12]
|
||||
children:
|
||||
# Left column: metadata
|
||||
- type: antdCol
|
||||
data:
|
||||
id: col-left
|
||||
span: 12
|
||||
children:
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: col-left-stack
|
||||
vertical: true
|
||||
gap: 24
|
||||
children:
|
||||
# Name block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-name-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: meta-name-label
|
||||
strong: true
|
||||
text: "Name"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: meta-name-value
|
||||
text: "{reqsJsonPath[0]['.metadata.name']['-']}"
|
||||
|
||||
# Namespace link
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-namespace-block
|
||||
vertical: true
|
||||
gap: 8
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: meta-name-label
|
||||
text: Namespace
|
||||
strong: true
|
||||
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "NS"
|
||||
"title" "namespace"
|
||||
"backgroundColor" "#a25792ff"
|
||||
)| nindent 34
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "namespace"
|
||||
"jsonPath" ".metadata.namespace"
|
||||
"factory" "namespace-details"
|
||||
) | nindent 38
|
||||
}}
|
||||
|
||||
# Labels
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-labels-block
|
||||
vertical: true
|
||||
gap: 8
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.labels" (dict
|
||||
"endpoint" "/api/clusters/{2}/k8s/api/v1/namespaces/{3}/secrets/{6}"
|
||||
) | nindent 34
|
||||
}}
|
||||
|
||||
# Annotations counter block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: ds-annotations
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.annotations.block" (dict
|
||||
"endpoint" "/api/clusters/{2}/k8s/api/v1/namespaces/{3}/secrets/{6}"
|
||||
) | nindent 34
|
||||
}}
|
||||
|
||||
# Created timestamp
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-created-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.time.create" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
"text" "Created"
|
||||
) | nindent 38
|
||||
}}
|
||||
|
||||
# Owner block
|
||||
# - type: antdFlex
|
||||
# data:
|
||||
# id: meta-owner-block
|
||||
# vertical: true
|
||||
# gap: 4
|
||||
# children:
|
||||
# - type: antdText
|
||||
# data:
|
||||
# id: meta-owner-label
|
||||
# strong: true
|
||||
# text: "Owner"
|
||||
# - type: antdFlex
|
||||
# data:
|
||||
# id: meta-owner-flex
|
||||
# gap: 6
|
||||
# align: center
|
||||
# children:
|
||||
# - type: parsedText
|
||||
# data:
|
||||
# id: owner-value
|
||||
# strong: true
|
||||
# text: "No owner"
|
||||
# style:
|
||||
# color: red
|
||||
|
||||
# Right column: type info
|
||||
- type: antdCol
|
||||
data:
|
||||
id: col-right
|
||||
span: 12
|
||||
children:
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: col-right-stack
|
||||
vertical: true
|
||||
gap: 24
|
||||
children:
|
||||
# Secret type
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: secret-type-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: secret-type-label
|
||||
strong: true
|
||||
text: "Type"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: secret-type-value
|
||||
text: "{reqsJsonPath[0]['.type']['-']}"
|
||||
|
||||
# Secret SA
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: secret-sa-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
# SA Link
|
||||
{{ include "incloud-web-resources.factory.links.details" (dict
|
||||
"reqIndex" 0
|
||||
"type" "serviceaccount"
|
||||
"title" "ServiceAccount"
|
||||
"jsonPath" ".metadata.annotations['kubernetes.io/service-account.name']"
|
||||
"namespace" "{3}"
|
||||
"factory" "serviceaccount-details"
|
||||
) | nindent 34
|
||||
}}
|
||||
|
||||
# YAML tab
|
||||
- key: yaml
|
||||
label: YAML
|
||||
children:
|
||||
- type: YamlEditorSingleton
|
||||
data:
|
||||
id: yaml-editor
|
||||
cluster: "{2}"
|
||||
isNameSpaced: true
|
||||
type: builtin
|
||||
typeName: secrets
|
||||
prefillValuesRequestIndex: 0
|
||||
substractHeight: 400
|
||||
@@ -1,403 +0,0 @@
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Factory
|
||||
metadata:
|
||||
name: service-details
|
||||
spec:
|
||||
key: service-details
|
||||
withScrollableMainContentCard: true
|
||||
sidebarTags:
|
||||
- service-sidebar
|
||||
urlsToFetch:
|
||||
- "/api/clusters/{2}/k8s/api/v1/namespaces/{3}/services/{6}"
|
||||
|
||||
# Header row with badge and Service name
|
||||
data:
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: header-row
|
||||
gap: 6
|
||||
align: center
|
||||
style:
|
||||
marginBottom: 24px
|
||||
children:
|
||||
# Service badge
|
||||
- type: antdText
|
||||
data:
|
||||
id: badge-service
|
||||
text: S
|
||||
title: services
|
||||
style:
|
||||
fontSize: 20px
|
||||
lineHeight: 24px
|
||||
padding: "0 9px"
|
||||
borderRadius: "20px"
|
||||
minWidth: 24
|
||||
display: inline-block
|
||||
textAlign: center
|
||||
whiteSpace: nowrap
|
||||
color: "#fff"
|
||||
backgroundColor: "#6ca100"
|
||||
fontFamily: RedHatDisplay, Overpass, overpass, helvetica, arial, sans-serif
|
||||
fontWeight: 400
|
||||
# Service name
|
||||
- type: parsedText
|
||||
data:
|
||||
id: service-name
|
||||
text: "{reqsJsonPath[0]['.metadata.name']['-']}"
|
||||
style:
|
||||
fontSize: 20px
|
||||
lineHeight: 24px
|
||||
fontFamily: RedHatDisplay, Overpass, overpass, helvetica, arial, sans-serif
|
||||
|
||||
# Tabs with Details, YAML, and Pods
|
||||
- type: antdTabs
|
||||
data:
|
||||
id: service-tabs
|
||||
defaultActiveKey: "details"
|
||||
items:
|
||||
# Details tab
|
||||
- key: "details"
|
||||
label: "Details"
|
||||
children:
|
||||
- type: ContentCard
|
||||
data:
|
||||
id: details-card
|
||||
style:
|
||||
marginBottom: 24px
|
||||
children:
|
||||
- type: antdRow
|
||||
data:
|
||||
id: details-grid
|
||||
gutter: [48, 12]
|
||||
children:
|
||||
# Left column: metadata and config
|
||||
- type: antdCol
|
||||
data:
|
||||
id: col-left
|
||||
span: 12
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: details-title
|
||||
text: "Service details"
|
||||
strong: true
|
||||
style:
|
||||
fontSize: 20
|
||||
marginBottom: 12px
|
||||
- type: Spacer
|
||||
data:
|
||||
id: details-spacer
|
||||
"$space": 16
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: col-left-stack
|
||||
vertical: true
|
||||
gap: 24
|
||||
children:
|
||||
# Name block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-name-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: meta-name-label
|
||||
strong: true
|
||||
text: "Name"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: meta-name-value
|
||||
text: "{reqsJsonPath[0]['.metadata.name']['-']}"
|
||||
|
||||
# Namespace link
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-namespace-block
|
||||
vertical: true
|
||||
gap: 8
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: meta-name-label
|
||||
text: Namespace
|
||||
strong: true
|
||||
|
||||
{{ include "incloud-web-resources.icon" (dict
|
||||
"text" "NS"
|
||||
"title" "namespace"
|
||||
"backgroundColor" "#a25792ff"
|
||||
)| nindent 34
|
||||
}}
|
||||
{{ include "incloud-web-resources.factory.linkblock" (dict
|
||||
"reqIndex" 0
|
||||
"type" "namespace"
|
||||
"jsonPath" ".metadata.namespace"
|
||||
"factory" "namespace-details"
|
||||
) | nindent 38
|
||||
}}
|
||||
|
||||
# Labels
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-labels-block
|
||||
vertical: true
|
||||
gap: 8
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.labels" (dict
|
||||
"endpoint" "/api/clusters/{2}/k8s/api/v1/namespaces/{3}/services/{6}"
|
||||
) | nindent 34
|
||||
}}
|
||||
|
||||
# Pod selector
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-pod-selector-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.labels.base.selector" (dict
|
||||
"type" "pod"
|
||||
"title" "Pod selector"
|
||||
"jsonPath" ".spec.template.metadata.labels"
|
||||
) | nindent 34
|
||||
}}
|
||||
|
||||
# Annotations counter block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: ds-annotations
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.annotations.block" (dict
|
||||
"endpoint" "/api/clusters/{2}/k8s/api/v1/namespaces/{3}/services/{6}"
|
||||
) | nindent 34
|
||||
}}
|
||||
|
||||
# Session affinity
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-session-affinity-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: meta-session-affinity-label
|
||||
strong: true
|
||||
text: "Session affinity"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: meta-session-affinity-value
|
||||
text: "{reqsJsonPath[0]['.spec.sessionAffinity']['Not configured']}"
|
||||
|
||||
# Created timestamp
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-created-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.time.create" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
"text" "Created"
|
||||
) | nindent 34
|
||||
}}
|
||||
|
||||
# Owner
|
||||
# - type: antdFlex
|
||||
# data:
|
||||
# id: meta-owner-block
|
||||
# vertical: true
|
||||
# gap: 4
|
||||
# children:
|
||||
# - type: antdText
|
||||
# data:
|
||||
# id: meta-owner-label
|
||||
# strong: true
|
||||
# text: "Owner"
|
||||
# - type: antdFlex
|
||||
# data:
|
||||
# id: meta-owner-flex
|
||||
# gap: 6
|
||||
# align: center
|
||||
# children:
|
||||
# - type: antdText
|
||||
# data:
|
||||
# id: meta-owner-fallback
|
||||
# text: "No owner"
|
||||
# style:
|
||||
# color: "#FF0000"
|
||||
|
||||
# Right column: routing and ports
|
||||
- type: antdCol
|
||||
data:
|
||||
id: col-right
|
||||
span: 12
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: routing-title
|
||||
text: "Service routing"
|
||||
strong: true
|
||||
style:
|
||||
fontSize: 20
|
||||
marginBottom: 12px
|
||||
- type: Spacer
|
||||
data:
|
||||
id: routing-spacer
|
||||
"$space": 16
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: col-right-stack
|
||||
vertical: true
|
||||
gap: 24
|
||||
children:
|
||||
# Hostname
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: service-hostname-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: service-hostname-label
|
||||
strong: true
|
||||
text: "Hostname"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: service-hostname-value
|
||||
text: "{reqsJsonPath[0]['.metadata.name']['-']}.{reqsJsonPath[0]['.metadata.namespace']['-']}.svc.cluster.local"
|
||||
|
||||
# IP addresses block
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: service-ip-block
|
||||
vertical: true
|
||||
gap: 12
|
||||
children:
|
||||
# ClusterIP
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: clusterip-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: clusterip-label
|
||||
strong: true
|
||||
text: "ClusterIP address"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: clusterip-value
|
||||
text: "{reqsJsonPath[0]['.spec.clusterIP']['-']}"
|
||||
|
||||
# LoadBalancerIP
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: loadbalancerip-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: loadbalancerip-label
|
||||
strong: true
|
||||
text: "LoadBalancerIP address"
|
||||
- type: parsedText
|
||||
data:
|
||||
id: loadbalancerip-value
|
||||
text: "{reqsJsonPath[0]['.status.loadBalancer.ingress[0].ip']['Not Configured']}"
|
||||
|
||||
# Service port mapping
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: service-port-mapping-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: service-port-mapping-label
|
||||
strong: true
|
||||
text: "Service port mapping"
|
||||
- type: EnrichedTable
|
||||
data:
|
||||
id: service-port-mapping-table
|
||||
fetchUrl: "/api/clusters/{2}/k8s/api/v1/namespaces/{3}/services/{6}"
|
||||
clusterNamePartOfUrl: "{2}"
|
||||
customizationId: "factory-service-details-port-mapping"
|
||||
baseprefix: "/openapi-ui"
|
||||
withoutControls: true
|
||||
pathToItems: ".spec.ports"
|
||||
|
||||
# Pod serving
|
||||
- type: VisibilityContainer
|
||||
data:
|
||||
id: service-pod-serving-vis
|
||||
value: "{reqsJsonPath[0]['.spec.selector']['-']}"
|
||||
style: { margin: 0, padding: 0 }
|
||||
children:
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: service-pod-serving-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: service-pod-serving-label
|
||||
strong: true
|
||||
text: "Pod serving"
|
||||
- type: EnrichedTable
|
||||
data:
|
||||
id: service-pod-serving-table
|
||||
fetchUrl: "/api/clusters/{2}/k8s/apis/discovery.k8s.io/v1/namespaces/{3}/endpointslices"
|
||||
clusterNamePartOfUrl: "{2}"
|
||||
customizationId: "factory-service-details-endpointslice"
|
||||
baseprefix: "/openapi-ui"
|
||||
withoutControls: true
|
||||
labelsSelector:
|
||||
kubernetes.io/service-name: "{reqsJsonPath[0]['.metadata.name']['-']}"
|
||||
pathToItems: ".items[*].endpoints"
|
||||
|
||||
# YAML tab
|
||||
- key: "yaml"
|
||||
label: "YAML"
|
||||
children:
|
||||
- type: YamlEditorSingleton
|
||||
data:
|
||||
id: yaml-editor
|
||||
cluster: "{2}"
|
||||
isNameSpaced: true
|
||||
type: "builtin"
|
||||
typeName: services
|
||||
prefillValuesRequestIndex: 0
|
||||
substractHeight: 400
|
||||
|
||||
# Pods tab
|
||||
- key: "pods"
|
||||
label: "Pods"
|
||||
children:
|
||||
- type: VisibilityContainer
|
||||
data:
|
||||
id: service-pod-serving-vis
|
||||
value: "{reqsJsonPath[0]['.spec.selector']['-']}"
|
||||
style: { margin: 0, padding: 0 }
|
||||
children:
|
||||
- type: EnrichedTable
|
||||
data:
|
||||
id: pods-table
|
||||
fetchUrl: "/api/clusters/{2}/k8s/api/v1/namespaces/{3}/pods"
|
||||
clusterNamePartOfUrl: "{2}"
|
||||
customizationId: "factory-node-details-/v1/pods"
|
||||
baseprefix: "/openapi-ui"
|
||||
withoutControls: false
|
||||
labelsSelectorFull:
|
||||
reqIndex: 0
|
||||
pathToLabels: ".spec.selector"
|
||||
pathToItems: ".items"
|
||||
@@ -1,328 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Factory
|
||||
metadata:
|
||||
name: workloadmonitor-details
|
||||
spec:
|
||||
key: workloadmonitor-details
|
||||
sidebarTags:
|
||||
- workloadmonitor-sidebar
|
||||
withScrollableMainContentCard: true
|
||||
urlsToFetch:
|
||||
- "/api/clusters/{2}/k8s/apis/cozystack.io/v1alpha1/namespaces/{3}/workloadmonitors/{6}"
|
||||
data:
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: header-row
|
||||
gap: 6
|
||||
align: center
|
||||
style:
|
||||
marginBottom: 24
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: badge-workloadmonitor
|
||||
text: "W"
|
||||
title: workloadmonitors
|
||||
style:
|
||||
backgroundColor: "#c46100"
|
||||
borderRadius: "20px"
|
||||
color: "#fff"
|
||||
display: inline-block
|
||||
fontFamily: RedHatDisplay, Overpass, overpass, helvetica, arial, sans-serif
|
||||
fontSize: 20
|
||||
fontWeight: 400
|
||||
lineHeight: "24px"
|
||||
minWidth: 24
|
||||
padding: "0 9px"
|
||||
textAlign: center
|
||||
whiteSpace: nowrap
|
||||
- type: parsedText
|
||||
data:
|
||||
id: workloadmonitor-name
|
||||
text: "{reqsJsonPath[0]['.metadata.name']['-']}"
|
||||
style:
|
||||
fontFamily: RedHatDisplay, Overpass, overpass, helvetica, arial, sans-serif
|
||||
fontSize: 20
|
||||
lineHeight: "24px"
|
||||
|
||||
- type: antdTabs
|
||||
data:
|
||||
id: workloadmonitor-tabs
|
||||
defaultActiveKey: details
|
||||
items:
|
||||
- key: details
|
||||
label: Details
|
||||
children:
|
||||
- type: ContentCard
|
||||
data:
|
||||
id: details-card
|
||||
style:
|
||||
marginBottom: 24
|
||||
children:
|
||||
- type: antdRow
|
||||
data:
|
||||
id: details-grid
|
||||
gutter: [48, 12]
|
||||
children:
|
||||
- type: antdCol
|
||||
data:
|
||||
id: col-left
|
||||
span: 12
|
||||
children:
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: col-left-stack
|
||||
vertical: true
|
||||
gap: 24
|
||||
children:
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-name-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: meta-name-label
|
||||
text: Name
|
||||
strong: true
|
||||
- type: parsedText
|
||||
data:
|
||||
id: meta-name-value
|
||||
text: "{reqsJsonPath[0]['.metadata.name']['-']}"
|
||||
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-namespace-block
|
||||
vertical: true
|
||||
gap: 8
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: meta-namespace-label
|
||||
text: Namespace
|
||||
strong: true
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: namespace-row
|
||||
align: center
|
||||
gap: 6
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: ns-badge
|
||||
text: NS
|
||||
style:
|
||||
backgroundColor: "#a25792ff"
|
||||
borderRadius: "20px"
|
||||
color: "#fff"
|
||||
display: inline-block
|
||||
fontFamily: RedHatDisplay, Overpass, overpass, helvetica, arial, sans-serif
|
||||
fontSize: 15
|
||||
fontWeight: 400
|
||||
lineHeight: "24px"
|
||||
minWidth: 24
|
||||
padding: "0 9px"
|
||||
textAlign: center
|
||||
whiteSpace: nowrap
|
||||
- type: antdLink
|
||||
data:
|
||||
id: namespace-link
|
||||
text: "{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
href: "/openapi-ui/{2}/factory/namespace-details/{reqsJsonPath[0]['.metadata.namespace']['-']}"
|
||||
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-created-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
{{ include "incloud-web-resources.factory.time.create" (dict
|
||||
"req" ".metadata.creationTimestamp"
|
||||
"text" "Created"
|
||||
) | nindent 34
|
||||
}}
|
||||
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-kind-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: kind-label
|
||||
text: Kind
|
||||
strong: true
|
||||
- type: parsedText
|
||||
data:
|
||||
id: kind-value
|
||||
text: "{reqsJsonPath[0]['.spec.kind']['-']}"
|
||||
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: meta-type-block
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: type-label
|
||||
text: Type
|
||||
strong: true
|
||||
- type: parsedText
|
||||
data:
|
||||
id: type-value
|
||||
text: "{reqsJsonPath[0]['.spec.type']['-']}"
|
||||
|
||||
- type: antdCol
|
||||
data:
|
||||
id: col-right
|
||||
span: 12
|
||||
children:
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: col-right-stack
|
||||
vertical: true
|
||||
gap: 24
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: params-title
|
||||
text: Parameters
|
||||
strong: true
|
||||
style:
|
||||
fontSize: 20
|
||||
marginBottom: 12
|
||||
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: params-list
|
||||
vertical: true
|
||||
gap: 24
|
||||
children:
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: param-version
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: param-version-label
|
||||
text: Version
|
||||
strong: true
|
||||
- type: parsedText
|
||||
data:
|
||||
id: param-version-value
|
||||
text: "{reqsJsonPath[0]['.spec.version']['-']}"
|
||||
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: param-replicas
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: param-replicas-label
|
||||
text: Replicas
|
||||
strong: true
|
||||
- type: parsedText
|
||||
data:
|
||||
id: param-replicas-value
|
||||
text: "{reqsJsonPath[0]['.spec.replicas']['-']}"
|
||||
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: param-minreplicas
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: param-minreplicas-label
|
||||
text: MinReplicas
|
||||
strong: true
|
||||
- type: parsedText
|
||||
data:
|
||||
id: param-minreplicas-value
|
||||
text: "{reqsJsonPath[0]['.spec.minReplicas']['-']}"
|
||||
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: param-available
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: param-available-label
|
||||
text: AvailableReplicas
|
||||
strong: true
|
||||
- type: parsedText
|
||||
data:
|
||||
id: param-available-value
|
||||
text: "{reqsJsonPath[0]['.status.availableReplicas']['-']}"
|
||||
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: param-observed
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: param-observed-label
|
||||
text: ObservedReplicas
|
||||
strong: true
|
||||
- type: parsedText
|
||||
data:
|
||||
id: param-observed-value
|
||||
text: "{reqsJsonPath[0]['.status.observedReplicas']['-']}"
|
||||
|
||||
- type: antdFlex
|
||||
data:
|
||||
id: param-operational
|
||||
vertical: true
|
||||
gap: 4
|
||||
children:
|
||||
- type: antdText
|
||||
data:
|
||||
id: param-operational-label
|
||||
text: Operational
|
||||
strong: true
|
||||
- type: parsedText
|
||||
data:
|
||||
id: param-operational-value
|
||||
text: "{reqsJsonPath[0]['.status.operational']['-']}"
|
||||
|
||||
- key: workloads
|
||||
label: Workloads
|
||||
children:
|
||||
- type: EnrichedTable
|
||||
data:
|
||||
id: workloads-table
|
||||
fetchUrl: "/api/clusters/{2}/k8s/apis/cozystack.io/v1alpha1/namespaces/{3}/workloads"
|
||||
clusterNamePartOfUrl: "{2}"
|
||||
baseprefix: "/openapi-ui"
|
||||
customizationId: "factory-details-v1alpha1.cozystack.io.workloads"
|
||||
pathToItems: ["items"]
|
||||
labelsSelector:
|
||||
workloads.cozystack.io/monitor: "{reqs[0]['metadata','name']}"
|
||||
|
||||
- key: yaml
|
||||
label: YAML
|
||||
children:
|
||||
- type: YamlEditorSingleton
|
||||
data:
|
||||
id: yaml-editor
|
||||
cluster: "{2}"
|
||||
isNameSpaced: true
|
||||
type: builtin
|
||||
typeName: workloadmonitors
|
||||
prefillValuesRequestIndex: 0
|
||||
substractHeight: 400
|
||||
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: Navigation
|
||||
metadata:
|
||||
name: navigation
|
||||
spec:
|
||||
namespaces:
|
||||
change: /openapi-ui/{selectedCluster}/{value}/factory/marketplace
|
||||
clear: /openapi-ui/{selectedCluster}/api-table/core.cozystack.io/v1alpha1/tenantnamespaces
|
||||
@@ -1,26 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: TableUriMapping
|
||||
metadata:
|
||||
name: virtualmachine-details
|
||||
name: stock-namespace-default-apps.cozystack.io.v1alpha1.virtualmachines.yaml
|
||||
spec:
|
||||
id: "stock-namespace-/apps.cozystack.io/v1alpha1/virtualmachines"
|
||||
pathToNavigate: "/openapi-ui/{2}/{3}/factory/virtualmachine-details/~recordValue~"
|
||||
keysToParse:
|
||||
- metadata
|
||||
- name
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: TableUriMapping
|
||||
metadata:
|
||||
name: stock-cluster-service-details
|
||||
spec:
|
||||
id: "vm-factory-services"
|
||||
pathToNavigate: "/openapi-ui/default/~recordValueSecond~/factory/service-details/~recordValue~"
|
||||
keysToParse:
|
||||
- metadata
|
||||
- name
|
||||
keysToParseSecond:
|
||||
- metadata
|
||||
- namespace
|
||||
@@ -1,11 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: TableUriMapping
|
||||
metadata:
|
||||
name: namespaces
|
||||
spec:
|
||||
id: "stock-cluster-/core.cozystack.io/v1alpha1/tenantnamespaces"
|
||||
pathToNavigate: "/openapi-ui/{clusterName}/~recordValue~/factory/marketplace"
|
||||
keysToParse:
|
||||
- metadata
|
||||
- name
|
||||
@@ -1,23 +0,0 @@
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: TableUriMapping
|
||||
metadata:
|
||||
name: stock-cluster-networking.k8s.io.v1.ingress-details
|
||||
spec:
|
||||
keysToParse: ".metadata.name"
|
||||
keysToParseSecond: ".metadata.namespace"
|
||||
id: "stock-cluster-/networking.k8s.io/v1/ingresses"
|
||||
pathToNavigate: "/openapi-ui/{clusterName}/~recordValueSecond~/factory/ingress-details/~recordValue~"
|
||||
|
||||
---
|
||||
apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
kind: TableUriMapping
|
||||
metadata:
|
||||
name: stock-namespace-networking.k8s.io.v1.ingress-details
|
||||
spec:
|
||||
keysToParse: ".metadata.name"
|
||||
keysToParseSecond: ".metadata.namespace"
|
||||
id: "stock-namespace-/networking.k8s.io/v1/ingresses"
|
||||
pathToNavigate: "/openapi-ui/{clusterName}/~recordValueSecond~/factory/ingress-details/~recordValue~"
|
||||
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
# ---
|
||||
# apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
# kind: TableUriMapping
|
||||
# metadata:
|
||||
# name: stock-cluster-configmap-details
|
||||
# spec:
|
||||
# keysToParse: ".metadata.name"
|
||||
# keysToParseSecond: ".metadata.namespace"
|
||||
# id: "stock-cluster-/v1/configmaps"
|
||||
# pathToNavigate: "/openapi-ui/{clusterName}/~recordValueSecond~/factory/configmap-details/~recordValue~"
|
||||
|
||||
# ---
|
||||
# apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
# kind: TableUriMapping
|
||||
# metadata:
|
||||
# name: stock-namespace-configmap-details
|
||||
# spec:
|
||||
# keysToParse: ".metadata.name"
|
||||
# keysToParseSecond: ".metadata.namespace"
|
||||
# id: "stock-namespace-/v1/configmaps"
|
||||
# pathToNavigate: "/openapi-ui/{clusterName}/~recordValueSecond~/factory/configmap-details/~recordValue~"
|
||||
@@ -1,9 +0,0 @@
|
||||
# ---
|
||||
# apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
# kind: TableUriMapping
|
||||
# metadata:
|
||||
# name: stock-cluster-namespace-details
|
||||
# spec:
|
||||
# keysToParse: ".metadata.name"
|
||||
# id: "stock-cluster-/v1/namespaces"
|
||||
# pathToNavigate: "/openapi-ui/{clusterName}/factory/namespace-details/~recordValue~"
|
||||
@@ -1,9 +0,0 @@
|
||||
# ---
|
||||
# apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
# kind: TableUriMapping
|
||||
# metadata:
|
||||
# name: stock-cluster-node-details
|
||||
# spec:
|
||||
# keysToParse: ".metadata.name"
|
||||
# id: "stock-cluster-/v1/nodes"
|
||||
# pathToNavigate: "/openapi-ui/{clusterName}/factory/node-details/~recordValue~"
|
||||
@@ -1,54 +0,0 @@
|
||||
# ---
|
||||
# apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
# kind: TableUriMapping
|
||||
# metadata:
|
||||
# name: stock-cluster-pod-details
|
||||
# spec:
|
||||
# keysToParse: ".metadata.name"
|
||||
# keysToParseSecond: ".metadata.namespace"
|
||||
# id: "stock-cluster-/v1/pods"
|
||||
# pathToNavigate: "/openapi-ui/{clusterName}/~recordValueSecond~/factory/pod-details/~recordValue~"
|
||||
|
||||
# ---
|
||||
# apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
# kind: TableUriMapping
|
||||
# metadata:
|
||||
# name: stock-namespace-pod-details
|
||||
# spec:
|
||||
# keysToParse: ".metadata.name"
|
||||
# keysToParseSecond: ".metadata.namespace"
|
||||
# id: "stock-namespace-/v1/pods"
|
||||
# pathToNavigate: "/openapi-ui/{clusterName}/~recordValueSecond~/factory/pod-details/~recordValue~"
|
||||
|
||||
# ---
|
||||
# apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
# kind: TableUriMapping
|
||||
# metadata:
|
||||
# name: factory-node-details-table-pods
|
||||
# spec:
|
||||
# keysToParse: ".metadata.name"
|
||||
# keysToParseSecond: ".metadata.namespace"
|
||||
# id: "factory-node-details-/v1/pods"
|
||||
# pathToNavigate: "/openapi-ui/{2}/~recordValueSecond~/factory/pod-details/~recordValue~"
|
||||
|
||||
# ---
|
||||
# apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
# kind: TableUriMapping
|
||||
# metadata:
|
||||
# name: factory-service-details-endpointslice
|
||||
# spec:
|
||||
# keysToParse: ".targetRef.name"
|
||||
# keysToParseSecond: ".targetRef.namespace"
|
||||
# id: "factory-service-details-endpointslice"
|
||||
# pathToNavigate: "/openapi-ui/{2}/~recordValueSecond~/factory/pod-details/~recordValue~"
|
||||
|
||||
# ---
|
||||
# apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
# kind: TableUriMapping
|
||||
# metadata:
|
||||
# name: "factory-v1.pods"
|
||||
# spec:
|
||||
# keysToParse: ".metadata.name"
|
||||
# keysToParseSecond: ".metadata.namespace"
|
||||
# id: "factory-/v1/pods"
|
||||
# pathToNavigate: "/openapi-ui/{2}/~recordValueSecond~/factory/pod-details/~recordValue~"
|
||||
@@ -1,21 +0,0 @@
|
||||
# ---
|
||||
# apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
# kind: TableUriMapping
|
||||
# metadata:
|
||||
# name: stock-cluster-secret-details
|
||||
# spec:
|
||||
# keysToParse: ".metadata.name"
|
||||
# keysToParseSecond: ".metadata.namespace"
|
||||
# id: "stock-cluster-/v1/secrets"
|
||||
# pathToNavigate: "/openapi-ui/{clusterName}/~recordValueSecond~/factory/secret-details/~recordValue~"
|
||||
|
||||
# ---
|
||||
# apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
# kind: TableUriMapping
|
||||
# metadata:
|
||||
# name: stock-namespace-secret-details
|
||||
# spec:
|
||||
# keysToParse: ".metadata.name"
|
||||
# keysToParseSecond: ".metadata.namespace"
|
||||
# id: "stock-namespace-/v1/secrets"
|
||||
# pathToNavigate: "/openapi-ui/{clusterName}/~recordValueSecond~/factory/secret-details/~recordValue~"
|
||||
@@ -1,21 +0,0 @@
|
||||
# ---
|
||||
# apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
# kind: TableUriMapping
|
||||
# metadata:
|
||||
# name: stock-cluster-service-details
|
||||
# spec:
|
||||
# keysToParse: ".metadata.name"
|
||||
# keysToParseSecond: ".metadata.namespace"
|
||||
# id: "stock-cluster-/v1/services"
|
||||
# pathToNavigate: "/openapi-ui/{clusterName}/~recordValueSecond~/factory/service-details/~recordValue~"
|
||||
|
||||
# ---
|
||||
# apiVersion: dashboard.cozystack.io/v1alpha1
|
||||
# kind: TableUriMapping
|
||||
# metadata:
|
||||
# name: stock-namespace-service-details
|
||||
# spec:
|
||||
# keysToParse: ".metadata.name"
|
||||
# keysToParseSecond: ".metadata.namespace"
|
||||
# id: "stock-namespace-/v1/services"
|
||||
# pathToNavigate: "/openapi-ui/{clusterName}/~recordValueSecond~/factory/service-details/~recordValue~"
|
||||
@@ -1,62 +0,0 @@
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "incloud-web-resources.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "incloud-web-resources.fullname" -}}
|
||||
{{- if .Values.fullnameOverride }}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride }}
|
||||
{{- if contains $name .Release.Name }}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "incloud-web-resources.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Common labels
|
||||
*/}}
|
||||
{{- define "incloud-web-resources.labels" -}}
|
||||
helm.sh/chart: {{ include "incloud-web-resources.chart" . }}
|
||||
{{ include "incloud-web-resources.selectorLabels" . }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Selector labels
|
||||
*/}}
|
||||
{{- define "incloud-web-resources.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "incloud-web-resources.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create the name of the service account to use
|
||||
*/}}
|
||||
{{- define "incloud-web-resources.serviceAccountName" -}}
|
||||
{{- if .Values.serviceAccount.create }}
|
||||
{{- default (include "incloud-web-resources.fullname" .) .Values.serviceAccount.name }}
|
||||
{{- else }}
|
||||
{{- default "default" .Values.serviceAccount.name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -5,7 +5,7 @@ include ../../../scripts/common-envs.mk
|
||||
include ../../../scripts/package.mk
|
||||
|
||||
update: update-crd update-dockerfiles
|
||||
image: image-openapi-ui image-openapi-ui-k8s-bff image-token-proxy
|
||||
image: image-openapi-ui image-openapi-ui-k8s-bff image-token-proxy update-tenant-text
|
||||
|
||||
|
||||
update-dockerfiles:
|
||||
@@ -65,3 +65,6 @@ image-token-proxy:
|
||||
IMAGE="$(REGISTRY)/token-proxy:$(call settag,$(TAG))@$$(yq e '."containerimage.digest"' images/token-proxy.json -r)" \
|
||||
yq -i '.tokenProxy.image = strenv(IMAGE)' values.yaml
|
||||
rm -f images/token-proxy.json
|
||||
|
||||
update-tenant-text:
|
||||
yq -i '.data.TENANT_TEXT = "$(TAG)"' ./templates/configmap.yaml
|
||||
|
||||
14
packages/system/dashboard/templates/configmap.yaml
Normal file
14
packages/system/dashboard/templates/configmap.yaml
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
||||
openapiUI:
|
||||
image: ghcr.io/cozystack/cozystack/openapi-ui:latest@sha256:a8cd0ce7ba55a59df39c23d930bc3bf5b6bb390a24dce157d36c3828e9052365
|
||||
image: ghcr.io/cozystack/cozystack/openapi-ui:latest@sha256:db5cc174e221fe74df7379cbed2b7ab8f6cb17760168790307649ff63ef37b12
|
||||
openapiUIK8sBff:
|
||||
image: ghcr.io/cozystack/cozystack/openapi-ui-k8s-bff:latest@sha256:9647ec88955e4749079e4f10c3a941dc57bd74bda67094d2ea0d45943d04a8e7
|
||||
image: ghcr.io/cozystack/cozystack/openapi-ui-k8s-bff:latest@sha256:4ed5debc85d64c7fc09f719e1efb1a2e1515219a355728c0ae574d4989485850
|
||||
tokenProxy:
|
||||
image: ghcr.io/cozystack/cozystack/token-proxy:latest@sha256:fad27112617bb17816702571e1f39d0ac3fe5283468d25eb12f79906cdab566b
|
||||
|
||||
Reference in New Issue
Block a user