By Raziel Tabib, CEO and Co-founder, Codefresh
[Editor’s note: Today we hear from Codefresh, which makes a Docker-native continuous integration/continuous delivery (CI/CD) platform. Read on to learn how Codefresh’s recent integrations with Kubernetes and Google Container Registry will make it easier for you to build, test and deploy your cloud-native applications to Google Cloud, including Container Engine and Kubernetes.]
Traditional pipelines weren’t designed with containers and cloud services in mind. At Codefresh, we’ve built our platform specifically around Docker and cloud services to simplify the entire pipeline and make it easier to build, test and deploy web apps. We recently partnered with Google Cloud to add two key features into our platform: an embedded registry (powered by Google’s own Container Registry) and one-click deploy to Google Container Engine.
Advantages of an embedded registry
Codefresh’s embedded registry doesn’t replace production registries but rather provides a developer-focused registry for testing and development. The production registry becomes a single source of truth for production grade images, while Codefresh’s embedded registry maintains the images needed for development.
This approach has a couple of other big advantages:
Image quality control is higher since it’s built right into the test flow
Build-assist images (for example, those used with Java and other compiled languages) stay nicely organized in the dev space
Codefresh extends the images with valuable metadata (e.g., test results, commit info, build SHA, logs, issue id, etc.), creating a sandbox-like registry for developers
Build speed is faster since the embedded registry is “closer” to the build machines
The embedded registry also allows developers to call images by tag and extended metadata from the build flow. For example, if you want to test a service based on how it works with different versions of another service, you can reference images based on their git commit ID (build SHA).
To try out the embedded registry, you’ll need to join the beta.
One-click deploy to Kubernetes
We manage the Codefresh production environment with Kubernetes running on Container Engine. Because we use Codefresh to build, test and deploy Codefresh itself, we wanted to make sure there was a simple way to deploy to Kubernetes. To do that, we’re adding Kubernetes deployment images to Codefresh, available both in the UI and Codefresh YAML. The deploy images contain a number of scripts that make pushing new images a simple matter of passing credentials. This makes it easy to automate the deployments, and when paired with branch permissions, makes it easy for anyone authorized to approve and push code to production.
To try this feature in Codefresh, just select the deploy script in the pipeline editor and add the needed build arguments. For more information checkout our documentation on deploying to Kubernetes.
Or add this code to your Codefresh.yml
deploy-to-kubernetes-staging:
image: codefreshio/kubernetes-deployer:master
tag: latest
working-directory: ${{initial-clone}}
commands:
– /deploy/bin/deploy.sh ./root
environment:
– ENVIRONMENT=${{ENVIRONMENT}}
– KUBERNETES_USER=${{KUBERNETES_USER}}
– KUBERNETES_PASSWORD=${{KUBERNETES_PASSWORD}}
– KUBERNETES_SERVER=${{KUBERNETES_SERVER}}
– DOCKER_IMAGE_TAG=${{CF_REVISION}}
Migrating to Google Cloud’s Container Engine
For those migrating to Container Engine or another Kubernetes environment, the Codefresh deploy images simplify everything. Pushing to Kubernetes is cloud agnostic — just point it at your Kubernetes deployment, and you’re good to go.
About Codefresh, CI/CD for Docker
Codefresh is CI for Docker used by open source and business. We automatically deploy and scale build and test infrastructure for each Docker image. We also deploy shareable environments for every code branch. Check it out https://codefresh.io/ and join the embedded registry beta.
Quelle: Google Cloud Platform
Published by