88 lines
2.8 KiB
YAML
88 lines
2.8 KiB
YAML
version: 0.1
|
|
component: command
|
|
timeoutInSeconds: 900
|
|
shell: bash
|
|
failImmediatelyOnError: true
|
|
|
|
steps:
|
|
- type: Command
|
|
name: Validate remediation parameters
|
|
command: |
|
|
required_vars=(
|
|
APP_NAMESPACE
|
|
CONFIGMAP_NAME
|
|
OCI_REGION
|
|
OKE_CLUSTER_OCID
|
|
OKE_ENDPOINT_TYPE
|
|
ORDER_MANUAL_REVIEW_RATE_THRESHOLD
|
|
ORDER_REVENUE_AT_RISK_THRESHOLD
|
|
ORDER_STUCK_REVIEW_MODE
|
|
PAYMENT_FORCE_TIMEOUT
|
|
INVENTORY_FORCE_OUTAGE
|
|
WAIT_TIMEOUT
|
|
)
|
|
|
|
for var_name in "${required_vars[@]}"; do
|
|
if [ -z "${!var_name}" ]; then
|
|
echo "Required parameter is missing: ${var_name}"
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
echo "APP_NAMESPACE=${APP_NAMESPACE}"
|
|
echo "CONFIGMAP_NAME=${CONFIGMAP_NAME}"
|
|
echo "OCI_REGION=${OCI_REGION}"
|
|
echo "OKE_CLUSTER_OCID=${OKE_CLUSTER_OCID}"
|
|
echo "OKE_ENDPOINT_TYPE=${OKE_ENDPOINT_TYPE}"
|
|
echo "ORDER_MANUAL_REVIEW_RATE_THRESHOLD=${ORDER_MANUAL_REVIEW_RATE_THRESHOLD}"
|
|
echo "ORDER_REVENUE_AT_RISK_THRESHOLD=${ORDER_REVENUE_AT_RISK_THRESHOLD}"
|
|
echo "ORDER_STUCK_REVIEW_MODE=${ORDER_STUCK_REVIEW_MODE}"
|
|
echo "PAYMENT_FORCE_TIMEOUT=${PAYMENT_FORCE_TIMEOUT}"
|
|
echo "INVENTORY_FORCE_OUTAGE=${INVENTORY_FORCE_OUTAGE}"
|
|
echo "WAIT_TIMEOUT=${WAIT_TIMEOUT}"
|
|
|
|
- type: Command
|
|
name: Configure kubeconfig
|
|
command: |
|
|
mkdir -p "${HOME}/.kube"
|
|
|
|
oci ce cluster create-kubeconfig \
|
|
--cluster-id "${OKE_CLUSTER_OCID}" \
|
|
--file "${HOME}/.kube/config" \
|
|
--region "${OCI_REGION}" \
|
|
--token-version 2.0.0 \
|
|
--kube-endpoint "${OKE_ENDPOINT_TYPE}"
|
|
|
|
export KUBECONFIG="${HOME}/.kube/config"
|
|
echo "KUBECONFIG=${KUBECONFIG}"
|
|
|
|
kubectl config current-context
|
|
kubectl cluster-info
|
|
|
|
- type: Command
|
|
name: Apply business ConfigMap remediation
|
|
command: |
|
|
kubectl patch configmap "${CONFIGMAP_NAME}" -n "${APP_NAMESPACE}" \
|
|
--type merge \
|
|
-p "{
|
|
\"data\": {
|
|
\"ORDER_MANUAL_REVIEW_RATE_THRESHOLD\": \"${ORDER_MANUAL_REVIEW_RATE_THRESHOLD}\",
|
|
\"ORDER_REVENUE_AT_RISK_THRESHOLD\": \"${ORDER_REVENUE_AT_RISK_THRESHOLD}\",
|
|
\"ORDER_STUCK_REVIEW_MODE\": \"${ORDER_STUCK_REVIEW_MODE}\",
|
|
\"PAYMENT_FORCE_TIMEOUT\": \"${PAYMENT_FORCE_TIMEOUT}\",
|
|
\"INVENTORY_FORCE_OUTAGE\": \"${INVENTORY_FORCE_OUTAGE}\"
|
|
}
|
|
}"
|
|
|
|
- type: Command
|
|
name: Restart order service
|
|
command: |
|
|
kubectl rollout restart deployment/order-service -n "${APP_NAMESPACE}"
|
|
kubectl rollout status deployment/order-service -n "${APP_NAMESPACE}" --timeout="${WAIT_TIMEOUT}"
|
|
|
|
- type: Command
|
|
name: Show remediated configuration
|
|
command: |
|
|
kubectl get configmap "${CONFIGMAP_NAME}" -n "${APP_NAMESPACE}" -o yaml
|
|
kubectl get pods -n "${APP_NAMESPACE}" -o wide
|