0

I have an application (Django web app alongside couple of microservices) and have done deployment previously via Ansible tasks. Playbook was invoked from Ansible Tower and essentially breaks down into following steps

  • pull desired docker image
  • migrate database
  • build js bundle / collect static
  • restart application with docker compose

What is the best practice / preferred solution to have centralized control panel for deploys with k8s?

Do I need to just rewrite Ansible tasks which will render kustomization file with new image tag and the rest will be just invocations of kubectl? Appreciate any suggestions or related resources

P.S. this one haven't helped much

1
1

You can use kustomization to run kubectl commands/apply files and can achieve the deployment.

However if you really want to get into the k8s ecosystem you can have look into the various tools available for a more controlled deployment workflow.

  • Packaging:- Manage/package your k8s objects.E.g Helm,jsonnet
  • Helm Repository:- Centralised helm chart repository. Helm repo is to helm charts what docker is to ECR/GCR/DockerHub. E.g (ChartMuseum)
  • CI:- Upgrade your CI to publish Helm charts. Apart from this you can run your builds on k8s as well which provide parllelism/scale and cost reduction. E.g Github Action/Jenkins.
  • CD:- Use A specialized CD tool to manage multi-cluster deployments. FluxCD,ArgoCD,Fleet
  • CI/CD:- Use a complete delivery tool that fulfills needs of CI/CD. You can use this if you are starting the pipelines from scratch without any existing infra. Also look into the lock-in aspect of using a complete solution. (Might not fulfill all the use cases you may have. Sometimes using bunch of tools is better). E.g JenkinsX/CircleCI
  • Secret Manager:- You will not want to hard-code senstive/environment related information in your CD pipelines. You can look into Vault,Sealed-Secrets to manage secrets.
  • GitOps/Pull/Push formats

This is not an exhaustive list, but will get you started on continuous delivery on k8s.

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.