Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
3ff40aa
feat: Initial helm-chart and corresponding Tiltfile.chart. Cleanup ma…
danielpanzella Feb 10, 2026
de3d444
feat: Enable webhooks and more RBAC
danielpanzella Feb 10, 2026
87a957f
feat: Install now completes successfully
danielpanzella Feb 10, 2026
c830174
fix: gcp auth from workload identity instead of creds envvar
danielpanzella Feb 10, 2026
35b346d
Merge branch 'v2' into danielpanzella/helm-chart
danielpanzella Feb 10, 2026
517d9ed
fix: actually set the correct values
danielpanzella Feb 10, 2026
03f0c09
fix: use the actual envvars
danielpanzella Feb 10, 2026
c6d8604
fix: update workflow permissions
danielpanzella Feb 10, 2026
ab2301b
fix: try the older version of auth
danielpanzella Feb 10, 2026
e8353b7
fix: enable debug logs
danielpanzella Feb 11, 2026
56106d6
fix: explicitly set wip and sa
danielpanzella Feb 11, 2026
fd2e8b3
fix: set only SA to narrow which value is wrong
danielpanzella Feb 11, 2026
0c46c4f
fix: TF had wrong value for service account. And I think we need the…
danielpanzella Feb 11, 2026
1dde724
fix: GH Action for publishing the internal chart
danielpanzella Feb 11, 2026
0389aaf
chore: bump checkout to v4
danielpanzella Feb 11, 2026
0e3d3c2
chore: ct only has 3.14 version
danielpanzella Feb 11, 2026
ea6fe7e
chore: forgot wandb chart in ct.yaml and bump chart version to dest a…
danielpanzella Feb 11, 2026
eb25bb2
chore: just grab version from the chart.yaml for now
danielpanzella Feb 11, 2026
8e27016
fix: Update manifest to support volume mounts on containers and remov…
danielpanzella Feb 19, 2026
451cda4
chore: Bump chart and manifest versions of wandb and operator
danielpanzella Feb 19, 2026
cb3238c
fix: force old docker manifest behavior for now, until we can get mul…
danielpanzella Feb 19, 2026
6f15a65
fix: update crds in chart
danielpanzella Feb 19, 2026
2b6306c
fix: support more oci/docker manifest types
danielpanzella Feb 19, 2026
23ca337
chore: bump operator image tag to internal-testing.3
danielpanzella Feb 19, 2026
c98e130
chore: bump server-manifest and operator versions to 0.78.0-pre-opera…
danielpanzella Feb 19, 2026
b0994f1
Merge branch 'v2' into danielpanzella/helm-chart
danielpanzella Feb 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 79 additions & 0 deletions .github/workflows/internal-chart-publish.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Internal Chart Publish

on:
workflow_dispatch:

jobs:
release:
name: Release
runs-on: ubuntu-latest
permissions:
contents: 'read'
id-token: 'write'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
persist-credentials: false
fetch-depth: 0

- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@v3.0.1

- id: auth
name: Authenticate to Google Cloud
uses: google-github-actions/auth@v3
with:
create_credentials_file: 'true'
token_format: access_token
project_id: wandb-production
workload_identity_provider: ${{ secrets.CI_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ secrets.CI_WORKLOAD_IDENTITY_SERVICE_ACCOUNT }}

- name: Authorize Docker to use Google Container Registry
run: |
gcloud auth configure-docker us-docker.pkg.dev

- uses: actions/setup-go@v4
with:
go-version: 1.25

- name: Install Helm
uses: azure/setup-helm@v4
with:
version: v3.19.0

- name: Set up chart-testing
uses: helm/chart-testing-action@v2.6.1
with:
version: v3.14.0

- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --config deploy/ct.yaml || true)
if [[ -n "$changed" ]]; then
echo "changed=true" >> $GITHUB_OUTPUT
fi

- name: Run chart-testing (lint)
run: ct lint --config deploy/ct.yaml

- name: Install Ginkgo
run: go install github.com/onsi/ginkgo/v2/ginkgo@latest

