Upgrade validation
Verify that alerts are updated
When you successfully execute pre- and post-upgrade tasks, the backend does not get queries with 1-second step.
Verify this by looking at the query-service logs. Issue a grep command for step:[1]; there shouldn’t be any.
Verify deepstore settings
During an upgrade, it is extremely important that you retain deepstore settings. They must not be removed; the deepstore configuration must remain identical to the state before the upgrade.
To verify, run the helm diff plugin to check the differences. You can build this plugin from the source, and then install it. See the helm-diff documentation for instructions.
-
Install the
helm diffplugin:helm plugin install https://github.com/databus23/helm-diff -
Run docker login before running the
diffcommand.To run the correct command for login, see how to Login for Kloudfuse helm registry.
-
Generate the
diffwith the new version:helm diff upgrade kfuse oci://us-east1-docker.pkg.dev/mvp-demo-301906/kfuse-helm/kfuse --version <VERSION.NUM.BER> --values values.yaml > /tmp/kfuse_upgrade_diff (1)1 version: Use the version number of the most current Kloudfuse release; the pattern looks like3.0.0,3.1.3, and so on. See Version documentation. -
If the deepstore settings changed, you will find changes in
pinot-controller.confandpinot-server.conffiles. Search orgrepfor them in the/tmp/kfuse_upgrade_difffile.The following sample output demonstrates that deepstore settings may change from
enabledtonot enabledduring the upgrade. Verify your deepstore settings in yourcustom-values.yamlfile.pinot-controller.conf: + controller.data.dir=/var/pinot/controller/data - controller.realtime.segment.deepStoreUploadRetryEnabled=true - controller.realtime.segment.validation.frequencyPeriod=5m - controller.data.dir=gs://pinot-gcp/dev-gcp/vinayk/controller/data - controller.local.temp.dir=/var/pinot/controller/data - pinot.controller.instance.enable.split.commit=true - pinot.controller.storage.factory.class.gs=org.apache.pinot.plugin.filesystem.GcsPinotFS - pinot.controller.storage.factory.gs.projectId=mvp-demo-301906 - pinot.controller.storage.factory.gs.gcpKey=/etc/pinot/server/secretKey - pinot.controller.segment.fetcher.protocols=file,http,gs - pinot.controller.segment.fetcher.gs.class=org.apache.pinot.common.utils.fetcher.PinotFSSegmentFetcher pinot-server.conf: + # enable peer download; refer: https://docs.pinot.apache.org/operators/operating-pinot/decoupling-controller-from-the-data-path + pinot.server.storage.factory.class.peer=org.apache.pinot.spi.filesystem.LocalPinotFS + pinot.server.instance.segment.store.uri=peer:///var/pinot/server/data - pinot.server.instance.segment.store.uri=gs://pinot-gcp/dev-gcp/vinayk/controller/data - pinot.server.storage.factory.class.gs=org.apache.pinot.plugin.filesystem.GcsPinotFS - pinot.server.storage.factory.gs.projectId=mvp-demo-301906 - - pinot.server.storage.factory.gs.gcpKey=/etc/pinot/server/secretKey - pinot.server.segment.fetcher.protocols=file,http,gs - pinot.server.segment.fetcher.gs.class=org.apache.pinot.common.utils.fetcher.PinotFSSegmentFetcher