chore: Update manifests after change
This commit is contained in:
@@ -0,0 +1,319 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: "postiz-temporal-shims"
|
||||
labels:
|
||||
app.kubernetes.io/name: temporal
|
||||
helm.sh/chart: temporal-1.0.0-rc.3
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/instance: postiz
|
||||
app.kubernetes.io/version: "1.30.2"
|
||||
app.kubernetes.io/part-of: temporal
|
||||
data:
|
||||
dockerize: |-
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# Parse command line arguments
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
-template)
|
||||
shift
|
||||
TEMPLATE="$1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
# Ignore other arguments for compatibility
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Process template if specified
|
||||
if [ -n "$TEMPLATE" ]; then
|
||||
# Split on colon to get source:destination
|
||||
SRC="${TEMPLATE%%:*}"
|
||||
DST="${TEMPLATE#*:}"
|
||||
|
||||
# Create destination directory if it doesn't exist
|
||||
mkdir -p "$(dirname "$DST")"
|
||||
|
||||
# Copy the file
|
||||
cp "$SRC" "$DST"
|
||||
|
||||
echo "Skipped dockerize, copied $SRC to $DST"
|
||||
fi
|
||||
temporal-elasticsearch-tool: |-
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
if [ -x /usr/local/bin/temporal-elasticsearch-tool ]; then
|
||||
exec /usr/local/bin/temporal-elasticsearch-tool "$@"
|
||||
fi
|
||||
|
||||
# Build base URL from environment variables
|
||||
ES_URL="${ES_SCHEME}://${ES_HOST}:${ES_PORT}"
|
||||
|
||||
# Build curl auth string if credentials are provided
|
||||
CURL_AUTH=""
|
||||
if [ -n "$ES_USER" ] && [ -n "$ES_PWD" ]; then
|
||||
CURL_AUTH="--user ${ES_USER}:${ES_PWD}"
|
||||
fi
|
||||
|
||||
# Helper function to make curl requests
|
||||
curl_request() {
|
||||
local method="$1"
|
||||
local path="$2"
|
||||
local data_file="$3"
|
||||
local fail_silently="$4"
|
||||
|
||||
local curl_cmd="curl -X ${method} --silent --show-error ${CURL_AUTH} ${ES_URL}${path}"
|
||||
|
||||
if [ -n "$data_file" ]; then
|
||||
curl_cmd="${curl_cmd} -H 'Content-Type: application/json' --data-binary @${data_file}"
|
||||
fi
|
||||
|
||||
if [ "$fail_silently" != "true" ]; then
|
||||
curl_cmd="${curl_cmd} --fail"
|
||||
fi
|
||||
|
||||
curl_cmd="${curl_cmd} 2>&1"
|
||||
|
||||
eval "$curl_cmd"
|
||||
}
|
||||
|
||||
# Parse command
|
||||
COMMAND="${1:-}"
|
||||
shift || true
|
||||
|
||||
case "$COMMAND" in
|
||||
setup-schema)
|
||||
# Setup cluster settings and index template
|
||||
if [ -z "$ES_VERSION" ]; then
|
||||
echo "Error: ES_VERSION environment variable is required" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
CLUSTER_SETTINGS_FILE="schema/elasticsearch/visibility/cluster_settings_v7.json"
|
||||
TEMPLATE_FILE="schema/elasticsearch/visibility/index_template_${ES_VERSION}.json"
|
||||
|
||||
if [ ! -f "$TEMPLATE_FILE" ]; then
|
||||
echo "Error: Template file not found: $TEMPLATE_FILE" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FAIL_SILENTLY="false"
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--fail)
|
||||
FAIL_SILENTLY="true"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Setup cluster settings if file exists
|
||||
if [ -f "$CLUSTER_SETTINGS_FILE" ]; then
|
||||
echo "Setting up cluster settings..."
|
||||
curl_request "PUT" "/_cluster/settings" "$CLUSTER_SETTINGS_FILE" "$FAIL_SILENTLY" >/dev/null
|
||||
echo "Cluster settings setup complete"
|
||||
else
|
||||
echo "Warning: Cluster settings file not found: $CLUSTER_SETTINGS_FILE, skipping cluster settings"
|
||||
fi
|
||||
|
||||
echo "Setting up index template..."
|
||||
curl_request "PUT" "/_template/temporal_visibility_v1_template" "$TEMPLATE_FILE" "$FAIL_SILENTLY" >/dev/null
|
||||
echo "Template setup complete"
|
||||
;;
|
||||
|
||||
update-schema)
|
||||
# Update index template and optionally index mappings
|
||||
if [ -z "$ES_VERSION" ]; then
|
||||
echo "Error: ES_VERSION environment variable is required" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TEMPLATE_FILE="schema/elasticsearch/visibility/index_template_${ES_VERSION}.json"
|
||||
if [ ! -f "$TEMPLATE_FILE" ]; then
|
||||
echo "Error: Template file not found: $TEMPLATE_FILE" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
INDEX_NAME=""
|
||||
FAIL_SILENTLY="false"
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--index)
|
||||
shift
|
||||
INDEX_NAME="$1"
|
||||
shift
|
||||
;;
|
||||
--fail)
|
||||
FAIL_SILENTLY="true"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
echo "Updating index template..."
|
||||
curl_request "PUT" "/_template/temporal_visibility_v1_template" "$TEMPLATE_FILE" "$FAIL_SILENTLY" >/dev/null
|
||||
|
||||
if [ -n "$INDEX_NAME" ]; then
|
||||
echo "Updating index mappings for $INDEX_NAME..."
|
||||
|
||||
# Check if index exists
|
||||
HTTP_CODE=$(curl --head --silent --write-out "%{http_code}" --output /dev/null ${CURL_AUTH} ${ES_URL}/${INDEX_NAME} 2>/dev/null)
|
||||
if [ "$HTTP_CODE" != "200" ]; then
|
||||
echo "Error: Index $INDEX_NAME does not exist" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Extract mappings from template using jq
|
||||
MAPPINGS=$(jq -c '.mappings' "$TEMPLATE_FILE")
|
||||
if [ -z "$MAPPINGS" ] || [ "$MAPPINGS" = "null" ]; then
|
||||
echo "Error: No mappings found in template file" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create temporary file with mappings
|
||||
MAPPINGS_FILE=$(mktemp)
|
||||
echo "$MAPPINGS" > "$MAPPINGS_FILE"
|
||||
|
||||
# Update index mappings
|
||||
curl_request "PUT" "/${INDEX_NAME}/_mapping" "$MAPPINGS_FILE" "$FAIL_SILENTLY" >/dev/null
|
||||
|
||||
# Clean up temporary file
|
||||
rm -f "$MAPPINGS_FILE"
|
||||
|
||||
echo "Index mappings updated successfully"
|
||||
fi
|
||||
echo "Schema update complete"
|
||||
;;
|
||||
|
||||
create-index)
|
||||
# Create visibility index
|
||||
INDEX_NAME=""
|
||||
FAIL_SILENTLY="false"
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--index)
|
||||
shift
|
||||
INDEX_NAME="$1"
|
||||
shift
|
||||
;;
|
||||
--fail)
|
||||
FAIL_SILENTLY="true"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Use ES_VISIBILITY_INDEX env var if --index not provided
|
||||
if [ -z "$INDEX_NAME" ]; then
|
||||
INDEX_NAME="$ES_VISIBILITY_INDEX"
|
||||
fi
|
||||
|
||||
if [ -z "$INDEX_NAME" ]; then
|
||||
echo "Error: Index name required (use --index or ES_VISIBILITY_INDEX env var)" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if index already exists
|
||||
HTTP_CODE=$(curl --head --silent --write-out "%{http_code}" --output /dev/null ${CURL_AUTH} ${ES_URL}/${INDEX_NAME} 2>/dev/null)
|
||||
if [ "$HTTP_CODE" = "200" ]; then
|
||||
echo "Index $INDEX_NAME already exists, skipping creation"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Creating index $INDEX_NAME..."
|
||||
# Create the index, handling the case where it already exists
|
||||
# (as a fallback if the HEAD check above didn't catch it)
|
||||
CREATE_OUTPUT=$(curl -X PUT --silent --show-error --write-out "\n%{http_code}" ${CURL_AUTH} ${ES_URL}/${INDEX_NAME} -H "Content-Type: application/json" 2>&1)
|
||||
HTTP_CODE=$(echo "$CREATE_OUTPUT" | tail -n1)
|
||||
CREATE_BODY=$(echo "$CREATE_OUTPUT" | head -n-1)
|
||||
|
||||
if [ "$HTTP_CODE" = "200" ] || [ "$HTTP_CODE" = "201" ]; then
|
||||
echo "Index created successfully"
|
||||
elif [ "$HTTP_CODE" = "400" ] && echo "$CREATE_BODY" | jq -e '.error.type == "resource_already_exists_exception"' >/dev/null 2>&1; then
|
||||
echo "Index $INDEX_NAME already exists, skipping creation"
|
||||
exit 0
|
||||
else
|
||||
if [ "$FAIL_SILENTLY" != "true" ]; then
|
||||
echo "Error: Failed to create index (HTTP $HTTP_CODE): $CREATE_BODY" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
|
||||
drop-index)
|
||||
# Delete visibility index
|
||||
INDEX_NAME=""
|
||||
FAIL_SILENTLY="false"
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--index)
|
||||
shift
|
||||
INDEX_NAME="$1"
|
||||
shift
|
||||
;;
|
||||
--fail)
|
||||
FAIL_SILENTLY="true"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Use ES_VISIBILITY_INDEX env var if --index not provided
|
||||
if [ -z "$INDEX_NAME" ]; then
|
||||
INDEX_NAME="$ES_VISIBILITY_INDEX"
|
||||
fi
|
||||
|
||||
if [ -z "$INDEX_NAME" ]; then
|
||||
echo "Error: Index name required (use --index or ES_VISIBILITY_INDEX env var)" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Dropping index $INDEX_NAME..."
|
||||
curl_request "DELETE" "/${INDEX_NAME}" "" "$FAIL_SILENTLY" >/dev/null
|
||||
echo "Index dropped successfully"
|
||||
;;
|
||||
|
||||
ping)
|
||||
# Ping elasticsearch host
|
||||
echo "Pinging Elasticsearch at ${ES_URL}..."
|
||||
if curl --fail --silent --show-error ${CURL_AUTH} ${ES_URL} >/dev/null 2>&1; then
|
||||
echo "Pong - Elasticsearch is reachable"
|
||||
exit 0
|
||||
else
|
||||
echo "Ping failed - Elasticsearch is not reachable" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: $0 {setup-schema|update-schema|create-index|drop-index|ping} [options]" >&2
|
||||
echo "" >&2
|
||||
echo "Commands:" >&2
|
||||
echo " setup-schema Setup elasticsearch index template" >&2
|
||||
echo " update-schema Update elasticsearch index template (and optionally index mappings with --index)" >&2
|
||||
echo " create-index Create elasticsearch visibility index" >&2
|
||||
echo " drop-index Delete elasticsearch visibility index" >&2
|
||||
echo " ping Ping the elasticsearch host" >&2
|
||||
echo "" >&2
|
||||
echo "Environment variables:" >&2
|
||||
echo " ES_SCHEME, ES_HOST, ES_PORT, ES_USER, ES_PWD, ES_VERSION, ES_VISIBILITY_INDEX" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user