You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
My client runs multiple pega plattform installations in multiple environments. In order to maintain a clean deployment configuration for each plattform installation and environments we install the pega-helm-chart/pega by providing the helm install with multiple values.yaml. At least one dev-common.yaml and an pega-plattform specific yaml dev-pega-1.yaml. The one provided latest overwrites properties of the previous. The frustration lies in the nature on how lists are overwritten/merged. In this specific matter it applies to the tier list. When providing a common configuration for the web tier (common.yaml) which is refined by additional pega-plattform specific web tier configuration (dev-pega-1.yaml) the entire web node tier item is overwritten and not merged.
...
tier:
- name: "web"ingress:
domain: "dev-pega-1.example.com"# specific for each plattform
...
Output:
tier:
name: "web"nodeType: "WebUser"requestor:
passivationTimeSec: 900service:
# annotation is missinghttpEnabled: trueport: 80targetPort: 8080... # other defaults defined in charts values.yamlingress:
domain: "dev-pega-1.example.com"# specific for each plattform
Example for configuration which might be the same across pega-plattforms in the same environment:
web nodes port (tier[web].service.port, tier[web].service.targetPort)
Solution:
Switch from using a list for tier to using key-value. This would allow helm to clearly identify objects and would result in merging them together.
Ex:
tier:
web:
nodeType: "WebUser"requestor:
passivationTimeSec: 900service:
annotation:
something: "some-common-annotation-for-all-web-nodes-in-dev"httpEnabled: trueport: 80targetPort: 8080... # other defaults defined in charts values.yamlingress:
domain: "dev-pega-1.example.com"# specific for each plattform
Alternatives
Not following a clean common/specific value file separation model. Right now we define all the tiers in the pega plattform specific yaml (dev-pega-1.yaml) which is not a clean and error prone solution
Additional context
Add any other context or screenshots about the feature request here.
Debugging of the resulting values applied can be done by
The text was updated successfully, but these errors were encountered:
@micgoe As you may be aware, this is the limitation with the Helm in using arrays. I will discuss internally the need to convert lists to maps, but I see fewer chances of it being implemented in the product.
The current version of charts is widely adopted, list to map change is a major refactoring, possibly breaking BW compatibility.
I also suggest trying out custom solutions tailored to your specific needs.
Problems / Request
My client runs multiple pega plattform installations in multiple environments. In order to maintain a clean deployment configuration for each plattform installation and environments we install the pega-helm-chart/pega by providing the helm install with multiple values.yaml. At least one
dev-common.yaml
and an pega-plattform specific yamldev-pega-1.yaml
. The one provided latest overwrites properties of the previous. The frustration lies in the nature on how lists are overwritten/merged. In this specific matter it applies to thetier
list. When providing a common configuration for the web tier (common.yaml
) which is refined by additional pega-plattform specific web tier configuration (dev-pega-1.yaml
) the entire web node tier item is overwritten and not merged.Example:
Input:
dev-common.yaml
dev-pega-1.yaml
Output:
Example for configuration which might be the same across pega-plattforms in the same environment:
Solution:
Switch from using a list for tier to using key-value. This would allow helm to clearly identify objects and would result in merging them together.
Ex:
Alternatives
Not following a clean common/specific value file separation model. Right now we define all the tiers in the pega plattform specific yaml (
dev-pega-1.yaml
) which is not a clean and error prone solutionAdditional context
Add any other context or screenshots about the feature request here.
Debugging of the resulting values applied can be done by
The text was updated successfully, but these errors were encountered: