Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
65ee84c
fix: #302
bhumi46 Jul 23, 2026
a2b23aa
fix: #302
bhumi46 Jul 23, 2026
51d6673
fix: #302
bhumi46 Jul 23, 2026
206b319
fix: #302
bhumi46 Jul 23, 2026
940db50
Merge pull request #303 from bhumi46/es-go-test
bhumi46 Jul 23, 2026
aba3fa4
Update aws.tfvars
bhumi46 Jul 23, 2026
d6904b2
Terraform files (encrypted state) GitHub Actions - aws-infra
bhumi46 Jul 23, 2026
a7f1b31
Update aws.tfvars
bhumi46 Jul 23, 2026
9f859f8
Terraform files (encrypted state) GitHub Actions - aws-infra
bhumi46 Jul 23, 2026
2263db9
Update external-dsf.yaml
bhumi46 Jul 23, 2026
e9aeffb
fix: #302
bhumi46 Jul 23, 2026
ab64286
Merge upstream/es-go-test (post-PR#303 deployment progress) into loca…
bhumi46 Jul 23, 2026
dfb21be
Merge pull request #304 from bhumi46/es-go-test
bhumi46 Jul 23, 2026
5660544
fix: #302
bhumi46 Jul 23, 2026
3876f21
Merge upstream/es-go-test (post-PR#304 merge) into local es-go-test
bhumi46 Jul 23, 2026
b32c47e
fix: #302
bhumi46 Jul 23, 2026
cfc8f24
Merge pull request #305 from bhumi46/es-go-test
bhumi46 Jul 23, 2026
f31aea3
fix: #302
bhumi46 Jul 23, 2026
3c0f180
Merge upstream/es-go-test (post-PR#305 merge) into local es-go-test
bhumi46 Jul 23, 2026
94597f7
Merge pull request #306 from bhumi46/es-go-test
bhumi46 Jul 23, 2026
7b26619
fix: #302
bhumi46 Jul 24, 2026
a17de5b
fix: #302
bhumi46 Jul 24, 2026
fe995e5
fix: #302
bhumi46 Jul 24, 2026
5c341b7
Terraform destroy cleanup GitHub Actions - aws-infra
bhumi46 Jul 24, 2026
031b962
Merge pull request #307 from bhumi46/es-go-test
bhumi46 Jul 25, 2026
2f2fc9e
Update aws.tfvars
bhumi46 Jul 26, 2026
6e4fb0e
Update aws.tfvars
bhumi46 Jul 26, 2026
32ff005
Terraform files (encrypted state) GitHub Actions - aws-infra
bhumi46 Jul 26, 2026
b25a793
updated chart-versions
bhumi46 Jul 26, 2026
6a64fc3
fix: #302
bhumi46 Jul 26, 2026
f99b643
Merge pull request #308 from bhumi46/es-go-test
bhumi46 Jul 26, 2026
a084c20
fix: #302
bhumi46 Jul 27, 2026
e9fedb7
Merge pull request #309 from bhumi46/es-go-test
bhumi46 Jul 27, 2026
607fcf7
fix: 2288 correct captcha version, module names, P12 paths, and mock-…
bhumi46 Aug 4, 2026
411fb31
docs: document esignet-standalone-2.0.0 differences in deployment guide
bhumi46 Aug 4, 2026
27269ed
Delete terraform/implementations/aws/infra/esgotest-CONTROL-PLANE-NOD…
bhumi46 Aug 5, 2026
b902148
Delete terraform/implementations/aws/infra/esgotest.yaml
bhumi46 Aug 5, 2026
065ba34
Delete terraform/implementations/aws/infra/esqa-CONTROL-PLANE-NODE-1.…
bhumi46 Aug 5, 2026
515e4c6
Delete terraform/implementations/aws/infra/esqa.yaml
bhumi46 Aug 5, 2026
e7fb9fb
Delete terraform/implementations/aws/infra/rancher-override.tfvars
bhumi46 Aug 5, 2026
5c220d0
Delete terraform/implementations/aws/infra/tf-plan.gpg
bhumi46 Aug 5, 2026
28a3c55
Delete terraform/implementations/aws/infra/profiles/esignet-standalon…
bhumi46 Aug 5, 2026
823c582
Updated aws.tfvars
bhumi46 Aug 5, 2026
3557ac5
Delete terraform/modules/aws/rke2-cluster/ansible/inventory.yml
bhumi46 Aug 5, 2026
5513ffd
Delete terraform/modules/aws/rke2-cluster/ansible/esqa-CONTROL-PLANE-…
bhumi46 Aug 5, 2026
f787bfb
Delete terraform/modules/aws/rke2-cluster/ansible/esgotest-CONTROL-PL…
bhumi46 Aug 5, 2026
6a6bafe
Delete terraform/implementations/aws/infra/backend.tf
bhumi46 Aug 5, 2026
48da6cb
Update aws.tfvars
bhumi46 Aug 5, 2026
924e37f
fix: replace hardcoded P12 password and crypto encryption key with se…
bhumi46 Aug 6, 2026
f160f65
fix: switch esignet-go-* keymanager config to match upstream PKCS11 i…
bhumi46 Aug 7, 2026
226de62
fix: use fixed localtest password for mosipid1 dummy PKCS12 keystore
bhumi46 Aug 7, 2026
63cf707
fix: resolve CodeRabbit review findings on esignet-standalone-2.0.0
bhumi46 Aug 7, 2026
0ca389f
fix: bind enable_mosipid2 to env in helmsman_esignet.yml, guard mosip…
bhumi46 Aug 7, 2026
1f8713a
fix: convert esignet-standalone-2.0.0 extraEnvVars/extraEnvVarsAdditi…
bhumi46 Aug 15, 2026
cbb680b
fix: inline esignet-standalone-2.0.0 valuesFile content into DSF set:…
bhumi46 Aug 17, 2026
38f920a
fix: remove extraVolumes/extraVolumeMounts from esignet-go-mosipid1
bhumi46 Aug 17, 2026
bc97de4
fix: remove unused extraEnvVarsSecret from esignet-go-mosipid1
bhumi46 Aug 17, 2026
f3aba85
Drop -go suffix and consolidate mosipid1/mosipid2 in esignet-standalo…
bhumi46 Aug 17, 2026
21e4675
Drop -go suffix and consolidate mosipid1/mosipid2 in esignet-standalo…
bhumi46 Aug 17, 2026
d140705
Update esignet-standalone-2.0.0 database entries in shared external-d…
bhumi46 Aug 17, 2026
fd5fd1b
Add mosipid_domain_name and Go-profile secrets to eSignet/testrig wor…
bhumi46 Aug 17, 2026
252e042
Consolidate mosipid1/mosipid2 into a single mosipid instance for esig…
bhumi46 Aug 17, 2026
976c44b
Consolidate v1.7.1 mosipid1/mosipid2 database entries in external-dsf…
bhumi46 Aug 17, 2026
6d96e24
Simplify eSignet/testrig workflows now that both profiles use one mos…
bhumi46 Aug 17, 2026
b3b773b
Consolidate mosipid1/mosipid2 DNS subdomains in esignet-standalone te…
bhumi46 Aug 17, 2026
e4853df
Rewrite mosipid1/mosipid2 documentation to describe the consolidated …
bhumi46 Aug 17, 2026
6d1d5c8
Remove disabled config-server and pms apps from both eSignet standalo…
bhumi46 Aug 17, 2026
47b87e0
Switch esignet-mock to PKCS12 keystore with a persistent volume (esig…
bhumi46 Aug 18, 2026
5ab2a07
Move esignet-mock's PKCS12 keymanager overrides to extraEnvVarsAdditi…
bhumi46 Aug 18, 2026
7e93a74
Move esignet-mosipid/esignet-sunbird keymanager config to extraEnvVar…
bhumi46 Aug 18, 2026
191875a
Use per-instance SoftHSM secret for KEYMANAGER_PKCS11_PIN on mosipid/…
bhumi46 Aug 18, 2026
2376fb2
Remove preregistration captcha env var from the shared captcha chart
bhumi46 Aug 18, 2026
38aadb5
Fix PKCS11 token label and add HSM client zip download for mosipid/su…
bhumi46 Aug 19, 2026
a1fe88d
Remove esignet-global configmap ref from esignet-mosipid
bhumi46 Aug 19, 2026
eb76f07
Fix double comma-escaping causing 'key "phone" has no value' on esign…
bhumi46 Aug 19, 2026
ed37a87
Fix CreateContainerConfigError on esignet-mock and esignet-mosipid/su…
bhumi46 Aug 19, 2026
851817b
Add KEYMANAGER_PKCS12_ALLOW_INSECURE_SOFTWARE_KEYSTORE for esignet-mock
bhumi46 Aug 19, 2026
e2edddd
Rename esignet-mock's PKCS12 keystore file to keystore.p12
bhumi46 Aug 19, 2026
4c54ea2
Fix esignet-mosipid CAPTCHA_SITE_KEY typo (was SITE-KEY)
bhumi46 Aug 20, 2026
3dd733f
Consolidate KEYMANAGER_* overrides into extraEnvVars for mock/mosipid…
bhumi46 Aug 20, 2026
1f864ac
Fix minio helm upgrade failing with empty auth.rootPassword
bhumi46 Aug 20, 2026
42baffb
Isolate esignet-standalone-2.0.0 mock/sunbird/mosipid onto develop-go…
bhumi46 Aug 20, 2026
f8d4c96
Switch esignet image to mosipdev/esignet for esignet-standalone-2.0.0
bhumi46 Aug 20, 2026
a512a69
Fix AUTHN_PROVIDER key name and add per-instance NAMESPACE for mock/m…
bhumi46 Aug 20, 2026
5f134db
Add MOSIP_ESIGNET_CAPTCHA_SITE_PROVIDER and CAPTCHA_VALIDATOR_URL for…
bhumi46 Aug 20, 2026
6a4a236
Fix duplicate MOSIP_ESIGNET_HOST/MOSIP_SIGNUP_HOST/MOSIP_API_INTERNAL…
bhumi46 Aug 20, 2026
3c70d7b
Remove duplicate MOSIP_ESIGNET_CAPTCHA_SITE_KEY for esignet-mock
bhumi46 Aug 20, 2026
a34b34d
Remove duplicate KEYMANAGER_PKCS12_ALLOW_INSECURE_SOFTWARE_KEYSTORE f…
bhumi46 Aug 20, 2026
acf6b09
Null out chart-default MOSIP_ESIGNET_HOST/MOSIP_SIGNUP_HOST/MOSIP_API…
bhumi46 Aug 20, 2026
6113daa
Eliminate coalesce warnings for esignet-mock's MOSIP_ESIGNET_HOST/MOS…
bhumi46 Aug 20, 2026
e9e077c
Fix duplicate/crash-risk MOSIP_ESIGNET_HOST for mock-identity-system
bhumi46 Aug 20, 2026
dcf119e
Null out KEYMANAGER_PKCS11_SLOT_ID for esignet-mosipid/esignet-sunbird
bhumi46 Aug 20, 2026
5cdfd19
Set placeholder value for esignet-mosipid's MOSIP_ESIGNET_MISP_KEY
bhumi46 Aug 20, 2026
fed5055
Revert MOSIP_ESIGNET_MISP_KEY placeholder, restore secretKeyRef
bhumi46 Aug 20, 2026
1a48af9
Remove KEYMANAGER_PKCS11_SLOT_ID override entirely for mock/mosipid/s…
bhumi46 Aug 26, 2026
f4dc5e3
Add MOSIP_ESIGNET_BASE_URL for esignet-mock/mosipid/sunbird
bhumi46 Aug 26, 2026
6e632a8
Generate a random placeholder for esignet-misp-onboarder-key instead …
bhumi46 Aug 27, 2026
fbc7de4
Update esignet-misp-onboarder to the properties-driven partner-onboar…
bhumi46 Sep 3, 2026
ce8ba44
Keep onboarding.variables.mosipid for esignet-misp-onboarder
bhumi46 Sep 3, 2026
f11474d
Use docker.io/mosipdev/partner-onboarder:develop for all onboarding apps
bhumi46 Sep 3, 2026
caacc32
Pin esignet-mock/mosipid/sunbird to chart version 2.0.0-beta.1
bhumi46 Sep 4, 2026
b06f0d3
Revert esignet-mock/mosipid/sunbird chart version back to 2.0.0-develop
bhumi46 Sep 4, 2026
ba7512c
Bump mock-identity-system/mock-relying-party-service/mock-relying-par…
bhumi46 Sep 4, 2026
3fa82b3
Add MOSIP_ESIGNET_MOCK_DOMAIN_URL for esignet-mock
bhumi46 Sep 4, 2026
d2a485a
Update image tags for oidc-ui/mock-identity-system/mock-relying-party…
bhumi46 Sep 4, 2026
9fe74a9
Update esignet image to mosipqa/esignet:2.0.x, enable esignet-misp-on…
bhumi46 Sep 7, 2026
91ab8ba
Point esignet-misp-onboarder's ns_esignet config at esignet-mosipid
bhumi46 Sep 7, 2026
e1cd3a4
Deploy esignet-misp-onboarder into esignet-mosipid namespace
bhumi46 Sep 7, 2026
8641a59
Add MOSIP_ESIGNET_CORS_ALLOWED_ORIGIN_REGEX for esignet-mock/mosipid/…
bhumi46 Sep 8, 2026
75a96d8
Fix esignet-misp-onboarder to actually target esignet-mosipid
bhumi46 Sep 8, 2026
2e01a49
Point esignet-misp-onboarder at mosipid's own domain/Keycloak, not mo…
bhumi46 Sep 8, 2026
c7ca03a
Set esignet-misp-onboarder PARTNER_MANAGER_USERNAME/PASSWORD
bhumi46 Sep 8, 2026
647c0eb
Update esignet-misp-onboarder propertiesOverride values with -ka suffix
bhumi46 Sep 8, 2026
25eeb12
esignetka -> esignetkaa in esignet-misp-onboarder propertiesOverride
bhumi46 Sep 8, 2026
9fcc1a0
PARTNER_MANAGER_USERNAME/PASSWORD -ka -> -kaa for esignet-misp-onboarder
bhumi46 Sep 8, 2026
99d8190
kaa -> kaaa for esignet-misp-onboarder propertiesOverride values
bhumi46 Sep 9, 2026
5186492
kaaa -> kaaaa for esignet-misp-onboarder propertiesOverride values
bhumi46 Sep 9, 2026
0c9b70a
Target only the latest job/pod in esignet-misp-onboarder-postinstall.sh
bhumi46 Sep 9, 2026
9ed5b72
kaaaa -> kaaaaa for esignet-misp-onboarder propertiesOverride values
bhumi46 Sep 9, 2026
74335f1
Fix jsonpath latest-job/pod lookup in esignet-misp-onboarder-postinst…
bhumi46 Sep 9, 2026
7e035f6
kaaaaa -> kaaaaaa for esignet-misp-onboarder propertiesOverride values
bhumi46 Sep 9, 2026
4c727ef
Surface pod status and full container termination reason in esignet-m…
bhumi46 Sep 9, 2026
91cc475
Fail safe on JOB_STATUS/LATEST_POD lookups in esignet-misp-onboarder-…
bhumi46 Sep 9, 2026
eb55f67
kaaaaaa -> kb for esignet-misp-onboarder propertiesOverride values
bhumi46 Sep 9, 2026
78fcf1a
Wait for the onboarding job to reach a terminal state before checking…
bhumi46 Sep 9, 2026
1e9abec
Reduce ONBOARDER_JOB_WAIT_TIMEOUT default from 600s to 300s
bhumi46 Sep 9, 2026
fac1982
kb -> kc for esignet-misp-onboarder propertiesOverride values
bhumi46 Sep 9, 2026
a1c3d35
kc -> kd for esignet-misp-onboarder propertiesOverride values
bhumi46 Sep 9, 2026
03fddac
Fix AUTHORIZE_ENDPOINT/CODE_CHALLENGE not reaching mock-relying-party…
bhumi46 Sep 9, 2026
57f9a0d
Add TOKEN_ENDPOINT/USERINFO_ENDPOINT for mock-relying-party-service
bhumi46 Sep 9, 2026
53c5103
Document esignet-standalone-2.0.0 profile support in testrigs guide
bhumi46 Sep 24, 2026
83e8ab6
esignet-standalone-2.0.0: use eSignet's own apitestrig/uitestrig charts
bhumi46 Sep 24, 2026
2c10745
esignet-standalone-2.0.0 testrigs: only passwords/client secrets as G…
bhumi46 Sep 24, 2026
4840db3
esignet-standalone-2.0.0: add mock-rp-oidc propertiesOverride, run mo…
bhumi46 Sep 25, 2026
d664dc4
esignet-mock-rp-onboarder: point mock-rp-oidc at esignet-go-mock/heal…
bhumi46 Sep 25, 2026
566d61d
esignet-standalone-2.0.0 testrigs: default to changeme, drop validati…
bhumi46 Sep 25, 2026
b2bd94e
esignet-standalone-2.0.0 testrigs: align placeholder with PR #402
bhumi46 Sep 25, 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
Empty file modified .github/scripts/rancher-grant-cluster-access.sh
100644 → 100755
Empty file.
Empty file modified .github/scripts/rancher-register-cluster.sh
100644 → 100755
Empty file.
125 changes: 44 additions & 81 deletions .github/workflows/helmsman_esignet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ on:
- mosip-platform-1.2.0.x
- mosip-platform-1.2.1.x
- esignet-standalone
- esignet-standalone-2.0.0
mode:
description: "Choose Helmsman mode: dry-run or apply"
required: true
Expand All @@ -38,17 +39,8 @@ on:
description: "PostgreSQL port for eSignet databases (e.g. 5433 for MOSIP platform external postgres)"
required: true
type: string
mosipid1_domain_name:
description: "MOSIP-ID1 domain name for this environment (e.g. mosipenv1.xyz.net)"
required: false
type: string
enable_mosipid2:
description: "Enable MOSIP-ID2 eSignet instance (deploys softhsm, esignet, oidc-ui, mock-rp for mosipid2)"
required: false
default: false
type: boolean
mosipid2_domain_name:
description: "MOSIP-ID2 domain name for this environment (e.g. qabase.xyz.net)"
mosipid_domain_name:
description: "MOSIP-ID domain name for this environment (e.g. mosipenv.xyz.net) — required for esignet standalone profiles"
required: false
type: string
env_name:
Expand Down Expand Up @@ -88,22 +80,22 @@ jobs:
echo "✓ domain_name = $DOMAIN"
echo "✓ env_name = $ENV"
echo "✓ esignet_db_port = $ESIGNET_DB_PORT"
# mosipid1_domain_name and mosipid2_domain_name are esignet standalone only.
# mosipid_domain_name is esignet standalone only (both esignet-standalone
# and esignet-standalone-2.0.0 each run a single consolidated mosipid instance).
# Push events always target esignet (path filter); dispatch uses explicit profile input.
if [ -z "$PROFILE" ] || [ "$PROFILE" = "esignet-standalone" ]; then
MOSIPID1_DOMAIN="${{ github.event.inputs.mosipid1_domain_name || vars.MOSIPID1_DOMAIN_NAME }}"
MOSIPID2_DOMAIN="${{ github.event.inputs.mosipid2_domain_name || vars.MOSIPID2_DOMAIN_NAME }}"
echo "✓ mosipid1_domain_name = $MOSIPID1_DOMAIN (esignet standalone)"
echo "✓ mosipid2_domain_name = $MOSIPID2_DOMAIN (esignet standalone)"
MOSIPID1_SPRING_LABEL="${{ vars.ESIGNET_MOSIPID1_SPRING_CONFIG_LABEL }}"
MOSIPID2_SPRING_LABEL="${{ vars.ESIGNET_MOSIPID2_SPRING_CONFIG_LABEL }}"
echo "✓ mosipid1_spring_config_label = ${MOSIPID1_SPRING_LABEL:-develop} (esignet standalone, default: develop)"
echo "✓ mosipid2_spring_config_label = ${MOSIPID2_SPRING_LABEL:-develop} (esignet standalone, default: develop)"
if [ -z "$PROFILE" ] || [[ "$PROFILE" == esignet-standalone* ]]; then
MOSIPID_DOMAIN="${{ github.event.inputs.mosipid_domain_name || vars.MOSIPID_DOMAIN_NAME }}"
if [ -z "$MOSIPID_DOMAIN" ]; then
echo "❌ mosipid_domain_name is required for standalone profiles"
exit 1
fi
echo "✓ mosipid_domain_name = $MOSIPID_DOMAIN (esignet standalone)"
MOSIPID_SPRING_LABEL="${{ vars.ESIGNET_MOSIPID_SPRING_CONFIG_LABEL }}"
echo "✓ mosipid_spring_config_label = ${MOSIPID_SPRING_LABEL:-develop} (esignet standalone, default: develop)"
else
MOSIPID1_PROVIDED="${{ github.event.inputs.mosipid1_domain_name }}"
MOSIPID2_PROVIDED="${{ github.event.inputs.mosipid2_domain_name }}"
if [ -n "$MOSIPID1_PROVIDED" ] || [ -n "$MOSIPID2_PROVIDED" ]; then
echo "⚠ mosipid1_domain_name / mosipid2_domain_name are only used for esignet standalone profile — ignoring for profile=$PROFILE"
MOSIPID_PROVIDED="${{ github.event.inputs.mosipid_domain_name }}"
if [ -n "$MOSIPID_PROVIDED" ]; then
echo "⚠ mosipid_domain_name is only used for esignet standalone profiles — ignoring for profile=$PROFILE"
fi
fi

Expand All @@ -118,10 +110,8 @@ jobs:
KUBECTL_PATH: ${{ github.workspace }}/.local/bin/kubectl
domain_name: ${{ github.event.inputs.domain_name || vars.DOMAIN_NAME }}
esignet_db_port: ${{ github.event.inputs.esignet_db_port || vars.ESIGNET_DB_PORT }}
mosipid1_domain_name: ${{ github.event.inputs.mosipid1_domain_name || vars.MOSIPID1_DOMAIN_NAME }}
mosipid2_domain_name: ${{ github.event.inputs.mosipid2_domain_name || vars.MOSIPID2_DOMAIN_NAME }}
mosipid_domain_name: ${{ github.event.inputs.mosipid_domain_name || vars.MOSIPID_DOMAIN_NAME }}
env_name: ${{ github.event.inputs.env_name || vars.ENV_NAME }}
MOSIPID2_ENABLED: ${{ github.event.inputs.enable_mosipid2 == 'true' && 'true' || 'false' }}
# All secrets below are ENVIRONMENT secrets (not repository secrets)
# Configure them in: Repository → Settings → Environments → <branch-name> → Secrets
# Mock Relying Party Service secrets (base64 encoded PEM)
Expand All @@ -130,23 +120,18 @@ jobs:
# eSignet Captcha secrets (plain text from Google reCAPTCHA)
ESIGNET_CAPTCHA_SITE_KEY: ${{ secrets.ESIGNET_CAPTCHA_SITE_KEY }}
ESIGNET_CAPTCHA_SECRET_KEY: ${{ secrets.ESIGNET_CAPTCHA_SECRET_KEY }}
# Per-namespace captcha secrets — required for esignet standalone profile only
ESIGNET_MOSIPID1_CAPTCHA_SITE_KEY: ${{ secrets.ESIGNET_MOSIPID1_CAPTCHA_SITE_KEY }}
ESIGNET_MOSIPID1_CAPTCHA_SECRET_KEY: ${{ secrets.ESIGNET_MOSIPID1_CAPTCHA_SECRET_KEY }}
ESIGNET_MOSIPID2_CAPTCHA_SITE_KEY: ${{ secrets.ESIGNET_MOSIPID2_CAPTCHA_SITE_KEY }}
ESIGNET_MOSIPID2_CAPTCHA_SECRET_KEY: ${{ secrets.ESIGNET_MOSIPID2_CAPTCHA_SECRET_KEY }}
# MOSIPID1 / MOSIPID2 remote Keycloak admin + Postgres passwords
MOSIPID1_KEYCLOAK_ADMIN_PASSWORD: ${{ secrets.MOSIPID1_KEYCLOAK_ADMIN_PASSWORD }}
MOSIPID2_KEYCLOAK_ADMIN_PASSWORD: ${{ secrets.MOSIPID2_KEYCLOAK_ADMIN_PASSWORD }}
MOSIPID1_POSTGRES_PASSWORD: ${{ secrets.MOSIPID1_POSTGRES_PASSWORD }}
MOSIPID2_POSTGRES_PASSWORD: ${{ secrets.MOSIPID2_POSTGRES_PASSWORD }}
# mosipid captcha secret — required for esignet standalone profiles
ESIGNET_MOSIPID_CAPTCHA_SITE_KEY: ${{ secrets.ESIGNET_MOSIPID_CAPTCHA_SITE_KEY }}
ESIGNET_MOSIPID_CAPTCHA_SECRET_KEY: ${{ secrets.ESIGNET_MOSIPID_CAPTCHA_SECRET_KEY }}
# MOSIPID remote Keycloak admin + Postgres password (esignet standalone profiles)
MOSIPID_KEYCLOAK_ADMIN_PASSWORD: ${{ secrets.MOSIPID_KEYCLOAK_ADMIN_PASSWORD }}
MOSIPID_POSTGRES_PASSWORD: ${{ secrets.MOSIPID_POSTGRES_PASSWORD }}
ESIGNET_SUNBIRD_CAPTCHA_SITE_KEY: ${{ secrets.ESIGNET_SUNBIRD_CAPTCHA_SITE_KEY }}
ESIGNET_SUNBIRD_CAPTCHA_SECRET_KEY: ${{ secrets.ESIGNET_SUNBIRD_CAPTCHA_SECRET_KEY }}
# Spring config label per namespace — controls which Git branch/tag the config-server uses
# Set as Environment Variables in Repository → Settings → Environments → <branch> → Variables
# If unset, hooks default to 'develop'
ESIGNET_MOSIPID1_SPRING_CONFIG_LABEL: ${{ vars.ESIGNET_MOSIPID1_SPRING_CONFIG_LABEL }}
ESIGNET_MOSIPID2_SPRING_CONFIG_LABEL: ${{ vars.ESIGNET_MOSIPID2_SPRING_CONFIG_LABEL }}
ESIGNET_MOSIPID_SPRING_CONFIG_LABEL: ${{ vars.ESIGNET_MOSIPID_SPRING_CONFIG_LABEL }}
# Cluster access secrets
KUBECONFIG_SECRET: ${{ secrets.KUBECONFIG }}
CLUSTER_WIREGUARD_WG0: ${{ secrets.CLUSTER_WIREGUARD_WG0 }}
Expand Down Expand Up @@ -189,8 +174,7 @@ jobs:
}
save_var "DOMAIN_NAME" "${{ github.event.inputs.domain_name }}"
save_var "ESIGNET_DB_PORT" "${{ github.event.inputs.esignet_db_port }}"
save_var "MOSIPID1_DOMAIN_NAME" "${{ github.event.inputs.mosipid1_domain_name }}"
save_var "MOSIPID2_DOMAIN_NAME" "${{ github.event.inputs.mosipid2_domain_name }}"
save_var "MOSIPID_DOMAIN_NAME" "${{ github.event.inputs.mosipid_domain_name }}"
save_var "ENV_NAME" "${{ github.event.inputs.env_name }}"

- name: Mask sensitive data
Expand All @@ -202,10 +186,8 @@ jobs:
echo "::add-mask::${{ secrets.CLUSTER_WIREGUARD_WG0 }}"
echo "::add-mask::${{ secrets.ESIGNET_CAPTCHA_SITE_KEY }}"
echo "::add-mask::${{ secrets.ESIGNET_CAPTCHA_SECRET_KEY }}"
echo "::add-mask::${{ secrets.ESIGNET_MOSIPID1_CAPTCHA_SITE_KEY }}"
echo "::add-mask::${{ secrets.ESIGNET_MOSIPID1_CAPTCHA_SECRET_KEY }}"
echo "::add-mask::${{ secrets.ESIGNET_MOSIPID2_CAPTCHA_SITE_KEY }}"
echo "::add-mask::${{ secrets.ESIGNET_MOSIPID2_CAPTCHA_SECRET_KEY }}"
echo "::add-mask::${{ secrets.ESIGNET_MOSIPID_CAPTCHA_SITE_KEY }}"
echo "::add-mask::${{ secrets.ESIGNET_MOSIPID_CAPTCHA_SECRET_KEY }}"
echo "::add-mask::${{ secrets.ESIGNET_SUNBIRD_CAPTCHA_SITE_KEY }}"
echo "::add-mask::${{ secrets.ESIGNET_SUNBIRD_CAPTCHA_SECRET_KEY }}"

Expand Down Expand Up @@ -325,7 +307,7 @@ jobs:
kubectl cluster-info

- name: Check if mosip-dsf label is completed
if: ${{ github.event.inputs.skip_mosip_dsf_check != 'true' && vars.ESIGNET_STANDALONE_MODE != 'true' && github.event.inputs.profile != 'esignet-standalone' }}
if: ${{ github.event.inputs.skip_mosip_dsf_check != 'true' && vars.ESIGNET_STANDALONE_MODE != 'true' && !startsWith(env.PROFILE, 'esignet-standalone') }}
run: |
STATUS=$(kubectl get namespace default -o jsonpath='{.metadata.labels.mosip-dsf}' 2>/dev/null || echo "")
if [[ "$STATUS" != "completed" ]]; then
Expand Down Expand Up @@ -379,10 +361,10 @@ jobs:
echo "✅ ESIGNET_CAPTCHA_SECRET_KEY is configured"
fi

# Per-namespace captcha secrets — only required for esignet standalone profile
if [ "$PROFILE" = "esignet-standalone" ]; then
echo "--- Validating esignet standalone mosipid1 captcha secrets ---"
for var in ESIGNET_MOSIPID1_CAPTCHA_SITE_KEY ESIGNET_MOSIPID1_CAPTCHA_SECRET_KEY \
# Per-namespace captcha secrets — only required for esignet standalone profiles
if [[ "$PROFILE" == esignet-standalone* ]]; then
echo "--- Validating esignet standalone mosipid captcha secrets ---"
for var in ESIGNET_MOSIPID_CAPTCHA_SITE_KEY ESIGNET_MOSIPID_CAPTCHA_SECRET_KEY \
ESIGNET_SUNBIRD_CAPTCHA_SITE_KEY ESIGNET_SUNBIRD_CAPTCHA_SECRET_KEY; do
val="${!var:-}"
if [ -z "$val" ]; then
Expand All @@ -392,8 +374,8 @@ jobs:
echo "✅ $var is configured"
fi
done
echo "--- Validating esignet standalone mosipid1 postgres + keycloak secrets ---"
for var in MOSIPID1_POSTGRES_PASSWORD MOSIPID1_KEYCLOAK_ADMIN_PASSWORD; do
echo "--- Validating esignet standalone mosipid postgres + keycloak secrets ---"
for var in MOSIPID_POSTGRES_PASSWORD MOSIPID_KEYCLOAK_ADMIN_PASSWORD; do
val="${!var:-}"
if [ -z "$val" ]; then
echo "❌ $var secret is not configured (required for esignet standalone)"
Expand All @@ -402,21 +384,6 @@ jobs:
echo "✅ $var is configured"
fi
done
if [ "$MOSIPID2_ENABLED" = "true" ]; then
echo "--- Validating mosipid2 captcha + postgres + keycloak secrets ---"
for var in ESIGNET_MOSIPID2_CAPTCHA_SITE_KEY ESIGNET_MOSIPID2_CAPTCHA_SECRET_KEY \
MOSIPID2_POSTGRES_PASSWORD MOSIPID2_KEYCLOAK_ADMIN_PASSWORD; do
val="${!var:-}"
if [ -z "$val" ]; then
echo "❌ $var secret is not configured (required when enable_mosipid2=true)"
MISSING_SECRETS=1
else
echo "✅ $var is configured"
fi
done
else
echo "ℹ mosipid2 disabled — skipping mosipid2 secret validation"
fi
fi

if [ "$MISSING_SECRETS" -eq 1 ]; then
Expand All @@ -431,14 +398,10 @@ jobs:
echo " - MOCK_RELYING_PARTY_JWE_PRIVATE_KEY (base64 encoded PEM)"
echo " - ESIGNET_CAPTCHA_SITE_KEY (reCAPTCHA site key - plain text)"
echo " - ESIGNET_CAPTCHA_SECRET_KEY (reCAPTCHA secret key - plain text)"
if [ "$PROFILE" = "esignet-standalone" ]; then
echo " - ESIGNET_MOSIPID1_CAPTCHA_SITE_KEY / ESIGNET_MOSIPID1_CAPTCHA_SECRET_KEY"
if [[ "$PROFILE" == esignet-standalone* ]]; then
echo " - ESIGNET_MOSIPID_CAPTCHA_SITE_KEY / ESIGNET_MOSIPID_CAPTCHA_SECRET_KEY"
echo " - ESIGNET_SUNBIRD_CAPTCHA_SITE_KEY / ESIGNET_SUNBIRD_CAPTCHA_SECRET_KEY"
echo " - MOSIPID1_POSTGRES_PASSWORD / MOSIPID1_KEYCLOAK_ADMIN_PASSWORD"
if [ "$MOSIPID2_ENABLED" = "true" ]; then
echo " - ESIGNET_MOSIPID2_CAPTCHA_SITE_KEY / ESIGNET_MOSIPID2_CAPTCHA_SECRET_KEY"
echo " - MOSIPID2_POSTGRES_PASSWORD / MOSIPID2_KEYCLOAK_ADMIN_PASSWORD"
fi
echo " - MOSIPID_POSTGRES_PASSWORD / MOSIPID_KEYCLOAK_ADMIN_PASSWORD"
fi
exit 1
fi
Expand Down Expand Up @@ -472,7 +435,7 @@ jobs:
fi

- name: Get MinIO root password
if: ${{ env.PROFILE == 'esignet-standalone' }}
if: ${{ startsWith(env.PROFILE, 'esignet-standalone') }}
run: |
MINIO_ROOT_PASSWORD=$(kubectl -n minio get secret minio -o jsonpath='{.data.root-password}' | base64 -d)
if [ -n "$MINIO_ROOT_PASSWORD" ]; then
Expand Down Expand Up @@ -540,8 +503,7 @@ jobs:
- name: Show deployment variables
run: |
echo "domain_name = $domain_name"
echo "mosipid1_domain_name = $mosipid1_domain_name"
echo "mosipid2_domain_name = $mosipid2_domain_name"
echo "mosipid_domain_name = $mosipid_domain_name"
echo "env_name = $env_name"

- name: Initiate helmsman to apply the DSF configurations
Expand Down Expand Up @@ -579,9 +541,10 @@ jobs:
# they read the new PIN but the PVC token has the old one → CKR_PIN_INCORRECT.
# Fix: skip softhsm upgrade on re-runs so the PIN in the secret never changes.
SKIP_RELEASES_ARG=""
if [ "$PROFILE" = "esignet-standalone" ]; then
if [[ "$PROFILE" == esignet-standalone* ]]; then
SOFTHSM_PAIRS=("esignet-softhsm:esignet-mock" "esignet-softhsm-mosipid:esignet-mosipid" "esignet-softhsm-sunbird:esignet-sunbird")
SKIP_RELEASES=""
for pair in "esignet-softhsm:esignet-mock" "esignet-softhsm-mosipid1:esignet-mosipid1" "esignet-softhsm-mosipid2:esignet-mosipid2" "esignet-softhsm-sunbird:esignet-sunbird"; do
for pair in "${SOFTHSM_PAIRS[@]}"; do
release="${pair%%:*}"
ns="${pair##*:}"
if helm status "$release" -n "$ns" &>/dev/null; then
Expand Down Expand Up @@ -620,7 +583,7 @@ jobs:
echo "Commit: ${{ github.sha }}"
echo ""
echo "Namespaces created/updated:"
kubectl get ns esignet-mock esignet-mosipid1 esignet-mosipid2 esignet-sunbird softhsm keycloak redis postgres 2>/dev/null || echo "Some namespaces may not exist yet"
kubectl get ns esignet-mock esignet-mosipid esignet-sunbird softhsm keycloak redis postgres 2>/dev/null || echo "Some namespaces may not exist yet"
echo ""
echo "eSignet pods status:"
kubectl get pods -n esignet-mock 2>/dev/null || echo "esignet-mock namespace not ready"
Expand Down
17 changes: 13 additions & 4 deletions .github/workflows/helmsman_external.yml
Original file line number Diff line number Diff line change
Expand Up @@ -224,9 +224,6 @@ jobs:

- name: Mask sensitive secrets
run: |
MINIO_ROOT_PASSWORD=$(kubectl -n minio get secret minio -o jsonpath='{.data.root-password}' 2>/dev/null | base64 -d || true)
if [ -n "$MINIO_ROOT_PASSWORD" ]; then echo "::add-mask::$MINIO_ROOT_PASSWORD"; fi
echo "MINIO_ROOT_PASSWORD=$MINIO_ROOT_PASSWORD" >> $GITHUB_ENV
echo "::add-mask::${{ secrets.ESIGNET_CAPTCHA_SITE_KEY }}"
echo "::add-mask::${{ secrets.ESIGNET_CAPTCHA_SECRET_KEY }}"
echo "::add-mask::${{ secrets.PREREG_CAPTCHA_SITE_KEY }}"
Expand Down Expand Up @@ -337,8 +334,20 @@ jobs:
kubectl get nodes
kubectl cluster-info

# Test istioctl functionality
# Test istioctl functionality
istioctl version --remote=false

- name: Fetch and mask minio root password
run: |
# Must run after WireGuard/kubeconfig are up - kubectl needs cluster
# access to look up the existing secret. Fetching this earlier (as
# part of "Mask sensitive secrets", before the tunnel is up) always
# returned empty, which then failed minio's helm upgrade with
# "auth.rootPassword must not be empty".
MINIO_ROOT_PASSWORD=$(kubectl -n minio get secret minio -o jsonpath='{.data.root-password}' 2>/dev/null | base64 -d || true)
if [ -n "$MINIO_ROOT_PASSWORD" ]; then echo "::add-mask::$MINIO_ROOT_PASSWORD"; fi
echo "MINIO_ROOT_PASSWORD=$MINIO_ROOT_PASSWORD" >> $GITHUB_ENV

- name: Export keycloak client secrets for esignet-keycloak-init
if: contains(matrix.dsf_files, 'esignet-standalone/external-dsf.yaml')
run: |
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/helmsman_signup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ on:
type: choice
options:
- esignet-standalone
- esignet-standalone-2.0.0
- mosip-platform-1.2.0.x
- mosip-platform-1.2.1.x
mode:
Expand Down
Loading
Loading