[DEPRECATED] Thanks for using these packages, but we will no longer support them.
The kit
suite is a series of components that when used together can achieve a continuous deployment workflow for countless Kubernetes clusters. They can be used as npm modules to orchestrate your own pipeline or they can be easily integrated into a Codeship Docker pipeline.
It currently consist of 3 core components:
Component | Version |
---|---|
kit-image-deployer (DEPRECATED) | |
kit-deploymentizer (DEPRECATED) | |
kit-deployer (DEPRECATED) |
This pipeline keeps things simple by utilizing a Docker powered pipeline that can used for builds and testing for deployments as well. By doing this, you avoid having to run external services (such as a central service that triggers deployments, Vault or Consul services for configuration management, authentication services, etc) to manage the deployments.
Entire workflow uses the power of Codeship's Docker pipeline for builds, testing and deployments.
Developers simply open PRs for their code changes where Codeship will run the builds and tests to verify the changes. Once the build passes, the developer merges the PR into "master" (or any other deployable branch) and Codeship runs another build & test to verify and finally commits newly created image tag to the deployments repository where it is then deployed to the cluster via Codeship.
4. Updates to images, environment variables or configurations are automatically and continuously deployed
Whenever a service's code is changed, it goes through it's Codeship pipeline to generate a new image that is tagged and pushed to our registry. The tagged image is then committed to the deployments repository where all cluster configurations are stored which automatically triggers Codeship to generate the new deployment files and deploy them to all our clusters. This keeps the deployment's repository image tags in sync with the appropriate deployed image. Because environment configuration will be reusable across multiple clusters and instances of the application, it makes it incredibly easy to rotate keys by simply updating it in the repository in a single place and the auto deployment takes care of it from there.
Whenever system administrators (or other automated systems) create new clusters, they can add it to the Deployments repository. This will automatically trigger the Codeship deploy process for these clusters and thus any future updates to services and environment variables will get deployed to the new cluster.
Again this would be configured within the Deployments repository so that the Codeship deploy step will know which namespaces the deployments go to across as many clusters as we desire.
Because this process is using git, you have full history of all commits that occur and by whom the commits were made.
Rolling back is as easy as reverting a commit on the corresponding service repo or the deployments repository which will trigger the Codeship deploy process.
Although automatic deploys will be halted if Github or Codeship were inaccessible, it doesn't mean you can't deploy. As long as you have a mirror of the git repo on Codeship and system administrators have the Codeship AES key, you can manually perform deployments as needed.