pegasystems / pega-helm-charts

Orchestrate a Pega Platform™ deployment by using Docker, Kubernetes, and Helm to take advantage of Pega Platform Cloud Choice flexibility.
https://docs.pega.com/bundle/platform/page/platform/deployment/client-managed-cloud/containerized-deployments-kubernetes.html
Apache License 2.0
127 stars 201 forks source link

Constellation Customer Asset Persistence is not Synchronized in New Pods #801

Closed ansaries closed 2 months ago

ansaries commented 3 months ago

Describe the bug I have created the Constellation App Static Service as a StatefullSet, allowing it to use the same PVC upon restart. However, every time a new Pod is created it does not copy the customer assets into its components folder as a new folder with the name of the webnode pod is created in the customers folder.

To Reproduce Kill a running WebNode Pod, it will recreate the Pod with a new name.

Expected behavior Constellation App Static should copy the customer assets into the newly created <folder with webnode's newly created pod name>/components

Chart version Latest

Server (if applicable, please complete the following information):

Additional context

Screenshot 2024-08-18 at 4 23 15 PM Screenshot 2024-08-20 at 10 59 08 AM
maracle6 commented 2 months ago

Have you configured customerAssetVolumeClaimName? By using a ReadWriteMany persistent volume claim all pods will share the same assets without any copying

mithra-keth commented 2 months ago

Hi, @ansaries Could you please go to Infinity's dev studio Clipboard -> System Pages and select pxProcess and check the values for environmentID and pxSystemName before and after restart? Do they change on restart? Could you please share those details? Thanks!

nikhilparmar86 commented 2 months ago

And also pxSystemNode.

ansaries commented 2 months ago

pxSystemNode

Yes, offcourse.

ansaries commented 2 months ago

Hi, @ansaries Could you please go to Infinity's dev studio Clipboard -> System Pages and select pxProcess and check the values for environmentID and pxSystemName before and after restart? Do they change on restart? Could you please share those details? Thanks!

Sure I will do it and will provide info as asked.

ansaries commented 2 months ago

environmentID

Hey @nikhilparmar86 yes the hostnames get updated in the px process. following are the evidences: Before:

Screenshot 2024-08-24 at 4 23 35 PM Screenshot 2024-08-24 at 4 24 47 PM

After:

Screenshot 2024-08-24 at 4 51 37 PM Screenshot 2024-08-24 at 4 48 51 PM Screenshot 2024-08-24 at 4 49 20 PM

I hope this answers the question.

nikhilparmar86 commented 2 months ago

Thank you @ansaries for your response. This is the reason for your issue. Is it possible for you, Can we try to set a fixed value for systemname or nodename at the time of deployment?

ansaries commented 2 months ago

Thank you @ansaries for your response. This is the reason for your issue. Is it possible for you, Can we try to set a fixed value for systemname or nodename at the time of deployment?

Hey @nikhilparmar86, I will have to deploy the Pega Nodes as a Statefull-Set instead of Deployment. Well for sure the hostname will never be changed but:

  1. If I configure HPA then it will create multiple pods with name like pega-web-0, pega-web-1, and so on.
  2. I will have to copy the Assets / Custom Components with folder names matching the pods' names at least only once.

If you think it is fine then I don't mind :)

Thanks, Arslan.

nikhilparmar86 commented 2 months ago

ok @ansaries, but if the unknowing pod restarts for any reason, would the name change pega-web-x or remain same? yes, you can copy assets to the respective new directory portal should work, Alternatively you can save your constellation based application or Reset(remove value save then put same value again to constellation service URL) ConstellationSVCUrl DSS should trigger sync assets to constellation-appstatic service.

ansaries commented 2 months ago

Thank you for your support.