Migrate to Operator Based Deployment on AWS EKS
This section describes how to migrate to Operator-based solution from the Helm Charts-based solution on AWS EKS cluster.
This guide is intended for administrators with cluster administrator credentials who are responsible for application deployment.
The following are the prerequisites required to migrate to the operator-based deployment:
- Docker version 17.03 or later
- Access to a Kubernetes cluster version 1.17 or later
- Kubernetes cluster configuration
- The Helm Chart that was used to install the Deploy application
- Back up of the Deploy application and Kubernetes cluster configuration
- Keep the port 4516 free
Before you upgrade to Kubernetes Operator-based solution, you must back up your existing database so that you can revert back to the earlier state in case of upgrade failures. You can use automated backups or snapshots of the database to back up your AWS Relational Database Service (RDS) instance. For more information about back up and restore using snapshots, refer to Backing up and restoring an Amazon RDS DB instance.
Note: We recommend that you use an external database instance (for example, PostgreSQL) for production grade installations. To back up the PostgreSQL database running on a virtual machine, use the native PostgreSQL commands—
Run the following command:
helm status <product name>
Run the following command:
kubectl get pods
Download the XL-CLI binaries.
$VERSION, substitute with the version that matches your product version in the public folder.
chmod +x xl
Copy the XL binary in a directory that is on your
cp xl /usr/local/bin
Verify the release version.
Do one of the following:
If you want to retain the Operator artefacts, run the following command:
xl op --upgrade --no-cleanup
Otherwise, run the following command:
xl op --upgrade
A set of questions is displayed.
To continue with the upgrade, perform the actions described in the following table:
Note: The default values is displayed within square brackets (
|Select the setup mode||Use the Up/Down arrow keys to choose one of the setup modes, and press Enter:
|Select the Kubernetes setup where the digitalai Devops will be installed or uninstalled||Use the Up/Down arrow keys to select the platform from the list—AwsEKS [AWS EKS]. Press Enter.||NA|
|Do you want to use kubernetes current-context from ~/.kube/config ?||If you want to use Kubernetes configuration, type y for Yes. Otherwise, type n for No. Press Enter.
Note: For OpenShift and AWS EKS clusters, always type n (No).
|Enter the K8sApiServerURL of your Kubernetes installation||Type the AWS Server URL, and press Enter.||NA|
|What is the Amazon EKS cluster name?||Type the AWS Cluster Name, and press Enter.||NA|
|Do you want to use the AWS credentials from your ~/.aws/credentials file?||If you want to use the AWS credentials from the credentials file, type y for Yes. Otherwise, type n for No. Press Enter.||Yes|
|Enter the name of the existing Kubernetes namespace where the XebiaLabs DevOps Platform will be installed, updated or undeployed||Type the name of the Kubernetes namespace where the Helm Chart is deployed, and press Enter.||default|
|Product server you want to perform upgrade for||Use the Up/Down arrow keys to choose one of the products you want to upgrade, and press Enter:
|Enter the repository name(eg: <repositoryName>/<imageName>:<tagName>)||Type the repository name from where you want to pull the product server image (Release/Deploy), and press Enter.||xebialabs|
|Enter the image name(eg: <repositoryName>/<imageName>:<tagName>)||Type the image name of the product—xl-deploy, and press Enter.||xl-deploy|
|Enter the image tag(eg: <repositoryName>/<imageName>:<tagName>)||Type the image tag of the product (version number), and press Enter.||10.0.0|
|Select the type of the upgrade you want||Use the Up/Down arrow keys to choose one of the types of upgrades, and press Enter:
Note: To upgrade from Helm-based solution to Operator-based solution, select helmToOperator [Helm to Operator].
|Operator image to use||Type the operator image name, and press Enter.
Note: Get the latest Operator Docker image for Deploy from the official docker hub repository site.
|Enter the helm release name||Type the name of the release product installed using the Helm Chart, for example,
Note: To get the helm release name, run the following command in a separate command shell—
A preview of the enter values is displayed.
- Type y for Yes—to confirm the values. Otherwise, type n for No—to modify the values. After you confirm, the system start the local Deploy instance. This process will take some time.
After the process completes, the Helm-based release product is uninstalled, and the Operator-based release product is installed.
Note: The local Instance of Deploy will run on 4516 port; therefore, ensure you have the port 4516 free. Deployment status can be monitored on the local Deploy GUI. To access local deploy, use:
http://localhost:4516, and log in using the default username and password.
Run the following command:
kubectl get svc
- Register your Load balancer external IP under the appropriate DNS.
After the registration, you can verify the newer version of Deploy (Operator-based product) using the same link that you used to access the earlier version (Helm-chart based release product).