Installing and configuring the TRIRIGA Application Suite GIS Operator
The IBM® TRIRIGA® Application Suite GIS Operator manages the deployment of the IBM TRIRIGA Application Suite Location Service for Esri instance. TRIRIGA Application Suite Location Service for Esri provides a complete enterprise Geographic Information System (GIS) implementation that runs on Red Hat® OpenShift® Container Platform.
Prerequisites
-
Ensure that you have the following environment:
Any 64-bit Intel or AMD x86 Red Hat OpenShift Container Platform 4.12 or higher cluster, included, but not limited to:
-
Any customer-managed cluster
-
Any IBM Cloud® managed cluster (ROKS and satellite)
-
-
The maximum number of the memory map areas (vm.max_map_count) of the nodes of the Red Hat OpenShift Container Platform cluster must be at least 262144.
-
The Red Hat OpenShift Container Platform cluster must be equipped with at least one StorageClass able to grant read/write permission to the Linux® root group and to support Kubernetes ReadWriteMany or ReadWriteOnce access mode. Review the following considerations about the StorageClasses to be adopted:
-
Set the reclaimPolicy field to Delete to simplify administration. This option cleans up the associated PV when a PVC is deleted (for example, when you undeploy the software).
-
Use a separate StorageClass for the hosted backup store configuration with its reclaimPolicy field set to Retain so that the PV persists when you undeploy and redeploy.
-
Set the allowVolumeExpansion field on the StorageClass to true if your storage provider supports the expansion of PVs.
-
For clusters that span multiple availability zones, set the volumeBindingMode to WaitForFirstConsumer for the associated storage class to avoid node-volume affinity conflicts.
-
-
The cert-manager Operator for Red Hat OpenShift must be deployed on the target cluster, managing the certificates.cert-manager.io/v1 and issuers.cert-manager.io/v1 custom resource definitions. For more information, see cert-manager Operator for Red Hat OpenShift. The cert-manager Operator for Red Hat OpenShift is available in the Red Hat OpenShift-provided Operators catalog (registry.redhat.io/redhat/redhat-operator-index), see https://docs.openshift.com/container-platform/4.16/operators/understanding/olm-rh-catalogs.html.
-
An IBM Entitled Registry key.
-
An IBM TRIRIGA Application Suite Location Service for Esri authorization file, which you can download from your IBM Passport Advantage®
Installing the TRIRIGA Application Suite GIS Operator
Complete the following steps to install the TRIRIGA Application Suite GIS Operator.
-
Create a Red Hat OpenShift Container Platform project, assuming a name ibm-tas-gis.
oc new-project ibm-tas-gis
-
Create the tas-gis-operatorgroup by entering the following command:
cat <<EOF | oc create -f - apiVersion: operators.coreos.com/v1alpha2 kind: OperatorGroup metadata: name: tas-gis-operator-group namespace: ibm-tas-gis spec: targetNamespaces: - ibm-tas-gis EOF
-
Create an image pull secret called ibm-entitlement-key, or ibm-entitlement, to access the IBM Entitled registry.
oc create secret docker-registry ibm-entitlement-key --docker-server=cp.icr.io --docker-username=cp --docker-password=<apikey> --docker-email=<email address> -n ibm-tas-gis
-
Install the TRIRIGA Application Suite GIS Operator. You can use the OperatorHub UI or create a subscription by using the oc CLI as shown.
cat <<EOF | oc create -f - apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: ibm-tas-gis-subscription namespace: ibm-tas-gis spec: channel: v11.6 installPlanApproval: Automatic name: ibm-tas-gis-operator source: ibm-operator-catalog sourceNamespace: openshift-marketplace startingCSV: ibm-tas-gis-operator.v11.6.0 EOF
Where
installPlanApproval
can be set as follows:-
You can decide on the approval strategy by setting the subscription
installPlanApproval
to eitherAutomatic
orManual
.By default, the
installPlanApproval
is set toAutomatic
when working with the OperatorHub UI or if you don't specify a value in the Subscription spec. If the approval strategy is set to Automatic, the operator is automatically installed or upgraded when a new version is available.If you set the
installPlanApproval
parameter toManual
, the operator is not automatically installed or upgraded. Instead, you get an installation plan that needs to be manually approved. With Manual approval, you can plan for any activity that you need to complete before the installation or upgrade of the operator. -
If you install the TRIRIGA Application Suite GIS Operator in a namespace where another operator is installed with
installPlanApproval: Manual
in its subscription, then the operator inherits this setting. The approval plan is set to Manual and the GIS operator is not automatically installed or upgraded. -
If you install the TRIRIGA Application Suite GIS Operator operator with
installPlanApproval
set toManual
, this setting is applied to all installed operators, or operators installed in the future, in the same namespace. -
You can initially set
installPlanApproval
toAutomatic
and switch toManual
when the TRIRIGA Application Suite GIS Operator installation completes. Then you can control when updates are applied and plan for any activity that you need to complete before the operator upgrade.
-
Completing basic configuration
Complete the following basic configuration to get up and running.
- Create a secret to hold the TRIRIGA Application Suite Location Service for
Esri authorization file, which you can
download from your IBM
Passport
Advantage account. Enter the following commands,
assuming a tas-gis-authorization-secret name.
cat <<EOF | oc apply -f - kind: Secret apiVersion: v1 metadata: namespace: ibm-tas-gis name: tas-gis-authorization-secret stringData: authorization.json: | ... Authorization file in json format ... EOF
-
Create a Locservice instance.
Note: Only one Locservice instance can be created in a namespace and it must be named arcgis.You can use the OperatorHub UI or create an instance by using the oc CLI as shown.
cat <<EOF | oc create -f - apiVersion: gis.tas.ibm.com/v1 kind: Locservice metadata: name: arcgis namespace: ibm-tas-gis spec: license: accept: true version: 11.6.0 settings: profile: standard-availability admin: security_question: question: 'What city were you born in?' answer: my-city email: my-emailv@my-domain.com first_name: my-first-name last_name: my-first-name username: my-username authorization_secret: tas-gis-authorization-secret k8s_availability_topology_key: kubernetes.io/hostname storage: indexer: class: my-storage-class size: 16 memory: class: my-storage-class size: 16 object: class: my-storage-class size: 32 prometheus: class: my-storage-class size: 30 queue: class: my-storage-class size: 16 relational: class: my-storage-class size: 20 sharing: class: my-storage-class size: 16 logging: level: warning retention_days: 60 EOF
Completing advanced configuration
Complete the following advanced configuration steps.
TRIRIGA Application Suite GIS Operator route: termination, domain name, and certificates
If you don’t want to use the default URL of the cluster, or if you want to use different certificates, you can configure the IBM® TRIRIGA Application Suite URL and certificates.
All TRIRIGA Application Suite GIS Operator HTTPS endpoints are exposed by using a secure Red Hat
OpenShift route. The default termination of this route is
passthrough and the TLS certificate that is used to secure is self-signed. You
can retrieve the certificate of the certificate authority that is used to sign it from the
data['ca.crt'] field of the arcgis-tas-gis-setup-tls-cert
secret. The fully qualified domain name of the IBM® TRIRIGA
Application Suite Location Service route has the form
arcgis-<namespace>.<domain>
, where domain is the default subdomain of
Red Hat
OpenShift Container Platform cluster.
You can choose a route with reencrypt termination type by setting the
Locservice custom resource (CR) field
spec.route.termination to reencrypt. In this case, you can
provide a custom domain to be used for the route by setting the
spec.route.domain CR field equal to your custom domain. The value must be
matched by the following regular expression:
^((?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,})$
. The fully
qualified domain name of the IBM® TRIRIGA Application Suite
Location Service route assumes the form
arcgis-<namespace>.<custom-domain>
. If the
spec.route.domain field is missing or empty, the default subdomain of Red Hat
OpenShift Container Platform cluster is used as with passthrough. If you use
a custom domain, it is your responsibility to ensure that the DNS provider is correctly
configured
When the termination type is reencrypt, you can also use your own
certificate to secure the IBM® TRIRIGA Application Suite
Location Service route by setting the CR spec.route.tls_certificates field to
the name of a Kubernetes secret of type TLS. The ca.crt field of this secret
can be empty, but must be present, while the tls.key and
tls.crt fields are required. If you use your own certificate, you must ensure
that it can secure the arcgis-<namespace>.<domain>
endpoint, where
<domain> is your custom domain, if you have provided it, or the default
cluster subdomain. If the spec.route.tls_certificates CR field is missing or
empty, the route is secured with the default cluster certificate.
TLS cipher suites
By default, the TRIRIGA Application Suite Location Service for Esri supports the following TLS cipher suites.
-
TLS_AES_128_GCM_SHA256
-
TLS_AES_256_GCM_SHA384
-
TLS_AES_128_CCM_SHA256
-
TLS_AES_128_CCM_8_SHA256
-
ECDHE-ECDSA-AES128-GCM-SHA256
-
ECDHE-RSA-AES128-GCM-SHA256
-
ECDHE-ECDSA-AES256-GCM-SHA384
-
ECDHE-RSA-AES256-GCM-SHA384
You can add other cipher suites by editing the Locservice CR spec.tls_ciphers field. The spec.tls_ciphers field consists of a string of cipher suite identifiers that are separated by a colon (:).
Initial TRIRIGA Application Suite Location Service for Esri admin user password
The TRIRIGA Application Suite GIS Operator generates an initial password for the TRIRIGA Application Suite Location Service for
Esri admin user to be used for the first access to the service. This
password is stored in the Admin Password field of the
arcgis-tas-gis-setup-admin-secret
secret.
Red Hat OpenShift Security Context Constraints requirements
Esri ArcGIS Enterprise workloads have a hardcoded
fsGroup
value to initialize volume permissions on newly provisioned block storage
persistent volumes. This fsGroup
must be allowed by a Security Context Constraint
(SCC) since the default is to run as an arbitrary range. To allow fsGroup
, update a
copy of the restricted or restricted-v2 SCC with the following section:
fsGroup:
ranges:
- max: 117932853
min: 117932853
type: MustRunAs
groups:
- 'system:serviceaccounts:<target-namespace>'
See the following example, assuming that your target namespace is ibm-tas-gis.
cat <<EOF | oc create -f -
apiVersion: security.openshift.io/v1
kind: SecurityContextConstraints
metadata:
name: restricted-v2-gis
fsGroup:
type: MustRunAs
ranges:
- min: 117932853
max: 117932853
groups:
- 'system:serviceaccounts:ibm-tas-gis'
allowHostPorts: false
priority: null
requiredDropCapabilities:
- ALL
allowPrivilegedContainer: false
runAsUser:
type: MustRunAsRange
users: []
allowHostDirVolumePlugin: false
seccompProfiles:
- runtime/default
allowHostIPC: false
seLinuxContext:
type: MustRunAs
readOnlyRootFilesystem: false
defaultAddCapabilities: null
supplementalGroups:
type: RunAsAny
volumes:
- configMap
- downwardAPI
- emptyDir
- ephemeral
- nfs
- persistentVolumeClaim
- projected
- secret
allowHostPID: false
allowHostNetwork: false
allowPrivilegeEscalation: false
allowedCapabilities:
- NET_BIND_SERVICE
Custom resource status
The TRIRIGA Application Suite GIS Operator maintains a status subresource for each Locservice.gis.tas.ibm.com instance that it manages. This status includes both Kubernetes conditions and properties.
Conditions
- Running
- True while the operator is running the reconciliation for the custom resource CR instance.
- Successful
- True when the reconciliation cycle for the CR instance finishes without errors. The operator then waits for the next reconciliation action, either the reconcile period, dependent watches triggers, or the resource is updated.
- Failed
- True if there are errors during the reconciliation run for the CR instance. Error messages from the errors are reported. The error messages are the raw output from the run for reconciliation. Intermittent failures are often resolved when the operator reruns the reconciliation loop.
- Initialized
- True when the arcgis-tas-deploygismgr-pod pod exists and has successfully completed reconciliation.
- Ready
- True when the arcgis-tas-deploygismgr-pod pod exists and has successfully completed reconciliation.
Properties
- tasGisOperatorVersion
- Version of the TRIRIGA Application Suite GIS Operator that does the reconciliation.
- tasGisVersionTag
- The TRIRIGA Application Suite opearand tag.
- operandImages
- A list of operand images that are in use.
- tasGisAdminUrl
- The TRIRIGA Application Suite GIS instance administrative URL.
- tasGisHomeUrl
- The TRIRIGA Application Suite GIS instance home URL.
- tasGisManagerUrl
- TRIRIGA Application Suite GIS instance manager URL.
The arcgis-tas-gis-tririgaproxycfg-secret
secret
arcgis-tas-gis-tririgaproxycfg-secret
secret to host the relevant information to
integrate the deployed TRIRIGA Application Suite Location Service for
Esri instance with a IBM TRIRIGA server. The secret contains two fields:- ca.crt
- A certificate authority certificate to be added to the integration truststore of the IBM TRIRIGA server, when the Location service is using a certificate that is not signed by a public certificate authority. For more information, see Additional CA certificates.
- tririga_proxy_cfg.xml
- A file that contains the information that is needed to create or update the Esri Token in the IBM TRIRIGA server. For more information about configuring the proxy server, see Configuring Indoor Maps.
Upgrade, rollback, and uninstallation
Upgrade
The Operator Lifecycle Manager manages upgrades to the TRIRIGA Application Suite GIS Operator. The subscription of an installed TRIRIGA Application Suite GIS Operator specifies the update channel in the IBM Operator Catalog source, which is used to track and receive updates for the Operator. You can change the update channel in the subscription to have the operator track and receive updates from a newer channel.
If the approval strategy in the subscription is set to automatic, the upgrade process initiates when a new TRIRIGA Application Suite GIS Operator version is available in the selected channel. If the approval strategy is set to manual, you must manually approve pending upgrades.
For more information about how Operator Lifecycle Manager manages upgrades, see Updating installed Operators.
Rollback
This is the first version of the TRIRIGA Application Suite GIS Operator, so no previous version is available.
Uninstallation
To uninstall the TRIRIGA Application Suite Location Service for
Esri deployment from a project, delete the
locservice.gis.tas.ibm.com/arcgis
CR.
To uninstall the TRIRIGA Application Suite GIS Operator from a project:
-
Delete the
locservice.gis.tas.ibm.com/arcgis
CR. -
Delete the TRIRIGA Application Suite GIS Operator subscription from the project.
When the TRIRIGA Application Suite GIS Operator is uninstalled from all namespaces, you can delete the
Locservice CustomResourceDefinition
from the cluster.
Deploying to a disconnected Red Hat OpenShift Container Platform cluster (Air-gap)
Red Hat OpenShift Container Platform clusters that are installed on restricted networks, also known as disconnected clusters, cannot access icr.io and cp.icr.io registries where the TRIRIGA Application Suite images are available. You can enable Operator Lifecycle Manager (OLM) operations by using a local registry, where you can mirror the TRIRIGA Application Suite GIS Operator images.
Before you begin
-
A client workstation with unrestricted network access and that has:
-
oc cli version 4.10.0 or greater
-
podman version 3.4.0 or greater
-
-
A mirror registry that supports Docker v2-2, accessible from both the client workstation and the disconnected target cluster.