Skip to main content
Version: Next

Azure - GitOps Catalog

GitOps Catalog

After your Kubefirst cluster has been provisioned, you can optionally leverage the Kubefirst GitOps Catalog.

The GitOps Catalog is a community driven collection of Kubernetes applications that can be deployed directly to your Kubefirst cluster(s).

For more information regarding applications that are generally available, check out the GitOps Catalog repository.

Using the catalog

After your management cluster has been provisioned, you're able to click on a button to open Kubefirst console:

Cluster provision complete

Once this button has been clicked, you'll be sent to your new Kubefirst console. In the left margin, click on Applications.

Applications page

This page shows the applications that have been provisioned to your Kubefirst management cluster. Default applications will show up in this list without an uninstall button.

You can click on the GitOps catalog link to show the catalog:

GitOps catalog

From here, you can click Install on any of the available applications to deploy them to your specified cluster or cluster template.

How this works

When you opt to install any of the available services from the GitOps Catalog, the Kubefirst API formats and commits a set of files to your gitops repository.

Then, Argo CD is asked to refresh the upstream registry to synchronize the newly deployed application.

Since the deployment of these applications is done directly in your gitops repository, you have full ownership to then customize these applications by adjusting their content within your gitops repository.

For example - consider the following sample deployment of Kubernetes Dashboard:

---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: management-kubernetes-dashboard
namespace: argocd
spec:
project: default
source:
repoURL: 'https://kubernetes.github.io/dashboard'
targetRevision: 6.0.0
chart: kubernetes-dashboard
destination:
name: management
namespace: kubernetes-dashboard
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: k8s-dashboard-clusterrole
annotations:
argocd.argoproj.io/sync-wave: "0"
subjects:
- kind: ServiceAccount
name: management-kubernetes-dashboard
namespace: kubernetes-dashboard
roleRef:
kind: ClusterRole
name: admin
apiGroup: rbac.authorization.k8s.io
---
apiVersion: v1
kind: Secret
metadata:
name: dashboard-user
namespace: kubernetes-dashboard
annotations:
kubernetes.io/service-account.name: management-kubernetes-dashboard
type: kubernetes.io/service-account-token

If you'd like to change any of the Helm chart values, change the Helm chart version, or add any additional resources, you simply edit this file in the main branch and Argo CD will detect the changes from your upstream gitops repository and synchronize.