splunk-ai-operator

Release Guide

This document describes how to create releases for the Splunk AI Operator.

Overview

Releases are fully automated via GitHub Actions. You create releases from the GitHub UI without needing local git commands.

Quick Start

  1. Go to: Create Release Tag Workflow
  2. Click “Run workflow”
  3. Enter version (e.g., 0.1.0 for first release, 0.2.0 for next)
  4. Click “Run workflow”
  5. Wait ~10 minutes - Release created automatically!

Release Process

Step 1: Prepare for Release

Pre-Release Checklist:

Step 2: Create Release Tag

  1. Navigate to Create Release Tag
  2. Click “Run workflow” button (top right)
  3. Fill in:
    • Use workflow from: main (default)
    • Release version: 0.1.0 (without ‘v’ prefix, it’s added automatically)
    • Mark as pre-release: Check for beta/rc releases
  4. Click “Run workflow”

Step 3: Monitor Workflows

Two workflows run automatically:

1. Create Release Tag (~30 seconds)

2. Release Package (~5-10 minutes)

Monitor at:

Step 4: Verify Release

After workflows complete:

1. Check GitHub Release:

https://github.com/splunk/splunk-ai-operator/releases

Verify assets:

2. Check OCI Registry:

# Verify chart is available
helm show chart oci://ghcr.io/splunk/charts/splunk-ai-operator --version 0.1.0

3. Check Docker Images:

4. Test Installation:

# Test kubectl
kubectl apply -f https://github.com/splunk/splunk-ai-operator/releases/download/v0.1.0/install-v0.1.0.yaml

# Test Helm OCI
helm install test-release oci://ghcr.io/splunk/charts/splunk-ai-operator --version 0.1.0

# Test Docker
docker pull ghcr.io/splunk/splunk-ai-operator:v0.1.0

Version Format

We follow Semantic Versioning 2.0.0:

Format: MAJOR.MINOR.PATCH[-PRERELEASE]

Examples:

When to Increment

MAJOR (X.0.0):

MINOR (0.Y.0):

PATCH (0.0.Z):

PRERELEASE (-suffix):


What Gets Released

Artifacts Published

When you release v0.1.0, the automation creates:

1. Kubernetes Manifests

install-v0.1.0.yaml

Contains:

2. Helm Charts (OCI Registry)

oci://ghcr.io/splunk/charts/splunk-ai-operator:0.1.0
oci://ghcr.io/splunk/charts/splunk-ai-platform:0.1.0

3. Helm Charts (GitHub Release)

splunk-ai-operator-0.1.0.tgz
splunk-ai-platform-0.1.0.tgz
index.yaml

4. Docker Images

ghcr.io/splunk/splunk-ai-operator:v0.1.0
ghcr.io/splunk/splunk-ai-operator:0.1.0
ghcr.io/splunk/splunk-ai-operator:latest  (if on main)

splunk/splunk-ai-operator:v0.1.0
splunk/splunk-ai-operator:0.1.0
splunk/splunk-ai-operator:latest  (if on main)

Installation Methods

Users can install via:

1. kubectl (Manifests):

kubectl apply -f https://github.com/splunk/splunk-ai-operator/releases/download/v0.1.0/install-v0.1.0.yaml

2. Helm OCI (Recommended):

helm install splunk-ai-operator \
  oci://ghcr.io/splunk/charts/splunk-ai-operator \
  --version 0.1.0

3. Helm (GitHub Release):

helm install splunk-ai-operator \
  https://github.com/splunk/splunk-ai-operator/releases/download/v0.1.0/splunk-ai-operator-0.1.0.tgz

Hotfix Releases

For critical bug fixes:

Process

  1. Merge hotfix PR to main
  2. Create patch release: 1.0.1 (increment PATCH version)
  3. Follow normal release process
  4. Communicate to users via GitHub Release notes

Example

If v0.1.0 has a critical bug:


Pre-releases

For testing before GA release:

Beta Release

Version: 0.2.0-beta.1
Pre-release: ✅ (checked)

Use cases:

Release Candidate

Version: 1.0.0-rc.1
Pre-release: ✅ (checked)

Use cases:


Troubleshooting

Tag Already Exists

Error:

❌ Tag v0.1.0 already exists

Solution:

  1. Choose different version, or
  2. Delete existing tag (requires admin):
    git push --delete origin v0.1.0
    
  3. Delete GitHub Release if it exists

Workflow Failed

Check logs:

  1. Go to Actions
  2. Find failed workflow
  3. Check error messages

Common issues:

Images Not Appearing

Check:

  1. Workflow completed successfully
  2. GHCR: May take 5-10 minutes to appear
  3. Docker Hub: Check authentication secrets
  4. Visibility: Ensure packages are public

Charts Not in OCI Registry

Verify:

# This should work
helm show chart oci://ghcr.io/splunk/charts/splunk-ai-operator --version 0.1.0

If not:

  1. Check workflow logs for OCI push step
  2. Verify GHCR authentication
  3. Check package visibility settings

Post-Release

Required Actions

After release is published:

  1. Announcement
    • Update project communication channels
    • Post on relevant forums/discussions
  2. Documentation
    • Update docs if needed
    • Add migration guides for breaking changes
  3. Monitoring
    • Watch for issues
    • Monitor downloads/usage
    • Respond to user feedback

First Release Setup (One-Time)

For the very first release (v0.1.0):

  1. Make GHCR packages public:
    • Go to: https://github.com/orgs/splunk/packages
    • Find: splunk-ai-operator and charts/splunk-ai-operator
    • Settings → Change visibility → Public
  2. Register on Artifact Hub:
    • Go to: https://artifacthub.io/
    • Sign in with GitHub
    • Add repository: oci://ghcr.io/splunk/charts
    • Charts will be discoverable
  3. Verify Docker Hub:
    • Check: https://hub.docker.com/r/splunk/splunk-ai-operator
    • Images should appear automatically

Security

Secrets Required

Repository secrets needed:

Supply Chain Security

Each release includes:

View security info:

https://github.com/splunk/splunk-ai-operator/security

Best Practices

Versioning

Release Notes

Testing

Before releasing:


Support

Getting Help

Release Team

Contact maintainers for: