What is Codefresh?
Codefresh is a Kubernetes-native CI/CD platform built by the creators of Argo (ArgoCD, Argo Workflows, Argo Rollouts, Argo Events). It combines the power of the Argo ecosystem with an enterprise-grade platform for GitOps deployments.
Why Codefresh?
- Free tier — 3 builds/month for open source, free GitOps runtime
- Argo-native — ArgoCD, Argo Workflows, Argo Rollouts all integrated
- Kubernetes-first — every build runs in a K8s pod
- Built-in Docker registry — free private registry included
- GitOps dashboard — unified view of all deployments across clusters
Quick Start
# Install Codefresh CLI
npm install -g codefresh
# Authenticate
codefresh auth create-context --api-key YOUR_API_KEY
# Install GitOps runtime
codefresh install gitops-runtime \
--repo https://github.com/your-org/gitops-config \
--git-token YOUR_GITHUB_TOKEN
CI Pipeline (codefresh.yml)
version: "1.0"
stages:
- build
- test
- deploy
steps:
clone:
type: git-clone
repo: your-org/your-app
revision: ${{CF_BRANCH}}
stage: build
test:
image: node:20
stage: test
commands:
- npm ci
- npm test
- npm run lint
build_image:
type: build
stage: build
image_name: your-org/your-app
tag: ${{CF_SHORT_REVISION}}
dockerfile: Dockerfile
deploy:
type: gitops
stage: deploy
arguments:
app_name: your-app
revision: ${{CF_SHORT_REVISION}}
GitOps Application
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-webapp
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/your-org/gitops-config
path: apps/my-webapp
targetRevision: main
destination:
server: https://kubernetes.default.svc
namespace: production
syncPolicy:
automated:
prune: true
selfHeal: true
Progressive Delivery with Argo Rollouts
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: my-webapp
spec:
replicas: 10
strategy:
canary:
steps:
- setWeight: 10
- pause: {duration: 5m}
- setWeight: 30
- pause: {duration: 5m}
- setWeight: 60
- pause: {duration: 5m}
canaryMetadata:
labels:
role: canary
analysis:
templates:
- templateName: success-rate
startingStep: 2
args:
- name: service-name
value: my-webapp
Codefresh vs Alternatives
| Feature | Codefresh | GitHub Actions | Jenkins | GitLab CI |
|---|---|---|---|---|
| K8s-native | Yes | No | No | Runners |
| GitOps | ArgoCD built-in | Manual | Plugin | Agent |
| Progressive delivery | Argo Rollouts | Manual | Plugin | Manual |
| Docker registry | Included free | GHCR | None | Included |
| Helm dashboard | Yes | No | No | No |
Real-World Impact
A media company with 30 microservices managed deployments through a mix of Jenkins, custom scripts, and manual kubectl. Migration to Codefresh: unified GitOps dashboard, automatic canary rollouts with Argo Rollouts, deployment frequency went from weekly to 20x daily, and rollback time dropped from 45 minutes to 30 seconds.
Implementing GitOps for your team? I help organizations adopt Kubernetes-native CI/CD. Contact spinov001@gmail.com or check my data tools on Apify.
Top comments (0)