Our industry is going through a transition where on-premises applications are gradually being replaced by cloud applications and containers. Containers are used to package and run an application, along with its dependencies, in an isolated, predictable and repeatable way.
Kubernetes is a portable, extensible, open source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available.
Amazon Elastic Kubernetes Service (Amazon EKS) is a managed Kubernetes service that makes it easy for you to run Kubernetes on AWS and on-premises. Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. Amazon EKS is certified Kubernetes-conformant, so existing applications that run on upstream Kubernetes are compatible with Amazon EKS.
FlexDeploy’s Kubernetes plugin provides a simple and effective way to deploy manifest files on Amazon EKS Cluster.
Deploying the manifest files with associated properties to Amazon EKS Cluster is a multistep process when done manually using AWS CLI, making it prone to human error. In this blog, I will explain how conveniently we can deploy manifest files on Amazon EKS Cluster with just few configurations/steps.
Implementation steps
AWS account setup
Configure your AWS account details as a Cloud account under the Integrations->cloud section of FlexDeploy. It should have a AWS Access Key and AWS Secret Key. The user must have relevant access to do the deployment on EKS cluster.
Git repository structure
The Git repository should contain the manifest file, the Sample Git repository structure is given below.
Process flow
The FlexDeploy build workflow should download source code from Git repository, then copy the manifest file to the artifact. After that Kubernetes plugin deploy the manifest file to the EKS cluster.
Build and Deployment Workflow
Considering the above configurations, if we configure the Build and Deploy workflow they should look like this:
Configuration Steps
Source Control
The Git Repository should be configured in Source Control section under Project Properties.
Target details
As part of Project properties, we can configure Kubeconfig File path, AWS CLI directory and Cloud Account.
Environment Target properties
The target AWS Cloud account needs to be set here from the drop-down. It will show all Cloud accounts configured under Topology, which we have already mentioned earlier. We can also configure Kubeconfig File path and AWS CLI directory.
Below given are the environment-specific values which need to be updated.
Execution steps
To initiate the Build workflow, navigate to the Project Execution tab. Select the BUILD button on top right corner. This will open a popup to submit the build request. We need to select the configured Environment and select SUBMIT.
Once completed we can see the manifest file present in the Artifacts.
After the build is completed we can initiate the deployment by selecting Submit Deploy Request.
Once successfully executed, we can verify from the log that deployment completed as expected.
Post deployment
Post deployment success from plugin it can take a little while for the deployment and running.
Once deployment successfully completed, we can see the related details on EKS cluster by using AWS console.
Conclusion
For anyone dealing with EKS cluster deployment, FlexDeploy’s Kubernetes plugin can be a significant value addition.
Deployment can be streamlined with minimum effort ensuring end-to-end visibility and reducing manual processes and errors.
FlexDeploy supports Continuous Integration for all your build tools and Continuous Deployment for AWS and other major Cloud providers. You can fully automate your AWS infrastructure and code deployments using FlexDeploy’s Release and Pipelines. With toolchain integration, you can implement quality gates, approvals, notifications, automated code scanning, and test automation with simple configurations.