Welcome to yet another troubleshooting post for tmc self-managed operation in VCD. In the last post, I discussed the tmc self-managed deployment issue and how I fixed it. In this post, I will discuss another issue that I encountered with the solution.
After successfully deploying TMC Self-Managed, you must publish the solution to tenants so that they can attach their TKG clusters to TMC. When the publishing operation is performed, the TMC Self-Managed Add-On solution creates a temporary VM known as the solution agent vm, which is subsequently destroyed once the task is complete.
In my lab, the publishing task was completed for a couple of tenants and later when I tried publishing it to another tenant, the task got stuck (VCD was acting cranky at that time).
Once again I have to reach out to Engineering for assistance in troubleshooting this issue. Here are the steps that I followed:
Disclaimer: Before running the below commands in a production environment, consult the GSS team.
1: Obtain VCD Auth Token
|
1 2 3 4 5 6 7 |
Method:POST URL:https://{{vcd_host}}/cloudapi/1.0.0/sessions/provider Authorization:Basic Header:Accept:application/json;version=38.1 |
2: Fetch TMC-SM Solution Add-On Instance UUID
|
1 2 3 4 5 6 7 |
Method:GET URL:https://{{vcd_host}}/cloudapi/1.0.0/entities/types/vmware/solutions_add_on_instance Authorization:BearerToken Header:Accept:application/json;version=38.1 |
This API call returns a list of all solution add-ons installed in the VCD environment. Locate the UUID of the tmc self-managed solution from the response output.
3: Update the ACL of the entity with the VCD System Admin user
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Method:POST URL:https://{{vcd_host}}/cloudapi/1.0.0/entities/urn:vcloud:entity:vmware:solutions_add_on_instance:<uuid>/accessControls Authorization:BearerToken Header:Accept:application/json;version=38.1 Payload: { "tenant":{ "name":"System", "id":"urn:vcloud:org:<system org uuid>" }, "grantType":"MembershipAccessControlGrant", "objectId":"urn:vcloud:type:vmware:person:1.0.0", "accessLevelId":"urn:vcloud:accessLevel:FullControl", "memberId":"urn:vcloud:user:<sys admin user uuid>" } |
4: Get the Solution Add-On Instance with its encryption key.
|
1 2 3 4 5 6 7 |
Method:GET URL:https://{{vcd_host}}/cloudapi/1.0.0/entities/urn:vcloud:entity:vmware:solutions_add_on_instance:<uuid>/fullContents Headers:Accept:application/json;version=39.0.0-alpha-1700608575 Authorization:BearerToken |
In the response output of the above API call, ensure that the encryptionKey is not “******” but has actual value.
4: Update the payload with entity status: “READY” and patch.
In the Response Output of the above API call, you will see the tmc-sm add-on status as PENDING. Change this to READY and use the API to change the status. You need the full json that you obtained in response output.
|
1 2 3 4 5 6 7 8 9 |
Method:PUT URL:https://{{vcd_host}}/cloudapi/1.0.0/entities/urn:vcloud:entity:vmware:solutions_add_on_instance:<uuid> Headers:Accept:application/json;version=39.0.0-alpha-1700608575 Authorization:BearerToken Payload:{responsejsonofpreviousAPIcall} |
And that’s it for this post.
I hope you enjoyed reading this post. Feel free to share this on social media if it is worth sharing.


