-
tdi releases include different versions then claimed in the docs
-
tdi 3.0.0 has newer versions then 4.0.0 for airflow and opensearch
command:cat /opt/broadcom/controller/binaries/release_metadata.json | jq ' [ .releases[] | . as $release | .services[] | { service_name: .name, service_version: .version, release_name: $release.name, release_version: $release.version } ] | group_by(.service_name) | map({ (.[0].service_name): map({ service_version, release_name, release_version }) }) | add '
output:
{ "AIRFLOW": [ { "service_version": "2.10.5", "release_name": "tdi-runtime", "release_version": "4.0.0" }, { "service_version": "3.1.7", "release_name": "tdi-runtime", "release_version": "3.0.0" } ], "CONNECTOR": [ { "service_version": "4.0.0", "release_name": "tdi-controller", "release_version": "4.0.0" } ], "GPCC": [ { "service_version": "7.6.1", "release_name": "tdi-runtime", "release_version": "4.0.0" } ], "GPDB": [ { "service_version": "7.7.1", "release_name": "tdi-runtime", "release_version": "4.0.0" } ], "HDFS": [ { "service_version": "3.4.3", "release_name": "tdi-runtime", "release_version": "4.0.0" }, { "service_version": "3.3.6", "release_name": "tdi-runtime", "release_version": "3.0.0" } ], "ICEBERG": [ { "service_version": "1.10.0", "release_name": "tdi-runtime", "release_version": "4.0.0" }, { "service_version": "1.9.1", "release_name": "tdi-runtime", "release_version": "3.0.0" } ], "JOURNAL_MANAGER": [ { "service_version": "3.4.3", "release_name": "tdi-runtime", "release_version": "4.0.0" }, { "service_version": "3.3.6", "release_name": "tdi-runtime", "release_version": "3.0.0" } ], "JRE": [ { "service_version": "17.0.18", "release_name": "tdi-runtime", "release_version": "4.0.0" }, { "service_version": "11.0.4", "release_name": "tdi-runtime", "release_version": "3.0.0" }, { "service_version": "21.0.4", "release_name": "tdi-controller", "release_version": "4.0.0" } ], "MAPREDUCE": [ { "service_version": "3.4.3", "release_name": "tdi-runtime", "release_version": "4.0.0" }, { "service_version": "3.3.6", "release_name": "tdi-runtime", "release_version": "3.0.0" } ], "OPEN_METADATA": [ { "service_version": "1.12.1", "release_name": "tdi-runtime", "release_version": "4.0.0" } ], "OPEN_SEARCH": [ { "service_version": "3.2.0", "release_name": "tdi-runtime", "release_version": "4.0.0" }, { "service_version": "3.4.0", "release_name": "tdi-runtime", "release_version": "3.0.0" } ], "PXF": [ { "service_version": "7.1.1", "release_name": "tdi-runtime", "release_version": "4.0.0" }, { "service_version": "7.1.1", "release_name": "tdi-runtime", "release_version": "3.0.0" } ], "SPARK_ON_YARN": [ { "service_version": "4.1.1", "release_name": "tdi-runtime", "release_version": "4.0.0" }, { "service_version": "3.5.6", "release_name": "tdi-runtime", "release_version": "3.0.0" } ], "SPARK_STANDALONE": [ { "service_version": "4.1.1", "release_name": "tdi-runtime", "release_version": "4.0.0" }, { "service_version": "3.5.6", "release_name": "tdi-runtime", "release_version": "3.0.0" } ], "YARN": [ { "service_version": "3.4.3", "release_name": "tdi-runtime", "release_version": "4.0.0" }, { "service_version": "3.3.6", "release_name": "tdi-runtime", "release_version": "3.0.0" } ], "ZOOKEEPER": [ { "service_version": "3.9.3", "release_name": "tdi-runtime", "release_version": "4.0.0" }, { "service_version": "3.9.3", "release_name": "tdi-runtime", "release_version": "3.0.0" } ] } -
UI allow selecting versions not downloaded - documented but very stupid
-
Password limitations are horrible limiting the string to 16 chars is dumb and horrible considering industry best practices and VCF standards
-
VM names cant contain any special characters including "-" which is insane - this breaks any normal naming conventions with customers
-
folder placement in vsphere is not possible which is a joke - this is a no go for many customers
-
when deploying a cluster i can only add a password ssh credential not an ssh key credential which is horrible security wise - this makes no sense at any level
-
PLAIN TEXT PASSWORDS IN STRUCTURED LOGS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
file location: /opt/broadcom/connector/logs/connector.log
log example:{"@timestamp":"2026-05-05T05:04:21.209287-06:00","@version":"1","message":"With parameters: [ScriptExecutionRequest(eventId=d23fa3fc-263d-48c6-bb49-7f4058a923cd, scriptRelativePath=tdl-scripts/opensearch/3/install.sh, timeoutSeconds=300, commandParameters=[-o, install], environmentVariables={SERVICE_JAVA_GROUP=jre_user, SERVICE_BINARY_FILE_PATH=opensearch-3.4.0.el9.tar.gz, CRYPTOGRAPHIC_METHOD=SHA256, SERVICE_INSTALLATION_DIRECTORY=/opt/broadcom, SERVICE_INSTALLATION_SYMLINK=/opt/broadcom/opensearch, SERVICE_HOME=/opt/broadcom/opensearch-3.4.0, SERVICE_USER=opensearch, SERVICE_USER_GROUP=opensearch}, files=[opensearch-3.4.0.el9.tar.gz], dependentRelativePaths=[tdl-scripts/common/os-utils.sh], useSudo=true, sudoPassword=<PLAIN_TEXT_PASSWORD>)]","logger_name":"com.broadcom.gphadoop.logging.GpHadoopAsyncConfig","thread_name":"GPDLAsyncThread-8","level":"ERROR","level_value":40000} -
failed job says to look at a file which does not exist!
java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at com.broadcom.gphadoop.job_engine.service.MethodInvocationService.callMethod(MethodInvocationService. java:24) at com.broadcom.gphadoop.job_engine.service.JobService.lambda$retryTask$11(JobService.java:309) at com.broadcom.gphadoop.job_engine.service.ThreadManager.lambda$submit$0(ThreadManager.java:66) at java.base/java.util.concurrent.FutureTask.run(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source) Caused by: com.broadcom.gphadoop.exceptions.GpHadoopException: Remote operation failed. Please review the event logs located at /opt/broadcom/connector/runtime/events/tdl-<failed_events>/<stdout.log or stderr.log> for detailed error information. The following events {10.250.50.40=[d07a9b7e-fdfc-41cf-99dc-2e4eb5dd3867]} have failed or timed out for resource Installing (OPEN_SEARCH), resourceId:92a1ae8f-626e-49c3-9a0b-787af9a01c3a. at com.broadcom.gphadoop.rse.service.RemoteExecutionInvocationService.watchAllEventsForCompletion (RemoteExecutionInvocationService.java:182) at com.broadcom.gphadoop.provisioner.service.operation.TdlService.uploadAndInstall(TdlService.java:446) at com.broadcom.gphadoop.provisioner.tasks.platform.SetupVirtualMachine.installServicesForBaseVms (SetupVirtualMachine.java:710) ... 9 morecommand:
tree /opt/broadcom/connector/runtime/events/
output:
/opt/broadcom/connector/runtime/events/ ├── 21991d5d-b260-4c4b-967f-c46ceb97c59e │ └── opensearch-3.4.0.el9.tar.gz ├── 49759db4-2ac0-410d-902a-c05cfb58861b │ └── opensearch-3.4.0.el9.tar.gz ├── 94b53989-db3c-4089-ac89-2a29947891ab │ └── opensearch-3.4.0.el9.tar.gz ├── c1ce467b-989a-443a-aaae-13933b0769aa │ └── opensearch-3.4.0.el9.tar.gz ├── c395d79d-f363-4b69-b604-c21738b094a7 │ └── opensearch-3.4.0.el9.tar.gz ├── cfdd6d6d-0bf5-40a3-a31c-58f6a504134c │ └── opensearch-3.4.0.el9.tar.gz ├── d07a9b7e-fdfc-41cf-99dc-2e4eb5dd3867 │ └── opensearch-3.4.0.el9.tar.gz └── d23fa3fc-263d-48c6-bb49-7f4058a923cd └── opensearch-3.4.0.el9.tar.gz 8 directories, 8 files -
cant get connection details in the UI for the services like opensearch - found it has no credentials at all which is horrible!
-
no way to reconfigure a cluster eg. add a service, resize a service instance, add storage as a day2 action
-
deleting a cluster retains the vsphere vm folder sometimes and sometimes not which simply leaves garbage behind but is not deterministic
-
node provisioning is sequential and it seems almost everything in cluster creation is sequential. this makes deployment times extremely long for no apparent reason
-
vms have no custom attributes, tags, notes etc. to allow knowing which services are on a VM and all VMs in a cluster have the same name with a numerical suffix making it very hard to correlate and find what is what
-
on instance tab if there are more then 10 instances by default not all are shown , no next page button, need to change instances per page to see all instances which is a horrible UX

