This is a comprehensive guide that covers the steps necessary to upgrade from Mainnet5 to Mainnet6 of Akash Network and Akash Provider components in a Kubernetes cluster.
Praetor providers should wait for further upgrade instructions from Praetor team!
provider-services
is the main binary of theakash-provider
,akash-hostname-operator
,akash-inventory-operator
, andakash-ip-operator
helm chartsakash
is the main binary of theakash-node
helm chart
provider-services
:0.4.7
node
:0.26.0
provider-services
:0.4.8
node
:0.28.2
IMPORTANT! Seek help if you encounter an issue at any step or have doubts! Please seek the support in the #providers
Akash Network Devs Discord room here.
This step is crucial to prevent unexpected behavior during the upgrade.
NOTE: The Akash Deployments will continue to run as usual while
akash-provider
service is stopped. The only impact is that users won't be able to performlease-<shell|events|logs>
against their deployments nor deploy/update or terminate them.
kubectl -n akash-services scale statefulsets akash-provider --replicas=0
Follow these steps to upgrade various Helm charts. Make sure you've backed up your existing Helm chart configurations.
Helm charts to be upgraded are: akash-node
(aka RPC node), akash-provider
, akash-hostname-operator
, akash-inventory-operator
, and akash-ip-operator
.
helm repo update akash
Verify you can see the correct chart/app versions:
# helm search repo akash
NAME CHART VERSION APP VERSION DESCRIPTION
akash/akash-hostname-operator 8.0.0 0.4.8 An operator to map Ingress objects to Akash dep...
akash/akash-inventory-operator 8.0.0 0.4.8 An operator required for persistent storage (op...
akash/akash-ip-operator 8.0.0 0.4.8 An operator required for ip marketplace (optional)
akash/akash-node 8.0.0 0.28.2 Installs an Akash RPC node (required)
akash/provider 8.0.0 0.4.8 Installs an Akash provider (required)
Take the current akash-node
chart values:
helm -n akash-services get values akash-node | grep -v '^USER-SUPPLIED VALUES' > akash-node-values.yml
Upgrade your akash-node
chart:
helm upgrade akash-node akash/akash-node -n akash-services -f akash-node-values.yml
Take the current akash-provider
chart values:
helm -n akash-services get values akash-provider | grep -v '^USER-SUPPLIED VALUES' > provider.yaml
helm upgrade akash-provider akash/provider -n akash-services -f provider.yaml
IMPORTANT: Make sure your provider is using the latest bid price script! Here is the guide that tells you how you can set it for your akash-provider chart. https://docs.akash.network/providers/build-a-cloud-provider/akash-cloud-provider-build-with-helm-charts/step-6-provider-bid-customization
helm upgrade akash-hostname-operator akash/akash-hostname-operator -n akash-services
Skip this section if your provider does not provide persistent storage.
Note: This is not a typo, we are installing the inventory-operator without the akash- prefix.
helm upgrade inventory-operator akash/akash-inventory-operator -n akash-services
Skip this section if your provider does not provide IP leasing.
Take the current akash-ip-operator chart values:
helm -n akash-services get values akash-ip-operator | grep -v '^USER-SUPPLIED VALUES' > akash-ip-operator-values.yml
helm upgrade akash-ip-operator akash/akash-ip-operator -n akash-services -f akash-ip-operator-values.yml
Perform these checks to ensure the upgrade was successful.
Run this command to check the pods and their versions within the akash-services
namespace:
kubectl -n akash-services get pods -o custom-columns='NAME:.metadata.name,IMAGE:.spec.containers[*].image'
The charts upgrade went well, if you are seeing these images and versions:
- provider and operator image is:
ghcr.io/akash-network/provider:0.4.8
- node image is:
ghcr.io/akash-network/node:0.28.2
Example Result:
# kubectl -n akash-services get pods -o custom-columns='NAME:.metadata.name,IMAGE:.spec.containers[*].image'
NAME IMAGE
akash-hostname-operator-86d4596d6c-pwbt8 ghcr.io/akash-network/provider:0.4.8
akash-inventory-operator-69464fbdff-dxkk5 ghcr.io/akash-network/provider:0.4.8
akash-ip-operator-6f6ddc47f8-498kj ghcr.io/akash-network/provider:0.4.8
akash-node-1-0 ghcr.io/akash-network/node:0.28.2
akash-provider-0 ghcr.io/akash-network/provider:0.4.8
Make sure to update your local provider-services
binary (aka the Akash client) if you had it installed.
Verify the version and the location using these two commands:
provider-services version
type -p provider-services
If you get anything below 0.4.8
, then get the right binary from this page.