diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml new file mode 100644 index 00000000..0deb0910 --- /dev/null +++ b/.github/workflows/docs.yaml @@ -0,0 +1,22 @@ +name: Publish docs via GitHub Pages +on: + push: + branches: + - docs* + - master + +jobs: + build: + name: Deploy docs + runs-on: ubuntu-latest + steps: + - name: Checkout master + uses: actions/checkout@v1 + - name: Copy assets + run: | + cp install/tk.sh docs/install.sh + - name: Deploy docs + uses: mhausenblas/mkdocs-deploy-gh-pages@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CUSTOM_DOMAIN: toolkit.fluxcd.io diff --git a/cmd/tk/bootstrap_gitlab.go b/cmd/tk/bootstrap_gitlab.go index 0ec0e5ac..4a950b00 100644 --- a/cmd/tk/bootstrap_gitlab.go +++ b/cmd/tk/bootstrap_gitlab.go @@ -18,7 +18,7 @@ var bootstrapGitLabCmd = &cobra.Command{ Use: "gitlab", Short: "Bootstrap GitLab repository", Long: ` -The bootstrap command creates the GitHub repository if it doesn't exists and +The bootstrap command creates the GitLab repository if it doesn't exists and commits the toolkit components manifests to the master branch. Then it configure the target cluster to synchronize with the repository. If the toolkit components are present on the cluster, @@ -35,7 +35,7 @@ the bootstrap command will perform an upgrade if needed.`, # Run bootstrap for a public repository on a personal account bootstrap gitlab --owner= --repository= --private=false --personal=true - # Run bootstrap for a private repo hosted on GitLab server + # Run bootstrap for a private repo hosted on a GitLab server bootstrap gitlab --owner= --repository= --hostname= `, RunE: bootstrapGitLabCmdRun, @@ -52,7 +52,7 @@ var ( ) func init() { - bootstrapGitLabCmd.Flags().StringVar(&glOwner, "owner", "", "GitLab user or organization name") + bootstrapGitLabCmd.Flags().StringVar(&glOwner, "owner", "", "GitLab user or group name") bootstrapGitLabCmd.Flags().StringVar(&glRepository, "repository", "", "GitLab repository name") bootstrapGitLabCmd.Flags().BoolVar(&glPersonal, "personal", false, "is personal repository") bootstrapGitLabCmd.Flags().BoolVar(&glPrivate, "private", true, "is private repository") diff --git a/docs/_files/flux-icon.svg b/docs/_files/flux-icon.svg new file mode 100644 index 00000000..36ad500e --- /dev/null +++ b/docs/_files/flux-icon.svg @@ -0,0 +1,22 @@ + + + + flux-icon + Created with Sketch. + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_files/flux-icon@2x.png b/docs/_files/flux-icon@2x.png new file mode 100644 index 00000000..c6293d30 Binary files /dev/null and b/docs/_files/flux-icon@2x.png differ diff --git a/docs/_static/custom.css b/docs/_static/custom.css new file mode 100644 index 00000000..0c7edb7a --- /dev/null +++ b/docs/_static/custom.css @@ -0,0 +1,24 @@ +@import url("https://fonts.googleapis.com/css?family=Montserrat&display=swap"); + +body { + font-family: "Montserrat", sans-serif; +} + +.md-logo { + width: 40px; + height: 40px; + padding-bottom: 2px; + padding-top: 2px; +} +.md-logo img { + width: 40px; + height: 40px; +} + +.md-header, .md-footer-nav { + background-image: linear-gradient(45deg, rgb(0, 150, 225) 0%, rgb(27, 141, 226) 24%, rgb(42, 125, 227) 53%, rgb(53, 112, 227) 78%, rgb(53, 112, 227) 100%); +} + +.md-header-nav__title { + font-size: .85rem; +} diff --git a/docs/cmd/tk.md b/docs/cmd/tk.md index 4381649d..7e5e4174 100644 --- a/docs/cmd/tk.md +++ b/docs/cmd/tk.md @@ -90,4 +90,4 @@ Command line utility for assembling Kubernetes CD pipelines the GitOps way. * [tk sync](tk_sync.md) - Synchronize commands * [tk uninstall](tk_uninstall.md) - Uninstall the toolkit components -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_bootstrap.md b/docs/cmd/tk_bootstrap.md index 09227700..6ceb6cf0 100644 --- a/docs/cmd/tk_bootstrap.md +++ b/docs/cmd/tk_bootstrap.md @@ -29,4 +29,4 @@ Bootstrap commands * [tk bootstrap github](tk_bootstrap_github.md) - Bootstrap GitHub repository * [tk bootstrap gitlab](tk_bootstrap_gitlab.md) - Bootstrap GitLab repository -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_bootstrap_github.md b/docs/cmd/tk_bootstrap_github.md index 80c4bf65..7ffcd2a3 100644 --- a/docs/cmd/tk_bootstrap_github.md +++ b/docs/cmd/tk_bootstrap_github.md @@ -67,4 +67,4 @@ tk bootstrap github [flags] * [tk bootstrap](tk_bootstrap.md) - Bootstrap commands -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_bootstrap_gitlab.md b/docs/cmd/tk_bootstrap_gitlab.md index 983ede4c..ddb587a8 100644 --- a/docs/cmd/tk_bootstrap_gitlab.md +++ b/docs/cmd/tk_bootstrap_gitlab.md @@ -5,7 +5,7 @@ Bootstrap GitLab repository ### Synopsis -The bootstrap command creates the GitHub repository if it doesn't exists and +The bootstrap command creates the GitLab repository if it doesn't exists and commits the toolkit components manifests to the master branch. Then it configure the target cluster to synchronize with the repository. If the toolkit components are present on the cluster, @@ -30,7 +30,7 @@ tk bootstrap gitlab [flags] # Run bootstrap for a public repository on a personal account bootstrap gitlab --owner= --repository= --private=false --personal=true - # Run bootstrap for a private repo hosted on GitLab server + # Run bootstrap for a private repo hosted on a GitLab server bootstrap gitlab --owner= --repository= --hostname= ``` @@ -41,7 +41,7 @@ tk bootstrap gitlab [flags] -h, --help help for gitlab --hostname string GitLab hostname (default "gitlab.com") --interval duration sync interval (default 1m0s) - --owner string GitLab user or organization name + --owner string GitLab user or group name --path string repository path, when specified the cluster sync will be scoped to this path --personal is personal repository --private is private repository (default true) @@ -63,4 +63,4 @@ tk bootstrap gitlab [flags] * [tk bootstrap](tk_bootstrap.md) - Bootstrap commands -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_check.md b/docs/cmd/tk_check.md index de378dc8..f0a58cad 100644 --- a/docs/cmd/tk_check.md +++ b/docs/cmd/tk_check.md @@ -44,4 +44,4 @@ tk check [flags] * [tk](tk.md) - Command line utility for assembling Kubernetes CD pipelines -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_completion.md b/docs/cmd/tk_completion.md index 904dbedf..4a1b24d8 100644 --- a/docs/cmd/tk_completion.md +++ b/docs/cmd/tk_completion.md @@ -44,4 +44,4 @@ To configure your bash shell to load completions for each session add to your ba * [tk](tk.md) - Command line utility for assembling Kubernetes CD pipelines -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_create.md b/docs/cmd/tk_create.md index 4441d63d..824010a3 100644 --- a/docs/cmd/tk_create.md +++ b/docs/cmd/tk_create.md @@ -30,4 +30,4 @@ Create commands * [tk create kustomization](tk_create_kustomization.md) - Create or update a kustomization resource * [tk create source](tk_create_source.md) - Create source commands -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_create_kustomization.md b/docs/cmd/tk_create_kustomization.md index 1242decb..482ef3c4 100644 --- a/docs/cmd/tk_create_kustomization.md +++ b/docs/cmd/tk_create_kustomization.md @@ -78,4 +78,4 @@ tk create kustomization [name] [flags] * [tk create](tk_create.md) - Create commands -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_create_source.md b/docs/cmd/tk_create_source.md index e4566e02..53c22c00 100644 --- a/docs/cmd/tk_create_source.md +++ b/docs/cmd/tk_create_source.md @@ -29,4 +29,4 @@ Create source commands * [tk create](tk_create.md) - Create commands * [tk create source git](tk_create_source_git.md) - Create or update a git source -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_create_source_git.md b/docs/cmd/tk_create_source_git.md index 2ab78045..b5416217 100644 --- a/docs/cmd/tk_create_source_git.md +++ b/docs/cmd/tk_create_source_git.md @@ -58,7 +58,7 @@ tk create source git [name] [flags] --branch string git branch (default "master") -h, --help help for git -p, --password string basic authentication password - --ssh-ecdsa-curve ecdsaCurve SSH ECDSA public key curve (p256, p384, p521) (default p384) + --ssh-ecdsa-curve ecdsaCurve SSH ECDSA public key curve (p384, p521, p256) (default p384) --ssh-key-algorithm publicKeyAlgorithm SSH public key algorithm (rsa, ecdsa, ed25519) (default rsa) --ssh-rsa-bits rsaKeyBits SSH RSA public key bit size (multiplies of 8) (default 2048) --tag string git tag @@ -83,4 +83,4 @@ tk create source git [name] [flags] * [tk create source](tk_create_source.md) - Create source commands -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_delete.md b/docs/cmd/tk_delete.md index 438aaf65..21e7b9ae 100644 --- a/docs/cmd/tk_delete.md +++ b/docs/cmd/tk_delete.md @@ -29,4 +29,4 @@ Delete commands * [tk delete kustomization](tk_delete_kustomization.md) - Delete kustomization * [tk delete source](tk_delete_source.md) - Delete sources commands -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_delete_kustomization.md b/docs/cmd/tk_delete_kustomization.md index 4cc8db77..946c6305 100644 --- a/docs/cmd/tk_delete_kustomization.md +++ b/docs/cmd/tk_delete_kustomization.md @@ -31,4 +31,4 @@ tk delete kustomization [name] [flags] * [tk delete](tk_delete.md) - Delete commands -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_delete_source.md b/docs/cmd/tk_delete_source.md index 78184fac..e0d3c699 100644 --- a/docs/cmd/tk_delete_source.md +++ b/docs/cmd/tk_delete_source.md @@ -28,4 +28,4 @@ Delete sources commands * [tk delete](tk_delete.md) - Delete commands * [tk delete source git](tk_delete_source_git.md) - Delete git source -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_delete_source_git.md b/docs/cmd/tk_delete_source_git.md index 57b315fd..df90c79d 100644 --- a/docs/cmd/tk_delete_source_git.md +++ b/docs/cmd/tk_delete_source_git.md @@ -31,4 +31,4 @@ tk delete source git [name] [flags] * [tk delete source](tk_delete_source.md) - Delete sources commands -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_export.md b/docs/cmd/tk_export.md index fe894afa..9b930882 100644 --- a/docs/cmd/tk_export.md +++ b/docs/cmd/tk_export.md @@ -29,4 +29,4 @@ Export commands * [tk export kustomization](tk_export_kustomization.md) - Export kustomization in YAML format * [tk export source](tk_export_source.md) - Export source commands -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_export_kustomization.md b/docs/cmd/tk_export_kustomization.md index f855247a..fb0f3bb0 100644 --- a/docs/cmd/tk_export_kustomization.md +++ b/docs/cmd/tk_export_kustomization.md @@ -42,4 +42,4 @@ tk export kustomization [name] [flags] * [tk export](tk_export.md) - Export commands -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_export_source.md b/docs/cmd/tk_export_source.md index 638dbea3..df0f7930 100644 --- a/docs/cmd/tk_export_source.md +++ b/docs/cmd/tk_export_source.md @@ -29,4 +29,4 @@ Export source commands * [tk export](tk_export.md) - Export commands * [tk export source git](tk_export_source_git.md) - Export git sources in YAML format -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_export_source_git.md b/docs/cmd/tk_export_source_git.md index 5d41f1bb..6c2f3b45 100644 --- a/docs/cmd/tk_export_source_git.md +++ b/docs/cmd/tk_export_source_git.md @@ -43,4 +43,4 @@ tk export source git [name] [flags] * [tk export source](tk_export_source.md) - Export source commands -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_get.md b/docs/cmd/tk_get.md index afcf9f31..dbb91058 100644 --- a/docs/cmd/tk_get.md +++ b/docs/cmd/tk_get.md @@ -28,4 +28,4 @@ Get commands * [tk get kustomizations](tk_get_kustomizations.md) - Get kustomizations status * [tk get sources](tk_get_sources.md) - Get sources commands -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_get_kustomizations.md b/docs/cmd/tk_get_kustomizations.md index c7386fa0..1acb49eb 100644 --- a/docs/cmd/tk_get_kustomizations.md +++ b/docs/cmd/tk_get_kustomizations.md @@ -31,4 +31,4 @@ tk get kustomizations [flags] * [tk get](tk_get.md) - Get commands -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_get_sources.md b/docs/cmd/tk_get_sources.md index b70d4224..dee318ce 100644 --- a/docs/cmd/tk_get_sources.md +++ b/docs/cmd/tk_get_sources.md @@ -27,4 +27,4 @@ Get sources commands * [tk get](tk_get.md) - Get commands * [tk get sources git](tk_get_sources_git.md) - Get git sources status -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_get_sources_git.md b/docs/cmd/tk_get_sources_git.md index 6a26f86b..3b97e118 100644 --- a/docs/cmd/tk_get_sources_git.md +++ b/docs/cmd/tk_get_sources_git.md @@ -31,4 +31,4 @@ tk get sources git [flags] * [tk get sources](tk_get_sources.md) - Get sources commands -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_install.md b/docs/cmd/tk_install.md index 7b077b31..65954bfa 100644 --- a/docs/cmd/tk_install.md +++ b/docs/cmd/tk_install.md @@ -49,4 +49,4 @@ tk install [flags] * [tk](tk.md) - Command line utility for assembling Kubernetes CD pipelines -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_resume.md b/docs/cmd/tk_resume.md index 81c23458..78f8daae 100644 --- a/docs/cmd/tk_resume.md +++ b/docs/cmd/tk_resume.md @@ -27,4 +27,4 @@ Resume commands * [tk](tk.md) - Command line utility for assembling Kubernetes CD pipelines * [tk resume kustomization](tk_resume_kustomization.md) - Resume kustomization -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_resume_kustomization.md b/docs/cmd/tk_resume_kustomization.md index 180bc8d1..63eaf4ae 100644 --- a/docs/cmd/tk_resume_kustomization.md +++ b/docs/cmd/tk_resume_kustomization.md @@ -30,4 +30,4 @@ tk resume kustomization [name] [flags] * [tk resume](tk_resume.md) - Resume commands -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_suspend.md b/docs/cmd/tk_suspend.md index d99a4ddf..46d26484 100644 --- a/docs/cmd/tk_suspend.md +++ b/docs/cmd/tk_suspend.md @@ -27,4 +27,4 @@ Suspend commands * [tk](tk.md) - Command line utility for assembling Kubernetes CD pipelines * [tk suspend kustomization](tk_suspend_kustomization.md) - Suspend kustomization -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_suspend_kustomization.md b/docs/cmd/tk_suspend_kustomization.md index eaaf8c60..973e9d1f 100644 --- a/docs/cmd/tk_suspend_kustomization.md +++ b/docs/cmd/tk_suspend_kustomization.md @@ -30,4 +30,4 @@ tk suspend kustomization [name] [flags] * [tk suspend](tk_suspend.md) - Suspend commands -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_sync.md b/docs/cmd/tk_sync.md index df50a411..ddeadecf 100644 --- a/docs/cmd/tk_sync.md +++ b/docs/cmd/tk_sync.md @@ -28,4 +28,4 @@ Synchronize commands * [tk sync kustomization](tk_sync_kustomization.md) - Synchronize kustomization * [tk sync source](tk_sync_source.md) - Synchronize source commands -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_sync_kustomization.md b/docs/cmd/tk_sync_kustomization.md index 47c2a65d..13e6e6bd 100644 --- a/docs/cmd/tk_sync_kustomization.md +++ b/docs/cmd/tk_sync_kustomization.md @@ -43,4 +43,4 @@ tk sync kustomization [name] [flags] * [tk sync](tk_sync.md) - Synchronize commands -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_sync_source.md b/docs/cmd/tk_sync_source.md index 7343d584..a928442c 100644 --- a/docs/cmd/tk_sync_source.md +++ b/docs/cmd/tk_sync_source.md @@ -27,4 +27,4 @@ Synchronize source commands * [tk sync](tk_sync.md) - Synchronize commands * [tk sync source git](tk_sync_source_git.md) - Synchronize git source -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_sync_source_git.md b/docs/cmd/tk_sync_source_git.md index cf4cf226..3713776c 100644 --- a/docs/cmd/tk_sync_source_git.md +++ b/docs/cmd/tk_sync_source_git.md @@ -39,4 +39,4 @@ tk sync source git [name] [flags] * [tk sync source](tk_sync_source.md) - Synchronize source commands -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/cmd/tk_uninstall.md b/docs/cmd/tk_uninstall.md index 1e7e5f25..c7a9c9ed 100644 --- a/docs/cmd/tk_uninstall.md +++ b/docs/cmd/tk_uninstall.md @@ -47,4 +47,4 @@ tk uninstall [flags] * [tk](tk.md) - Command line utility for assembling Kubernetes CD pipelines -###### Auto generated by spf13/cobra on 18-Jun-2020 +###### Auto generated by spf13/cobra on 19-Jun-2020 diff --git a/docs/get-started/index.md b/docs/get-started/index.md new file mode 100644 index 00000000..cc2dd461 --- /dev/null +++ b/docs/get-started/index.md @@ -0,0 +1,216 @@ +# Get started with GitOps Toolkit + +## Prerequisites + +* Kubernetes >= 1.14 +* kubectl >= 1.18 +* git + +You will need to have Kubernetes set up. +For a quick local test, you can use `minikube`, `kubeadm` or `kind`. +Any other Kubernetes setup will work as well though. + +In order to follow the guide you'll need a GitHub account and a +[personal access token](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) +that can create repositories. + +## Install the toolkit CLI + +To install the latest `tk` release run: + +```bash +curl -s https://toolkit.fluxcd.io/install.sh | sudo bash +``` + +The install script downloads the tk binary to `/usr/local/bin`. +Binaries for macOS and Linux AMD64 are available for download on the +[release page](https://github.com/fluxcd/toolkit/releases). + +To configure your shell to load tk completions add to your bash profile: + +```sh +# ~/.bashrc or ~/.bash_profile +. <(tk completion) +``` + +Verify that your cluster satisfies the prerequisites with: + +```text +$ tk check --pre + +► checking prerequisites +✔ kubectl 1.18.3 >=1.18.0 +✔ kubernetes 1.16.8-eks-e16311 >=1.14.0 +✔ prerequisites checks passed +``` + +## Bootstrap + +You'll be using a dedicated Git repository e.g. `fleet-infra` to manage one or more Kubernetes clusters. + +First export your GitHub personal access token and GitHub username: + +```sh +export GITHUB_TOKEN= +export GITHUB_USER= +``` + +The bootstrap command creates a repository if one doesn't exist and +commits the toolkit components manifests to the master branch at the specified path. +Then it configures the target cluster to synchronize with the specified path inside the repository. + +```sh +tk bootstrap github \ + --owner=$GITHUB_USER \ + --repository=fleet-infra \ + --path=dev-cluster \ + --personal +``` + +If you wish to create the repository under a GitHub organization: + +```sh +tk bootstrap github \ + --owner= \ + --repository= \ + --team= \ + --team= \ + --path=dev-cluster +``` + +Example output: + +```text +$ tk bootstrap github --owner=gitopsrun --repository=fleet-infra --path=dev-cluster --team=devs + +► connecting to github.com +✔ repository created +✔ devs team access granted +✔ repository cloned +✚ generating manifests +✔ components manifests pushed +► installing components in gitops-system namespace +namespace/gitops-system created +customresourcedefinition.apiextensions.k8s.io/gitrepositories.source.fluxcd.io created +customresourcedefinition.apiextensions.k8s.io/helmcharts.source.fluxcd.io created +customresourcedefinition.apiextensions.k8s.io/helmrepositories.source.fluxcd.io created +customresourcedefinition.apiextensions.k8s.io/kustomizations.kustomize.fluxcd.io created +customresourcedefinition.apiextensions.k8s.io/profiles.kustomize.fluxcd.io created +role.rbac.authorization.k8s.io/crd-controller-gitops-system created +rolebinding.rbac.authorization.k8s.io/crd-controller-gitops-system created +clusterrolebinding.rbac.authorization.k8s.io/cluster-reconciler-gitops-system created +service/source-controller created +deployment.apps/kustomize-controller created +deployment.apps/source-controller created +networkpolicy.networking.k8s.io/deny-ingress created +Waiting for deployment "source-controller" rollout to finish: 0 of 1 updated replicas are available... +deployment "source-controller" successfully rolled out +deployment "kustomize-controller" successfully rolled out +✔ install completed +► configuring deploy key +✔ deploy key configured +► generating sync manifests +✔ sync manifests pushed +► applying sync manifests +◎ waiting for cluster sync +✔ bootstrap finished +``` + +If you prefer GitLab, export `GITLAB_TOKEN` env var and use the command [tk bootstrap gitlab](../cmd/tk_bootstrap_gitlab.md). + +It is safe to run the bootstrap command as many times as you want. +If the toolkit components are present on the cluster, +the bootstrap command will perform an upgrade if needed. + +## Create a GitOps workflow + +Clone the repository with: + +```sh +git clone https://github.com/$GITHUB_USER/fleet-infra +cd fleet-infra +``` + +Create a git source pointing to a public repository: + +```sh +tk create source git webapp \ + --url=https://github.com/stefanprodan/podinfo \ + --branch=master \ + --interval=30s \ + --export > ./dev-cluster/webapp-source.yaml +``` + +Create a kustomization for synchronizing the common manifests on the cluster: + +```sh +tk create kustomization webapp-common \ + --source=webapp \ + --path="./deploy/webapp/common" \ + --prune=true \ + --validate=client \ + --interval=1h \ + --export > ./dev-cluster/webapp-common.yaml +``` + +Create a kustomization for the backend service that depends on common: + +```sh +tk create kustomization webapp-backend \ + --depends-on=webapp-common \ + --source=webapp \ + --path="./deploy/webapp/backend" \ + --prune=true \ + --validate=client \ + --interval=10m \ + --health-check="Deployment/backend.webapp" \ + --health-check-timeout=2m \ + --export > ./dev-cluster/webapp-backend.yaml +``` + +Create a kustomization for the frontend service that depends on backend: + +```sh +tk create kustomization webapp-frontend \ + --depends-on=webapp-backend \ + --source=webapp \ + --path="./deploy/webapp/frontend" \ + --prune=true \ + --validate=client \ + --interval=10m \ + --health-check="Deployment/frontend.webapp" \ + --health-check-timeout=2m \ + --export > ./dev-cluster/webapp-frontend.yaml +``` + +Push changes to origin: + +```sh +git add -A && git commit -m "add webapp" && git push +``` + +In about 30s the synchronization should start: + +```text +$ watch tk get kustomizations + +✔ gitops-system last applied revision master/35d5765a1acb9e9ce66cad7274c6fe03eee1e8eb +✔ webapp-backend reconciling +✔ webapp-common last applied revision master/f43f9b2eb6766e07f318d266a99d2ec7c940b0cf +✗ webapp-frontend dependency 'gitops-system/webapp-backend' is not ready +``` + +When the synchronization finishes you can check that the webapp services are running: + +```text +$ kubectl -n webapp get deployments,services + +NAME READY UP-TO-DATE AVAILABLE AGE +deployment.apps/backend 1/1 1 1 4m1s +deployment.apps/frontend 1/1 1 1 3m31s + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +service/backend ClusterIP 10.52.10.22 9898/TCP,9999/TCP 4m1s +service/frontend ClusterIP 10.52.9.85 80/TCP 3m31s +``` + diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..bca35de7 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,20 @@ +# GitOps Toolkit + +The GitOps Toolkit is a set of composable APIs and specialized tools +that can be used to build a Continuous Delivery platform on top of Kubernetes. + +These tools are built with Kubernetes controller-runtime libraries and they +can be dynamically configured with Kubernetes custom resources either by +cluster admins or by other automated tools. +The GitOps Toolkit components interact with each other via Kubernetes +events and are responsible for the reconciliation of their designated API objects. + +![](diagrams/tk-overview.png) + +Components: + +- [Toolkit CLI](https://github.com/fluxcd/toolkit) +- [Source Controller](https://github.com/fluxcd/source-controller) +- [Kustomize Controller](https://github.com/fluxcd/kustomize-controller) + +To get started with the toolkit please follow this [guide](get-started/index.md). diff --git a/install/README.md b/install/README.md index 50f6eb33..eaf93799 100644 --- a/install/README.md +++ b/install/README.md @@ -15,6 +15,12 @@ The install script does the following: * copies the tk binary to `/usr/local/bin` * removes the temporary directory +If you want to use tk as a kubectl plugin, rename the binary to `kubectl-tk`: + +```sh +mv /usr/local/bin/tk /usr/local/bin/kubectl-tk +``` + ## Build from source Clone the repository: diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000..f03df7ba --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,51 @@ +site_name: GitOps Toolkit +site_description: Documentation for GitOps Toolkit. +site_author: The Flux contributors +site_url: https://fluxcd.github.io/toolkit/ + +# Repository +repo_name: fluxcd/toolkit +repo_url: https://github.com/fluxcd/toolkit +edit_uri: "" + +theme: + name: material + logo: _files/flux-icon@2x.png + language: en + palette: + primary: blue + accent: indigo + +docs_dir: docs + +extra_css: + - _static/custom.css + +plugins: + - search + +markdown_extensions: + - admonition + - codehilite: + guess_lang: false + - toc: + permalink: true + - pymdownx.superfences: + highlight_code: true + - pymdownx.tabbed + +nav: + - Introduction: index.md + - Get Started: get-started/index.md + - Toolkit CLI: + - Bootstrap: cmd/tk_bootstrap.md + - Check: cmd/tk_check.md + - Create: cmd/tk_create.md + - Delete: cmd/tk_delete.md + - Export: cmd/tk_export.md + - Get: cmd/tk_get.md + - Install: cmd/tk_install.md + - Resume: cmd/tk_resume.md + - Suspend: cmd/tk_suspend.md + - Synchronize: cmd/tk_sync.md + - Uninstall: cmd/tk_uninstall.md