kyma-project / application-connector-manager

Apache License 2.0
0 stars 12 forks source link

Cutover plan for rollout of ACM including Compass Runtime Agent #212

Closed tobiscr closed 4 months ago

tobiscr commented 5 months ago

Description

The following plan describes the rollout of the ACM module which includes also the Compass Runtime Agent:

tobiscr commented 5 months ago

@janmedrek - please see our cutover plan. WE will get in touch with @zhoujing2022 to come up with a date for the possible reconciler shutdown.

koala7659 commented 5 months ago

Script to estimate how many Application Connectors modules are used:

set -e

echo "Running Application Connector check script"

if ! kubectl get crd applicationconnectors.operator.kyma-project.io &>/dev/null; then
    echo "Application Connector CRD is missing on the cluster - exiting"
    exit 0
fi

echo "Application Connector CRD exists on the cluster"

if ! kubectl get applicationconnectors.operator.kyma-project.io -n kyma-system applicationconnector-sample &>/dev/null; then
    echo "Application Connector CR is missing on the cluster - exiting"
    exit 0
fi

CRState=$(kubectl get applicationconnectors.operator.kyma-project.io -n kyma-system applicationconnector-sample -oyaml | yq .status.state)

echo "Application Connector CR exists on the cluster and is in state ${CRState}"

if ! kubectl get deploy -n kyma-system application-connector-controller-manager &>/dev/null; then
    echo "Application Connector Manager deployment is missing on the cluster - exiting"
    exit 0
fi

echo "Application Connector Controller Manager deployment is running on the cluster!"

if ! kubectl get crd applications.applicationconnector.kyma-project.io &>/dev/null; then
    echo "Application CRD is missing on the cluster - exiting"
    exit 0
fi

echo "Application CRD exists on the cluster"

applications=$(kubectl get applications.applicationconnector.kyma-project.io --ignore-not-found -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}')

if [ -z "${applications}" ]; then
    echo "No applications are present on the cluster - no external system is connected for the integration"
fi

for application in $applications; do
    echo "Application found $application"
done
Disper commented 4 months ago
koala7659 commented 4 months ago

Current Release Candidate 1.1.3

koala7659 commented 4 months ago

Script to verify state of Application Connector module after upgrade to version 1.1.3:

set -e

echo "Running Application Connector check script after migration to version 1.1.3"

if ! kubectl get crd applicationconnectors.operator.kyma-project.io &>/dev/null; then
    echo "Application Connector CRD is missing on the cluster - Module is not enabled. Exiting"
    exit 0
fi

echo "Application Connector CRD exists on the cluster"

if ! kubectl get applicationconnectors.operator.kyma-project.io -n kyma-system applicationconnector-sample &>/dev/null; then
    echo "Warning! Application Connector CR is missing on the cluster - Module is probably being installed or deleted. Exiting"
    exit 1
fi

CRState=$(kubectl get applicationconnectors.operator.kyma-project.io -n kyma-system applicationconnector-sample -oyaml | yq .status.state)

echo "CR state is: ${CRState}"

if [ "${CRState}" != "Ready" ]; then
  echo "Warning! Application Connector CR is in state ${CRState} - exiting"
  exit 1
fi

if ! kubectl get deploy -n kyma-system application-connector-controller-manager &>/dev/null; then
    echo "Error! Application Connector Manager deployment is missing on the cluster - exiting"
    exit 1
fi

#checking CRDs

if ! kubectl get crd compassconnections.compass.kyma-project.io &>/dev/null; then
    echo "Error! Compass Connection CRD is missing on the cluster - Module is not enabled. Exiting"
    exit 1
fi

if ! kubectl get crd applications.applicationconnector.kyma-project.io &>/dev/null; then
    echo "Error! Application CRD is missing on the cluster - exiting"
    exit 1
fi

#check compassconnection state
ComConState=$(kubectl get compassconnections compass-connection -oyaml --ignore-not-found | yq .status.connectionState)

echo "Compass Connection state is: ${ComConState}"

if [ "${ComConState}" == "Connected" ]; then
  echo "Warning! Compass Connection is Connected but is waiting for application synchronisation - exiting"
  exit 0
fi

if [ "${ComConState}" != "Synchronized" ]; then
  echo "Warning! Compass Connection is in state ${ComConState} - exiting"
  exit 1
fi

# echo "Application CRD exists on the cluster"
applications=$(kubectl get applications.applicationconnector.kyma-project.io --ignore-not-found -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}')
if [ -z "${applications}" ]; then
    echo "No applications are present on the cluster - no external system is connected for integration. Module can be disabled."
    exit 0
fi

echo "Some applications are connected to the cluster. Module must remain enabled."
koala7659 commented 4 months ago

4 clusters on prod after migration cannot synchronise applications with Compass. Issue to investigate: https://github.com/kyma-project/application-connector-manager/issues/259

koala7659 commented 4 months ago

Future release 1.1.4 https://github.com/kyma-project/application-connector-manager/releases/tag/1.1.4

koala7659 commented 4 months ago

Release is completed. Application-Connector module version 1.1.3 is available on both fast and regular channels