Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
d7a857c
Added labels for deployment of SRS
alemax22 Oct 6, 2024
055226f
Added labels for pods
alemax22 Oct 6, 2024
fbfa7be
Updated documentation
alemax22 Oct 6, 2024
7e70382
Added Unit Tests
alemax22 Oct 6, 2024
f8e72dc
Merge branch 'pegasystems:master' into feature/labels-SRS
alemax22 Oct 9, 2024
41a86f5
Changed name of key to hold the deployment labels
alemax22 Oct 11, 2024
61c4a7a
Merge branch 'feature/labels-SRS' of https://github.com/alemax22/pega…
alemax22 Oct 11, 2024
2661176
Merge branch 'pegasystems:master' into feature/labels-SRS
alemax22 Oct 20, 2024
44bd047
Merge branch 'pegasystems:master' into feature/labels-SRS
alemax22 Oct 23, 2024
e6d5054
Merge branch 'pegasystems:master' into feature/labels-SRS
alemax22 Oct 30, 2024
df6a396
Merge branch 'pegasystems:master' into feature/labels-SRS
alemax22 Nov 6, 2024
2f0ba11
Merge branch 'pegasystems:master' into feature/labels-SRS
alemax22 Nov 7, 2024
94da162
Merge branch 'master' into feature/labels-SRS
alemax22 Nov 11, 2024
3337418
Merge branch 'master' into feature/labels-SRS
alemax22 Nov 14, 2024
619518c
Merge branch 'master' into feature/labels-SRS
alemax22 Nov 26, 2024
65e4155
Merge branch 'pegasystems:master' into feature/labels-SRS
alemax22 Dec 9, 2024
69d4aeb
Merge branch 'master' into feature/labels-SRS
alemax22 Dec 23, 2024
c4bc44f
Merge branch 'master' into feature/labels-SRS
alemax22 Dec 26, 2024
6113b03
Merge branch 'master' into feature/labels-SRS
alemax22 Jan 6, 2025
c3edea4
Merge branch 'master' into feature/labels-SRS
alemax22 Jan 21, 2025
a5b09e1
Merge branch 'master' into feature/labels-SRS
alemax22 Jan 27, 2025
497695e
Merge branch 'master' into feature/labels-SRS
alemax22 Jan 28, 2025
ee59553
Merge branch 'master' into feature/labels-SRS
alemax22 Feb 5, 2025
1e938fb
Merge branch 'master' into feature/labels-SRS
alemax22 Feb 6, 2025
bf280a5
Merge branch 'master' into feature/labels-SRS
alemax22 Feb 13, 2025
07660ea
Merge branch 'master' into feature/labels-SRS
alemax22 Feb 21, 2025
763e4aa
Merge branch 'master' into feature/labels-SRS
alemax22 Mar 5, 2025
7b67d51
Merge branch 'master' into feature/labels-SRS
alemax22 Mar 27, 2025
25b4b52
Merge branch 'master' into feature/labels-SRS
alemax22 Mar 28, 2025
57c5b6d
Merge branch 'master' into feature/labels-SRS
alemax22 Apr 1, 2025
da6b2e7
Merge branch 'master' into feature/labels-SRS
alemax22 Apr 9, 2025
8f84497
Merge branch 'master' into feature/labels-SRS
alemax22 Apr 10, 2025
6dc06a6
Merge branch 'master' into feature/labels-SRS
alemax22 Apr 11, 2025
2978230
Merge branch 'master' into feature/labels-SRS
alemax22 Apr 16, 2025
4b84a2b
Merge branch 'master' into feature/labels-SRS
alemax22 Apr 17, 2025
b0e0350
Merge branch 'master' into feature/labels-SRS
alemax22 Apr 30, 2025
1326b38
Merge branch 'master' into feature/labels-SRS
alemax22 May 1, 2025
50fac25
Merge branch 'master' into feature/labels-SRS
kishorv10 May 5, 2025
2a56906
Merge branch 'pegasystems:master' into feature/labels-SRS
alemax22 May 5, 2025
16bf7d3
Merge branch 'master' into feature/labels-SRS
alemax22 May 9, 2025
5399a5d
Merge branch 'master' into feature/labels-SRS
alemax22 May 12, 2025
0e7b0d1
Merge branch 'master' into feature/labels-SRS
alemax22 May 14, 2025
e723a31
Merge branch 'master' into feature/labels-SRS
alemax22 May 19, 2025
77278a4
Merge branch 'master' into feature/labels-SRS
alemax22 May 23, 2025
5cd6394
Merge branch 'master' into feature/labels-SRS
alemax22 May 28, 2025
2bb78f4
Merge branch 'master' into feature/labels-SRS
alemax22 May 29, 2025
9e9d164
Merge branch 'master' into feature/labels-SRS
alemax22 Jun 4, 2025
17ae397
Merge branch 'master' into feature/labels-SRS
alemax22 Jun 20, 2025
93c7cf5
Merge branch 'master' into feature/labels-SRS
alemax22 Jun 24, 2025
7ca5afb
Merge branch 'master' into feature/labels-SRS
alemax22 Jun 25, 2025
af82c78
Merge branch 'master' into feature/labels-SRS
alemax22 Jul 3, 2025
aeddbc2
Merge branch 'master' into feature/labels-SRS
alemax22 Jul 7, 2025
faa0e32
Merge branch 'master' into feature/labels-SRS
alemax22 Jul 9, 2025
0b7d1be
Merge branch 'master' into feature/labels-SRS
alemax22 Jul 17, 2025
c02f5d1
Merge branch 'master' into feature/labels-SRS
alemax22 Aug 1, 2025
d950464
Merge branch 'master' into feature/labels-SRS
alemax22 Aug 8, 2025
bb05951
Merge branch 'master' into feature/labels-SRS
alemax22 Aug 12, 2025
ebe94a3
Merge branch 'master' into feature/labels-SRS
alemax22 Aug 13, 2025
0c30a12
Merge branch 'master' into feature/labels-SRS
alemax22 Aug 26, 2025
35dcb11
Merge branch 'master' into feature/labels-SRS
alemax22 Sep 19, 2025
441fd0e
Merge branch 'master' into feature/labels-SRS
alemax22 Sep 24, 2025
eb3c527
Merge branch 'master' into feature/labels-SRS
alemax22 Sep 25, 2025
4481739
Merge branch 'master' into feature/labels-SRS
alemax22 Oct 1, 2025
fdfbb4c
Merge branch 'master' into feature/labels-SRS
alemax22 Oct 7, 2025
d12f3c4
Merge branch 'master' into feature/labels-SRS
alemax22 Oct 21, 2025
034407d
Resolved conflict with new tests
alemax22 Oct 29, 2025
50b6522
erge branch 'feature/labels-SRS' of https://github.com/alemax22/pega-…
alemax22 Oct 29, 2025
40c31b5
Merge branch 'master' into feature/labels-SRS
alemax22 Nov 3, 2025
d7f9328
Merge branch 'master' into feature/labels-SRS
alemax22 Nov 5, 2025
2b1c7f9
Merge branch 'master' into feature/labels-SRS
alemax22 Nov 19, 2025
ec52981
Merge branch 'master' into feature/labels-SRS
alemax22 Nov 25, 2025
9fc3f09
Merge branch 'master' into feature/labels-SRS
alemax22 Dec 1, 2025
6092fcb
Merge branch 'master' into feature/labels-SRS
alemax22 Dec 2, 2025
d4b84a5
Merge branch 'master' into feature/labels-SRS
alemax22 Dec 3, 2025
8a5d063
Merge branch 'master' into feature/labels-SRS
alemax22 Dec 8, 2025
c87b018
Merge branch 'master' into feature/labels-SRS
alemax22 Dec 12, 2025
ad45e51
Merge branch 'master' into feature/labels-SRS
alemax22 Dec 15, 2025
145b434
Merge branch 'master' into feature/labels-SRS
alemax22 Dec 16, 2025
da8e947
Merge branch 'master' into feature/labels-SRS
alemax22 Dec 22, 2025
23ab9e2
Merge branch 'master' into feature/labels-SRS
alemax22 Dec 27, 2025
9b8f36b
Merge branch 'master' into feature/labels-SRS
alemax22 Jan 6, 2026
67dd3e2
Merge branch 'master' into feature/labels-SRS
alemax22 Jan 9, 2026
3b5d269
Merge branch 'master' into feature/labels-SRS
alemax22 Jan 20, 2026
ecbac9f
Merge branch 'master' into feature/labels-SRS
alemax22 Jan 27, 2026
e1d95e4
Merge branch 'master' into feature/labels-SRS
alemax22 Feb 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion charts/backingservices/charts/srs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,8 @@ To deploy Pega Platform with the SRS backing service, the SRS helm chart require
|-----------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `enabled` | Enable the Search and Reporting Service deployment as a backing service. Set this parameter to `true` to use SRS. |
| `deploymentName` | Specify the name of your SRS cluster. Your deployment creates resources prefixed with this string. This is also the service name for the SRS. |
| `srsRuntime` | Use this section to define specific resource configuration options like image, replica count, pod affinity, cpu and memory resource settings in the SRS. The default minimum required number of replicas is 2, but as a best practice, deploy 3 replicas to maintain high availability. |
| `deployment.labels` | Provide custom labels for the deployment as metadata to be consumed by other tools and libraries. |
| `srsRuntime` | Use this section to define specific resource configuration options like image, replica count, pod labels, pod affinity, cpu and memory resource settings in the SRS. The default minimum required number of replicas is 2, but as a best practice, deploy 3 replicas to maintain high availability. |
| `busybox` | When provisioning an internally managed Elasticsearch cluster, you can customize the location and pull policy of the Alpine image used during the deployment process by specifying `busybox.image` and `busybox.imagePullPolicy`. |
| `elasticsearch` | Define the elasticsearch cluster configurations. The [Elasticsearch](https://github.com/helm/charts/tree/master/stable/elasticsearch/values.yaml) chart defines the values for Elasticsearch provisioning in the SRS cluster. For internally provisioned Elasticsearch the default version is set to `7.17.9`. Set the `elasticsearch.imageTag` parameter in values.yaml to `7.16.3` to use this supported version in the SRS cluster. |
| `k8sProvider` | Specify your Kubernetes provider name. Supported values are [`eks`, `aks`, `minikube`, `gke`, `openshift`, `pks`].
Expand Down Expand Up @@ -197,13 +198,23 @@ srs:
# specify unique name for the deployment based on org app and/or srs applicable environment name. eg: acme-demo-dev-srs
deploymentName: "YOUR_SRS_DEPLOYMENT_NAME"

deployment:
# Specify additional deployment labels
labels:
key1: value1

# Configure the location of the busybox image that is used during the deployment process of
# the internal Elasticsearch cluster
busybox:
image: "alpine:3.16.0"
imagePullPolicy: "IfNotPresent"

srsRuntime:

# Specify additional pod labels
podLabels:
key1: value1

# Number of pods to provision
replicaCount: 2

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ metadata:
name: {{ template "srs.fullname" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- if and (.Values.deployment) (.Values.deployment.labels) }}
{{ toYaml .Values.deployment.labels | indent 4 }}
{{- end }}
{{- include "srs.srs-service.labels" . | indent 4 }}
spec:
replicas: {{ .Values.srsRuntime.replicaCount }}
Expand All @@ -14,6 +17,9 @@ spec:
template:
metadata:
labels:
{{- if .Values.srsRuntime.podLabels }}
{{ toYaml .Values.srsRuntime.podLabels | indent 8 }}
{{- end }}
{{- include "srs.srs-service.match-labels" . | indent 8 }}
spec:
imagePullSecrets:
Expand Down
129 changes: 88 additions & 41 deletions terratest/src/test/backingservices/srs-deployment_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ func TestSRSDeployment(t *testing.T) {
protocol: "https",
},
false,
[]label{},
[]label{},
})
}