-
VMs for a cluster are all deployed with the same hardware config which is not what is configured in the UI and deployed to an incorrect network, only after they are reconfigured. this is horrible and makes no sense a any level
-
the dev roles permissions make no sense for developer users at any level
-
order of tasks in job details are not sortable and are in no normal understandable order

-
start stop and restart actions always available for instances and no visibility into the actual state of the instances. same is true for services in a cluster

-
very unstable, times out often, needs manual retry of tasks, no way to increase timeouts
-
IPs are not allocated in order instead randomly which makes no sense, previously used IPs are not released either in some cases

-
no external IDP integration
-
no visibility into the progress status of the deployment, there should be a visibility into step x/y is being done, or percent complete, estimated time left etc.
-
dashboard data is completely incorrect (number of hosts, number up, number N/A, service counts also are wrong)

-
no dark mode!!!!
-
logs are completely not understandable, typical java junk logs, no clear visibility and troubleshooting possible in the UI just a stacktrace snippet with wrong information! (half the time the files dont exist yet, there is no tdl- prefix in the folder name as is implied in the log, need to scroll insane amounts to the side to find the id of the event and which vm it is on just to piece together where to look for the sometimes existing logs)

-
use local db points at the DB on the controller machine, which is configured to only listen on localhost, requiring changes to the pg_hba.conf and postgresql.conf to make it work

-
small size fails, no prechecks are done. opensearch fails to start because of lack of memory

-
no way to seperate who can see what which makes no sense
-
hosts should show which services are deployed on them currently mapping can only be done via logs, ssh, or ip mapping in your head
-
jobs cant be filtered by name, created by or created/updated fields, only status and resource name which is bad UX
-
audit logs are completely useless with zero valuable data
-
Instances running Greenplum DB Coordinator, Apache Hadoop HDFS secondary data node, Greenplum Command Center, Apache Hadoop YARN Node Manager, Greenplum PXF, Greenplum Database Segment, show as N/A in their hosts status

Last active
May 5, 2026 16:53
-
-
Save vrabbi/68a1fc30098d82b7b43eb5ae55c31d9a to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment