Files
831a709cc9 Add Worker Deployment Search Attributes (#7199)
## What changed?
Add TemporalWorkerDeploymentVersion, TemporalWorkerDeployment, and
TemporalWorkflowVersioningBehavior Search Attributes

## Why?
To be able to list workflows based on their behavior, deployment, and
most recently used deployment version.

## How did you test it?
<!-- How have you verified this change? Tested locally? Added a unit
test? Checked in staging env? -->

## Potential risks
<!-- Assuming the worst case, what can be broken when deploying this
change to production? -->

## Documentation
<!-- Have you made sure this change doesn't falsify anything currently
stated in `docs/`? If significant
new behavior is added, have you described that in `docs/`? -->

## Is hotfix candidate?
<!-- Is this PR a hotfix candidate or does it require a notification to
be sent to the broader community? (Yes/No) -->

---------

Co-authored-by: Shivam Saraf <[email protected]>
Co-authored-by: Rodrigo Zhou <[email protected]>
2025-02-06 13:33:03 -08:00

61 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -eu -o pipefail
# Prerequisites:
# - jq
# - curl
# Input parameters.
: "${ES_SCHEME:=http}"
: "${ES_SERVER:=127.0.0.1}"
: "${ES_PORT:=9200}"
: "${ES_USER:=}"
: "${ES_PWD:=}"
: "${ES_VERSION:=v7}"
: "${ES_VIS_INDEX_V1:=temporal_visibility_v1_dev}"
: "${AUTO_CONFIRM:=}"
: "${SLICES_COUNT:=auto}"
es_endpoint="${ES_SCHEME}://${ES_SERVER}:${ES_PORT}"
echo "=== Step 0. Sanity check if Elasticsearch index is accessible ==="
if ! curl --silent --fail --user "${ES_USER}":"${ES_PWD}" "${es_endpoint}/${ES_VIS_INDEX_V1}/_stats/docs" --write-out "\n"; then
echo "Elasticsearch index ${ES_VIS_INDEX_V1} is not accessible at ${es_endpoint}."
exit 1
fi
echo "=== Step 1. Add new builtin search attributes ==="
new_mapping='
{
"properties": {
"TemporalWorkerDeploymentVersion": {
"type": "keyword"
},
"TemporalWorkflowVersioningBehavior": {
"type": "keyword"
},
"TemporalWorkerDeployment": {
"type": "keyword"
}
}
}
'
if [ -z "${AUTO_CONFIRM}" ]; then
read -p "Add new builtin search attributes to the index ${ES_VIS_INDEX_V1}? (N/y)" -n 1 -r
echo
else
REPLY="y"
fi
if [ "${REPLY}" = "y" ]; then
curl --silent --fail --user "${ES_USER}":"${ES_PWD}" -X PUT "${es_endpoint}/${ES_VIS_INDEX_V1}/_mapping" -H "Content-Type: application/json" --data-binary "$new_mapping" | jq
# Wait for mapping changes to go through.
until curl --silent --user "${ES_USER}":"${ES_PWD}" "${es_endpoint}/_cluster/health/${ES_VIS_INDEX_V1}" | jq --exit-status '.status=="green" | .'; do
echo "Waiting for Elasticsearch index ${ES_VIS_INDEX_V1} become green."
sleep 1
done
fi