Expand All @@ -59,6 +61,9 @@ func TestSRSDeploymentVariables(t *testing.T) {
"srs.enabled": "true",
"srs.deploymentName": "test-srs-dev",
"global.imageCredentials.registry": "docker-registry.io",
"srs.deployment.labels.key1": "value1",
"srs.deployment.labels.key2": "value2",
"srs.srsRuntime.podLabels.podkey1": "podValue1",
"srs.srsRuntime.replicaCount": "3",
"srs.srsRuntime.srsImage": "platform-services/search-n-reporting-service:1.0.0",
"srs.srsRuntime.imagePullSecretNames": "{secret1, secret2}",
Expand Down Expand Up @@ -103,6 +108,22 @@ func TestSRSDeploymentVariables(t *testing.T) {
region: "us-east-1",
},
true,
[]label{
{
key: "key1",
value: "value1",
},
{
key: "key2",
value: "value2",
},
},
[]label{
{
key: "podkey1",
value: "podValue1",
},
},
})
}

Expand Down Expand Up @@ -153,6 +174,8 @@ func TestSRSDeploymentWithSRSMTLS(t *testing.T) {
protocol: "https",
},
false,
[]label{},
[]label{},
})
}

Expand Down Expand Up @@ -206,6 +229,8 @@ func TestSRSDeploymentSrsEsMtls(t *testing.T) {
protocol: "https",
},
false,
[]label{},
[]label{},
})
}

