# Migrating from Bitnami Charts and Images

Opik's Helm chart has migrated from Bitnami charts and images to official Docker images and alternative Helm charts. This migration provides better compatibility, security, and maintainability.

## Why Migrate from Bitnami?

Bitnami changed its distribution model in 2025:

* **Free old public images deprecated**: Versioned images were moved to a "legacy" unmaintained repository with no security updates
* **Hardened images now subscription-based**: Access to maintained, secure images requires a paid subscription
* **Bitnami charts tightly depend on Bitnami images**: Bitnami charts cannot switch to official images, creating a dependency on the subscription model

By migrating to official Docker images and alternative Helm charts, we ensure:

* **Continued Free Access**: Official images from upstream projects (e.g., `mysql`, `redis`, `zookeeper`, `minio`) remain freely available with full version support
* **Security Updates**: Direct access to security patches and updates from the official maintainers
* **Production Stability**: Ability to pin specific versions for production deployments
* **Long-term Sustainability**: Reduced dependency on third-party commercial services
* **Community Standards**: Official images follow industry best practices and are widely adopted, making it easier to find documentation and community support

## Upgrade Instructions

If you're upgrading the Opik Helm chart from version **1.9.39** or older, you need to enable the chart migration:

```yaml
chartMigration:
  enabled: true
```

<Warning>
  **Important:** Set `chartMigration.enabled: true` **only** for the first upgrade that includes the migration from Bitnami. After the migration completes successfully, set it back to `false` for subsequent upgrades.
</Warning>

### How the Migration Works

The migration is **seamless** and **data-preserving**:

1. **Automatic Resource Recreation**: The migration job automatically deletes and recreates StatefulSets and Deployments that are relevant for your installation
2. **Data Preservation**: All PersistentVolumeClaims (PVCs) are preserved, ensuring no data loss
3. **Zero Downtime**: The migration happens as a pre-upgrade hook, and new resources are created immediately after

### Data Directory Configuration

MySQL, MinIO, and Zookeeper are configured to use Bitnami data paths by default to ensure seamless migration:

* **MySQL**: Uses `/bitnami/mysql/data` data directory
* **MinIO**: Uses Bitnami-compatible paths
* **Zookeeper**: Uses `/bitnami/zookeeper/data` data directory

<Note>
  If you originally overrode the default Bitnami data paths in your configuration, make sure your `values.yaml` matches those custom paths to ensure the migration can access your existing data.
</Note>

## What Changed

The following components have been migrated to use official Docker images:

* **Zookeeper**: Migrated from `bitnami/zookeeper` to official `zookeeper:3.9.4` image using the [CloudPirates Zookeeper](https://github.com/CloudPirates-io/helm-charts/tree/main/charts/zookeeper) chart
* **MySQL**: Migrated from Bitnami MySQL chart to [comet-mysql-helm](https://github.com/comet-ml/comet-mysql-helm) chart using the official `mysql:8.4.2` image
* **Redis**: Migrated from Bitnami Redis chart to [CloudPirates Redis](https://github.com/CloudPirates-io/helm-charts/tree/main/charts/redis) chart using the official `redis/redis-stack-server:7.2.0-v10` image
* **MinIO**: Migrated from Bitnami MinIO chart to [CloudPirates MinIO](https://github.com/CloudPirates-io/helm-charts/tree/main/charts/minio) chart using the official `minio/minio` image

## Benefits of Migration

* **Official Images**: Using official Docker images provides better security updates and community support
* **Simplified Configuration**: Reduced complexity in chart dependencies
* **Better Compatibility**: Improved compatibility with modern Kubernetes versions
* **Maintained Charts**: Active maintenance and updates from the community

## Need Help?

If you encounter issues during migration, please check the [troubleshooting guide](/self-host/troubleshooting) or reach out for support.