Technical lineage installation and upgrade for CPSH extended capabilities
This section describes the Technical lineage installation for CPSH extended capabilities.
Prerequisites
- The Edge component must be installed and configured prior to the Technical lineage installation.
- Install the
cpsh-platformZarf package. This must be completed before proceeding. - An email address (
TECHLIN_ADMIN_EMAIL) and password (TECHLIN_ADMIN_PASSWORD) used to log in to the technical lineage administrative portal in the event of support cases with Collibra customer services. - The cloud storage bucket where the technical lineage files can be stored, identified by name (
TECHLIN_CS_BUCKET), region (TECHLIN_CS_REGION), accessKeyID (TECHLIN_CS_ID) and secretAccessKey (TECHLIN_CS_SECRET).
Installation
-
Download the
zarf-package-cpsh-lineage-amd64-X.Y.Z.tar.zstZarf package to a temporary folder such as/tmp/. (TheX.Y.Zin the filename represents the Collibra Technical Lineage release version.) - Run the following command to deploy the package:
- Provide the answers to the Zarf deployment process.
-
Verify that the deployment process completed successfully by checking the
zarfcommand execution logs. The output should include lines similar to the following:
zarf package deploy /tmp/zarf-package-cpsh-lineage-amd64-X.Y.Z.tar.zst
2025-08-29 10:37:24 INF running command cmd=Retrieve the techlinHost
2025-08-29 10:37:24 INF waiting for action (no timeout) cmd=Retrieve the techlinHost
INFO: Technical Lineage URL: http://k8s-collibra-istioing-b32146f29c-22e7dbe07f86e406.elb.us-east-2.amazonaws.com
2025-08-29 10:37:24 INF action succeeded cmd=Retrieve the techlinHost
2025-08-29 10:37:24 INF running command cmd=Retrieve the techlinKey
2025-08-29 10:37:24 INF waiting for action (no timeout) cmd=Retrieve the techlinKey
INFO: Technical Lineage token: fd583c69-ba0c-4a84-b053-1bd2d034033b (user: [email protected])
2025-08-29 10:37:28 INF action succeeded cmd=Retrieve the techlinKey
Make sure to store the technical lineage URL (techlinHost) and token (techlinKey) values.
If the package installation fails, clean up the failed attempt and retry by running the following:
helm uninstall --ignore-not-found -n collibra-instance lineage
zarf package remove cpsh-lineage --confirm
Update
The update process is identical to the installation process in that the new Zarf package should be downloaded and deployed using the zarf package deploy command.
Collibra Configuration
Note OAuth authentication is not yet available for Collibra Platform for on-premise customer installations.
Setting up Edge capabilities for technical lineage is similar to the process for "Collibra Platform for Government" customers. (Refer to the documentation for more details.)
The value of the techlinHost and techlinKey properties are logged at the end of the package installation. In the event that the techlinKey property value was not stored, it can be retrieved by running the following command:
zarf tools kubectl exec lin-showcase-0 -c showcase -n collibra-instance -- python manage.py drf_create_token <user-email-address>
Operations
Status
You can verify the overall status of the Technical Lineage system by running the check-lineage-status.sh script script on the Kubernetes cluster where the Technical lineage system is deployed.
Maintenance mode
The Technical lineage system can be place in maintenance mode (such as when maintenance is required for the hosting Kubernetes cluster) by running the set-maintenance-mode.sh script with on as argument:
set-maintenance-mode.sh on
Run the following to restore the normal operation mode:
set-maintenance-mode.sh off
Removal
Run the following to remove the lineage Zarf package:
zarf package remove cpsh-lineage --confirm`
In the event the installation did not fully complete, manually remove the components using the following helm command:
helm delete lineage --ignore-not-found --namespace=collibra-instance
Provisioning
The installation provisions two types of users:
- Administrator: Created with
TECHLIN_ADMIN_EMAILandTECHLIN_ADMIN_PASSWORDinputs. Can log in to the deprecated administrator web console to troubleshoot issues with support. - Standard user: Created to submit analysis and synchronization requests. User email address is the
TECHLIN_ADMIN_EMAILwith the+usersuffix.
Showcase and management commands
Showcase and management commands are related to specific functionalities and tools within the Collibra technical lineage solution.
These commands:
- Install and manage the application: Includes the deployment of tnecessary packages, configuring the environment, and defining variables to connect to other services (like AWS EKS or S3).
- Synchronize data: Triggers the synchronization of metadata from various data sources into the technical lineage system, ensuring that the lineage graph is kept up-to-date.
- Verify and troubleshoot: Checks the status of a deployment, retrieves credentials, and verifies that the system is functioning correctly. Crucial for troubleshooting issues.
- Manage packages: Commands to deploy, remove, or upgrade the Zarf packages that make up the technical lineage system.
The queries in this document are examples that cover common scenarios.
To modify them or create your own, refer to the Making queries | Django.
Before you begin
Use caution when running commands that remove or modify objects. These actions can be irreversible and may affect production data. Always check the target objects and test insafe environments when possible.
How to use
Every query, set of queries, or short script in this document can be copied directly into the Django shell.
Steps
-
Connect to the Showcase container in the chosen cluster and namespace:
-
Open the Django shell:
-
Edit the command to replace any required placeholders (such as
<user_email>), if required. -
Paste the command.
-
Click Enter.
kubectl --namespace=collibra-instance exec -it lin-showcase-0 -c showcase -- /bin/sh
./manage.py shell_plus
User management
Display user details
Edit the <user_email> placeholder and provide the correct value before pasting the following:
def print_user_details(user):
def safe_get(value):
return value if value else "None"
if not user:
print("User not found.")
return
fields = {
"Email": user.email,
"First name": safe_get(user.first_name),
"Last name": safe_get(user.last_name),
"Currently selected client": user.client.name if user.client else "None",
"Access key": str(user.access_key),
"Is active": str(user.is_active),
"Is superuser": str(user.is_superuser),
"Collibra Catalog instance URL": safe_get(user.catalog_url),
"Collibra Catalog instance region": User.Regions(user.catalog_region).label if user.catalog_region else User.Regions.EMPTY.label,
"Collibra Catalog instance cloud": User.Clouds(user.catalog_cloud).label if user.catalog_cloud else User.Clouds.EMPTY.label,
"Collibra Catalog instance last time updated": user.catalog_updated.strftime("%Y-%m-%d %H:%M:%S") if user.catalog_updated else "None",
"Customer name in salesforce:": safe_get(user.catalog_salesforce_name),
"Instance URL": safe_get(user.instance_url),
"Use HostingRegion__c": str(user.use_new_hosting_region),
"Is from salesforce": str(user.is_from_salesforce),
"License Granted": str(user.license_granted),
"Anonymous upload": str(user.anonymous_upload),
"Invited": str(user.invited),
"No notifications": str(user.no_notifications),
"Export custom lineage": str(user.export_custom_lineage),
"Enable graph api": str(user.enable_graph_api),
}
max_key_len = max(len(key) for key in fields) + 2
max_value_len = max(len(str(value)) for value in list(fields.values())) + 2
# Print header
header = f"{'Field':<{max_key_len}} {'Value':<{max_value_len}}"
print(header)
print("=" * (max_key_len + max_value_len))
# Print each field
for key, value in fields.items():
print(f"{key:<{max_key_len}} {value:<{max_value_len}}")
user = User.objects.get(email="<user_email>")
print_user_details(user)
Activate/Deactivate user
Edit the <user_email> placeholder with the correct email and provide the appropriate boolean value before pasting the following:
user = User.objects.get(email="<user_email>")
user.is_active = True # or False
user.save()
Activate/Deactivate graph ingestion for user
Edit the <user_email> placeholder with the correct email and provide the appropriate boolean value before pasting the following:
user = User.objects.get(email="<user_email>")
user.enable_graph_api = True # or False
user.save()