diff --git a/src/schemas/grafanaCredential/schema.tsx b/src/schemas/grafanaCredential/schema.tsx new file mode 100644 index 000000000..8607fbcf4 --- /dev/null +++ b/src/schemas/grafanaCredential/schema.tsx @@ -0,0 +1,35 @@ +/** + * Schema for creating grafana credential; + */ +const grafanaCredentialSchema = { + type: 'object', + title: 'Grafana', + properties: { + credentialName: { + title: 'Credential Name', + type: 'string', + description: 'Name of your credential' + }, + secret: { + type: 'object', + title: 'Credential Secret', + description: 'Credential secret for the Grafana instance', + properties: { + grafanaURL: { + type: 'string', + title: 'URL', + description: 'URL of the Grafana instance' + }, + grafanaAPIKey: { + type: 'string', + title: 'API Key', + description: 'API Key for the Grafana instance' + } + }, + required: ['grafanaURL', 'grafanaAPIKey'] + } + }, + required: ['credentialName'] +}; + +export default grafanaCredentialSchema; diff --git a/src/schemas/grafanaCredential/uiSchema.tsx b/src/schemas/grafanaCredential/uiSchema.tsx new file mode 100644 index 000000000..85f8c332a --- /dev/null +++ b/src/schemas/grafanaCredential/uiSchema.tsx @@ -0,0 +1,3 @@ +const grafanaCredentialUiSchema = {}; + +export default grafanaCredentialUiSchema; diff --git a/src/schemas/index.tsx b/src/schemas/index.tsx index 7e446a796..10ba0bb94 100644 --- a/src/schemas/index.tsx +++ b/src/schemas/index.tsx @@ -19,11 +19,22 @@ import importFilterUiSchema from './importFilter/uiSchema'; import publishCatalogItemSchema from './publishCatalogItem/schema'; import publishCatalogItemUiSchema from './publishCatalogItem/uiSchema'; +import kubernetesCredentialSchema from './kubernetesCredential/schema'; +import kubernetesCredentialUiSchema from './kubernetesCredential/uiSchema'; + +import prometheusCredentialSchema from './prometheusCredential/schema'; +import prometheusCredentialUiSchema from './prometheusCredential/uiSchema'; + +import grafanaCredentialSchema from './grafanaCredential/schema'; +import grafanaCredentialSUiSchema from './grafanaCredential/uiSchema'; + export { createAndEditEnvironmentSchema, createAndEditEnvironmentUiSchema, createAndEditWorkspaceSchema, createAndEditWorkspaceUiSchema, + grafanaCredentialSUiSchema, + grafanaCredentialSchema, helmConnectionSchema, helmConnectionUiSchema, helpAndSupportModalSchema, @@ -32,6 +43,10 @@ export { importDesignUiSchema, importFilterSchema, importFilterUiSchema, + kubernetesCredentialSchema, + kubernetesCredentialUiSchema, + prometheusCredentialSchema, + prometheusCredentialUiSchema, publishCatalogItemSchema, publishCatalogItemUiSchema }; diff --git a/src/schemas/kubernetesCredential/schema.tsx b/src/schemas/kubernetesCredential/schema.tsx new file mode 100644 index 000000000..b11f10ee8 --- /dev/null +++ b/src/schemas/kubernetesCredential/schema.tsx @@ -0,0 +1,74 @@ +/** + * Schema for creating grafana credential; + */ +const kubernetesCredentialSchema = { + type: 'object', + title: 'Kubernetes', + properties: { + credentialName: { + title: 'Credential Name', + type: 'string', + description: 'Name of your credential' + }, + secret: { + type: 'object', + title: 'Credential Secret', + description: 'Credential secret for the Kubernetes cluster', + properties: { + clusterName: { + type: 'string', + title: 'Cluster Name', + description: 'Name of the Kubernetes cluster' + }, + clusterServerURL: { + type: 'string', + title: 'Server URL', + description: 'URL of the Kubernetes cluster' + }, + auth: { + type: 'object', + title: 'Auth', + description: 'Kubernetes cluster authentication', + properties: { + clusterUserName: { + type: 'string', + title: 'User Name', + description: 'Name of the Kubernetes cluster user' + }, + clusterToken: { + type: 'string', + title: 'Token', + description: 'Token of the Kubernetes cluster user' + }, + clusterClientCertificateData: { + type: 'string', + title: 'Client Certificate Data', + description: 'Certificate data of the Kubernetes cluster' + }, + clusterClientKeyData: { + type: 'string', + title: 'Client Key Data', + description: 'Client Key data of the Kubernetes cluster' + }, + clusterCertificateAuthorityData: { + type: 'string', + title: 'Certificate Authority Data', + description: 'Certificate Authority data of the Kubernetes cluster' + } + }, + required: [ + 'clusterUserName', + 'clusterToken', + 'clusterClientCertificateData', + 'clusterClientKeyData', + 'clusterCertificateAuthorityData' + ] + } + }, + required: ['clusterName', 'clusterServerURL'] + } + }, + required: ['credentialName'] +}; + +export default kubernetesCredentialSchema; diff --git a/src/schemas/kubernetesCredential/uiSchema.tsx b/src/schemas/kubernetesCredential/uiSchema.tsx new file mode 100644 index 000000000..64ad52f6e --- /dev/null +++ b/src/schemas/kubernetesCredential/uiSchema.tsx @@ -0,0 +1,3 @@ +const kubernetesCredentialUiSchema = {}; + +export default kubernetesCredentialUiSchema; diff --git a/src/schemas/prometheusCredential/schema.tsx b/src/schemas/prometheusCredential/schema.tsx new file mode 100644 index 000000000..f1ecf146d --- /dev/null +++ b/src/schemas/prometheusCredential/schema.tsx @@ -0,0 +1,30 @@ +/** + * Schema for creating prometheus credential; + */ +const prometheusCredentialSchema = { + type: 'object', + title: 'Prometheus', + properties: { + credentialName: { + title: 'Credential Name', + type: 'string', + description: 'Name of your credential' + }, + secret: { + type: 'object', + title: 'Credential Secret', + description: 'Credential secret for the Prometheus instance', + properties: { + prometheusURL: { + type: 'string', + title: 'URL', + description: 'URL of the Prometheus instance' + } + }, + required: ['prometheusURL'] + } + }, + required: ['credentialName'] +}; + +export default prometheusCredentialSchema; diff --git a/src/schemas/prometheusCredential/uiSchema.tsx b/src/schemas/prometheusCredential/uiSchema.tsx new file mode 100644 index 000000000..0c5266b84 --- /dev/null +++ b/src/schemas/prometheusCredential/uiSchema.tsx @@ -0,0 +1,3 @@ +const prometheusCredentialUiSchema = {}; + +export default prometheusCredentialUiSchema;