Skip to content

Offline Upgrade Middleware - MySQL Module

This page explains how to install or upgrade the middleware - MySQL module after downloading it from the Download Center.

Info

The term mcamel mentioned in the following commands or scripts is the internal development code name for the middleware module.

Load Images from Installation Package

You can load the images using one of the following two methods. When an container registry exists in the environment, it is recommended to choose chart-syncer for synchronizing images to the container registry as it is more efficient and convenient.

Synchronize Images to Container Registry using chart-syncer

  1. Create load-image.yaml .

    Note

    All parameters in this YAML file are required. You need a private container registry and modify the relevant configurations.

    If the chart repo is already installed in the current environment, chart-syncer also supports exporting the chart as a tgz file.

    load-image.yaml
    source:
      intermediateBundlesPath: mcamel-offline # Relative path to the directory where the charts-syncer command is executed, not the relative path between this YAML file and the offline package
    target:
      containerRegistry: 10.16.10.111 # Replace with your container registry URL
      containerRepository: release.daocloud.io/mcamel # Replace with your container registry
      repo:
        kind: HARBOR # It can also be any other supported Helm Chart repository type
        url: http://10.16.10.111/chartrepo/release.daocloud.io # Replace with the chart repo URL
        auth:
        username: "admin" # Your container registry username
        password: "Harbor12345" # Your container registry password
      containers:
        auth:
          username: "admin" # Your container registry username
          password: "Harbor12345" # Your container registry password
    

    If the chart repo is not installed in the current environment, chart-syncer also supports exporting the chart as a tgz file and storing it in the specified path.

    load-image.yaml
    source:
      intermediateBundlesPath: mcamel-offline # Relative path to the directory where the charts-syncer command is executed, not the relative path between this YAML file and the offline package
    target:
      containerRegistry: 10.16.10.111 # Replace with your container registry URL
      containerRepository: release.daocloud.io/mcamel # Replace with your container registry
      repo:
        kind: LOCAL
        path: ./local-repo # Local path to the chart
      containers:
        auth:
          username: "admin" # Your container registry username
          password: "Harbor12345" # Your container registry password
    
  2. Run the command to synchronize the images.

    charts-syncer sync --config load-image.yaml
    

Directly Load using Docker or containerd

Unpack and load the image files.

  1. Unpack the tar archive.

    tar -xvf mcamel-mysql_0.11.1_amd64.tar
    cd mcamel-mysql_0.11.1_amd64
    tar -xvf mcamel-mysql_0.11.1.bundle.tar
    

    After successful unpacking, you will get the following 3 files:

    • hints.yaml
    • images.tar
    • original-chart
  2. Load the images from local to Docker or containerd.

    docker load -i images.tar
    
    ctr -n k8s.io image import images.tar
    

Note

Docker or containerd image loading operations need to be performed on each node. After loading is complete, the images need to be tagged to match the Registry and Repository used during installation.

Upgrade

There are two ways to upgrade. You can choose the corresponding upgrade method based on the pre-operation:

  1. Check if the helm repo exists.

    helm repo list | grep mysql
    

    If the result is empty or shows the following message, proceed to the next step; otherwise, skip the next step.

    Error: no repositories to show
    
  2. Add a helm repo.

    helm repo add mcamel-mysql http://{harbor url}/chartrepo/{project}
    
  3. Update the helm repo.

    ```shell helm repo update mcamel/mcamel-mysql # If the helm version is too low, it may fail. In that case, try executing helm update repo .

  4. Select the version you want to install (it is recommended to install the latest version).

    helm search repo mcamel/mcamel-mysql --versions
    
    [root@master ~]# helm search repo mcamel/mcamel-mysql --versions
    NAME                            CHART VERSION   APP VERSION     DESCRIPTION               
    mcamel/mcamel-mysql     0.11.1           0.11.1           A Helm chart for Kubernetes
    ...
    
  5. Back up the --set parameters.

    Before upgrading the version, it is recommended to execute the following command to back up the --set parameters of the previous version.

    helm get values mcamel-mysql -n mcamel-system -o yaml > mcamel-mysql.yaml
    
  6. Run helm upgrade .

    Before upgrading, it is recommended to replace the global.imageRegistry field in mcamel-mysql.yaml with the container registry address currently used.

    export imageRegistry={your-registry}
    
    helm upgrade mcamel-mysql mcamel/mcamel-mysql \
      -n mcamel-system \
      -f ./mcamel-mysql.yaml \
      --set global.imageRegistry=$imageRegistry \
      --version 0.11.1
    
  1. Back up the --set parameters.

    Before upgrading the version, it is recommended to execute the following command to back up the --set parameters of the previous version.

    helm get values mcamel-mysql -n mcamel-system -o yaml > mcamel-mysql.yaml
    
  2. Run helm upgrade .

    Before upgrading, it is recommended to replace the global.imageRegistry field in mcamel-mysql.yaml with the container registry address currently used.

    export imageRegistry={your-registry}
    
    helm upgrade mcamel-mysql . \
      -n mcamel-system \
      -f ./mcamel-mysql.yaml \
      --set global.imageRegistry=${imageRegistry} \
      --set console_image.registry=${imageRegistry} \ 
      --set operator_image.registry=${imageRegistry}
    

Comments