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-platform Zarf 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

  1. Download the zarf-package-cpsh-lineage-amd64-X.Y.Z.tar.zst Zarf package to a temporary folder such as /tmp/. (The X.Y.Z in the filename represents the Collibra Technical Lineage release version.)

  2. Run the following command to deploy the package:
  3. Copy
    zarf package deploy /tmp/zarf-package-cpsh-lineage-amd64-X.Y.Z.tar.zst

  4. Provide the answers to the Zarf deployment process.
  5. Verify that the deployment process completed successfully by checking the zarf command execution logs. The output should include lines similar to the following:

  6. Copy
    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:

Copy
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:

Copy
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:

Copy
set-maintenance-mode.sh on

Run the following to restore the normal operation mode:

Copy
set-maintenance-mode.sh off

Removal

Run the following to remove the lineage Zarf package:

Copy
zarf package remove cpsh-lineage --confirm`

In the event the installation did not fully complete, manually remove the components using the following helm command:

Copy
helm delete lineage --ignore-not-found --namespace=collibra-instance

Provisioning

The installation provisions two types of users:

  • Administrator: Created with TECHLIN_ADMIN_EMAIL and TECHLIN_ADMIN_PASSWORD inputs. 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_EMAIL with the +user suffix.

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

  1. Connect to the Showcase container in the chosen cluster and namespace:

  2. Copy
    kubectl  --namespace=collibra-instance exec -it lin-showcase-0 -c showcase -- /bin/sh

  3. Open the Django shell:

  4. Copy
    ./manage.py shell_plus

  5. Edit the command to replace any required placeholders (such as<user_email>), if required.

  6. Paste the command.

  7. Click Enter.

User management

Display user details

Edit the <user_email> placeholder and provide the correct value before pasting the following:

Copy
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:

Copy
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:

Copy
user = User.objects.get(email="<user_email>")
user.enable_graph_api = True # or False
user.save()