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 diff
plugin:helm plugin install https://github.com/databus23/helm-diff
-
Run docker login before running the
diff
command.To run the correct command for login, see how to Login for Kloudfuse helm registry.
-
Generate the
diff
with 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.conf
andpinot-server.conf
files. Search orgrep
for them in the/tmp/kfuse_upgrade_diff
file.The following sample output demonstrates that deepstore settings may change from
enabled
tonot enabled
during the upgrade. Verify your deepstore settings in yourcustom-values.yaml
file.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