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:
- 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.
- 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.
- 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
- 2
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 accountSign in
Already have an account? Sign in here.
Sign In Now