Expand Down Expand Up @@ -251,6 +276,8 @@ func TestSRSDeploymentWithESMTLS(t *testing.T) {
protocol: "https",
},
false,
[]label{},
[]label{},
})
}

Expand Down Expand Up @@ -302,6 +329,8 @@ func TestSRSDeploymentVariablesDefaultInternetEgress(t *testing.T) {
protocol: "https",
},
true,
[]label{},
[]label{},
})
}

Expand Down Expand Up @@ -352,6 +381,13 @@ func VerifySRSDeployment(t *testing.T, deploymentObj appsv1.Deployment, expected
}
require.Equal(t, expectedDeployment.appName, deploymentObj.Spec.Template.Labels["app.kubernetes.io/name"])
deploymentSpec := deploymentObj.Spec.Template.Spec
// Verify labels
for _, labelpair := range expectedDeployment.depLabels {
require.Equal(t, labelpair.value, deploymentObj.Labels[labelpair.key])
}
for _, labelpair := range expectedDeployment.podLabels {
require.Equal(t, labelpair.value, deploymentObj.Spec.Template.Labels[labelpair.key])
}
VerifyDeployment(t, &deploymentSpec, expectedDeployment)
}

Expand Down Expand Up @@ -547,6 +583,8 @@ type srsDeployment struct {
podLimits podResources
elasticsearchEndPoint esDomain
imagePullSecretNames bool
depLabels []label
podLabels []label
}

