Convert Figma logo to code with AI

weaveworks logoweave-gitops

Weave GitOps is transitioning to a community driven project! It provides insights into your application deployments, and makes continuous delivery with GitOps easier to adopt and scale across your teams.

1,001
161
1,001
110

Top Related Projects

7,029

Open and extensible continuous delivery solution for Kubernetes. Powered by GitOps Toolkit.

19,346

Declarative Continuous Deployment for Kubernetes

4,620

Jenkins X provides automated CI+CD for Kubernetes with Preview Environments on Pull Requests using Cloud Native pipelines from Tekton

1,584

Deploy workloads from Git to large fleets of Kubernetes clusters

22,694

Pulumi - Infrastructure as Code in any programming language 🚀

Quick Overview

Weave GitOps is an open-source GitOps platform that automates the deployment and management of Kubernetes applications. It provides a user-friendly interface for managing applications, clusters, and infrastructure as code, enabling teams to implement GitOps practices efficiently.

Pros

  • Simplifies GitOps implementation with a user-friendly interface and automated workflows
  • Supports multi-cluster management and application deployment across various environments
  • Integrates well with existing CI/CD pipelines and Kubernetes ecosystems
  • Provides built-in observability and monitoring features for deployed applications

Cons

  • Requires a learning curve for teams new to GitOps practices
  • May have limitations in customization compared to more flexible, DIY GitOps solutions
  • Dependency on specific tools and platforms (e.g., Flux) may not suit all organizational needs
  • Community support and ecosystem may be less extensive compared to some alternatives

Getting Started

To get started with Weave GitOps, follow these steps:

  1. Install the Weave GitOps CLI:
curl -L https://github.com/weaveworks/weave-gitops/releases/latest/download/gitops-$(uname)-$(uname -m).tar.gz | tar xz
sudo mv gitops /usr/local/bin
gitops version
  1. Bootstrap Weave GitOps on your cluster:
gitops bootstrap
  1. Access the Weave GitOps UI:
gitops dashboard

For more detailed instructions and advanced configuration options, refer to the official Weave GitOps documentation.

Competitor Comparisons

7,029

Open and extensible continuous delivery solution for Kubernetes. Powered by GitOps Toolkit.

Pros of Flux

  • More mature and widely adopted in the Kubernetes ecosystem
  • Supports a broader range of GitOps use cases and scenarios
  • Offers a more extensive set of built-in controllers and custom resources

Cons of Flux

  • Steeper learning curve for beginners
  • Less user-friendly interface compared to Weave GitOps
  • Configuration can be more complex for advanced scenarios

Code Comparison

Flux manifest example:

apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: GitRepository
metadata:
  name: podinfo
  namespace: flux-system
spec:
  interval: 1m
  url: https://github.com/stefanprodan/podinfo
  ref:
    branch: master

Weave GitOps manifest example:

apiVersion: gitops.weave.works/v1alpha1
kind: Application
metadata:
  name: podinfo
  namespace: default
spec:
  source:
    repoURL: https://github.com/stefanprodan/podinfo
    targetRevision: master
  destination:
    namespace: default

Both Flux and Weave GitOps provide GitOps solutions for Kubernetes, but they differ in their approach and feature set. Flux offers more flexibility and advanced features, while Weave GitOps focuses on simplicity and ease of use. The code examples show how both tools define Git repositories for deployment, with Flux using its custom GitRepository resource and Weave GitOps using an Application resource.

19,346

Declarative Continuous Deployment for Kubernetes

Pros of Argo CD

  • More mature and widely adopted in the Kubernetes ecosystem
  • Supports a broader range of deployment strategies and application types
  • Offers a rich set of features for advanced GitOps workflows

Cons of Argo CD

  • Steeper learning curve for beginners
  • Can be more complex to set up and configure initially
  • May require additional tools for certain enterprise-level features

Code Comparison

Argo CD application manifest:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: myapp
spec:
  destination:
    namespace: default
    server: https://kubernetes.default.svc
  project: default
  source:
    path: k8s
    repoURL: https://github.com/example/myapp.git
    targetRevision: HEAD

Weave GitOps application manifest:

apiVersion: gitops.weave.works/v1alpha1
kind: Application
metadata:
  name: myapp
