User Bundle Repos - padogrid/padogrid GitHub Wiki
In addition to PadogGrid's bundle repos, you can also include your own GitHub repos and other users' GitHub repos as part of the PadoGrid's catalog service. This allows PadoGrid users to share their bundles with other users.
There are two (2) ways to include GitHub repos to the bundle catalog service.
List the GitHub user names in the ~/.padogrid/setenv.sh file found in your home directory.
vi ~/.padogrid/setenv.shSet the GITHUB_USERS environment variable to a space-separated list of GitHub user names.
GITHUB_USERS="user1 user2"You can also specify the -user option when you run the show_bundle and install_bundle commands.
Show all bundles maintained by the GitHub user, user1:
show_bundle -all -user user1Install a bundle maintained by the GitHub user, user1:
install_bundle -download -user user1 bundle-hazelcast-4-app-myapp-cluster-myclusterTo properly add your bundle repos to the bundle catalog service, you must follow the naming conventions described in this section. There are two (2) sets of conventions supported by PadoGrid: relaxed and predated. Staring PadoGrid 0.9.7, the relaxed conventions are the first choice and strictly enforced. The predated conventions remain fully supported till further notice but it is recommended that all predated bundles should be migrated to the relaxed conventions.
With the addition of multi-cluster support, starting from PadoGrid 0.9.7, product information must be defined in the file named, required_products.txt and is no longer required as part of the bundle name. The bundle name, however, must start with the prefix bundle-<product_name>- as described below.
bundle-<product_name>-<label>where
-
<product_name>is required and must be one ofcoherence,computedb,gemfire,geode,hadoop,hazelcast,jet,kafka,none,redis,snappydata,spark. If the bundle contains more than one (1) product then either usenoneor choose the one that is the primary product.noneis for bundles that do not emphasize products. -
<label>is any text that uniquely and meaningfully identifies your bundle. This field can also be used to list the additional products if the bundle has more than one (1) product.
The required_products.txt file must list the products required and their versions. If no products are required to run the bundle then this file should be empty. If this file does not exist and the version number is not part of the bundle name, then the install_bundle command defaults to none requiring no products. The file contents must follow the conventions shown below.
# Comments start with '#".
<product1>=<version1>,<version2>,...
<product2>=<version1>,<version2>,...
...
where
-
<product1>is one of the following supported products names. All product names must be in lower case.
| Product Name | For |
|---|---|
| coherence | Oracle Coherence |
| computedb | TIBCO ComputeDB |
| gemfire | VMWare Tanzu GemFire |
| geode | Apache Geode |
| hadoop | Apache Hadoop |
| hazelcast | Hazelcast IMDG OSS or Enterprise |
| hazelcast-enterprise | Hazelcast IMDG Enterprise |
| jet | Hazelcast Jet OSS or Enterprise |
| jet-enterprise | Hazelcast Jet Enterprise |
| kafka | Apache Kafka |
| mosquitto | Mosquitto MQTT Broker (OSS) |
| none | Product not required or emphasized |
| pado | Netcrest Pado |
| redis | Redis |
| snappydata | TIBCO SnappyData |
| spark | Apache Spark |
-
<version1>is a list of comma separated versions. A version number must start with the major version number and should include only the version part numbers that are required.
Examples - required_products.txt
# Run on all Hazelcast IMDG OSS or Enterprise 4.x.x
hazelcast=4
# Run on Hazelcast IMDG Enpterprise 3.x.x and 4.x.x
hazelcast-enterprise=3,4
# Run on Hazelcast IMDG specific versions
hazelast=3.12,4.1.1,4.2
# Run without products installed or checked. By convention, set the version number
# to 1 but it can be any positive number.
none=1If the bundle requires more than one product then list them with versions in separate lines.
The Relaxed Conventions overrides the Predated Conventions. If the required_products.txt file described in the previous section is not found, then PadoGrid defaults to the Predated Conventions described in this section.
❗ The naming conventions described in this section are not enforced but still supported by PadoGrid until further notice.
Each bundle must be in their own repo. The repo name must begin with the prefix bundle- followed by the product name and a hyphen in all lower case.
bundle-<product_name>-<version>-<type>-<names>-<type>-<names>...where
-
<product_name>is required and must be one ofcoherence,computedb,gemfire,geode,hazelcast,hadoop,jet,kafka,none,redis,snappydata,spark.noneis for bundles that do not require a product or require more than one product. -
<version>- Product version. It can be a major, minor, full version or combo number. For example,1,1.12,1.12.0,3n4,3.12n4.0,3.12n4.0n4.1etc. Use the letternif the bundle runs on multiple versions. If a major version is used then it is assumed that the bundle runs on all minor versions. Similarly, if a minor version is used then it is assumed that that the bundle runs on all update versions. -
<type>is a component type. PadoGrid supported component types areapp,cluster,docker,k8s, andpod. You can also include your own types as needed. Component types should be listed in the alphanumerical order, i.e.,appcomes beforecluster,clustercomes beforedocker, and etc. -
<names>is a hyphen separated list of the names of the component type included in the bundle. Names should not include hyphens. Use underscore to separate words if lower case is used. Names can be in mixed case.
bundle-geode-1-app-perf_test_wan-cluster-ln-ny-
bundle-geode-1- app-perf_test_wan-cluster-ln-ny
- Geode version 1.x bundle
- bundle-geode-1- app-perf_test_wan- cluster-ln-ny
- An app named,
perf_test_wan
- An app named,
- bundle-geode-1-app-perf_test_wan- cluster-ln-ny
- Two (2) clusters named,
lnandny
- Two (2) clusters named,
To install this bundle maintained by the GitHub user, user1, you run the following:
install_bundle -user user1 bundle-geode-1-app-perf_test_wan-cluster-ln-nybundle-hazelcast-3-app-pado_dbsched-perf_test_dbsched-cluster-dbsched-
bundle-hazelcast-3- app-pado_dbsched-perf_test_dbsched-cluster-dbsched
- Hazelcast IMDG version 3.x
- bundle-hazelcast-3- app-pado_dbsched-perf_test_dbsched- cluster-dbsched
- Two (2) apps named,
pado_dbschedandperf_test_dbsched
- Two (2) apps named,
- bundle-hazelcast-3-app-pado_dbsched-perf_test_dbsched- cluster-dbsched
- A cluster named,
dbsched
- A cluster named,
To install this bundle maintained by the GitHub user, user1, you run the following:
install_bundle -user user1 bundle-hazelcast-3-app-pado_dbsched-perf_test_dbsched-cluster-dbsched