type podResources struct {
Expand All @@ -563,26 +601,31 @@ type esDomain struct {
region string
}

type label struct {
key string
value string
}

func TestSRSDeploymentWithMTLSPKIAuthentication(t *testing.T) {
helmChartParser := NewHelmConfigParser(
NewHelmTestFromTemplate(t, helmChartRelativePath, map[string]string{
"srs.enabled": "true",
"srs.deploymentName": "srs-test-mtls-pki",
"global.imageCredentials.registry": "docker-registry.io",
"srs.srsRuntime.replicaCount": "1",
"srs.srsRuntime.srsImage": "platform-services/search-n-reporting-service:latest",
"srs.srsRuntime.env.AuthEnabled": "false",
"srs.srsRuntime.env.OAuthPublicKeyURL": "",
"srs.srsStorage.provisionInternalESCluster": "false",
"srs.srsStorage.domain": "es.example.com",
"srs.srsStorage.port": "9200",
"srs.srsStorage.protocol": "https",
"srs.srsStorage.mtlsWithPKIAuthentication.enabled": "true",
"srs.srsStorage.mtlsWithPKIAuthentication.keystore.file": "client-keystore.p12",
"srs.enabled": "true",
"srs.deploymentName": "srs-test-mtls-pki",
"global.imageCredentials.registry": "docker-registry.io",
"srs.srsRuntime.replicaCount": "1",
"srs.srsRuntime.srsImage": "platform-services/search-n-reporting-service:latest",
"srs.srsRuntime.env.AuthEnabled": "false",
"srs.srsRuntime.env.OAuthPublicKeyURL": "",
"srs.srsStorage.provisionInternalESCluster": "false",
"srs.srsStorage.domain": "es.example.com",
"srs.srsStorage.port": "9200",
"srs.srsStorage.protocol": "https",
"srs.srsStorage.mtlsWithPKIAuthentication.enabled": "true",
"srs.srsStorage.mtlsWithPKIAuthentication.keystore.file": "client-keystore.p12",
"srs.srsStorage.mtlsWithPKIAuthentication.truststore.file": "client-truststore.p12",
"srs.srsStorage.mtlsWithPKIAuthentication.certsSecret": "es-mtls-pki-certssecret",
"srs.srsStorage.basicAuthentication.enabled": "false",
"srs.srsStorage.networkPolicy.enabled": "true",
"srs.srsStorage.mtlsWithPKIAuthentication.certsSecret": "es-mtls-pki-certssecret",
"srs.srsStorage.basicAuthentication.enabled": "false",
"srs.srsStorage.networkPolicy.enabled": "true",
},
[]string{"charts/srs/templates/srsservice_deployment.yaml"}),
)
Expand All @@ -608,38 +651,40 @@ func TestSRSDeploymentWithMTLSPKIAuthentication(t *testing.T) {
protocol: "https",
},
false,
[]label{},
[]label{},
})
}

