faros

module
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Nov 18, 2019 License: Apache-2.0

README

Faros Logo

Faros

Faros - Greek for Lighthouse

Faros is a GitOps controller that takes a Git repository reference from a Custom Resource Definition (CRD) and applies resources within the repository to a Kubernetes cluster.

Faros aims to make it easier for teams to ensure that the desired state of their applications is synchronised between a Kubernetes cluster and Git.

Typically, a team running workloads on Kubernetes will use infrastructure-as-code concepts and keep a copy of their deployment configuration under source control just as they do with their product code. The process of taking this desired state from Git and applying it to the Kubernetes cluster is the problem Faros aims to solve.

By providing Faros with a reference to a Git repository (URL and Git Reference (eg master)), credentials to access the repository and an optional path within the repository, Faros will load all Kubernetes resource definitions from the repository and synchronise these with the Kubernetes cluster.

Faros then watches the child resources (resources created from the repository) and, if they are ever modified, reverts the change back to the state of the Git repository. This allows users to make changes to their deployment configuration exclusively in Git, which in turn enables them to audit and peer review those changes as well as providing a canonical history of what was deployed and when.

Note: This is a proof of concept in the early alpha stage. We are providing no guarantees and recommend that you test and thoroughly understand the project before deploying to production.

Documentation

For more information about how to build, install and run Faros, see our documentation

Communication

  • Found a bug? Please open an issue.
  • Have a feature request. Please open an issue.
  • If you want to contribute, please submit a pull request

Contributing

Please see our Contributing guidelines.

License

This project is licensed under Apache 2.0 and a copy of the license is available here.

Directories

Path Synopsis
cmd
hack
pkg
apis
Package apis contains Kubernetes API groups.
Package apis contains Kubernetes API groups.
apis/faros
Package faros contains faros API versions
Package faros contains faros API versions
apis/faros/v1alpha1
Package v1alpha1 contains API Schema definitions for the faros v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/pusher/faros/pkg/apis/faros +k8s:defaulter-gen=TypeMeta +groupName=faros.pusher.com Package v1alpha1 contains API Schema definitions for the faros v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/pusher/faros/pkg/apis/faros +k8s:defaulter-gen=TypeMeta +groupName=faros.pusher.com
Package v1alpha1 contains API Schema definitions for the faros v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/pusher/faros/pkg/apis/faros +k8s:defaulter-gen=TypeMeta +groupName=faros.pusher.com Package v1alpha1 contains API Schema definitions for the faros v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/pusher/faros/pkg/apis/faros +k8s:defaulter-gen=TypeMeta +groupName=faros.pusher.com
client/clientset
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/clientset/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset/typed/faros/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/typed/faros/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
utils/client
Package client has been copied from kubectl code almost verbatim Some methods have been moved from k/k into the utils.go file to remove the dependency on K/K https://github.com/kubernetes/kubernetes/blob/v1.13.1/pkg/kubectl/cmd/apply/apply.go
Package client has been copied from kubectl code almost verbatim Some methods have been moved from k/k into the utils.go file to remove the dependency on K/K https://github.com/kubernetes/kubernetes/blob/v1.13.1/pkg/kubectl/cmd/apply/apply.go
test

Jump to

Keyboard shortcuts

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