fleet

command module
v0.10.0-rc.16 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 17, 2024 License: Apache-2.0 Imports: 0 Imported by: 0

README

Introduction

FOSSA Status

Unit E2E Examples E2E Multi-Cluster Examples golangci-lint

Fleet is GitOps at scale. Fleet is designed to manage multiple clusters. It's also lightweight enough that it works great for a single cluster too, but it really shines when you get to a large scale. By large scale we mean either a lot of clusters, a lot of deployments, or a lot of teams in a single organization.

Fleet can manage deployments from git of raw Kubernetes YAML, Helm charts, or Kustomize or any combination of the three. Regardless of the source all resources are dynamically turned into Helm charts and Helm is used as the engine to deploy everything in the cluster. This gives a high degree of control, consistency, and auditability. Fleet focuses not only on the ability to scale, but to give one a high degree of control and visibility to exactly what is installed on the cluster.

Quick Start

For more information, have a look at Fleet's documentation.

Install

Get helm if you don't have it. Helm 3 is just a CLI and won't do bad insecure things to your cluster.

For instance, using Homebrew:

brew install helm

Install the Fleet Helm charts (there's two because we separate out CRDs for ultimate flexibility.)

helm -n cattle-fleet-system install --create-namespace --wait \
    fleet-crd https://github.com/rancher/fleet/releases/download/v0.9.5/fleet-crd-0.9.5.tgz
helm -n cattle-fleet-system install --create-namespace --wait \
    fleet https://github.com/rancher/fleet/releases/download/v0.9.5/fleet-0.9.5.tgz

Add a Git Repo to watch

Change spec.repo to your git repo of choice. Kubernetes manifest files that should be deployed should be in /manifests in your repo.

cat > example.yaml << "EOF"
apiVersion: fleet.cattle.io/v1alpha1
kind: GitRepo
metadata:
  name: sample
  # This namespace is special and auto-wired to deploy to the local cluster
  namespace: fleet-local
spec:
  # Everything from this repo will be run in this cluster. You trust me right?
  repo: "https://github.com/rancher/fleet-examples"
  paths:
  - simple
EOF

kubectl apply -f example.yaml

Get Status

Get status of what Fleet is doing:

kubectl -n fleet-local get fleet

You should see something like this get created in your cluster.

kubectl get deploy frontend
NAME       READY   UP-TO-DATE   AVAILABLE   AGE
frontend   3/3     3            3           116m

Enjoy and read the docs.

License

FOSSA Status

For developer and maintainer documentation, see DEVELOPING.md.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
fleetagent
Package main is the entrypoint for the fleet-agent binary.
Package main is the entrypoint for the fleet-agent binary.
fleetcli
Package main is the entry point for the fleet apply binary.
Package main is the entry point for the fleet apply binary.
fleetcontroller
Package main provides the entrypoint for the fleet-controller binary.
Package main provides the entrypoint for the fleet-controller binary.
e2e
testenv
Package testenv contains common helpers for tests
Package testenv contains common helpers for tests
testenv/kubectl
Package kubectl is a wrapper around the kubectl CLI
Package kubectl is a wrapper around the kubectl CLI
integrationtests
cli
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal
bundlereader
Package bundlereader creates a bundle from a source and adds all the referenced resources, as well as image scans.
Package bundlereader creates a bundle from a source and adds all the referenced resources, as well as image scans.
cmd
cmd/agent/clusterstatus
Package clusterstatus updates the cluster.fleet.cattle.io status in the upstream cluster with the current cluster status.
Package clusterstatus updates the cluster.fleet.cattle.io status in the upstream cluster with the current cluster status.
cmd/agent/deployer/internal/diff
copied from argoproj/gitops-engine/pkg/diff/diff.go
copied from argoproj/gitops-engine/pkg/diff/diff.go
cmd/agent/deployer/internal/diffnormalize
extracted from argoproj/argo-cd/util/argo/diff/normalize.go
extracted from argoproj/argo-cd/util/argo/diff/normalize.go
cmd/agent/deployer/internal/glob
copied from argoproj/argo-cd/util/glob/glob.go
copied from argoproj/argo-cd/util/glob/glob.go
cmd/agent/deployer/internal/json
copied from argoproj/gitops-engine/pkg/utils/json/json.go
copied from argoproj/gitops-engine/pkg/utils/json/json.go
cmd/agent/deployer/internal/normalizers
extracted from argoproj/argo-cd/util/argo/normalizers/diff_normalizer.go
extracted from argoproj/argo-cd/util/argo/normalizers/diff_normalizer.go
cmd/agent/deployer/internal/resource
extracted from argoproj/argo-cd/pkg/apis/application/v1alpha1/types.go
extracted from argoproj/argo-cd/pkg/apis/application/v1alpha1/types.go
cmd/agent/deployer/internal/scheme
copied from https://github.com/argoproj/gitops-engine/blob/master/pkg/utils/kube/scheme/scheme.go
copied from https://github.com/argoproj/gitops-engine/blob/master/pkg/utils/kube/scheme/scheme.go
cmd/agent/trigger
Package trigger watches a set of deployed resources and triggers a callback when one of them is deleted.
Package trigger watches a set of deployed resources and triggers a callback when one of them is deleted.
cmd/cli
Package cli sets up the CLI commands for the fleet apply binary.
Package cli sets up the CLI commands for the fleet apply binary.
cmd/cli/apply
Package apply creates bundle resources from gitrepo resources.
Package apply creates bundle resources from gitrepo resources.
cmd/cli/match
Package match is used to test matching a bundles to a target on the command line.
Package match is used to test matching a bundles to a target on the command line.
cmd/cli/writer
Package writer provides a writer that can be used to write to a file or stdout.
Package writer provides a writer that can be used to write to a file or stdout.
cmd/controller
Package controller starts the fleet controller.
Package controller starts the fleet controller.
cmd/controller/agentmanagement/agent
Package agent builds manifests for creating a managed fleet-agent.
Package agent builds manifests for creating a managed fleet-agent.
cmd/controller/agentmanagement/connection
Package connection provides a connection to a Kubernetes cluster, used when importing a cluster.
Package connection provides a connection to a Kubernetes cluster, used when importing a cluster.
cmd/controller/agentmanagement/controllers/cluster
Package cluster provides controllers for managing clusters: status changes, importing, bootstrapping.
Package cluster provides controllers for managing clusters: status changes, importing, bootstrapping.
cmd/controller/agentmanagement/controllers/clusterregistration
Package clusterregistration implements manager-initiated and agent-initiated registration.
Package clusterregistration implements manager-initiated and agent-initiated registration.
cmd/controller/agentmanagement/controllers/clusterregistrationtoken
Package clusterregistrationtoken provides a controller for ClusterRegistrationToken.
Package clusterregistrationtoken provides a controller for ClusterRegistrationToken.
cmd/controller/agentmanagement/controllers/config
Package config reads the initial global configuration.
Package config reads the initial global configuration.
cmd/controller/agentmanagement/controllers/manageagent
Package manageagent provides a controller for managing the agent bundle.
Package manageagent provides a controller for managing the agent bundle.
cmd/controller/agentmanagement/secret
Package secret gets or creates service account secrets for cluster registration.
Package secret gets or creates service account secrets for cluster registration.
cmd/controller/cleanup/content
Package content purges orphaned content objects by inspecting bundledeployments in all namespaces.
Package content purges orphaned content objects by inspecting bundledeployments in all namespaces.
cmd/controller/cleanup/controllers/cleanup
Package cleanup provides a controller that cleans up resources that are no longer needed.
Package cleanup provides a controller that cleans up resources that are no longer needed.
cmd/controller/options
Package options merges the BundleDeploymentOptions
Package options merges the BundleDeploymentOptions
cmd/controller/reconciler
Package config reads the initial global configuration.
Package config reads the initial global configuration.
cmd/controller/summary
Package summary provides a summary of a bundle's, gitrepo's or cluster's state.
Package summary provides a summary of a bundle's, gitrepo's or cluster's state.
cmd/controller/target
Package target provides functionality around building and deploying bundledeployments.
Package target provides functionality around building and deploying bundledeployments.
config
Package config implements the config for the fleet manager and agent
Package config implements the config for the fleet manager and agent
fleetyaml
Package fleetyaml provides utilities for working with fleet.yaml files, which are the central yaml files for bundles.
Package fleetyaml provides utilities for working with fleet.yaml files, which are the central yaml files for bundles.
manifest
Package manifest manages content resources, which contain all the resources for a deployed bundle.
Package manifest manages content resources, which contain all the resources for a deployed bundle.
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
name
Package name provides functions for truncating and hashing strings and for generating valid k8s resource names.
Package name provides functions for truncating and hashing strings and for generating valid k8s resource names.
pkg
git
git-urls
Package giturls parses Git URLs.
Package giturls parses Git URLs.
git/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
apis Module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL