The TIBCO Platform is a real-time, composable data platform that will bring together an evolving set of your TIBCO solutions - and it's available now!
A chart showing the TIBCO Platform vision
Jump to content
Articles
Read more about TIBCO use cases, product features, capabilities and more
  • Customizing TIBCO Platform Application Deployments with YAML Extensions


    Alexandre Vazquez

    Introduction

    In the modern cloud-native landscape, extending the functionality of enterprise platforms is a necessity to meet various integration and deployment needs. The TIBCO platform, known for its robust capabilities, offers extensive features for deploying TIBCO  applications. 

    However, there are scenarios where you might want to customize the deployment process to include additional Kubernetes configurations, such as external volumes and environment variables. This article introduces a simple yet effective approach to achieve this using a script named customize-deployment.sh.  The script can be found attached to the bottom of this article.

    This article is applicable to the following TIBCO Platform versions and capabilities;

    • TIBCO Platform Version: 1.2.0 / 1.3.0
    • TIBCO Platform Capabilities: BWCE, Flogo

    Overview

    The customize-deployment.sh script is designed to enhance the deployment capabilities of the TIBCO platform apps by allowing direct references to volumes and environment variables in the Kubernetes YAML files.


    The script leverages the yq command-line tool, which is a powerful YAML processor, to dynamically inject or modify sections in your deployment files and works on a way that merges your additional configuration provided in a YAML file following the Kubernetes structure with the default deployment done by the Platform deployed app.

    Scope

    Currently the script only covers four “YAML” sections; volume, volumeMounts, env and envFrom to be able to properly handle any requirement regarding these components. 

    Prerequisites

    Before diving into the customization process, ensure you have the following prerequisites in place:

    1. Linux environment: The script is bash script so bash needs to be installed and available to be able to run the scripts and the different commands.
    2. yq tool: The yq tool is required for processing YAML files. You can install it from the official repository.

     

    # Install yq
    sudo wget https://github.com/mikefarah/yq/releases/download/v4.44.3/yq_linux_amd64 -O /usr/bin/yq
    sudo chmod +x /usr/bin/yq

    Script Parameters

    The customize-deployment.sh script accepts four parameters:

    • Technology Type: This should be the TIBCO Platform capability from the app that you want to customize:
      • bw - for TIBCO BusinessWorks Container Edition applications
      • flogo - for TIBCO Flogo Enterprise application
    • Application Id : This should be  the identifier of your TIBCO application deployed on the platform.

    AD_4nXdgZOT66bhCH6OU9gcr3wYiS12RcuEe_dfdKAgDLrBGN_cxD0UNrInZRLIbrrWhrEtZfDkGgJVd1UMXj3MKfhWE7x6D3heyZsW0COFv9A8XfOzNCbtYINIgDuKjUQExCUelJBwvSZEA_bbCtLCe7f2357g?key=qvXTeW7qasP3wAks8vV1hQ

     

    • Namespace: The Kubernetes namespace where the application is being deployed.
    • Values File Location: The path to a values.yml file, which contains the main sections of the Kubernetes standard, such as env, envFrom, volumes, and volumeMounts.

    Usage

    The main usage of the script will be the following one:

    ./customize-deployment.sh bw appId test-dp1 values.yaml

    Where the content of the values.yaml will have the following structure:

    volumes:
     - name:  volume1
       secret:
         defaultMode: 420
         secretName: my-super-secret
    envFrom:
    - secretRef:
       name: my-even-super-super-secret
    env:
     - name: APP_VALUE
       valueFrom:
         secretKeyRef:
           key: magic-data
           name: real-super-secret

     

    Use-Cases and Advantages

    This script can be used in several scenarios but key examples include:

    • Integration with external secret management solutions by including Kubernetes secrets as part of the configuration of the app
    • Integration with additional volumes for certificate-management inside the TIBCO apps. 
    • Integration with configuration files through ConfigMaps required as a read-only configuration.

    The script can also be integrated with CICD pipelines and other automation approaches.

    Current Limitations

    This script changes the underlying YAML generated by the platform, so this needs to be run after each new upgrade on the app in the Platform to ensure the additional changes are not getting reverted.

    Conclusion

    The customize-deployment.sh script is a powerful tool for enhancing the deployment process of TIBCO applications within Kubernetes environments. By referencing YAML sections directly, this approach allows for more sophisticated and adaptable deployments, integrating smoothly with the TIBCO platform’s existing features.

    Downloads

    customize-deployment.sh

    • Like 2

    User Feedback

    Recommended Comments

    There are no comments to display.



    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

×
×
  • Create New...