1

This may also be a general pulse; but here lies the issue

We use EKS, we have Jenkins, we have Ansible, we have Terraform, we have BitBucket; but none of these really form a pipeline and I'm stuck with answering; do we need more (FluxCD/AgroCD/drone.io) etc... or what we have is enough and it's simply about stringing these things together.

Currently, Jenkins really just does mostly app deployment stuff of business app for our devs; but if I wanted to deploy like Fluentd to our clusters or pod security policies, it'll usually require me to manually deploy it.

Really trying to think of a modern CICD approach with security as the forefront, most of our usescases is deploying stuff to kubernetes; but that is not all of our usecase (some scragglers like firewall automation)

  • It seems to me you are dealing with an operational environment which has changes made to it outside of the usuall application delivery pipeline. Instead of adding or worrying about tools, can you try to describe what processes you feel are missing? – Bruce Becker May 15 at 12:11
2

You have all the necessary tools for the 2 use cases you mentioned. For application development, it looks like you have something already set up. I'm assuming, for time's sake, you have automated both code quality and security scanning of your application and that is all working. If you haven't already started packaging your applications into helm to deploy into kubernetes I suggest you do that. What your looking to do is automate your deployments of pre-built applications and infrastructure into EKS or cloud (aws).

To deploy applications onto your EKS cluster terraform allows you to deploy via helm. So your Jenkins pipeline can deploy your terraform infrastructure which utilize the providers for kubernetes, eks, helm, AWS and more to provision and configure your infrastructure and applications. There is a separate pipeline usually for custom apps, pre-built apps, and infrastructure. Each has it's own quality, security, and resiliency checks needed so you may need some additional tools as you go forward.

For example here is a link to the Hashicorps website on using terraform in automated pipelines. Note it's considered advanced https://learn.hashicorp.com/terraform/development/running-terraform-in-automation

At this point I'm not sure what you're using Ansible for as that's not necessary for EKS and it's services but if you still need it in parallel to terraform there are plugins to Jenkins https://plugins.jenkins.io/ansible/. There's also one for terraform https://plugins.jenkins.io/terraform//

So in short, no need to start adding tools but exploring the ones you have. The way to look at it is this:

  • Task Runner and orchestrator for CI/CD: Jenkins
    • this will orchestrate all CI/CD
  • Application deployment: Helm
    • this would deploy and version all applications
    • applications can be deployed via jenkins or terraform
  • Infrastructure deployment: Terraform
    • initial testing done manually but Jenkins can run terraform to deploy infrastructure and base services.
| improve this answer | |
0

If you are looking to combine all your CI\CD activities into one single process\pipeline, i would suggest to go with Azure DevOps which also supports Jenkins, Ansible, Kubernetes and almost all the 3rd party\Open source CI\CD tools. So that you could also use your existing tools like Jenkins and Ansible and connect with Azure Devops to make it connected pipelines. I have used this and i was able to do all my CI\CD activity in a single automated pipeline. Have a try maybe.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.