Skip to content

PMM-14185 handle gssapi #158

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 14 commits into from
Aug 19, 2025
26 changes: 19 additions & 7 deletions pmm_psmdb-pbm_setup/configure-agents.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,21 @@ mongo_setup_type=${MONGO_SETUP_TYPE:-pss}
gssapi_enabled=${GSSAPI:-false}
gssapi_username=${GSSAPI_USERNAME:-pmm@PERCONATEST.COM}
gssapi_password=${GSSAPI_PASSWORD:-password1}
client_credentials_flags="--username=${pmm_mongo_user} --password=${pmm_mongo_user_pass}"
gssapi_service_name_part=""

if [[ $gssapi_enabled == "true" ]]; then
client_credentials_flags=(
--username="$gssapi_username"
--password="$gssapi_password"
--authentication-mechanism=GSSAPI
--authentication-database='$external'
)
gssapi_service_name_part="_gssapi"
fi

echo
echo "gssapi enabled: $gssapi_enabled. Using credentials: ${client_credentials_flags[*]}"

echo
echo "configuring pbm agents"
Expand All @@ -33,16 +48,13 @@ random_number=$RANDOM
nodes="rs101 rs102 rs103"
for node in $nodes
do
echo "congiguring pmm agent on $node"
echo "configuring pmm agent on $node"
docker compose -f docker-compose-rs.yaml exec -T -e PMM_AGENT_SETUP_NODE_NAME=${node}._${random_number} $node pmm-agent setup
if [[ $mongo_setup_type == "psa" && $node == "rs103" ]]; then
docker compose -f docker-compose-rs.yaml exec -T $node pmm-admin add mongodb --enable-all-collectors --agent-password=mypass --cluster=replicaset --replication-set=rs ${node}_${random_number} 127.0.0.1:27017
docker compose -f docker-compose-rs.yaml exec -T $node pmm-admin add mongodb --enable-all-collectors --agent-password=mypass --cluster=replicaset --replication-set=rs --host=${node} --port=27017 ${node}${gssapi_service_name_part}_${random_number}
else
docker compose -f docker-compose-rs.yaml exec -T $node pmm-admin add mongodb --enable-all-collectors --agent-password=mypass --cluster=replicaset --replication-set=rs --username=${pmm_mongo_user} --password=${pmm_mongo_user_pass} ${node}_${random_number} 127.0.0.1:27017

if [[ $gssapi_enabled == "true" ]]; then
docker compose -f docker-compose-rs.yaml exec -T $node pmm-admin add mongodb --enable-all-collectors --agent-password=mypass --cluster=replicaset --replication-set=rs --username=${gssapi_username} --password=${gssapi_password} --authentication-mechanism=GSSAPI --authentication-database="$external" --host=${node} --port=27017 ${node}_gssapi_${random_number}
fi
echo
docker compose -f docker-compose-rs.yaml exec -T $node pmm-admin add mongodb --enable-all-collectors --agent-password=mypass --cluster=replicaset --replication-set=rs ${client_credentials_flags[*]} --host=${node} --port=27017 ${node}${gssapi_service_name_part}_${random_number}
fi
done
echo
Expand Down
23 changes: 17 additions & 6 deletions pmm_psmdb-pbm_setup/configure-extra-agents.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,21 @@ mongo_setup_type=${MONGO_SETUP_TYPE:-pss}
gssapi_enabled=${GSSAPI:-false}
gssapi_username=${GSSAPI_USERNAME:-pmm@PERCONATEST.COM}
gssapi_password=${GSSAPI_PASSWORD:-password1}
client_credentials_flags="--username=${pmm_mongo_user} --password=${pmm_mongo_user_pass}"
gssapi_service_name_part=""

if [[ $gssapi_enabled == "true" ]]; then
client_credentials_flags=(
--username="$gssapi_username"
--password="$gssapi_password"
--authentication-mechanism=GSSAPI
--authentication-database='$external'
)
gssapi_service_name_part="_gssapi"
fi

echo
echo "gssapi enabled: $gssapi_enabled. Using credentials: ${client_credentials_flags[*]}"

echo
echo "configuring pbm agents"
Expand All @@ -34,12 +49,8 @@ do
echo "configuring pmm agent on $node"
docker compose -f docker-compose-rs.yaml exec -T -e PMM_AGENT_SETUP_NODE_NAME=${node}._${random_number} $node pmm-agent setup
if [[ $mongo_setup_type == "psa" && $node == "rs203" ]]; then
docker compose -f docker-compose-rs.yaml exec -T $node pmm-admin add mongodb --enable-all-collectors --agent-password=mypass --cluster=replicaset --replication-set=rs1 ${node}_${random_number} 127.0.0.1:27017
docker compose -f docker-compose-rs.yaml exec -T $node pmm-admin add mongodb --enable-all-collectors --agent-password=mypass --cluster=replicaset --replication-set=rs1 --host=${node} --port=27017 ${node}${gssapi_service_name_part}_${random_number}
else
docker compose -f docker-compose-rs.yaml exec -T $node pmm-admin add mongodb --enable-all-collectors --agent-password=mypass --cluster=replicaset --replication-set=rs1 --username=${pmm_mongo_user} --password=${pmm_mongo_user_pass} ${node}_${random_number} 127.0.0.1:27017

if [[ $gssapi_enabled == "true" ]]; then
docker compose -f docker-compose-rs.yaml exec -T $node pmm-admin add mongodb --enable-all-collectors --agent-password=mypass --cluster=replicaset --replication-set=rs --username=${gssapi_username} --password=${gssapi_password} --authentication-mechanism=GSSAPI --authentication-database="$external" --host=${node} --port=27017 ${node}_gssapi_${random_number}
fi
docker compose -f docker-compose-rs.yaml exec -T $node pmm-admin add mongodb --enable-all-collectors --agent-password=mypass --cluster=replicaset ${client_credentials_flags[*]} --host=${node} --port=27017 ${node}${gssapi_service_name_part}_${random_number}
fi
done
Loading