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.sh
Set 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 user1
Install a bundle maintained by the GitHub user, user1
:
install_bundle -download -user user1 bundle-hazelcast-4-app-myapp-cluster-mycluster
To 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 usenone
or choose the one that is the primary product.none
is 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=1
If 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
.none
is 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.1
etc. Use the lettern
if 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.,app
comes beforecluster
,cluster
comes 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,
ln
andny
- 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-ny
bundle-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_dbsched
andperf_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