Azure AKS

Azure Kubernetes Service (AKS) offers the quickest way to start developing and deploying cloud-native apps in Azure, datacenters, or at the edge, with built-in code-to-cloud pipelines and guardrails.

Installation with Azure Marketplace

To install Synthesized TDK on an Azure Kubernetes Service cluster through the Microsoft Azure Marketplace, simply follow the on-screen instructions.

Available Plans

The following purchase plans are available:

  1. Pay-as-you-go (PAYG) enables you to pay solely for the time dedicated to TDK execution. Opting for this plan grants you access to the complete array of features without the need to purchase a separate Synthesized license.

  2. Bring your own license (BYOL) enables the utilization of your existing Synthesized license. Choosing this plan provides access to the full range of features and allows unlimited usage until the license due date is reached.

Prerequisites

Ensure that both input and output databases are created before proceeding.

The AKS cluster can either exist already or be created using the installation form.

Application parameters

Set the following parameters:

  • Cluster extension resource name: The value to be used for creating the Kubernetes namespace and associated resources.

  • --input-url: The JDBC URL for the input database. This is mandatory if the value is not already set in the Inventory YAML.

  • --input-username: The username for the input database. The default is set to null.

  • --input-password: The password for the input database. The default is set to null.

  • --output-url: The JDBC URL for the output database. This is mandatory if the value is not already set in the Inventory YAML.

  • --output-username: The username for the output database. The default is set to null.

  • --output-password: The password for the output database. The default is set to null.

  • --config: Configuration YAML. If left unset, the system will default to using the predefined configuration.

  • --inventory: Inventory YAML containing information about data sources. Ensure that either the inventory configuration is set, or the individual parameters such as --input-url, --input-username, --input-password, --output-url, --output-username, --output-password are provided.

  • Job launch schedule: The cron schedule for launching the TDK job. For more details on cron syntax, refer to the provided documentation here.

  • Synthesized license key (only for BYOL plan): Synthesized license key. When opting for the PAYG (Pay-As-You-Go) plan, please leave the Synthesized license key field empty during configuration. Please contact us for more information about obtaining the Synthesized license.

Run job after deployment

Once the Synthesized TDK is deployed, a corresponding CronJob is automatically created. This CronJob is configured to execute the TDK run according to the specified Job launch schedule.

If there’s a need to manually run the TDK job, set the variable RESOURCE_NAME and run the following Kubernetes command:

RESOURCE_NAME={{ Cluster extension resource name }}
kubectl create job --from=cronjob/${RESOURCE_NAME}-synthesized-tdk-cron synthesized-tdk -n ${RESOURCE_NAME}

This command generates a Kubernetes Job named synthesized-tdk from the existing CronJob.

To view logs for the job run, use the following command:

kubectl logs -f jobs/synthesized-tdk -n ${RESOURCE_NAME}

Installation with Helm Chart

Alternatively, you can install TDK using a Helm Chart. Please refer to the following guide for detailed instructions.

Run on the Spot node

It is possible to run TDK on Spot instances. For more information about Spot nodes for AKS, refer to the official docs.

Ensure that the node pool has been added to your cluster.

Create the file values.yaml or add the following properties to the existing one:

tolerations:
  - key: "kubernetes.azure.com/scalesetpriority"
    operator: "Equal"
    value: "spot"
    effect: "NoSchedule"

affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
        - matchExpressions:
          - key: "kubernetes.azure.com/scalesetpriority"
            operator: In
            values:
              - "spot"

For further installation steps, refer to the documentation.