Skip to content

Commit ebff364

Browse files
authored
release helm chart (#1749)
* chore: release helm chart Signed-off-by: Taylor Price <[email protected]>
1 parent d76d962 commit ebff364

File tree

8 files changed

+98
-64
lines changed

8 files changed

+98
-64
lines changed

.github/workflows/helm.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Helm Chart
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- chart/**
9+
pull_request:
10+
branches:
11+
- main
12+
paths:
13+
- chart/**
14+
15+
jobs:
16+
lint:
17+
runs-on: depot-ubuntu-22.04
18+
19+
steps:
20+
- name: Checkout code
21+
uses: actions/checkout@v4
22+
23+
- name: Set up Helm
24+
uses: azure/setup-helm@v4
25+
26+
- name: Lint Helm chart
27+
run: helm lint chart

.github/workflows/release.yml

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,46 @@ jobs:
5858
- name: Create WinGet Package Update Pull Request
5959
run: |
6060
$url = "${{ github.server_url }}/${{ github.repository }}/releases/download/${{ github.ref_name }}/obot_${{ github.ref_name }}_windows_amd64.zip"
61-
./wingetcreate.exe update --submit --token "${{ secrets.WINGET_GH_TOKEN }}" --urls $url --version "${{ github.ref_name }}" obot-platform.obot
61+
./wingetcreate.exe update --submit --token "${{ secrets.WINGET_GH_TOKEN }}" --urls $url --version "${{ github.ref_name }}" obot-platform.obot
62+
chart-release:
63+
needs: release-tag
64+
runs-on: ubuntu-latest
65+
steps:
66+
- name: Checkout code
67+
uses: actions/checkout@v4
68+
69+
- name: Set up Helm
70+
uses: azure/setup-helm@v4
71+
72+
- name: Package Helm chart
73+
run: helm package chart --destination ./.packaged --version ${{ github.ref_name }} --app-version ${{ github.ref_name }}
74+
75+
- name: Checkout GitHub Pages Repository
76+
uses: actions/checkout@v4
77+
with:
78+
repository: obot-platform/charts
79+
token: ${{ secrets.CHARTS_REPO_TOKEN }}
80+
path: gh-pages
81+
82+
- name: Run helm-docs
83+
uses: losisin/helm-docs-github-action@v1
84+
with:
85+
chart-search-root: './chart'
86+
output-file: '../gh-pages/README.md'
87+
template-files: '../gh-pages/README.md.gotmpl'
88+
89+
- name: Update Helm Repo Index
90+
run: |
91+
cd gh-pages
92+
mkdir -p charts
93+
mv ../.packaged/* charts/
94+
helm repo index . --url https://charts.obot.ai/ --merge index.yaml
95+
96+
- name: Commit and Push Changes
97+
run: |
98+
cd gh-pages
99+
git config user.name "github-actions[bot]"
100+
git config user.email "github-actions[bot]@users.noreply.github.com"
101+
git add --all
102+
git commit -m "Release new Helm chart version ${{ github.ref_name }}" || echo "No changes to commit"
103+
git push

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ kubeconfig
2222
*.test
2323
*.out
2424

25+
# Ignore packed helm chart
26+
.packaged/
27+
2528
# Ignore dependency directories
2629
vendor/
2730

chart/README.md

Lines changed: 0 additions & 58 deletions
This file was deleted.

chart/templates/deployment.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ spec:
2323
{{- end }}
2424
containers:
2525
- name: {{ .Chart.Name }}
26-
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
26+
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
2727
imagePullPolicy: {{ .Values.image.pullPolicy }}
2828
ports:
2929
- name: http

chart/values.yaml

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ replicaCount: 1
44
image:
55
# image.repository -- The name of the docker repository for Obot
66
repository: ghcr.io/obot-platform/obot-enterprise
7-
# image.tag -- The docker tag to pull for obot
8-
tag: latest
7+
# image.tag -- The docker tag to pull for obot. If blank, will default to the chart appVersion
8+
tag: ""
99
# image.pullPolicy -- Kubernetes image pullPolicy to use for Obot
1010
pullPolicy: IfNotPresent
1111

@@ -54,24 +54,42 @@ config:
5454
# config.existingSecret -- The name of an existing secret to use for config instead of creating a new one
5555
existingSecret: ""
5656

57+
# config.awsAccessKeyID -- An AWS access key with permissions for AWS KMS, used for encryption
5758
awsAccessKeyID: ""
59+
# config.awsRegion -- An AWS region, used to access AWS KMS
5860
awsRegion: ""
61+
# config.awsAccessKeyID -- An AWS secret access key with permissions for AWS KMS, used for encryption
5962
awsSecretAccessKey: ""
63+
64+
# config.gcpKMSKeyURI -- The URI of a Google Cloud KMS key, used for encryption
6065
gcpKMSKeyURI: ""
6166

67+
# config.nahThreadiness -- Advanced - sets the number of concurrent threads that can run in the Obot controller
6268
nahThreadiness: "10000"
69+
# config.knowledgeFileWorkers -- Advanced - sets the number of workers for knowledge
6370
knowledgeFileWorkers: "5"
6471

72+
# config.githubAuthToken -- A github PAT, used to authenticate tool pulls to avoid github ratelimiting
6573
githubAuthToken: ""
74+
# config.obotServerEnableAuthentication -- Enables authentication for Obot
6675
obotServerEnableAuthentication: true
76+
# config.obotServerEncryptionProvider -- Configures an encryption provider for credentials in Obot
6777
obotServerEncryptionProvider: "None" # "None", "AWS", "GCP"
78+
# config.obotBootstrapToken -- Sets a bootstrap token. If authentication is enabled, one will be autogenerated for you if this is not set.
6879
obotBootstrapToken: ""
80+
# config.obotServerAuthAdminEmails -- A comma separated list of email addresses that will have the Admin role in Obot.
6981
obotServerAuthAdminEmails: ""
82+
# config.obotServerDSN -- The DSN for your database. For example: postgres://<username>:<password>@<hostname>/<db_name>
7083
obotServerDSN: ""
84+
# config.obotServerHostname -- The hostname of your Obot instance, including protocol
7185
obotServerHostname: ""
86+
# config.obotWorkspaceProviderType -- Configures the storage backend for workspaces in Obot. Can be 's3' or 'directory'
7287
obotWorkspaceProviderType: "s3"
88+
# config.openaiApiKey -- An OpenAI API Key used to configure access to OpenAI models, which are the default in Obot.
7389
openaiApiKey: ""
90+
# config.workspaceProviderS3BaseEndpoint -- If config.obotWorkspaceProviderType is 's3' and you are not using AWS S3, this needs to be set to the S3 api endpoint of your provider.
7491
workspaceProviderS3BaseEndpoint: ""
92+
# config.workspaceProviderS3Bucket -- The name of the S3 bucket to store workspaces in. Only used if config.obotWorkspaceProviderType is 's3'
7593
workspaceProviderS3Bucket: ""
7694

7795
# extraEnv -- A map of additional environment variables to set

docs/docs/05-installation/00-Installation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ docker logs -f <container_id>
7777

7878
### Helm
7979

80-
If you would like to install Obot on a Kubernetes cluster, you can use the Helm chart. We are currently working on the Helm chart and have made it available for testing here: [obot-helm](https://github.com/obot-platform/obot/tree/main/chart)
80+
If you would like to install Obot on a Kubernetes cluster, you can use the Helm chart. We are currently working on the Helm chart and have made it available for testing here: [obot-helm](https://charts.obot.ai/)
8181

8282
## Next Steps
8383

ui/admin/.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,6 @@ coverage-ts/
1313
# Ignore all files in .vscode except settings.json
1414
!.vscode
1515
.vscode/*
16-
!.vscode/settings.json
16+
!.vscode/settings.json
17+
18+
.packaged

0 commit comments

Comments
 (0)