External dependencies
The system requires access to the internet to download Docker images, Maven artifacts, and JDBC drivers. In an air-gapped environment the required images and artifacts have to be made available.
To make the images and artifacts available, you must first run the bootstrap
command in an online environment to install analyze-deployment-tooling and then copy the installation to your air-gapped environment and make the required Docker images available.
Note: You can only deploy the configuration development environment in an air-gapped environment.
Docker
Public images
To create a Docker registry for use in production, there are a large number of configuration options that you need to implement.
The general concept requires you to be in an online environment. When you install analyze-deployment-tooling the Docker images are pulled from DockerHub. Then you must tag the images and push them to your registry. This registry might be a central server that is located within your air-gapped environment or local to the machine where you are deploying analyze-deployment-tooling.
For example, to create a local registry at localhost:5000
and add the i2group/i2eng-analyze-containers-dev:1.2
image to your registry:
docker run -d -p 5000:5000 --restart=always --name registry registry:2
docker tag i2group/i2eng-analyze-containers-dev:1.2 localhost:5000/i2group/i2eng-analyze-containers-dev:1.2
docker push localhost:5000/i2group/i2eng-analyze-containers-dev:1.2
For information about deploying a Docker registry, see Deploy a registry server.
The system requires access to the following images. Complete the same steps as above tag, and push each image to your registry:
- i2group/i2eng-analyze-containers-dev:1.2
- i2group/i2eng-analyze-containers-client:2.9.2
- eclipse-temurin:ubi-jdk17
- registry.access.redhat.com/ubi9/nodejs-16:1
- i2group/i2eng-analyze-containers-connectors-base-minimal:1
- i2group/i2eng-liberty:ubi
- i2group/i2eng-solr:8.11
- i2group/i2eng-postgres:15
- i2group/i2eng-sqlserver:2022-CU4-rhel-8.7
- grafana/grafana-oss:9.2.6
- i2group/i2eng-prometheus:2.40
- i2group/i2eng-haproxy:2.9
- docker/dockerfile:1.3
Built images
When you run the boostrap
command, the local images that are built by this script must also be provided to your registry.
The process requires you to save the images to a .tar
archive, move the archive files to server where your registry is located, and load the images.
To save an image, run:
docker save <image_name>:<tag> > <image_name>.tar
Copy the
.tar
file to the server where your registry is located.To load an image, run:
docker load < <image_name>.tar
The system requires access to the following images. Complete the same steps as above to save, copy, and load each image to your registry:
etlclient_redhat:4.4.4.0
ac_tools:4.4.4.0
i2a_tools_redhat:4.4.4.0
postgres_client_image:4.4.4.0
sqlserver_client_redhat:4.4.4.0
solr_client_redhat:4.4.4.0
solr_redhat:4.4.4.0
liberty_redhat:4.4.4.0
Analyze-deployment-tooling
After you installed analyze-deployment-tooling on a machine with internet access, you can copy the analyze-deployment-tooling
directory to your air-gapped machine that can communicate with your registry server.
Configure Docker Desktop on your air-gapped machine to use your registry. To make your system use your registry, update your Docker daemon configuration. In Docker desktop, go to Settings > Docker Engine and add the following lines to the JSON file and restart Docker:
"registry-mirrors": [ "http://localhost:5000" ]
Where localhost:5000
is the hostname and port of your registry server.
With the public and built images available in the registry, you can open analyze-deployment-tooling in VS Code and deploy a config.
Maven
The following Maven requirements are built into the images when the system is installed online.
For information about deploying a Maven repository, see Internal Repositories.
The system requires access to the following artifacts:
- aopalliance
- commons-collections
- commons-csv
- commons-exec
- commons-io
- commons-lang
- commons-validator
- cron4j
- guava
- guice-assistedinject
- guice-multibindings
- guice-servlet
- guice-throwingproviders
- guice
- jackson-annotations
- jackson-core
- jackson-databind
- jackson-datatype-jsr310
- jackson-jaxrs-base
- jackson-jaxrs-json-provider
- javax.inject
- kryo
- mapdb
- minlog
- objenesis
- reflectasm
- slf4j-api
- jakarta.xml.bind-api
- solr-core
- httpclient
- httpcore