- name: Build and Push to GAR
if: steps.list-changed.outputs.changed == 'true'
run: |
VERSION=$(grep "^version:" deploy/operator/Chart.yaml | awk '{print $2}')
helm dependency build deploy/operator
helm package deploy/operator
helm push operator-${VERSION}.tgz oci://$REPOSITORY
env:
REPOSITORY: us-docker.pkg.dev/wandb-production/public/wandb/charts
15 changes: 10 additions & 5 deletions .github/workflows/internal-image-publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,12 @@ jobs:
release:
name: Release
runs-on: ubuntu-latest
permissions:
contents: 'read'
id-token: 'write'
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
persist-credentials: false
fetch-depth: 0
Expand All @@ -26,15 +29,17 @@ jobs:
uses: docker/setup-buildx-action@v2

- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@v3
uses: google-github-actions/setup-gcloud@v3.0.1

- id: auth
name: Authenticate to Google Cloud
uses: google-github-actions/auth@v3
with:
credentials_json: ${{ secrets.GCP_SA_CREDS }}
create_credentials_file: true
export_environment_variables: true
create_credentials_file: 'true'
token_format: access_token
project_id: wandb-production
workload_identity_provider: ${{ secrets.CI_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ secrets.CI_WORKLOAD_IDENTITY_SERVICE_ACCOUNT }}

- name: Authorize Docker to use Google Container Registry
run: |
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ junit.xml
*.swo
*~

*.tgz

/charts
/cdk8s
/git
Expand Down
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -121,11 +121,11 @@ run: manifests generate fmt vet ## Run a controller from your host.
# More info: https://docs.docker.com/develop/develop-images/build_enhancements/
.PHONY: docker-build
docker-build: ## Build controller docker image.
$(CONTAINER_TOOL) build -t ${IMG} -f Dockerfile.controller .
$(CONTAINER_TOOL) build --platform linux/amd64 -t ${IMG} -f Dockerfile .

.PHONY: docker-push
docker-push:
$(CONTAINER_TOOL) push ${IMG}
$(CONTAINER_TOOL) push --platform linux/amd64 ${IMG}

# PLATFORMS defines the target platforms for the manager image be built to provide support to multiple
# architectures. (i.e. make docker-buildx IMG=myregistry/mypoperator:0.0.1). To use this option you need to:
Expand Down Expand Up @@ -259,4 +259,4 @@ $(GINKGO): $(LOCALBIN)
test -s $(LOCALBIN)/ginkgo || GOBIN=$(LOCALBIN) go install github.com/onsi/ginkgo/v2/ginkgo@latest


include dep-management.mk olm.mk
include dep-management.mk olm.mk
20 changes: 0 additions & 20 deletions Tiltfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ settings = {
"kind-kind",
"orbstack",
],
"installMinio": False,
"installWandb": True,
"wandbCRD": "wandb-default-v1",
"installTelemetry": False,
Expand Down Expand Up @@ -87,31 +86,12 @@ local_resource("generate", generate(), labels=["Operator-Resources"])

deploy_cert_manager()

if settings.get("installMinio"):
k8s_yaml('./hack/testing-manifests/minio/minio.yaml')
k8s_resource(
'minio',
'Minio',
objects=[
'minio:service',
'minio:namespace'
]
)

helm_repo(
'mysql-operator-repo',
'https://mysql.github.io/mysql-operator',
labels=["Helm-Repos"],
)

# helm_resource(
# 'mariadb-operator-crds',
# chart='mariadb-operator-repo/mariadb-operator-crds',
# resource_deps=['mariadb-operator-repo'],
# pod_readiness='ignore',
# labels=["Third-Party-Operators"],
# )

