Install Connect Agent
| The GridOS Connect Agent is only supported on version 1.16.0 or later. Make sure you have upgraded your GridOS Connect deployment to a supported version. |
Prerequisites
Before you install the Connect Agent, make sure your environment meets the following system requirements:
Hardware
Connect Agent can only be installed on a 64-bit version of Linux. This can be on a dedicated server or virtual machine but must meet the following criteria:
| Hardware | Recommended minimum requirements |
|---|---|
Processor |
Dual 64-bit processors. More processors allow for increased, simultaneous flow executions. |
Memory |
4 GB of RAM. More RAM allows for increased, simultaneous flow executions and might be required to process large data payloads. |
Hard disk |
10GB. SSD based storage is recommended for the best performance. |
Software
You will need to install Docker (with Docker Compose), version 20.10.0 or higher.
|
Create an Agent in the Heartbeat Console
To get started with Connect Agent, first create an Agent in Heartbeat:
-
Navigate to the Connect Console, and select
Agentsfrom the left navigation menu:
-
Select the Create Agent in the top right corner and enter a name, which generates the Agent ID.
The ID is required for your Heartbeat Agent configuration and for the client mTLS certificate during the Heartbeat Agent installation.
To view the Connect cluster certificate, select the information icon (ⓘ) for the agent you created.
A dialog box opens, where you can view the Connect cluster certificate and copy the certificate details.
Create a Zitadel Service User for the Connect Agent
To send deployment data to the Connect cluster, the Connect Agent authenticates by using the OAuth 2.0 client credentials grant.
Create a Zitadel service user and ensure the following:
-
One of the user groups in the
data.groupsarray for the Zitadel Service User ConfigMap MUST be associated with the Connect Agent role. See Connect Roles for more information about the available GridOS Connect roles. -
Run the following command to retrieve your Client ID, Client Secret, and Zitadel project ID.
kubectl get secret connect-deployer -o=yamlYou can use the obtained values in your configuration file.
-
To retrieve the secrets, see the Zitadel service user credentials, run the
kubectlcommands and use the values in the configuration file.
Install the Connect Agent
Accessing the Connect Agent artifacts
The Connect Agent artifacts are available in GE Vernova Artifactory, if you don’t have access see the GE Vernova Electrification Software Customer Portal access section of the documentation.
If you are deploying to a machine with network access to Artifactory, login with your docker client.
docker login dig-grid-artifactory.apps.ge.com
Deployment Artifacts for Air-Gapped Machines
| If you are deploying to a machine with network access to the Artifactory, you can skip this section. |
-
Visit the connect-releases repository.
-
Download the
connect-agent-cache-container-{version}.tgzfile to your deployment machine. -
Load the cache container contents to your local environment:
# Load the Connect Agent cache image docker load < connect-agent-cache-container-{version}.tgz # Fetch the Connect agent docker images from the cache docker run --rm -it \ -v ${PWD}:/app/artifacts \ --entrypoint bash \ grid-oslo-docker/connect-agent-cache:{version} -c 'cp data/connect-agent-images.tar.gz artifacts' # Extract connect-agent-images.tar tar xvfz connect-agent-images.tar.gz # Load the 4 Connect Agent images (vector, postgres, connect-agent and connect-agent-starter) docker load < connect-agent-images.tar # you can remove the intermediary container images and tarballs to free up storage docker rmi grid-oslo-docker/connect-agent-cache:{version} rm connect-agent-cache-container-*.tgz rm connect-agent-images.tar*
Target Machine Deployment Preparations
-
On your deployment target Linux machine, create an installation directory. For example:
export AGENT_INSTALL_DIR=~/connect-agent-installation mkdir -p $AGENT_INSTALL_DIR/certRemove unwanted log archive files. These are stored as
.gzfiles in the logging directory:${AGENT_INSTALL_DIR}/data/connect-agent/logs. -
Visit the connect-releases repository.
-
Download the
connect-agent-{version}.zipfile to your installation directory. -
Extract the zip file to your installation directory:
cd ${AGENT_INSTALL_DIR} unzip connect-agent-{version}.zip -
To view the connect cluster certificate, select Expand to see certificate. This certificate is your server-ca-cert. Copy the server-ca-cert PEM file to
${AGENT_INSTALL_DIR}/cert/ca.crt. -
Create client-ca-cert and upload the ca-crt certificate to the Connect Console.
-
Copy the client-crt PEM file to
${AGENT_INSTALL_DIR}/cert/client.crt. -
Copy the client-key PEM file to
${AGENT_INSTALL_DIR}/cert/client.key.
Rename (or copy) the connect-agent-template.env file to its new name connect-agent.env.
| Each new Connect Agent release will come with a (possible modified) version of this file. Hence, renaming it will ensure that the changes applied to this file will not be overwritten by a new release. |
Open the new connect-agent.env file and fill in the following properties:
| Property | Description |
|---|---|
|
The unique ID for this Connect Agent. This ID is provided when adding a new Connect Agent in the Connect Console. For example: |
|
The |
|
The FQDN for the main GridOS Connect cluster. See |
|
The environment name of the main GridOS Connect cluster. As used in the deployment directory as well as the deployment config. For example: |
|
Decryption key for credentials stored in |
|
Select a cryptographically secure password to be used for the Connect Agent PostgreSQL server running on the Agent environment. Do not change after first installation. For example: |
|
The client ID of the service user used for publishing to the upstream server API. Same as used for SDK deployer. This pertains to the section above. For example: |
|
The client secret of the service user used for publishing to the upstream server API. Same as used for SDK deployer. This pertains to the section above. For example: |
|
The scope used for publishing to the upstream server API. Same as used for SDK deployer. This pertains to the section above. For example: |
|
URI for HTTP proxy. (Optional) |
|
The username which will be used for HTTP proxy authentication. (Optional) |
|
The password which will be used for HTTP proxy authentication. (Optional) |
|
Number of seconds between each time the Connect Agent polls for new deployments (default is 120 seconds). |