diff --git a/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml new file mode 100644 index 000000000..46dcc2b79 --- /dev/null +++ b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml @@ -0,0 +1,106 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: ai-navigator-app + namespace: ${releaseNamespace} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: ai-navigator-app + namespace: ${releaseNamespace} +rules: + - apiGroups: ["kommander.mesosphere.io"] + resources: ["licenses"] + verbs: ["get", "list"] + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: ai-navigator-app + namespace: ${releaseNamespace} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: ai-navigator-app +subjects: + - kind: ServiceAccount + name: ai-navigator-app + namespace: ${releaseNamespace} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: ai-navigator-app-config + namespace: ${releaseNamespace} +data: + CHATBOT_URL: "https://chatbot.api.d2iq.com/v1/chat" + AUTHORIZER_URL: "https://auth.api.d2iq.com" + LICENSE_NAMESPACE: ${releaseNamespace} +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: ai-navigator-app + namespace: ${releaseNamespace} + labels: + app: ai-navigator-app +spec: + replicas: 1 + selector: + matchLabels: + app: ai-navigator-app + template: + metadata: + labels: + app: ai-navigator-app + spec: + serviceAccountName: ai-navigator-app + containers: + - name: ai-navigator-app + image: mesosphere/ai-navigator-app:v0.0.3 + envFrom: + - configMapRef: + name: ai-navigator-app-config + ports: + - containerPort: 8080 + name: http + readinessProbe: + httpGet: + path: /healthz + port: 8080 + scheme: HTTP + livenessProbe: + httpGet: + path: /healthz + port: 8080 + scheme: HTTP + initialDelaySeconds: 60 + timeoutSeconds: 30 + failureThreshold: 10 + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault +--- +apiVersion: v1 +kind: Service +metadata: + name: ai-navigator-app + namespace: ${releaseNamespace} +spec: + selector: + app: ai-navigator-app + ports: + - name: service-port + protocol: TCP + port: 80 + targetPort: http diff --git a/services/ai-navigator-app/0.1.0/kustomization.yaml b/services/ai-navigator-app/0.1.0/kustomization.yaml index 4ea1bccaa..9ed57849c 100644 --- a/services/ai-navigator-app/0.1.0/kustomization.yaml +++ b/services/ai-navigator-app/0.1.0/kustomization.yaml @@ -1,2 +1,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization +resources: + - ai-navigator-app.yaml diff --git a/services/ai-navigator-app/metadata.yaml b/services/ai-navigator-app/metadata.yaml index decc4e72e..d23b5310a 100644 --- a/services/ai-navigator-app/metadata.yaml +++ b/services/ai-navigator-app/metadata.yaml @@ -1,8 +1,25 @@ displayName: DKP AI Navigator -description: DKP AI Navigator is D2iQ’s cool chatbot tool +description: The AI Navigator is a state-of-the-art chatbot powered by advanced artificial intelligence, purpose-built for seamless Kubernetes cluster management and DKP environment optimization. category: - tools type: platform allowMultipleInstances: false scope: - workspace +overview: |- + # Overview + The AI Navigator is a state-of-the-art chatbot powered by advanced artificial intelligence, purpose-built for seamless Kubernetes cluster management and DKP environment optimization. Designed with the intricacies of DKP in mind, it offers personalized insights, troubleshooting assistance, and real-time answers to the most pressing user queries. Leveraging its deep knowledge base and tailored response mechanism, the AI Navigator minimizes the knowledge gap, enabling users to focus more on achieving their business goals rather than being bogged down by technical configurations. + + ## Key Features + ### Intuitive Query Processing + Empowered by Natural Language Processing (NLP), the AI Navigator interprets user queries, even if they’re not phrased technically, making it a go-to tool for both novices and experts. + + ### Real-time Troubleshooting Assistance + With its vast database of common DKP issues and solutions, the AI Navigator can provide instant solutions, dramatically reducing downtime and enhancing productivity. + + ### Seamless DKP Integration + Being native to the DKP platform, the AI Navigator ensures users get the most out of their DKP environments by offering insights, best practices, and performance optimization tips. + + ### Privacy First Approach + Data privacy and security remain paramount, ensuring user trust and compliance. +icon: PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4IiBmaWxsPSIjMzMwMDcyIi8+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMzkzXzEyMzUpIj4KPHBhdGggb3BhY2l0eT0iMC40IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIzLjg3NTEgMTAuMTcxN0MyMC42ODAxIDEwLjE3MTcgMTcuNDkyNSAxMS4yNjExIDE0Ljg5NjYgMTMuNDM5M0MxMy4zMzQyIDE0Ljc1MDMgMTIuMTI2NyAxNi4zNDU1IDExLjI4ODEgMTguMDkyM0MxMS4xNzE3IDE4LjA4MTIgMTEuMDU4NCAxOC4wNTYgMTAuOTM4OSAxOC4wNTZDOC44NTIxMSAxOC4wNTYgNy4xNzE4OCAxOS43MzYxIDcuMTcxODggMjEuODIyOVYyNi40Nzg2QzcuMTcxODggMjguNTY1NCA4Ljg1MjExIDMwLjI0NTUgMTAuOTM4OSAzMC4yNDU1QzExLjA1ODQgMzAuMjQ1NSAxMS4xNzE3IDMwLjIxOTYgMTEuMjg4MSAzMC4yMDkzQzExLjQzODIgMzAuNTIwNSAxMS41OTM2IDMwLjgyOTQgMTEuNzY4NyAzMS4xMzI5QzEyLjQ1MzEgMzIuMzU0NSAxNC4yODE4IDMxLjMwODYgMTMuNTc1NiAzMC4wOTkyQzEwLjY4NDQgMjUuMDkxMyAxMS44MDQxIDE4Ljc0NTUgMTYuMjMzNyAxNS4wMjg2QzIwLjY2MzQgMTEuMzExNyAyNy4wOTc1IDExLjMxMTcgMzEuNTI3MSAxNS4wMjg2QzM1Ljk1NjggMTguNzQ1NSAzNy4wNzY1IDI1LjA5MTMgMzQuMTg1MiAzMC4wOTkyTDM0LjE1NDEgMzAuMTUxTDM0LjEzMzIgMzAuMjAyOUMzNC4xMzMyIDMwLjIwMjkgMzIuNzI5IDMzLjMwOTQgMjkuOTcxNiAzMy4zMDk0TDI2LjQ4MTIgMzMuMjc4MkMyNi4xNTM5IDMyLjgwMDEgMjUuNjMgMzIuNDY3MyAyNS4wMDQ1IDMyLjQ2NzNIMjIuNzU0NUMyMS43NDU3IDMyLjQ2NzMgMjAuOTM0MSAzMy4yODE1IDIwLjkzNDEgMzQuMjkwNEMyMC45MzQxIDM0LjkxMjYgMjEuMzI4OSAzNS4zODUyIDIyLjIzMjUgMzUuMzg1MkwyOS45NzE2IDM1LjM4NThDMzQuMTA5NCAzNS4zODU4IDM1Ljg5OTEgMzEuMzIzNSAzNS45ODA1IDMxLjEzNTVWMzEuMTI0NEMzNi4xNTQxIDMwLjgyMzYgMzYuMzA2OCAzMC41MTQ3IDM2LjQ1NTkgMzAuMjA2M0MzNi41Nzc1IDMwLjIxNzMgMzYuNjk1OSAzMC4yNDI2IDM2LjgyMTIgMzAuMjQyNkMzOC45MDc5IDMwLjI0MjYgNDAuNTg4MiAyOC41NjI0IDQwLjU4ODIgMjYuNDc1NlYyMS44MTk5QzQwLjU4ODIgMTkuNzMzMiAzOC45MDc5IDE4LjA1MyAzNi44MjEyIDE4LjA1M0MzNi43MDA2IDE4LjA1MyAzNi41ODY5IDE4LjA3MjkgMzYuNDY5NCAxOC4wODkzQzM1LjYzMjcgMTYuMzQyNCAzNC40Mjg4IDE0Ljc0NzQgMzIuODY2MiAxMy40MzYzQzMwLjI3MDQgMTEuMjU4MSAyNy4wNjk1IDEwLjE2ODcgMjMuODc0NCAxMC4xNjg3TDIzLjg3NTEgMTAuMTcxN1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xNy4xMzU5IDE3LjU5MDVDMTcuNzgzMSAxNi45MDkgMTguNTIzOSAxNi43Mzc1IDE5LjMzNDggMTYuNzkwNEMyMC42ODYzIDE2Ljg3OTIgMjIuMjM0MyAxNy41OTA1IDIzLjg4MDQgMTcuNTkwNUMyNi41MTQzIDE3LjU5MDUgMjguODk5IDE1Ljc3MzMgMzAuNjI1IDE3LjU5MDVDMzIuMzUxMSAxOS40MDc3IDMzLjQyIDIxLjg4MTEgMzMuNDIgMjQuNTE1QzMzLjQyIDI2LjUwMjggMzIuODExOCAyOC45ODk1IDMxLjc3MTUgMjkuMTczM0MzMC4wNTQ5IDI5LjQ3NzQgMjcuMTYwNSAyOC4xOTM0IDIzLjg4MDQgMjguMTkzNEMyMC43ODUyIDI4LjE5MzQgMTguMDM1NCAyOS4zMzc3IDE2LjI5MjggMjkuMjEwOUMxNS4wNjk2IDI5LjEyMjEgMTQuMzQzNSAyNi42ODc3IDE0LjM0MzUgMjQuNTE1QzE0LjM0MzUgMjEuODgxMSAxNS40MDk4IDE5LjQwNzcgMTcuMTM1OSAxNy41OTA1WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTIwLjY5MDkgMjMuMDExNEMyMC42OTA1IDIyLjA0OTEgMTkuOTEwNiAyMS4yNjkyIDE4Ljk0ODMgMjEuMjY4OEMxNy45ODYxIDIxLjI2OTIgMTcuMjA2MSAyMi4wNDkxIDE3LjIwNTggMjMuMDExNEMxNy4yMDYxIDIzLjk3MzYgMTcuOTg2MSAyNC43NTM2IDE4Ljk0ODMgMjQuNzUzOUMxOS45MTA2IDI0Ljc1MzYgMjAuNjkwNSAyMy45NzM2IDIwLjY5MDkgMjMuMDExNFoiIGZpbGw9IiMzMzAwNzIiLz4KPHBhdGggZD0iTTMwLjU1NTQgMjMuMDExNEMzMC41NTUgMjIuMDQ5MSAyOS43NzUxIDIxLjI2OTIgMjguODEyOCAyMS4yNjg4QzI3Ljg1MDYgMjEuMjY5MiAyNy4wNzA2IDIyLjA0OTEgMjcuMDcwMyAyMy4wMTE0QzI3LjA3MDYgMjMuOTczNiAyNy44NTA2IDI0Ljc1MzYgMjguODEyOCAyNC43NTM5QzI5Ljc3NTEgMjQuNzUzNiAzMC41NTUgMjMuOTczNiAzMC41NTU0IDIzLjAxMTRaIiBmaWxsPSIjMzMwMDcyIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMTM5M18xMjM1Ij4KPHJlY3Qgd2lkdGg9IjM0IiBoZWlnaHQ9IjI1Ljc5MzEiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3IDEwLjAwMDcpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==