[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:
Andrei Kvapil
2025-09-24 22:46:22 +02:00
parent bb653e5a87
commit 9873011ebf
90 changed files with 4878 additions and 6031 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -1,3 +0,0 @@
apiVersion: v2
version: 1.0.0
name: cozy-dashboard-config

View File

@@ -1,5 +0,0 @@
NAME := dashboard-config
NAMESPACE := cozy-dashboard
include ../../../scripts/common-envs.mk
include ../../../scripts/package.mk

View File

@@ -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}"

View File

@@ -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}"

View File

@@ -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}"

View File

@@ -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}"

View File

@@ -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}"

View File

@@ -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}"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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: '-'

View File

@@ -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: "-"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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 -}}

View File

@@ -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 -}}

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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: "-"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 -}}

View File

@@ -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 -}}

View File

@@ -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 -}}

View File

@@ -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 -}}

View File

@@ -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 -}}

View File

@@ -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 -}}

View File

@@ -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 -}}

View File

@@ -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 -}}

View File

@@ -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 -}}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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~"

View File

@@ -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~"

View File

@@ -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~"

View File

@@ -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~"

View File

@@ -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~"

View File

@@ -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~"

View File

@@ -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~"

View File

@@ -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 }}

View File

@@ -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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -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