func TestSRSDeploymentSrsEsMTLSPKI(t *testing.T) {
helmChartParser := NewHelmConfigParser(
NewHelmTestFromTemplate(t, helmChartRelativePath, map[string]string{
"srs.enabled": "true",
"srs.deploymentName": "srs-es-mtls-pki",
"global.imageCredentials.registry": "docker-registry.io",
"srs.srsRuntime.replicaCount": "1",
"srs.srsRuntime.srsImage": "platform-services/search-n-reporting-service:latest",
"srs.srsRuntime.env.AuthEnabled": "false",
"srs.srsRuntime.env.OAuthPublicKeyURL": "",
"srs.srsRuntime.ssl.enabled": "true",
"srs.srsRuntime.ssl.clientAuthentication": "need",
"srs.srsRuntime.ssl.keystore.file": "srs-keystore.p12",
"srs.srsRuntime.ssl.keystore.password": "",
"srs.srsRuntime.ssl.keystore.type": "PKCS12",
"srs.srsRuntime.ssl.truststore.file": "srs-truststore.jks",
"srs.srsRuntime.ssl.truststore.password": "",
"srs.srsRuntime.ssl.truststore.type": "JKS",
"srs.srsRuntime.ssl.certsSecret": "srs-ssl-certssecrets",
"srs.srsStorage.provisionInternalESCluster": "false",
"srs.srsStorage.domain": "es.example.com",
"srs.srsStorage.port": "9200",
"srs.srsStorage.protocol": "https",
"srs.srsStorage.mtlsWithPKIAuthentication.enabled": "true",
"srs.srsStorage.mtlsWithPKIAuthentication.keystore.file": "client-keystore.p12",
"srs.enabled": "true",
"srs.deploymentName": "srs-es-mtls-pki",
"global.imageCredentials.registry": "docker-registry.io",
"srs.srsRuntime.replicaCount": "1",
"srs.srsRuntime.srsImage": "platform-services/search-n-reporting-service:latest",
"srs.srsRuntime.env.AuthEnabled": "false",
"srs.srsRuntime.env.OAuthPublicKeyURL": "",
"srs.srsRuntime.ssl.enabled": "true",
"srs.srsRuntime.ssl.clientAuthentication": "need",
"srs.srsRuntime.ssl.keystore.file": "srs-keystore.p12",
"srs.srsRuntime.ssl.keystore.password": "",
"srs.srsRuntime.ssl.keystore.type": "PKCS12",
"srs.srsRuntime.ssl.truststore.file": "srs-truststore.jks",
"srs.srsRuntime.ssl.truststore.password": "",
"srs.srsRuntime.ssl.truststore.type": "JKS",
"srs.srsRuntime.ssl.certsSecret": "srs-ssl-certssecrets",
"srs.srsStorage.provisionInternalESCluster": "false",
"srs.srsStorage.domain": "es.example.com",
"srs.srsStorage.port": "9200",
"srs.srsStorage.protocol": "https",
"srs.srsStorage.mtlsWithPKIAuthentication.enabled": "true",
"srs.srsStorage.mtlsWithPKIAuthentication.keystore.file": "client-keystore.p12",
"srs.srsStorage.mtlsWithPKIAuthentication.truststore.file": "client-truststore.p12",
"srs.srsStorage.mtlsWithPKIAuthentication.certsSecret": "es-mtls-pki-certssecret",
"srs.srsStorage.basicAuthentication.enabled": "false",
"srs.srsStorage.networkPolicy.enabled": "true",
"srs.srsStorage.mtlsWithPKIAuthentication.certsSecret": "es-mtls-pki-certssecret",
"srs.srsStorage.basicAuthentication.enabled": "false",
"srs.srsStorage.networkPolicy.enabled": "true",
},
[]string{"charts/srs/templates/srsservice_deployment.yaml"}),
)
Expand All @@ -665,5 +710,7 @@ func TestSRSDeploymentSrsEsMTLSPKI(t *testing.T) {
protocol: "https",
},
false,
[]label{},
[]label{},
})
}