> ## Documentation Index
> Fetch the complete documentation index at: https://docs.binarly.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Upgrading

Binarly Transparency Platform is upgraded by updating the chart version, everything else is handled by the underlying controller. This documentation details how to upgrade Binarly Transparency Platform using three popular methods of deployment to Kubernetes: ArgoCD, FluxCD, and Helm.

This documentation will also detail breaking change updates to the chart that require values changes or special instructions.

<Warning>
  Rollback is not supported for stateful components and databases should be backed up before attempting to upgrade.
</Warning>

## ArgoCD

ArgoCD will deploy the version detailed in the `targetRevision` field. Updating this field will trigger an update in ArgoCD:

```yaml theme={null}
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: binarly-transparency-platform
  namespace: argocd
spec:
  source:
    repoURL: {The Repository URL}
    targetRevision: 3.2.1 # This field will trigger ArgoCD to reconcile against chart version 3.2.1
    chart: binarly-transparency-platform
  # Other fields removed for brevity
```

## FluxCD

FluxCD will deploy the version detailed in the `version` field of the HelmRelease. Updating this field will trigger a reconciliation:

```yaml theme={null}
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
  name: binarly-transparency-platform
  namespace: binarly-transparency-platform
spec:
  chart:
    spec:
      chart: binarly-transparency-platform
      version: 3.2.1 # This field will trigger FluxCD to reconcile against chart version 3.2.1
      sourceRef:
        kind: HelmRepository
        name: binarly-transparency-platform
        namespace: binarly-transparency-platform
  # Other fields removed for brevity
```

## Helm

Helm will deploy the version detailed in the chart reference. Changing the version in the reference and re-running the command will upgrade the release.

<Warning>
  CRDs are not upgraded by Helm when using `--skip-crds`. Apply the CRDs from the new chart version before upgrading the application.
</Warning>

First apply the CRDs for the new version:

```bash theme={null}
helm template binarly-transparency-platform \
  oci://<Your provided registry>/charts/binarly-transparency-platform:3.2.1 \
  -f values-overlay.yaml | \
  yq e 'select(.kind == "CustomResourceDefinition")' - | kubectl apply -f -
```

then upgrade the application:

```bash theme={null}
helm upgrade --install binarly-transparency-platform \
  oci://<Your provided registry>/charts/binarly-transparency-platform:3.2.1 \
  -f values-overlay.yaml --namespace {Your Namespace} \
  --skip-crds \
  --take-ownership \
  --timeout 15m
```
