Skip to content

Commit

Permalink
feat: add dial chart (#2)
Browse files Browse the repository at this point in the history
  • Loading branch information
nepalevov authored Nov 22, 2023
1 parent 0d34b7b commit a3506a2
Show file tree
Hide file tree
Showing 12 changed files with 454 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
- name: Add dependency chart repos
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
# helm repo add dial https://charts.epam-rail.com
helm repo add dial https://charts.epam-rail.com
- name: Run chart-releaser
uses: helm/chart-releaser-action@a917fd15b20e8b64b94d9158ad54cd6345335584 # v1.6.0
Expand Down
27 changes: 27 additions & 0 deletions charts/dial/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
# other
*.lock
OWNERS
README.md.gotmpl
ci/
68 changes: 68 additions & 0 deletions charts/dial/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
annotations:
category: MachineLearning
licenses: Apache-2.0
apiVersion: v2
appVersion: "1.0"
dependencies:
- name: common
repository: https://charts.bitnami.com/bitnami
tags:
- bitnami-common
version: 2.2.4
- name: keycloak
repository: https://charts.bitnami.com/bitnami
condition: keycloak.enabled
version: 16.0.5
- name: dial-extension
repository: https://charts.epam-rail.com
alias: authhelper
condition: authhelper.enabled
version: 1.0.0
- name: dial-core
repository: https://charts.epam-rail.com
alias: core
condition: core.enabled
version: 1.0.0
- name: dial-extension
repository: https://charts.epam-rail.com
alias: chat
condition: chat.enabled
version: 1.0.0
- name: dial-extension
repository: https://charts.epam-rail.com
alias: themes
condition: themes.enabled
version: 1.0.0
- name: dial-extension
repository: https://charts.epam-rail.com
alias: openai
condition: openai.enabled
version: 1.0.0
- name: dial-extension
repository: https://charts.epam-rail.com
alias: bedrock
condition: bedrock.enabled
version: 1.0.0
- name: dial-extension
repository: https://charts.epam-rail.com
alias: vertexai
condition: vertexai.enabled
version: 1.0.0
- name: dial-extension
repository: https://charts.epam-rail.com
alias: assistant
condition: assistant.enabled
version: 1.0.0
description: Umbrella chart for DIAL solution
home: https://epam-rail.com
icon: "https://docs.epam-rail.com/img/favicon.ico"
keywords:
- ai-dial
kubeVersion: ">=1.23.0-0"
maintainers:
- name: EPAM Systems
url: https://github.com/epam
name: dial
sources:
- https://github.com/epam/ai-dial-helm/tree/main/charts/dial
version: 1.0.0
131 changes: 131 additions & 0 deletions charts/dial/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
# dial

![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![AppVersion: 1.0](https://img.shields.io/badge/AppVersion-1.0-informational?style=flat-square)

Umbrella chart for DIAL solution

## TL;DR

```console
helm repo add dial https://charts.epam-rail.com
helm install --name my-release dial/dial
```

## Prerequisites

- Helm 3.8.0+
- PV provisioner support in the underlying infrastructure (optional)
- Ingress controller support in the underlying infrastructure (optional)

## Requirements

Kubernetes: `>=1.23.0-0`

| Repository | Name | Version |
|------------|------|---------|
| https://charts.bitnami.com/bitnami | common | 2.2.4 |
| https://charts.bitnami.com/bitnami | keycloak | 16.0.5 |
| https://charts.epam-rail.com | core(dial-core) | 1.0.0 |
| https://charts.epam-rail.com | authhelper(dial-extension) | 1.0.0 |
| https://charts.epam-rail.com | chat(dial-extension) | 1.0.0 |
| https://charts.epam-rail.com | themes(dial-extension) | 1.0.0 |
| https://charts.epam-rail.com | openai(dial-extension) | 1.0.0 |
| https://charts.epam-rail.com | bedrock(dial-extension) | 1.0.0 |
| https://charts.epam-rail.com | vertexai(dial-extension) | 1.0.0 |
| https://charts.epam-rail.com | assistant(dial-extension) | 1.0.0 |

## Installing the Chart

To install the chart with the release name `my-release`:

```console
helm repo add dial https://charts.epam-rail.com
helm install --name my-release dial/dial
```

The command deploys dial on the Kubernetes cluster in the default configuration. The [Parameters](#parameters) section lists the parameters that can be configured during installation.

## Uninstalling the Chart

To uninstall/delete the `my-release` deployment:

```console
helm delete my-release
```

The command removes all the Kubernetes components associated with the chart and deletes the release.

**NOTE**: Persistent Volumes created by StatefulSets won't be deleted automatically

## Parameters

Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example:

```console
helm install my-release dial/dial --set chat.image.tag=latest
```

Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example:

```yaml
# values.yaml file content
chat:
image:
tag: latest
```
```console
helm install my-release dial/dial -f values.yaml
```

**NOTE**: You can use the default [values.yaml](values.yaml)

## Values

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| assistant.commonLabels."app.kubernetes.io/component" | string | `"application"` | |
| assistant.enabled | bool | `false` | Enable/disable ai-dial-assistant |
| assistant.image.repository | string | `"epam/ai-dial-assistant"` | |
| assistant.image.tag | string | `"0.1.0"` | |
| authhelper.commonLabels."app.kubernetes.io/component" | string | `"authentication"` | |
| authhelper.containerPorts.http | int | `4088` | |
| authhelper.enabled | bool | `false` | Enable/disable ai-dial-auth-helper. Set `keycloak.enabled: true` before enabling this. |
| authhelper.image.repository | string | `"epam/ai-dial-auth-helper"` | |
| authhelper.image.tag | string | `"0.1.1"` | |
| bedrock.commonLabels."app.kubernetes.io/component" | string | `"adapter"` | |
| bedrock.enabled | bool | `false` | Enable/disable ai-dial-adapter-bedrock |
| bedrock.image.repository | string | `"epam/ai-dial-adapter-bedrock"` | |
| bedrock.image.tag | string | `"0.2.0"` | |
| bedrock.secrets | object | `{}` | |
| chat.commonLabels."app.kubernetes.io/component" | string | `"application"` | |
| chat.containerPorts.http | int | `3000` | |
| chat.enabled | bool | `true` | Enable/disable ai-dial-chat |
| chat.image.repository | string | `"epam/ai-dial-chat"` | |
| chat.image.tag | string | `"0.1.9"` | |
| core.enabled | bool | `true` | Enable/disable ai-dial-core |
| core.image.tag | string | `"0.2.1"` | |
| extraDeploy | list | `[]` | |
| keycloak.enabled | bool | `false` | Enable/disable keycloak |
| keycloak.extraEnvVars[0].name | string | `"KC_FEATURES"` | |
| keycloak.extraEnvVars[0].value | string | `"token-exchange,admin-fine-grained-authz,declarative-user-profile"` | |
| keycloak.keycloakConfigCli.enabled | bool | `true` | |
| keycloak.keycloakConfigCli.extraEnvVars[0].name | string | `"IMPORT_VARSUBSTITUTION_ENABLED"` | |
| keycloak.keycloakConfigCli.extraEnvVars[0].value | string | `"true"` | |
| keycloak.postgresql.enabled | bool | `true` | |
| keycloak.proxy | string | `"edge"` | |
| openai.commonLabels."app.kubernetes.io/component" | string | `"adapter"` | |
| openai.enabled | bool | `false` | Enable/disable ai-dial-adapter-openai |
| openai.image.repository | string | `"epam/ai-dial-adapter-openai"` | |
| openai.image.tag | string | `"0.1.1"` | |
| themes.commonLabels."app.kubernetes.io/component" | string | `"webserver"` | |
| themes.containerPorts.http | int | `8080` | |
| themes.containerSecurityContext.runAsUser | int | `101` | |
| themes.enabled | bool | `true` | Enable/disable ai-dial-chat-themes |
| themes.image.repository | string | `"epam/ai-dial-chat-themes"` | |
| themes.image.tag | string | `"0.1.1"` | |
| themes.podSecurityContext.fsGroup | int | `101` | |
| vertexai.commonLabels."app.kubernetes.io/component" | string | `"adapter"` | |
| vertexai.enabled | bool | `false` | Enable/disable ai-dial-adapter-vertexai |
| vertexai.image.repository | string | `"epam/ai-dial-adapter-vertexai"` | |
| vertexai.image.tag | string | `"0.2.0"` | |
70 changes: 70 additions & 0 deletions charts/dial/README.md.gotmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{{ template "chart.header" . }}

{{ template "chart.deprecationWarning" . }}

{{ template "chart.badgesSection" . }}

{{ template "chart.description" . }}

## TL;DR

```console
helm repo add dial https://charts.epam-rail.com
helm install --name my-release dial/dial
```

## Prerequisites

- Helm 3.8.0+
- PV provisioner support in the underlying infrastructure (optional)
- Ingress controller support in the underlying infrastructure (optional)

{{ template "chart.requirementsSection" . }}

## Installing the Chart

To install the chart with the release name `my-release`:

```console
helm repo add dial https://charts.epam-rail.com
helm install --name my-release dial/dial
```

The command deploys dial on the Kubernetes cluster in the default configuration. The [Parameters](#parameters) section lists the parameters that can be configured during installation.

## Uninstalling the Chart

To uninstall/delete the `my-release` deployment:

```console
helm delete my-release
```

The command removes all the Kubernetes components associated with the chart and deletes the release.

**NOTE**: Persistent Volumes created by StatefulSets won't be deleted automatically

## Parameters

Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example:

```console
helm install my-release dial/dial --set chat.image.tag=latest
```

Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example:

```yaml
# values.yaml file content
chat:
image:
tag: latest
```

```console
helm install my-release dial/dial -f values.yaml
```

**NOTE**: You can use the default [values.yaml](values.yaml)

{{ template "chart.valuesSection" . }}
Empty file added charts/dial/ci/.gitkeep
Empty file.
Empty file added charts/dial/examples/.gitkeep
Empty file.
7 changes: 7 additions & 0 deletions charts/dial/templates/NOTES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
CHART NAME: {{ .Chart.Name }}
CHART VERSION: {{ .Chart.Version }}
APP VERSION: {{ .Chart.AppVersion }}

** Please be patient while the chart is being deployed **

{{- include "dial.validateValues" . }}
14 changes: 14 additions & 0 deletions charts/dial/templates/_helpers.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{{/*
Compile all warnings into a single message.
{{- $messages := append $messages (include "dial.validateValues.foo" .) -}}
{{- $messages := append $messages (include "dial.validateValues.bar" .) -}}
*/}}
{{- define "dial.validateValues" -}}
{{- $messages := list -}}
{{- $messages := without $messages "" -}}
{{- $message := join "\n" $messages -}}

{{- if $message -}}
{{- printf "\nVALUES VALIDATION:\n%s" $message -}}
{{- end -}}
{{- end -}}
4 changes: 4 additions & 0 deletions charts/dial/templates/extra-list.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{{- range .Values.extraDeploy }}
---
{{ include "common.tplvalues.render" (dict "value" . "context" $) }}
{{- end }}
Loading

0 comments on commit a3506a2

Please sign in to comment.