How to Release a New Version of the Pipeline
If a new version of nfdump needs to be used, make the new nfdump-collector image(s) first (see below) and update the docker-compose files with the new version number, then make new pipeline_importer and pipeline_logstash images..
#
Make an RPM ReleaseUse standard procedures to create an rpm of the new version of the pipeline. Update the version number and the CHANGES file, build the rpm, repoify, etc., then upgrade grnoc-netsage-deidentifier on bare-metal hosts using yum. If all works well, do the following steps to create new Docker images with which to upgrade Docker deployments.
#
In Github, Create a Release TagCreate a new Tag or Release in Github, eg, v1.2.11. Be sure to copy info from the CHANGES file into the Release description.
#
To Build and Push Images ManuallyBelow is the procedure to build pipeline_importer and pipeline_logstash images manually.
Install docker-compose if not done already. See the Docker Installation instructions.
Git clone (or git pull) the pipeline project and check out the tag you want to build, then set the version number in docker-compose.build.yml using the script. Eg, for v1.2.11,
Then build the pipeline_importer and pipeline_logstash images and push them to Docker Hub:
If you run into an error about retrieving a mirrorlist and could not find a valid baseurl for repo, restart docker and try again.
If that doesn't work, try adding this to /etc/hosts: 67.219.148.138 mirrorlist.centos.org
, and/or try yum install net-tools bridge-utils
, and/or restart network.service then docker.
The person pushing to Docker Hub must have a Docker Hub account and belong to the Netsage team (3 users are allowed, for the free level).
It might be a good idea to test the images before pushing them. See "Test Docker Images" below.
#
Building With Automation???
#
Test Docker ImagesSee the Docker installation instructions for details...
In the git checkout of the correct version, make an .env file and a docker-compose.override.yml file. You probably want to send the processed data to a dev Elasticsearch instance. Use samplicate or some other method to have data sent to the dev host.
Run docker_select_version.sh if you haven't already, then start it up $ sudo docker-compose up -d
. If there are local images, they'll be used, otherwise they'll be pulled from Docker Hub.
After about 30 minutes, you should see flows in elasticsearch.
#
Make Versioned DocsA new set of versioned docs also has to be tagged once you are done making changes for the latest pipeline version. See the Docusaurus guide.
#
To Make New Nfdump-Collector ImagesIf a new version of nfdump has been released that we need, new nfdump-collector images need to be made.
To use squash: create a file at /etc/docker/daemon.json and put into it
To build version $VER, eg, 1.6.23 (both regular and alpine linux versions ?):
To push to Docker Hub and quit docker
To use the new collector image in the pipeline, change the version number in docker-compose.override_example.yml. For example, to use the alpine-1.6.23 image:
Remind users to make the same change in their docker-compose.override.yml file when they do the next pipeline upgrade.
#
New Version of LogstashIf a new version of logstash has been released that we want everyone to use, ???