A Carvel package providing GitOps configuration (Carvel or Flux) for the Kadras Engineering Platform. Currently, it supports a single-tenant monorepo approach where all Kubernetes manifests are stored in a single Git repository.
-
Kubernetes 1.29+
-
Carvel
kctrl
CLI. -
Carvel kapp-controller deployed in your Kubernetes cluster. You can install it with Carvel
kapp
(recommended choice) orkubectl
.kapp deploy -a kapp-controller -y \ -f https://github.com/carvel-dev/kapp-controller/releases/latest/download/release.yml
Add the Kadras package repository to your Kubernetes cluster:
kctrl package repository add -r kadras-packages \
--url ghcr.io/kadras-io/kadras-packages \
-n kadras-system --create-namespace
Installation without package repository
The recommended way of installing the GitOps Configurer package is via the Kadras package repository. If you prefer not using the repository, you can add the package definition directly usingkapp
or kubectl
.
kubectl create namespace kadras-system
kapp deploy -a gitops-configurer-package -n kadras-system -y \
-f https://github.com/kadras-io/gitops-configurer/releases/latest/download/metadata.yml \
-f https://github.com/kadras-io/gitops-configurer/releases/latest/download/package.yml
Install the GitOps Configurer package:
kctrl package install -i gitops-configurer \
-p gitops-configurer.packages.kadras.io \
-v ${VERSION} \
-n kadras-system
Note You can find the
${VERSION}
value by retrieving the list of package versions available in the Kadras package repository installed on your cluster.kctrl package available list -p gitops-configurer.packages.kadras.io -n kadras-system
Verify the installed packages and their status:
kctrl package installed list -n kadras-system
Documentation, tutorials and examples for this package are available in the docs folder.
The GitOps Configurer package can be customized via a values.yml
file.
type: flux-kustomization
git:
url: "https://github.com/kadras-io/my-gitops-repo"
path: "clusters/staging"
secret_name: "github-token-secret"
Reference the values.yml
file from the kctrl
command when installing or upgrading the package.
kctrl package install -i gitops-configurer \
-p gitops-configurer.packages.kadras.io \
-v ${VERSION} \
-n kadras-system
--values-file values.yml
The GitOps Configurer package has the following configurable properties.
Configurable properties
Config | Default | Description |
---|---|---|
namespace |
kadras-system |
The namespace where the GitOps resource should be installed. |
name |
gitops-configurer |
The name of the GitOps resource. |
type |
carvel-app |
The type of GitOps controller to use. Options: carvel-app , flux-kustomization . |
service_account |
"" |
The ServiceAccount used by the GitOps controller to reconcile changes to the cluster. |
git.url |
"" |
The URL of the Git repository to synchronize in the cluster. |
git.branch |
main |
The Git branch to check out and synchronize. |
git.path |
"" |
The path within the Git repository containing the manifests to reconcile with the cluster. |
git.secret_name |
"" |
The name of the Secret in the same namespace holding the credentials to access the Git server. The credentials should provide read-only access to the Git server. |
sync_period |
1m0s |
The interval at which the GitOps controller should synchronize changes from Git. The format is a Go duration string. Example: 1m0s . |
The security process for reporting vulnerabilities is described in SECURITY.md.
This project is licensed under the Apache License 2.0. See LICENSE for more information.