Skip to content
Open
Changes from all commits
Commits
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
28 changes: 16 additions & 12 deletions charts/port-ocean/templates/cron-job/cron.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -109,24 +109,28 @@ spec:
echo "No running resync jobs found. Starting new job: $CURRENT_JOB_NAME"
fi

# Rollout live events deployment if exists to match integration image versions
rollout_if_exists() {
# Rollout existing deployments if they are not running with the latest image
rollout_if_image_mismatch() {
local DEPLOYMENT_NAME=$1

echo "Running: kubectl get deployment ${DEPLOYMENT_NAME} -o=json | jq -r \".metadata.name\""
DEPLOYMENT=$(kubectl get deployment ${DEPLOYMENT_NAME} --token=$TOKEN -o=json | jq -r ".metadata.name")
echo "Checking if ${DEPLOYMENT_NAME} exists"
if ! kubectl get deployment ${DEPLOYMENT_NAME} -n ${NAMESPACE} --token=$TOKEN > /dev/null 2>&1; then
echo "Deployment ${DEPLOYMENT_NAME} does not exist. Skipping rollout restart."
return
fi

echo "Checking if ${DEPLOYMENT_NAME} pods are running with the latest image"
DEPLOYMENT_IMAGE_SHA=$(kubectl get pods -l app=${DEPLOYMENT_NAME} -o go-template='{{range .items}}{{range .status.containerStatuses}}{{if eq .name {{ include "port-ocean.containerName" . }} }}{{.imageID}}{{"\n"}}{{end}}{{end}}{{end}}' | sed 's|.*@||')
LATEST_IMAGE_SHA=$(docker inspect {{ include "port-ocean.image" . }} --format '{{index .RepoDigests 0}}' | sed 's|.*@||')

if [ -n "$DEPLOYMENT" ]; then
echo "Found deployment: $DEPLOYMENT"
echo "Rolling out $DEPLOYMENT"
kubectl rollout restart deployment $DEPLOYMENT -n ${NAMESPACE} --token=$TOKEN
else
echo "Deployment $DEPLOYMENT_NAME does not exist. Skipping rollout restart."
if [ "$DEPLOYMENT_IMAGE_SHA" != "$LATEST_IMAGE_SHA" ]; then
echo "Deployment $DEPLOYMENT_NAME is not running with the latest image. Rolling out restart."
kubectl rollout restart deployment $DEPLOYMENT_NAME -n ${NAMESPACE} --token=$TOKEN
fi
}

rollout_if_exists {{ include "port-ocean.liveEvents.deploymentName" . }}
rollout_if_exists {{ include "port-ocean.actionsProcessor.deploymentName" . }}
rollout_if_image_mismatch {{ include "port-ocean.liveEvents.deploymentName" . }}
rollout_if_image_mismatch {{ include "port-ocean.actionsProcessor.deploymentName" . }}

echo "Exiting init container"
containers:
Expand Down
Loading