spec:
  source:
    url: https://github.com/example/myapp.git
    path: k8s
  interval: 1m
  prune: true

Both tools use similar YAML-based configuration for defining applications, but Argo CD's manifest is more detailed and offers more customization options out of the box. Weave GitOps aims for simplicity with a more concise configuration, which can be beneficial for simpler deployments or teams new to GitOps practices.

4,620

Jenkins X provides automated CI+CD for Kubernetes with Preview Environments on Pull Requests using Cloud Native pipelines from Tekton

Pros of jx

  • More mature project with a larger community and ecosystem
  • Supports multiple cloud providers and Kubernetes distributions
  • Offers a wider range of features for CI/CD pipelines and automation

Cons of jx

  • Steeper learning curve due to its extensive feature set
  • Can be resource-intensive, especially for smaller projects
  • Configuration and setup process can be complex

Code Comparison

jx:

pipeline:
  agent:
    image: gcr.io/jenkinsxio/builder-go
  stages:
    - name: Build
      steps:
        - sh: make build

weave-gitops:

apiVersion: gitops.weave.works/v1alpha1
kind: Application
metadata:
  name: my-app
spec:
  source:
    repoURL: https://github.com/org/repo.git
    path: ./app

Both projects aim to simplify GitOps workflows, but they approach it differently. jx focuses on providing a comprehensive CI/CD solution with built-in pipeline management, while weave-gitops emphasizes a more lightweight approach to GitOps with a focus on Kubernetes-native applications.

jx offers more out-of-the-box features and integrations, making it suitable for larger teams and complex projects. weave-gitops, on the other hand, provides a simpler, more focused solution for GitOps workflows, which may be preferable for smaller teams or projects with specific GitOps requirements.

1,584

Deploy workloads from Git to large fleets of Kubernetes clusters

Pros of Fleet

  • Broader multi-cluster management capabilities
  • Tighter integration with Rancher ecosystem
  • More flexible bundle structure for managing resources

Cons of Fleet

  • Steeper learning curve for non-Rancher users
  • Less focus on GitOps-specific workflows
  • More complex setup for simple GitOps scenarios

Code Comparison

Fleet bundle example:

kind: Bundle
metadata:
  name: example-bundle
spec:
  resources:
  - content:
      inline: |
        apiVersion: apps/v1
        kind: Deployment
        # ... deployment spec

Weave GitOps example:

apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
  name: example-app
spec:
  interval: 5m
  path: ./kustomize
  prune: true
  sourceRef:
    kind: GitRepository
    name: example-repo

Fleet focuses on a custom Bundle resource for managing deployments across clusters, while Weave GitOps leverages Flux's Kustomization CRD for GitOps workflows. Fleet offers more flexibility in resource management, but Weave GitOps provides a more streamlined GitOps-centric approach.

22,694

Pulumi - Infrastructure as Code in any programming language 🚀

Pros of Pulumi

  • Supports multiple programming languages (TypeScript, Python, Go, etc.)
  • Offers a broader scope for infrastructure management beyond Kubernetes
  • Provides strong typing and IDE support for infrastructure code

Cons of Pulumi

  • Steeper learning curve for those unfamiliar with programming languages
  • May require more setup and configuration compared to Weave GitOps
  • Less focused on GitOps-specific workflows and Kubernetes management

Code Comparison

Weave GitOps (YAML):

apiVersion: gitops.weave.works/v1alpha1
kind: GitopsCluster
metadata:
  name: my-cluster
spec:
  secretRef:
    name: my-cluster-secret

Pulumi (TypeScript):

import * as pulumi from "@pulumi/pulumi";
import * as k8s from "@pulumi/kubernetes";

const deployment = new k8s.apps.v1.Deployment("my-app", {
    spec: { replicas: 3, /* ... */ }
});

Both tools aim to simplify infrastructure management, but Pulumi offers a more general-purpose approach using familiar programming languages, while Weave GitOps focuses on Kubernetes-centric GitOps workflows with YAML configurations. Pulumi's flexibility comes at the cost of complexity, while Weave GitOps provides a more streamlined experience for Kubernetes-specific use cases.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Weave GitOps

Test status LICENSE Contributors Release Conventional Commits FOSSA Status FOSSA Status OpenSSF Best Practices OpenSSF Scorecard Go Report Card