helm_resource(
'mysql-operator',
chart='mysql-operator-repo/mysql-operator',
Expand Down
39 changes: 39 additions & 0 deletions Tiltfile.chart
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
load('ext://namespace', 'namespace_create')
load('ext://cert_manager', 'deploy_cert_manager')

deploy_cert_manager()
# default values
settings = {
"allowedContexts": [
"docker-desktop",
"minikube",
"kind-kind",
"orbstack",
],
}

# global settings
settings.update(read_json(
"tilt-settings.json",
default={},
))

# Configure global watch settings with a 2-second debounce
watch_settings(ignore=["**/.git", "**/*.out"])

# Increase timeout for helm installations and apply operations
update_settings(k8s_upsert_timeout_secs=300)

currentContext = k8s_context()

if currentContext in settings.get("allowedContexts"):
print("Context is allowed")
else:
fail("Selected context is not in allow list")

allow_k8s_contexts(settings.get("allowed_k8s_contexts"))

current_namespace = k8s_namespace()
namespace_create(current_namespace)

k8s_yaml(helm('./deploy/operator', 'wandb-operator', namespace=current_namespace, values=['./deploy/operator/values.yaml']))
2 changes: 1 addition & 1 deletion api/v2/weightsandbiases_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ func (w *WeightsAndBiases) GetTolerations(spec WBInfraSpec) *[]corev1.Toleration
type WandbAppSpec struct {
Hostname string `json:"hostname"`
License string `json:"license,omitempty"`
ManifestRepository string `json:"manifest-repository,omitempty"`
ManifestRepository string `json:"manifestRepository,omitempty"`
Version string `json:"version"`
Features map[string]bool `json:"features"`
InternalServiceAuth InternalServiceAuth `json:"internalServiceAuth,omitempty"`
Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/apps.wandb.com_weightsandbiases.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6484,7 +6484,7 @@ spec:
type: object
license:
type: string
manifest-repository:
manifestRepository:
type: string
oidc:
description: WandbOIDCSpec defines the structure for OpenID Connect
Expand Down
11 changes: 11 additions & 0 deletions deploy/.yamllint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
extends: default

rules:
new-line-at-end-of-file: enable
document-end: disable
line-length: disable
trailing-spaces: enable
braces: disable
indentation: disable
document-start: disable
hyphens: disable
15 changes: 15 additions & 0 deletions deploy/ct.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# See https://github.com/helm/chart-testing#configuration
remote: origin
target-branch: main
chart-dirs:
- deploy
chart-repos:
- altinity=https://helm.altinity.com
- grafana=https://grafana.github.io/helm-charts/
- minio=https://operator.min.io/
- mysql=https://mysql.github.io/mysql-operator
- redis=https://ot-container-kit.github.io/helm-charts/
- strimzy=https://strimzi.io/charts/
- victoria-metrics=https://victoriametrics.github.io/helm-charts/
- wandb=https://charts.wandb.ai
yamllint-config: .yamllint.yaml
27 changes: 27 additions & 0 deletions deploy/operator/Chart.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
dependencies:
- name: wandb-base
repository: https://charts.wandb.ai/
version: 0.11.8
- name: mysql-operator
repository: https://mysql.github.io/mysql-operator/
version: 2.2.7
- name: redis-operator
repository: https://ot-container-kit.github.io/helm-charts
version: 0.22.2
- name: strimzi-kafka-operator
repository: https://strimzi.io/charts
version: 0.50.0
- name: operator
repository: https://operator.min.io
version: 7.1.1
- name: altinity-clickhouse-operator
repository: https://helm.altinity.com
version: 0.25.6
- name: victoria-metrics-operator
repository: https://victoriametrics.github.io/helm-charts/
version: 0.58.1
- name: grafana-operator
repository: https://grafana.github.io/helm-charts
version: 5.21.4
digest: sha256:49b17dbf78551c3e5d5357737af85eb0825e6ff26afd37a78197e47ba03afdb5
generated: "2026-02-09T20:30:50.180745-08:00"
45 changes: 45 additions & 0 deletions deploy/operator/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
apiVersion: v2
name: operator
description: A Helm chart for Weights & Biases operator
type: application
version: 1.5.2
appVersion: "2.0.0"
maintainers:
- name: wandb
email: support@wandb.com
url: https://wandb.com

dependencies:
- name: wandb-base
version: 0.11.8
alias: wandb-operator
repository: https://charts.wandb.ai/
- name: mysql-operator
version: 2.2.7
repository: https://mysql.github.io/mysql-operator/
condition: mysql-operator.enabled
- name: redis-operator
version: 0.22.2
repository: https://ot-container-kit.github.io/helm-charts
condition: redis-operator.enabled
- name: strimzi-kafka-operator
version: 0.50.0
repository: https://strimzi.io/charts
condition: strimzi-kafka-operator.enabled
- name: operator
alias: minio-operator
version: 7.1.1
repository: https://operator.min.io
condition: minio-operator.enabled
- name: altinity-clickhouse-operator
version: 0.25.6
repository: https://helm.altinity.com
condition: altinity-clickhouse-operator.enabled
- name: victoria-metrics-operator
version: 0.58.1
repository: https://victoriametrics.github.io/helm-charts/
condition: victoria-metrics-operator.enabled
- name: grafana-operator
version: 5.21.4
repository: https://grafana.github.io/helm-charts
condition: grafana-operator.enabled
Loading