Skip to content

tribe-health/kubefirst

 
 

Repository files navigation

GitOps Infrastructure & Application Delivery Platform

Install |  Twitter |  LinkedIn |  Slack |  Blog


Kubefirst CLI

The Kubefirst CLI is a cloud provisioning tool. With simple setup and two CLI commands, we create a kubernetes cluster managed with automated Infrastructure as Code, GitOps asset management and application delivery, secrets management, a sample application delivered to development, staging, and production, and so much more. It's an open source platform ready to be customized to suit your company's needs.

kubefirst architecture diagram

DNS Setup

In order to install Kubefirst it's required to have a public domain. For root domains, setting the --hosted-zone-name is enough, in case you want to use subdomains, and the domain is hosted on AWS, please follow the AWS documentation.

Provisioned services on root domain will be hosted as:

argocd.example.com
gitlab.example.com
...

Provisioned services on subdomains will be hosted as:

argocd.subdomain.example.com
gitlab.subdomain.example.com
...

Installing the CLI

brew install kubefirst/tools/kubefirst

Other installation techniques:

Details Here

Initialization

Since Kubefirst 1.9 version, GitHub is also available as a Git platform provider alongside GitLab.

localhost

localhost enables Kubefirst to be installed in your local machine, not requiring an AWS account, using localhost you can:

kubefirst local

GitLab

To prepare the installation using GitLab you can:

kubefirst init \
--cloud aws \
--profile default \
--region eu-central-1 \
--admin-email [email protected] \
--cluster-name your_cluster_name \
--hosted-zone-name domain.example \
--s3-suffix you-s3-bucket-name \
--gitops-branch main \
--metaphor-branch main \
--git-provider gitlab \
--aws-nodes-spot

GitHub

To prepare the installation using GitHub you can:

export KUBEFIRST_GITHUB_AUTH_TOKEN=your_github_auth_token

kubefirst init \
--admin-email [email protected] \
--cloud aws \
--hosted-zone-name example.com \
--region eu-central-1 \
--cluster-name example_com \
--profile default \
--github-user yourgithubhandle \
--github-owner yourgithuborganization \
--gitops-branch main \
--metaphor-branch main

Creation

At this point, everything is ready to start provisioning the cloud services, and for that run:

kubefirst cluster create

Destroy

It will destroy the kubefirst management cluster, and clean up every change made in the cloud.

kubefirst cluster destroy

What to do next

Learn More - Getting Started

If you want learn more

Access ArgoCD

aws eks update-kubeconfig --name your_cluster_name
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
kubectl -n argocd port-forward svc/argocd-server 8080:80

Available Commands

Kubefirst provides extra tooling for handling the provisioning work.

Command Description
clean removes all kubefirst resources locally for new execution
cluster create create a kubefirst management cluster
cluster destroy destroy the kubefirst management cluster
info provides general Kubefirst setup data
init initialize your local machine to execute create
version print the version number for kubefirst-cli"

The Provisioning Process

kubefirst provisioning diagram

Experimental Mode (we discourage it)

If you want to run the main branch (go run . init ..., for example), you need to inform the version you are trying to use. To achieve this, you need to pass the ldflags in your command: go run -ldflags="-X github.com/kubefirst/kubefirst/configs.K1Version=1.9.3" . version.

We use external repositories during the provisioning process, and the version/tag in these repositories matches with the version of kubefirst cli; due to this approach, you need to perform the steps described above to run the code from the source.

Feed K-Ray

Did you know our superhero mascot K-Ray gets its frictionless superpowers from a healthy diet of GitHub stars? K-Ray gets soooo hungry too - you wouldn't believe it. Feed K-Ray a GitHub star ⭐ above to bookmark our project and keep K-Ray happy!!

Star History Chart

About

The Kubefirst Open Source Platform

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 99.2%
  • Other 0.8%