You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We need to install *{rhsi}* in two separate namespaces. +
48
-
The reason for this is to ensure that each third-party network is connected to an isolated _Virtual Application Network_ (VAN).
53
+
=== Installing {rhsi} on {ocp}
54
+
55
+
We need to install *{rhsi}* on the {ocp} cluster as we will need to create two separate Sites in two distinct namespaces. The reason for this is to ensure that each Third-party Site is connected to an isolated _Virtual Application Network_ (VAN).
49
56
50
57
Along with that we will also create _Network Policies_ to ensure that each namespace is only accessible by AAP, so that the third-party servers exposed into the {ocp} cluster can only be reached internally by AAP.
51
58
52
59
==== Installing the *{rhsi}* controller
53
60
54
61
The RHSI controller is deployed to its own namespace and it has the ability to watch for RHSI resources across all namespaces in the {ocp} cluster.
62
+
You can install the RHSI controller using the following approaches:
63
+
64
+
* The Red Hat Service Interconnect Operator (available through the Red Hat operators catalog on OpenShift clusters)
65
+
** NOTE: you must use channel *stable-2*
66
+
* Using YAMLs available through the https://access.redhat.com/downloads[Red Hat Software Downloads page]
67
+
** Product: Red Hat Service Interconnect
68
+
** Version: 2.0.0
69
+
** Type: Distributions
70
+
** File: Skupper deployments (yamls)
55
71
56
-
Let's install the RHSI controller:
72
+
Let's install the RHSI controller using the downloaded YAMLs:
57
73
58
74
* Open a terminal
75
+
* Download the RHSI controller YAMLs from Red Hat Software Downloads page (detailed above)
59
76
* Set the *KUBECONFIG* environment variable
60
77
** You must be logged in as a cluster administrator
* Now wait for the *skupper-controller* pod to be running on the *skupper* namespace:
@@ -117,19 +134,19 @@ The site definiton sets the *_linkAccess_* value to *_default_*. This will ensur
117
134
On {ocp} clusters, a *Route* should be created, otherwise a *LoadBalancer* service will be created.
118
135
This ingress method is used to accept incoming links, coming from other Sites.
119
136
120
-
The `*AccessGrant*` allows a single `*AccessToken*` to be redeemed and it must be redeemed within 30 minutes from `*AccessGrant*` creation, otherwise it won't be valid.
137
+
The `*AccessGrant*` allows a single `*AccessToken*` to be redeemed and it must be redeemed within 30 minutes from `*AccessGrant*` creation, otherwise it won't be valid anymore.
121
138
122
139
Each site has a `*Listener*` for each target server expected by AAP. +
123
140
The `*spec.host*` field determines the service name that will be created on the respective namespace,
124
-
therefore the fully qualified service name will be composed by the `spec.host` field plus the namespace name, matching the hostnames that will be added to the inventories in AAP.
141
+
therefore the fully qualified service name will be composed by the `spec.host` field plus the namespace name, matching the hostnames that will be added to the inventories on AAP.
125
142
126
143
The `*spec.routingKey*` is used to determine the matching Connector.
127
144
So the RHSI sites created inside the third-party networks, must define the respective `*spec.routingKey*`.
128
145
129
-
Along with the RHSI resources, a _Network policy_ will be defined, to add an extra security layer, preventing undesired internal access to your third-party network namespaces. +
130
-
This `*NetworkPolicy*` allows ingress to the `*skupper-router*` pod only coming from pods running on the `*aap*` or the self namespace `*net-a*`.
146
+
Along with the RHSI resources, _Network policies_ will be defined, to add an extra security layer, preventing undesired internal access to your third-party network namespaces. +
147
+
These `*NetworkPolicies*` allow ingress to the `*skupper-router*` pod only coming from pods running on the `*aap*` namespace, the self namespace `*net-a*` or from external sites (through {rhsi} links).
131
148
132
-
To create the namespace, the RHSI site and the network policy, run the following commands in your terminal that has access to the {ocp} cluster. The commands below will first create the resources in a local directory then apply them to the {ocp} cluster.
149
+
To create the namespace, the RHSI site and the network policies, run the following commands in your terminal that has access to the {ocp} cluster. The commands below will first create the resources in a local directory then apply them to the {ocp} cluster.
133
150
134
151
[.console-input]
135
152
[source,shell script]
@@ -203,6 +220,7 @@ spec:
203
220
EOF
204
221
205
222
cat << EOF > cloud/net-a/40-networkpolicy.yaml
223
+
---
206
224
apiVersion: networking.k8s.io/v1
207
225
kind: NetworkPolicy
208
226
metadata:
@@ -224,6 +242,21 @@ spec:
224
242
values: ["aap", "net-a"]
225
243
egress:
226
244
- {}
245
+
---
246
+
apiVersion: networking.k8s.io/v1
247
+
kind: NetworkPolicy
248
+
metadata:
249
+
name: allow-from-router
250
+
namespace: net-a
251
+
spec:
252
+
ingress:
253
+
- from:
254
+
- namespaceSelector:
255
+
matchLabels:
256
+
policy-group.network.openshift.io/ingress: ""
257
+
podSelector: {}
258
+
policyTypes:
259
+
- Ingress
227
260
EOF
228
261
229
262
kubectl apply -f ./cloud/net-a/
@@ -252,9 +285,9 @@ site.skupper.io/net-a OK
252
285
==== Preparing site bundles for the third-party network
253
286
254
287
A site bundle is a compressed file that contains the whole RHSI site definition to run outside of Kubernetes or OpenShift. +
255
-
They can be installed to run as a container, using Podman or Docker and also as a regular process on a {rhel} server, which will require a local installation of the `*skupper-router*` _RPM_ package.
288
+
They can be installed to run as a container, using Podman or Docker and also as a regular process on a {rhel} server, which will require a local installation of the `*skupper-router*` _RPM_ package (explained earlier).
256
289
257
-
The site bundle is an easy approach to install a prepared site definition on a remote location, but you could also create a non-Kubernetes site using the {rhsi} V2 CLI or a bootstrap container.
290
+
The site bundle is an easy approach to install a prepared site definition on a remote location, but you could also create a system site using the {rhsi} V2 CLI or a bootstrap container.
258
291
259
292
Here are the Custom Resources (CRs) needed to define the site bundles.
260
293
@@ -264,7 +297,7 @@ Here are the Custom Resources (CRs) needed to define the site bundles.
264
297
265
298
In order to prepare a site bundle to be installed at the Third Party Networks, we will create the Custom Resources (CRs) needed along with an `*AccessTokens*` that will be extracted from the `*net-a*` namespace running on the {ocp} cluster.
266
299
267
-
To do it, execute the following commands in a terminal that has access to `*net-a*` namespace running on your {ocp} cluster:
300
+
To do it, execute the following commands on a terminal with access to `*net-a*` namespace, running on your {ocp} cluster:
268
301
269
302
[.console-input]
270
303
[source,shell script]
@@ -325,7 +358,7 @@ Now that all the CRs are in place, we must generate the site bundle, using:
skupper --platform podman system setup --path ./internal/net-a -b bundle
329
362
----
330
363
331
364
The bundle will be generated and its location can be found through a message that says:
@@ -338,7 +371,7 @@ Installation bundle available at: /home/my-user/.local/share/skupper/bundles/sku
338
371
339
372
=== Connecting the Third-party Network
340
373
341
-
The last piece to complete the {rhsi} setup is to install the generated site-bundles on the respective server used to reach Third-party Network A (`*net-a*`) hosts.
374
+
The last piece to complete the {rhsi} setup is to install the generated site-bundle on the respective server, used to reach Third-party Network A (`*net-a*`) hosts.
342
375
343
376
To install, you should just send the site bundle file: `*skupper-install-net-a.sh*` to the target server where the RHSI site will be installed, then execute it, for example:
ssh my-user@my-server-third-party-net-a ./skupper-install-net-a.sh -n net-a -p linux
370
404
----
371
405
====
372
406
@@ -378,7 +412,8 @@ Now let's have a quick look at what must be done to install and configure {aap}.
378
412
379
413
We will just briefly explain what is expected from your {aap} installation on the {ocp} cluster.
380
414
381
-
The {aap} installation is expected to run in the "*aap*" namespace, using the {aap} Operator and an instance of the "Ansible Automation Platform" resource must be created.
415
+
The {aap} installation is expected to run in the "*aap*" namespace. +
416
+
Using the {aap} Operator, an instance of the "Ansible Automation Platform" resource must be created.
382
417
383
418
If you need further information, please refer to the https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html-single/installing_on_openshift_container_platform/index#proc-install-cli-aap-operatorinstalling-aap-operator-cli[official installation guide].
384
419
@@ -400,13 +435,13 @@ Here is what we will configure:
400
435
401
436
==== Create a project
402
437
403
-
The Ansible project that will be used in this solution pattern is a simple fork from the ansible-tower-samples repository which includes an extra task that simply creates a directory under `*/tmp*` named `*created-by-aap*`. +
404
-
This helps validate that {aap} has actually connected and performed this respective task against the target host.
438
+
The Ansible project that will be used in this solution pattern is a sample project provided by the Ansible team,
439
+
that simply connects to each server from your inventory and displays a "Hello World" message.
405
440
406
441
In the AAP console, create a project using the following information:
407
442
408
443
* Source control type: *Git*
409
-
* Source control URL: https://github.com/fgiorgetti/ansible-tower-samples.git[*https://github.com/fgiorgetti/ansible-tower-samples.git*]
444
+
* Source control URL: https://github.com/ansible/ansible-tower-samples.git[*https://github.com/ansible/ansible-tower-samples.git*]
0 commit comments