Skip to content

Commit

Permalink
feat: AI Navigator cluster info app changes (#1706)
Browse files Browse the repository at this point in the history
* feat: Helm charts for api and agent

* feat: Add alpine image to mapping file

---------

Co-authored-by: Aditya Jariwala <[email protected]>
  • Loading branch information
lukeogg and adityajariwala authored Nov 6, 2023
1 parent decd816 commit 77116a6
Show file tree
Hide file tree
Showing 16 changed files with 337 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .github/service-labeler.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
services/ai-navigator-app:
- services/ai-navigator-app/**
services/ai-navigator-cluster-info-agent:
- services/ai-navigator-cluster-info-agent/**
services/centralized-grafana:
- services/centralized-grafana/**
services/centralized-kubecost:
Expand Down
20 changes: 20 additions & 0 deletions common/helm-repositories/mesosphere-repos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,23 @@ spec:
interval: 10m
timeout: 1m
url: "${helmMirrorURL:=https://mesosphere.github.io/dkp-insights-charts-attached}"
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: HelmRepository
metadata:
name: mesosphere.github.io-ai-navigator-cluster-info-api-charts
namespace: kommander-flux
spec:
interval: 10m
timeout: 1m
url: "${helmMirrorURL:=https://mesosphere.github.io/ai-navigator-cluster-info-api}"
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: HelmRepository
metadata:
name: mesosphere.github.io-ai-navigator-cluster-info-agent-charts
namespace: kommander-flux
spec:
interval: 10m
timeout: 1m
url: "${helmMirrorURL:=https://mesosphere.github.io/ai-navigator-cluster-info-agent}"
19 changes: 19 additions & 0 deletions licenses.d2iq.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ ignore:
- docker.io/bitnami/external-dns:0.13.6-debian-11-r11
- docker.io/bitnami/postgresql:11.16.0-debian-11-r9
- docker.io/bitnami/postgresql:15.2.0-debian-11-r21
- docker.io/bitnami/redis-cluster:7.0.12-debian-11-r2
- docker.io/bitnami/memcached:1.6.15-debian-11-r8
- docker.io/library/busybox:1
- gcr.io/kubecost1/cost-model:prod-1.106.2
Expand Down Expand Up @@ -610,3 +611,21 @@ resources:
notice_path: NOTICE
ref: ${image_tag}
url: https://github.com/kubernetes-sigs/prometheus-adapter
- container_image: docker.io/mesosphere/ai-navigator-cluster-info-agent:v0.1.0
sources:
- ref: ${image_tag}
url: https://github.com/mesosphere/ai-navigator-cluster-info-agent
- container_image: docker.io/mesosphere/ai-navigator-cluster-info-api:v0.1.0
sources:
- ref: ${image_tag}
url: https://github.com/mesosphere/ai-navigator-cluster-info-api
- container_image: docker.io/semitechnologies/weaviate:1.21.4
sources:
- license_path: LICENSE
ref: v${image_tag}
url: https://github.com/weaviate/weaviate
- container_image: docker.io/library/alpine:3.18.4
sources:
- license_path: LICENSE
ref: master
url: https://github.com/alpinelinux/docker-alpine
Empty file.
108 changes: 108 additions & 0 deletions services/ai-navigator-app/0.2.0/defaults/cm.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: ai-navigator-cluster-info-api-0.2.0-d2iq-defaults
namespace: ${releaseNamespace}
data:
values.yaml: |
# api.enabled enables the collector service as a whole - will not install anything if set to false
api:
enabled: true
# Default values for configmap
modelSettings:
model_name: thenlper/gte-large
chunk_size: 2000
chunk_overlap: 250
path: /models
volumeSize: 4Gi
vector_db:
url: http://weaviate
index_name: Cluster_Info
record_manager:
driver_name: "postgresql"
username: "postgres"
port: 5432
database: record-manager
# Default values for subcharts
weaviate:
enabled: true
service:
type: ClusterIP
image:
tag: 1.21.4
initContainers:
sysctlInitContainer:
image:
tag: 3.18.4
securityContext:
runAsUser: 65532
fsGroup: 65532
runAsGroup: 65532
postgresql:
enabled: true
image:
tag: 15.2.0-debian-11-r21
# Default values for cluster-info-api
replicaCount: 1
image:
repository: mesosphere/ai-navigator-cluster-info-api
pullPolicy: Always
# Overrides the image tag whose default is the chart appVersion.
tag: "v0.1.0"
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
podAnnotations: {}
securityContext:
capabilities:
drop:
- ALL
readOnlyRootFilesystem: false
allowPrivilegeEscalation: false
runAsNonRoot: true
runAsUser: 1000
service:
type: ClusterIP
port: 8080
resources:
limits:
cpu: 4000m
memory: 4Gi
requests:
cpu: 1000m
memory: 1Gi
initContainerResources:
limits:
cpu: 500m
memory: 4Gi
requests:
cpu: 100m
memory: 1Gi
nodeSelector: {}
tolerations: []
affinity: {}
20 changes: 20 additions & 0 deletions services/ai-navigator-app/0.2.0/helmrelease.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
name: ai-navigator-cluster-info-api-helmrelease
namespace: ${releaseNamespace}
spec:
force: false
interval: 6h
path: ./services/ai-navigator-app/0.2.0/helmrelease
postBuild:
substitute:
releaseNamespace: ${releaseNamespace}
prune: true
retryInterval: 1m
sourceRef:
kind: GitRepository
name: management
namespace: kommander-flux
timeout: 1m
wait: true
26 changes: 26 additions & 0 deletions services/ai-navigator-app/0.2.0/helmrelease/helmrelease.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: ai-navigator-cluster-info-api
namespace: ${releaseNamespace}
spec:
chart:
spec:
chart: ai-navigator-cluster-info-api
sourceRef:
kind: HelmRepository
name: mesosphere.github.io-ai-navigator-cluster-info-api-charts
namespace: kommander-flux
version: 0.1.0
install:
remediation:
retries: 30
interval: 15s
releaseName: ai-navigator-cluster-info-api
targetNamespace: ${releaseNamespace}
upgrade:
remediation:
retries: 30
valuesFrom:
- kind: ConfigMap
name: ai-navigator-cluster-info-api-0.2.0-d2iq-defaults
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ai-navigator-app.yaml
- helmrelease.yaml
61 changes: 61 additions & 0 deletions services/ai-navigator-cluster-info-agent/0.1.0/defaults/cm.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: ai-navigator-cluster-info-agent-0.1.0-d2iq-defaults
namespace: ${releaseNamespace}
data:
values.yaml: |
# Default values for configmap
collector:
url: http://ai-navigator-cluster-info-api.kommander.svc/api/v1/documents/collect/
watchNamespaces: {}
watchGlobalResources: true
# Default values for cluster-info-agent
replicaCount: 1
image:
repository: mesosphere/ai-navigator-cluster-info-agent
pullPolicy: Always
# Overrides the image tag whose default is the chart appVersion.
tag: "v0.1.0"
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
podAnnotations: {}
securityContext:
capabilities:
drop:
- ALL
readOnlyRootFilesystem: false
allowPrivilegeEscalation: false
runAsNonRoot: true
runAsUser: 1000
resources:
limits:
cpu: 4000m
memory: 4Gi
requests:
cpu: 1000m
memory: 250Mi
nodeSelector: {}
tolerations: []
affinity: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- cm.yaml
20 changes: 20 additions & 0 deletions services/ai-navigator-cluster-info-agent/0.1.0/helmrelease.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
name: ai-navigator-cluster-info-agent-helmrelease
namespace: ${releaseNamespace}
spec:
force: false
interval: 6h
path: ./services/ai-navigator-cluster-info-agent/0.1.0/helmrelease
postBuild:
substitute:
releaseNamespace: ${releaseNamespace}
prune: true
retryInterval: 1m
sourceRef:
kind: GitRepository
name: management
namespace: kommander-flux
timeout: 5m
wait: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: ai-navigator-cluster-info-agent
namespace: ${releaseNamespace}
spec:
chart:
spec:
chart: ai-navigator-cluster-info-agent
sourceRef:
kind: HelmRepository
name: mesosphere.github.io-ai-navigator-cluster-info-agent-charts
namespace: kommander-flux
version: 0.1.0
install:
remediation:
retries: 30
interval: 15s
releaseName: ai-navigator-cluster-info-agent
targetNamespace: ${releaseNamespace}
upgrade:
remediation:
retries: 30
valuesFrom:
- kind: ConfigMap
name: ai-navigator-cluster-info-agent-0.1.0-d2iq-defaults
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- helmrelease.yaml
25 changes: 25 additions & 0 deletions services/ai-navigator-cluster-info-agent/metadata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
displayName: DKP AI Navigator Cluster Info Agent
description: The AI Navigator Cluster Info Agent collects information about the DKP cluster and sends it to the AI Navigator service.
category:
- tools
type: platform
allowMultipleInstances: false
scope:
- workspace
overview: |-
# Overview
The AI Navigator Cluster Info Agent collects information about the DKP cluster and sends it to the AI Navigator service.
## Key Features
### Intuitive Query Processing
The AI Navigator Cluster Info Agent uses natural language processing to understand user queries and provide relevant answers.
### Real-time Troubleshooting Assistance
The AI Navigator Cluster Info Agent provides real-time troubleshooting assistance by analyzing the cluster state and providing cluster specific commands.
### 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==

0 comments on commit 77116a6

Please sign in to comment.