Infrastructure Layer

Updating Gremlin

It's important to keep Gremlin up to date, in order to take advantage of new features and important bug fixes. Review Gremlin's release notes for a full list of releases and associated changes.

Staying informed on the latest Gremlin updates

Gremlin releases new agent versions regularly. If you're installing pinned versions of Gremlin, you'll want to update your version pins when we release a new version. Stay up to date on the most recent version by subscribing to our RSS feeds:

Linux packages

YUM

To upgrade to the latest gremlin packages:

shell
1# You can also use specific versions (e.g. `gremlin-2.16.4 gremlind-2.16.4`).
2sudo yum update gremlin gremlind

APT

To upgrade to the latest gremlin packages:

shell
1# You can also use specific versions (e.g. `gremlin@2.16.4 gremlind@2.16.4`).
2sudo apt update && sudo apt upgrade gremlin gremlind

Container images

Gremlin hosts its gremlin/gremlin and gremlin/chao images on Docker Hub. They are tagged according to their release version.

Kubernetes

shell
1# VERSION=2.17.3
2# CHAO_VERSION=0.3.0
3kubectl set image daemonset/gremlin gremlin=gremlin/gremlin:$VERSION
4kubectl set image deployment/chao chao=gremlin/chao:$CHAO_VERSION

Helm

In addition to updating Gremlin agents, you'll also want to check for updates to the Gremlin Helm Chart.

Upgrading Gremlin Helm Chart

shell
1helm repo update

Upgrading Gremlin Agents

shell
1# VERSION=2.17.3
2# CHAO_VERSION=0.3.0
3helm upgrade -n gremlin gremlin gremlin/gremlin \
4 --set image.tag=$VERSION \
5 --set chaoimage.tag=$CHAO_VERSION \
6 # NOTE: make sure you supply all helm values relevant to your installation

Other considerations for updating Gremlin

Downloading deb packages

shell
1# To download the latest version
2apt download gremlin gremlind
3# To download a specific version
4apt download gremlin=2.18.5-1 gremlind=2.18.5-1

Downloading rpm packages

If you are supplying Gremlin packages to Linux machines outside of Gremlin's yum repository, you can download versions of the packages without installing them. Gremlin recommends using YUM's download-only functionality. YUM stores packages in /var/cache/ (see yumdownloader(1))

shell
1# To download the latest version
2yum install --downloadonly gremlin gremlind
3# To download a specific version
4yum install --downloadonly gremlin-2.18.5 gremlind-2.18.5
Without Yum Downloader

While Gremlin recommends downloading packages with YUM. You can download any Gremlin version with a BASH script like the one below:

shell
1#!/bin/bash
2## Download a Gremlin RPM without using yum
3##
4## requires: curl, xpath, gzip
5##
6VERSION=$(curl https://rpm.gremlin.com/noarch/latest | cut -d- -f1)
7## Or optionally set a specific version
8# VERSION=2.16.3
9curl -fsSL https://rpm.gremlin.com/noarch/$(\
10 curl -fsSL https://rpm.gremlin.com/noarch/$(\
11 curl -fsSL https://rpm.gremlin.com/noarch/repodata/repomd.xml \
12 | xpath -e 'string(/repomd/data[@type="primary"]/location/@href)' 2>/dev/null) \
13 | gunzip \
14 | xpath -e 'string(/metadata/package[version/@ver="${VERSION}" and name="gremlin"][last()]/location/@href)' 2>/dev/null) \
15 -o gremlin-${VERSION}.x86_64.rpm
16curl -fsSL https://rpm.gremlin.com/noarch/$(\
17 curl -fsSL https://rpm.gremlin.com/noarch/$(\
18 curl -fsSL https://rpm.gremlin.com/noarch/repodata/repomd.xml \
19 | xpath -e 'string(/repomd/data[@type="primary"]/location/@href)' 2>/dev/null) \
20 | gunzip \
21 | xpath -e 'string(/metadata/package[version/@ver="${VERSION}" and name="gremlind"][last()]/location/@href)' 2>/dev/null) \
22 -o gremlind-${VERSION}.x86_64.rpm