Weave GitOps is a simple, open source developer platform for people who want cloud native applications but who don't have Kubernetes expertise. Experience how easy it is to enable GitOps and run your apps in a cluster. Use Git to collaborate with team members making new deployments easy and secure. Start with what developers need to run apps, and then easily extend to define and run your own enterprise platform.

From Kubernetes run Weave GitOps to get:

  1. Application Operations: manage and automate deployment pipelines for apps and more
  2. Platforms: the easy way to have your own custom PaaS on cloud or on premise
  3. Extensions: coordinate Kubernetes rollouts with eg. VMs, databases, and cloud services

Our vision is that all cloud native applications should be easy for developers, and that operations should be automated and secure. Weave GitOps is a highly extensible tool to achieve this by placing Kubernetes and GitOps at the core and building a platform around that.

Weave GitOps defaults are Flux as the GitOps engine, Kustomize, Helm, Sops, and Kubernetes CAPI. If you use Flux already, then you can easily add Weave GitOps to create a platform management overlay.

Weave GitOps Open Source provides:

  • Continuous Delivery through GitOps for apps and infrastructure.
  • Support for GitHub, GitLab, and Bitbucket; S3-compatible buckets as a source; all major container registries; and all CI workflow providers.
  • A secure, pull-based mechanism, operating with least amount of privileges, and adhering to Kubernetes security policies.
  • Compatibility with any conformant Kubernetes version and common ecosystem technologies such as Helm, Kustomize, RBAC, Prometheus, OPA, Kyverno, etc.
  • Multitenancy, multiple Git repositories, multiple clusters.
  • Alerts and notifications.

Manage and view applications all in one place.

Application Page

Easily see your continuous deployments and what is being produced via GitOps. There are multiple views for debugging as well as being able to sync your latest Git commits directly from the UI.

Reconciliation Page

Check out the Graph view.

Graph View

Review the yaml file.

Yaml View

See your entire source landscape whether it is a git repository, helm repository, or bucket.

Sources view

Quickly see the health of your reconciliation deployment runtime. These are the workers that are ensuring your software is running on the Kubernetes cluster.

Flux Runtime

Getting Started

CLI Installation

Mac / Linux

curl --silent --location "https://github.com/weaveworks/weave-gitops/releases/download/v0.39.0-rc.2/gitops-$(uname)-$(uname -m).tar.gz" | tar xz -C /tmp
sudo mv /tmp/gitops /usr/local/bin
gitops version

Alternatively, users can use Homebrew:

brew tap weaveworks/tap
brew install weaveworks/tap/gitops

Please see the getting started guide.

CLI Reference

Command line utility for managing Kubernetes applications via GitOps.

Usage:
  gitops [command]

Examples:

  # Get help for gitops add cluster command
  gitops add cluster -h
  gitops help add cluster

  # Get the version of gitops along with commit, branch, and flux version
  gitops version

  To learn more, you can find our documentation at https://docs.gitops.weaveworks.org/


Available Commands:
  beta        This component contains unstable or still-in-development functionality
  check       Validates flux compatibility
  completion  Generate the autocompletion script for the specified shell
  create      Creates a resource
  get         Display one or many Weave GitOps resources
  help        Help about any command
  version     Display gitops version

Flags:
  -e, --endpoint WEAVE_GITOPS_ENTERPRISE_API_URL   The Weave GitOps Enterprise HTTP API endpoint can be set with WEAVE_GITOPS_ENTERPRISE_API_URL environment variable
  -h, --help                                       help for gitops
      --insecure-skip-tls-verify                   If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure
      --kubeconfig string                          Paths to a kubeconfig. Only required if out-of-cluster.
      --namespace string                           The namespace scope for this operation (default "flux-system")
  -p, --password WEAVE_GITOPS_PASSWORD             The Weave GitOps Enterprise password for authentication can be set with WEAVE_GITOPS_PASSWORD environment variable
  -u, --username WEAVE_GITOPS_USERNAME             The Weave GitOps Enterprise username for authentication can be set with WEAVE_GITOPS_USERNAME environment variable

Use "gitops [command] --help" for more information about a command.

For more information please see the docs

FAQ

Please see our Weave GitOps OSS FAQ

Contribution

Need help or want to contribute? Please see the links below.