Installing Connectivity Link on OpenShift
Single cluster and multicluster deployments
Abstract
Preface Copy linkLink copied to clipboard!
Providing feedback on Red Hat documentation
Red Hat appreciates your feedback on product documentation.
To propose improvements, open a Jira issue and describe your suggested changes. Provide as much detail as possible to help the documentation team to address your request quickly.
Prerequisite
- You have a Red Hat Customer Portal account. This account enables you to log in to the Red Hat Jira Software instance. If you do not have an account, you will be prompted to create one.
Procedure
- Click the following link: Create issue.
- In the Summary text box, enter a brief description of the issue.
In the Description text box, provide the following information:
- The URL of the page where you found the issue.
- A detailed description of the issue. You can leave the information in other fields at their default values.
- In the Reporter field, enter your Jira user name.
- Click Create to submit the Jira issue to the documentation team.
Thank you for taking the time to provide feedback.
Chapter 1. Connectivity Link prerequisites and permissions Copy linkLink copied to clipboard!
Before you install Connectivity Link, you must ensure that you have access to the required platforms in your environment with the correct user permissions.
1.1. Required platforms and components Copy linkLink copied to clipboard!
- Red Hat account
- You have a Red Hat account with subscriptions for Connectivity Link and OpenShift.
- OpenShift
- OpenShift Container Platform 4.16 or later is installed, or you have access to a supported OpenShift cloud service.
-
You are logged into an OpenShift cluster with the
cluster-admin
role. -
You have the
kubectl
oroc
command installed.
- OpenShift Service Mesh
- Red Hat OpenShift Service Mesh 3.0 is installed on OpenShift as your Gateway API provider. For more details, see the OpenShift Service Mesh installation documentation.
- You have enabled the Gateway API feature in OpenShift Service Mesh 3.0. For more details, see the OpenShift Service Mesh documentation on enabling Gateway API.
- cert-manager Operator for Red Hat OpenShift
cert-manager Operator for Red Hat OpenShift 1.14 is installed to manage the TLS certificates for your Gateways. For more details, see the cert-manager Operator for Red Hat OpenShift documentation.
NoteBefore using a Connectivity Link TLSPolicy, you must set up a certificate issuer for your cloud provider platform. For more details, see the OpenShift documentation on configuring an ACME issuer.
1.2. Optional platforms and components Copy linkLink copied to clipboard!
- DNSPolicy
For DNSPolicy, you have an account for one of the supported cloud DNS providers and have set up a hosted zone for Connectivity Link. For more details, see your cloud DNS provider documentation:
- RateLimitPolicy
For rate limiting policies, you have a shared accessible Redis-based datastore for rate limit counters in a multicluster environment. For details on how to install and configure a secure and highly available datastore, see the documentation for your Redis-compatible datastore:
- AuthPolicy
- For AuthPolicy, you can install Red Hat build of Keycloak if this is required in your environment. For more details, see the Red Hat build of Keycloak documentation.
- Observability
- For Observability, OpenShift user workload monitoring must be configured to remote write to a central storage system such as Thanos. For more details, see the Connectivity Link Observability Guide.
Additional resources
- For more details, see Supported Configurations for Red Hat Connectivity Link.
Chapter 2. Installing Connectivity Link in the OpenShift web console Copy linkLink copied to clipboard!
You can use the OpenShift Container Platform web console to install the Red Hat Connectivity Link Operator.
You must perform these steps on each OpenShift cluster that you want to use Connectivity Link on.
Prerequisites
- See Chapter 1, Connectivity Link prerequisites and permissions.
- You have access to the OpenShift Container Platform web console.
Procedure
-
In the OpenShift Container Platform web console, log in with
cluster-admin
privileges. - In the left navigation menu, click Operators > OperatorHub.
-
In the Filter by keyword text box, enter
Connectivity
to find the Red Hat Connectivity Link Operator. - Read the information about the Operator, and click Install to display the Operator subscription page.
Select your subscription settings as follows:
- Update Channel: stable
- Version: 1.0.2
- Installation mode: All namespaces on the cluster (default).
- Installed namespace: Select the namespace where you want to install the Operator, for example, kuadrant-system. If the namespace does not already exist, click this field and select Create Project to create the namespace.
- Approval Strategy: Select Automatic or Manual.
- Click Install, and wait a few moments until the Operator is installed and ready for use.
- Click Operators > Installed Operators > Red Hat Connectivity Link.
- Click the Kuadrant tab, and click Create Kuadrant to create a deployment.
- In the Configure via field, click YAML view to edit the definition, for example, the deployment name.
- Click Create and wait for the deployment to be displayed in the list.
Verification
After you have installed the Operator, click Operators > Installed Operators to verify that the Red Hat Connectivity Link Operator and the following component Operators are installed in your namespace:
- Red Hat - Authorino Operator: Enables authentication and authorization for Gateways and applications in a Gateway API network.
- Red Hat - DNS Operator: Configures how north-south traffic from outside the network is balanced and reaches Gateways.
- Red Hat - Limitador Operator: Enables rate limiting for Gateways and applications in a Gateway API network.
Additional resources
Chapter 3. Installing Connectivity Link on OpenShift from the command line Copy linkLink copied to clipboard!
You must perform these steps on each OpenShift cluster that you want to use Connectivity Link on.
Prerequisites
Procedure
Create the namespace where you want to install the Operator as follows, for example,
kuadrant-system
:kubectl create ns kuadrant-system
kubectl create ns kuadrant-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow To install the Connectivity Link Operator, enter the following command:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Wait for the Connectivity Link Operators to be installed as follows:
kubectl get installplan -n kuadrant-system -o=jsonpath='{.items[0].status.phase}'
kubectl get installplan -n kuadrant-system -o=jsonpath='{.items[0].status.phase}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow After some time, this command will return
Complete
when ready.To create your Connectivity Link deployment, enter the following command:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Wait for Kuadrant to be ready as follows:
kubectl wait kuadrant/kuadrant --for="condition=Ready=true" -n kuadrant-system --timeout=300s
kubectl wait kuadrant/kuadrant --for="condition=Ready=true" -n kuadrant-system --timeout=300s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow This command will return
Complete
when ready.
Additional resources
Chapter 4. Authenticating to registry.redhat.io for Wasm plug-in access Copy linkLink copied to clipboard!
For RateLimitPolicy and AuthPolicy only, you must authenticate to registry.redhat.io
to access the Wasm plug-in image used with OpenShift Service Mesh as the Gateway API provider.
Prerequisites
-
You have credentials to access
registry.redhat.io
. If you do not have access, see Creating Registry Service Accounts.
Procedure
Create the namespace for your Gateway, for example:
oc create ns api-gateway
oc create ns api-gateway
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the following secret in your Gateway namespace:
oc create secret docker-registry wasm-plugin-pull-secret -n api-gateway \ --docker-server=registry.redhat.io \ --docker-username=your-registry-service-account-username \ --docker-password=your-registry-service-account-password
oc create secret docker-registry wasm-plugin-pull-secret -n api-gateway \ --docker-server=registry.redhat.io \ --docker-username=your-registry-service-account-username \ --docker-password=your-registry-service-account-password
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Repeat this step in each Gateway namespace in which you deploy a RateLimitPolicy or AuthPolicy.
Chapter 5. Configuring DNS provider credentials Copy linkLink copied to clipboard!
If you want to configure DNS policies in Connectivity Link, you must configure credentials for at least one of the following supported cloud-based DNS providers:
- Amazon Route 53
- Google Cloud DNS
Microsoft Azure DNS
NoteYou must perform the steps for your chosen DNS provider on each OpenShift cluster that you want to use Connectivity Link on. You must configure the secret for the DNS provider in the same namespace that will include your Gateway.
Prerequisites
- See Chapter 1, Connectivity Link prerequisites and permissions.
You have access to the namespace in which your Gateway will be created, for example,
api-gateway
.NoteThis guide uses environment variables for convenience only. If you know the environment variable values, you can set up the required
.yaml
files in a way that suits your needs.
5.1. Configuring Amazon DNS provider credentials Copy linkLink copied to clipboard!
Procedure
Set up your environment variables as follows:
export AWS_ACCESS_KEY_ID=xxxxxxx export AWS_SECRET_ACCESS_KEY=xxxxxxx export AWS_REGION=your-aws-region
export AWS_ACCESS_KEY_ID=xxxxxxx export AWS_SECRET_ACCESS_KEY=xxxxxxx export AWS_REGION=your-aws-region
Copy to Clipboard Copied! Toggle word wrap Toggle overflow These variable values are described as follows:
-
AWS_ACCESS_KEY_ID
: Key ID from AWS with Route 53 access. -
AWS_SECRET_ACCESS_KEY
: Key from AWS with Route 53 access. -
AWS_REGION
: Your AWS region, for example,us-east-2
oreu-west-1
.
-
Create a
Secret
resource for your credentials as follows:Copy to Clipboard Copied! Toggle word wrap Toggle overflow In this case, you must set the secret
type
toaws
.
Additional resources
5.2. Configuring Google DNS provider credentials Copy linkLink copied to clipboard!
Procedure
Set up your environment variables as follows:
export GOOGLE=xxxxxxx export PROJECT_ID=xxxxxxx
export GOOGLE=xxxxxxx export PROJECT_ID=xxxxxxx
Copy to Clipboard Copied! Toggle word wrap Toggle overflow These variable values are described as follows:
-
GOOGLE
: Google credentials JSON file. PROJECT_ID
: Google project ID.The
GOOGLE
variable specifies the JSON credentials generated by thegcloud
CLI or by the service account. For example,$HOME/.config/gcloud/application_default_credentials.json
, which contains the following:{"client_id": "***","client_secret": "***","refresh_token": "***","type": "authorized_user"}
{"client_id": "***","client_secret": "***","refresh_token": "***","type": "authorized_user"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Create a
Secret
resource for your credentials as follows:kubectl create secret generic test-gcp-credentials \ --namespace=api-gateway \ --type=kuadrant.io/gcp \ --from-literal=PROJECT_ID=$PROJECT_ID \ --from-file=GOOGLE=$GOOGLE
kubectl create secret generic test-gcp-credentials \ --namespace=api-gateway \ --type=kuadrant.io/gcp \ --from-literal=PROJECT_ID=$PROJECT_ID \ --from-file=GOOGLE=$GOOGLE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow In this case, you must set the secret
type
togcp
.
Additional resources
5.3. Configuring Azure DNS provider credentials Copy linkLink copied to clipboard!
Procedure
Create a new Azure service principal for managing DNS as follows:
DNS_NEW_SP_NAME=kuadrantDnsPrincipal DNS_SP=$(az ad sp create-for-rbac --name $DNS_NEW_SP_NAME) DNS_SP_APP_ID=$(echo $DNS_SP | jq -r '.appId') DNS_SP_PASSWORD=$(echo $DNS_SP | jq -r '.password')
DNS_NEW_SP_NAME=kuadrantDnsPrincipal DNS_SP=$(az ad sp create-for-rbac --name $DNS_NEW_SP_NAME) DNS_SP_APP_ID=$(echo $DNS_SP | jq -r '.appId') DNS_SP_PASSWORD=$(echo $DNS_SP | jq -r '.password')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow For more details on service principals, see the Microsoft Azure documentation.
To grant read and contributor access to the zones that you want managed for the service principal you are using, perform the following steps:
Fetch the DNS ID used to grant access to the service principal as follows:
DNS_ID=$(az network dns zone show --name example.com \ --resource-group ExampleDNSResourceGroup --query "id" --output tsv) # Get your resource group ID RESOURCE_GROUP_ID=az group show --resource-group ExampleDNSResourceGroup | jq ".id" -r
DNS_ID=$(az network dns zone show --name example.com \ --resource-group ExampleDNSResourceGroup --query "id" --output tsv) # Get your resource group ID RESOURCE_GROUP_ID=az group show --resource-group ExampleDNSResourceGroup | jq ".id" -r
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Provide reader access to the resource group as follows:
az role assignment create --role "Reader" --assignee $DNS_SP_APP_ID --scope $DNS_ID
az role assignment create --role "Reader" --assignee $DNS_SP_APP_ID --scope $DNS_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Provide contributor access to the DNS zone as follows:
az role assignment create --role "Contributor" --assignee $DNS_SP_APP_ID --scope $DNS_ID
az role assignment create --role "Contributor" --assignee $DNS_SP_APP_ID --scope $DNS_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Because you are setting up advanced traffic rules for geographic and weighted responses, you must also grant traffic manager and DNS zone access as follows:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a
Secret
resource for your credentials as follows:kubectl create secret generic test-azure-credentials \ --namespace=api-gateway \ --type=kuadrant.io/azure \ --from-file=azure.json=/local/path/to/azure.json
kubectl create secret generic test-azure-credentials \ --namespace=api-gateway \ --type=kuadrant.io/azure \ --from-file=azure.json=/local/path/to/azure.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow In this case, you must set the secret
type
toazure
.
Additional resources
Chapter 6. Configuring Redis storage for rate limiting Copy linkLink copied to clipboard!
To configure persistence for rate limit counters in a multicluster environment, you must configure the connection details for your shared Redis-based datastore. This datastore is used to persist shared rate limit counters for the Limitador component of Connectivity Link.
You must configure connection details for your shared Redis-based datastore on each OpenShift cluster that you want to use Connectivity Link for rate limiting.
Prerequisites
Procedure
Set the following environment variable to your shared Redis-based instance URL:
export REDIS_URL=rediss://user:xxxxxx@some-redis.com:10340
export REDIS_URL=rediss://user:xxxxxx@some-redis.com:10340
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ensure that you include the appropriate URI scheme for your environment:
-
Secure Redis:
rediss://
-
Standard Redis:
redis://
-
Secure Redis:
Create a
Secret
resource for your Redis URL as follows:kubectl -n kuadrant-system create secret generic redis-config \ --from-literal=URL=$REDIS_URL
kubectl -n kuadrant-system create secret generic redis-config \ --from-literal=URL=$REDIS_URL
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Update your Limitador custom resource to use the secret that you created as follows:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Additional resources
For details on how to set up your shared Redis-based datastore, see your Redis-compatible product documentation:
Chapter 7. Enabling the Connectivity Link dynamic plug-in in OpenShift Copy linkLink copied to clipboard!
The Connectivity Link Operator automatically installs and configures the Connectivity Link dynamic plug-in for the OpenShift web console. You can use the Connectivity Link dynamic plug-in to view and manage your Gateways and policies in the OpenShift web console.
You must perform these steps on each OpenShift cluster that you want to use the Connectivity Link dynamic plug-in.
Prerequisites
- See Chapter 1, Connectivity Link prerequisites and permissions.
- You have access to the OpenShift Container Platform web console.
Procedure
-
In the OpenShift Container Platform web console, log in with
cluster-admin
privileges. - In the left navigation menu, select the Administrator perspective.
- Click Home > Overview.
- In the Status panel, click Dynamic Plugins > View all.
- On the Console plugins tab, find the kuadrant-console-plugin entry in the table, which should be listed but disabled.
- In the kuadrant-console-plugin row, click Disabled.
- Select the Enable option, and click Save.
- Wait for the plug-in status to change to Loaded.
Verification
When the plug-in is enabled, refresh the console. You will see a new Connectivity Link menu item in the navigation sidebar.
You can click Connectivity Link > Overview to explore the available resources and to get started with creating a Gateway and configuring policies in the OpenShift web console.
Next steps
- For examples of Gateway and policy configuration, see Configuring and deploying Gateway policies with Connectivity Link.
Appendix A. Using your Red Hat subscription Copy linkLink copied to clipboard!
Red Hat Connectivity Link is provided through a software subscription. To manage your subscriptions, access your account at the Red Hat Customer Portal.
Managing your subscriptions
- Go to access.redhat.com.
- If you do not already have an account, create one.
- Log in to your account.
- In the menu bar, click Subscriptions to view and manage your subscriptions.
Revised on 2025-05-14 11:02:20 UTC