Commit Graph

700 Commits (120ec049f9b016e58f0af45dbb22c1ce0ba3dde7)

Author SHA1 Message Date
Stefan Prodan 2597ad0f73
Make the Git ref required
Remove the default branch value from `flux create source git` and validate that one of the ref options are specified.

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Claudia Beresford 87e11ed653 Switch StringArrayVar flags to use StringSliceVar
StringSliceVar allows for more flexibility when passing vars to list
flags.
Both formats will be supported:
- '--foo=one --foo=two'
- '--foo=one,two'

Signed-off-by: Claudia Beresford <claudiaberesford@gmail.com>
Daniel Holbach 734d736bdf Remove ' command' from Flux CLI docs title
Fixes: 

Signed-off-by: Daniel Holbach <daniel@weave.works>
Somtochi Onyekwere 12a2100fcf Adds suspend and resume all cmd
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Somtochi Onyekwere 8926095660 remove redundant getCommand for image repository
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Stefan Prodan 5ab8dd2557
Add upgrade CRDs policy to create helmrelease cmd
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Somtochi Onyekwere c494e6bf7e Inject password in create secret git if specified
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Hidde Beydals 3a8aad7e5c Move to `v1alpha2` image update APIs
Signed-off-by: Hidde Beydals <hello@hidde.co>
Dylan Arbour ef079c5b58 Add `ValuesFiles` documentation
Signed-off-by: Dylan Arbour <arbourd@users.noreply.github.com>
Somtochi Onyekwere 328d403507 Set password in secret
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Somtochi Onyekwere 951589e652 Add get all command
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Hidde Beydals 3aa45e72e7 Use slash target path in Git bootstrap sync opts
As otherwise (comparisons to) cluster configuration will fail due to
Separator differences. Was already fixed for provider implementations.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Somtochi Onyekwere 6c656b7366 Fix reconcile with source in a different namespace
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Alison Dowdney b1484f2f24 Change createAlertCmdRun parsing to include namespace
Signed-off-by: Alison Dowdney <alison@alisondowdney.com>
Hidde Beydals b6d349da8c Put potentially destructive reconcile behind flag
The behavior introduced during the introduction of go-git-providers
was more strict, and has proven pretty quickly to not be useful to
all users. Therefore, the reconciliation behavior for repository
configuration has been put behind an opt-in flag, so that it does
not overwrite people their configs by accident.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals f123b9d3cb Change private flag description
To highlight the fact that it configures the repository as defined,
which was not _really_ clear to some users and has resulted in public
repositories accidentally being changed to private (losing important
goodies like stars and linked forks).

Discussion on this is ongoing and there will likely be other
improvements in the near future to protect users against this.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals e0dd12505f Normalize paths to forward slashes
Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals 7bd6aedb73 Take PK from file into account in Git bootstrap
Signed-off-by: Hidde Beydals <hello@hidde.co>
Stefan Prodan 74feda73af
Add Warningf to logger interface amd impl
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan 8b5583930e
Fix create source git auth for non-HTTPS repos
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Somtochi Onyekwere 054a62fb30 Format go imports
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Somtochi Onyekwere 4204ec1d43 Refactor reconcile and resume cmd for alert and receiver
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Stefan Prodan b872e595ae
Add recurse submodules arg to bootstrap cmd
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan 18c3f79319
Add recurse submodules arg to create source git cmd
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan 8f0cd35d7a
Allow self-signed certs when using go-git
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Hidde Beydals e65a5beaae Work around custom client domain issue
With this commit comes a lot of evil.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals ef576128e3 Use correct hostname argument for secret gen
Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals 7f0bc2ada2 Provide option to add appendix to commit messages
Using the `--commit-message-appendix` flag a string can be added to the
commit messages made by the bootstrapper process to for example skip CI
actions from executing using e.g. `[skip ci]`.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals 96c373d045 Properly configure sync URL based on auth settings
Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals 22648cae3b Add command to bootstrap to generic Git server
This command makes it possible to bootstrap to a generic Git server
using the local SSH agent, or a given password or private key file.

If a private key is generated, the user is prompted to give the
generated key access to the repository.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals f57ce14754 Implement `bootstrap` package in commands
This includes making a lot of things configurable (e.g. SSH key
algorithm, RSA bit size, etc.) that used to be static.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Frank Gu 6b0ffe0b13 fix: install command flags logic bug
Signed-off-by: Frank Gu <frank.gu968@outlook.com>
Stefan Prodan b54fd2c6b3
Add source namespace to create commands
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Daniel Holbach 32f94bab97 fix links
- change links in cli docs to be relative (making mkdocs AND hugo happy)
	- run 'make docs'
	- fix other links

Signed-off-by: Daniel Holbach <daniel@weave.works>
Hidde Beydals 236ffd1767 Tidy up command descriptions
Rewordings and removal of superfluous newlines.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals 4750d0d81c Allow supplying PK from file for Git source/secret
This commit adds support for supplying a path to an existing private
key file to both the `flux create secret git` and `flux create source
git` commands.

If a path is given, any private key generation configuration options
are ignored by the manifest generator. The SSH host will however still
be scanned for server keys.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Somtochi Onyekwere 465eaa24d3 Refactor all remaining create, delete, export, get command to use adapter
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Hidde Beydals 998f0c7d53 Add frontmatter to command documentation
Signed-off-by: Hidde Beydals <hello@hidde.co>
Stefan Prodan 73b1576f81
Implement get all for sources and images
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan d9331b0c91 Add repo path and push branch to image update cmd
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan b6a8163dd9 Add create image policy examples
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan 185252ba48 Update flux logs examples
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Somtochi Onyekwere 6d2e34e9b2 Add flux logs command
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Hidde Beydals dc6b0d0f0d Use Host from parsed URL instead of Hostname
Regression bug introduced in .

Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals e7725911a7 Move `StatusChecker` to separate and generic pkg
This commit moves the `StatusChecker` to a separate package, while
making it more generic so that it is able to assess the status of any
given set of `object.ObjMetadata` identifiers.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals 9f10b6be1b Replace delete opt on GitHub bootstrap with curl
Signed-off-by: Hidde Beydals <hello@hidde.co>
Lucas Servén Marín 065d0b2c06
cmd/flux/export_source*: fix typo in comment
This commit fixes a small typo in the comments for the export source
commands.

Signed-off-by: Lucas Servén Marín <lserven@gmail.com>
Gábor Lipták 2092c14aca Correct ineffassign
Signed-off-by: Gábor Lipták <gliptak@gmail.com>
Hidde Beydals 2b7a0f3fd4 Improve build process embedded manifests
This commit changes the way the build of manifests is triggered by
making smarter use of the capabilities of Make. The result should be
that the manifests are only regenerated if:

1. There is no `cmd/flux/manifests/` directory.
2. There have been made changes to the YAML files in the `manifests/`
   directory that are newer than the files in `cmd/flux/manifests/`.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals ed93e93b81 Restore default key algorithm flag create source
This was removed by accident in the PR that introduced the new
`manifestgen` packages, and now restored in full glory.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals d79bedf2bc Use path with '/' slashes in created Kustomization
This fixes a bug on Windows where the safe relative path would contain
'\' slashes, which are not compatible with the controller.

Signed-off-by: Hidde Beydals <hello@hidde.co>
tvories 81f6fa598f Updated godocs to match readme
Signed-off-by: tvories <taylor@tmtech.me>
tvories d9eabcdbf7 Removed posix style loading for flux and added .fish filetype to completions file
Signed-off-by: tvories <taylor@tmtech.me>
Hidde Beydals 8a5bba80bf Add `sourcesecret` and `kustomization` manifestgen
This includes a change to the `sync` generator to make the deploy
secret name configurable.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals baaa466c0f Update sigs.k8s.io/cli-utils to v0.22.2
This is the first release that includes a patch of the
`CachingClusterReader` so that it continues on all list errors.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Stefan Prodan 6003d11156
Embed the install manifests in flux binary
- add make target for generating the install manifests using kustomize
- embed the generated manifests in flux binary
- the install and bootstrap commands default to using the embedded manifests
- download the install manifests from GitHub only if the install/bootstrap version arg is set

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Hidde Beydals 5903dfc627 Include prerelease data in k8s version constraints
This ensures the advertised version from e.g. GKE or EKS (for example
`v1.17.15-gke.800`) do not trigger a false warning.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Dylan Arbour 99002f92f4 Update pkg/runtime to v0.8.2
pkg/runtime v0.8.2 introduces runtime/transform which includes
`MergeMaps`:
https://github.com/fluxcd/pkg/pull/85

Signed-off-by: Dylan Arbour <arbourd@users.noreply.github.com>
Hidde Beydals 5263dabd22 Check if targeted version is supported by binary
Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals 9b649f6c72 Check if targeted bootstrap/install version exists
Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals b903cd5b68 Check for new Flux binary version
This prints a warning if the user has internet access and is running
an older version of the binary.

It also replaces the `blang/semver` package with `pkg/version` and
`Masterminds/semver` to align with controller dependencies.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals 890b5c5202 Use label selector to check components
Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals 73b8a26850 Validate if only 1 image policy selector is given
Signed-off-by: Hidde Beydals <hello@hidde.co>
Stefan Prodan aa533b28fb
Add caFile to create source/secret git commands
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Hidde Beydals 9d70e09a57 Add numeric selector to create image policy cmd
Signed-off-by: Hidde Beydals <hello@hidde.co>
Stefan Prodan 0f1d27f1e6
Remove network policies on uninstall
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan 850ab0942b
Implement uninstall dry run
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan f5ae8f44b4
Refactor flux uninstall command
- deletes Flux components (deployments and services)
- deletes Flux RBAC (service accounts, cluster roles and cluster role bindings)
- removes the Kubernetes finalizers from Flux custom resources
- deletes Flux custom resource definitions and custom resources
- deletes the namespace where Flux was installed
- preserves the Kubernetes objects and Helm releases that were reconciled on the cluster by Flux

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Michael Bridgen bc45a79b92 Give more explanation for --personal flag
Signed-off-by: Michael Bridgen <michael@weave.works>
Stefan Prodan bc9cbc387c
Add flux version to bootstrap commit messages
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan 37f5587085
Allow Flux to be deployed on tainted Kubernetes nodes
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan 1256bbfbaf
Fix bootstrap status check timeout
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Jonathan Innis eb7102ecac
Adding extract pattern validation
Signed-off-by: Jonathan Innis <jonathan.innis.ji@gmail.com>
jonathan-innis 3f0cb1637c
Add select-alpha and extract to create policy
Signed-off-by: jonathan-innis <jonathan.innis.ji@gmail.com>
Stefan Prodan a5fa731545
Add support for getting resources by name
- add singular alias to get commands
- allow filtering the get commands result by resource name
- add the image commands to mkdocs index

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan 3dd574ee51
Add support for multiple values files to create hr
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Michael Bridgen cc7b7b0689 Give examples of create image repository
Signed-off-by: Michael Bridgen <michael@weave.works>
Michael Bridgen 5df8e05d1a Give image repository a cert-secret-ref flag
ImageRepository objects can now refer to a secret containing
certificates to use for TLS. This adds the flag

    flux create image repository --cert-secret-ref

for naming a secret to use. You can create such a secret with

    flux create secret tls

Signed-off-by: Michael Bridgen <michael@weave.works>
Michael Bridgen 75ab28ee5d Rename flux delete auto to flux delete image
This slipped through the auto->image change made in the course of
preparing .

Signed-off-by: Michael Bridgen <michael@weave.works>
Michael Bridgen 1e6be99c36 Correct spelling of repository in error
Signed-off-by: Michael Bridgen <michael@weave.works>
Stefan Prodan e055c9ddc1
Refactor components status check
- run install/bootstrap checks in parallel (1m timeout)
- list not found components

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
jonathan-innis d5ad26c934
Change failed message for bootstrap
Signed-off-by: jonathan-innis <jonathan.innis.ji@gmail.com>
jonathan-innis 144b7cd922
Update errors returned to user
Signed-off-by: jonathan-innis <jonathan.innis.ji@gmail.com>
jonathan-innis b528428d02
Add kstatus to install and check commands
Signed-off-by: jonathan-innis <jonathan.innis.ji@gmail.com>
jonathan-innis b3d7730e79
Use status polling in bootstrap command
Signed-off-by: jonathan-innis <jonathan.innis.ji@gmail.com>
Stefan Prodan 4fd5684277
Fix create secret commands
Regression bug introduced in https://github.com/fluxcd/flux2/pull/788

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Somtochi Onyekwere b8a215230c refactor resume command
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Somtochi Onyekwere 5df8f7313c Refactor reconcile commands
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Somtochi Onyekwere ef579fe596 Refactor suspend commands
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Somtochi Onyekwere 1f1c8286a5 Refactor delete command for kustomizations, sources and helmreleases
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Hidde Beydals 69294ef56d Use correct type in various get source commands
This fixes a bug where the wrong type was displayed for various
`get source` commands.

```console
$ flux get sources helm --namespace default
✗ no Bucket objects found in default namespace
```

Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals 68d0be3818 Set source namespace when reconciling with source
Signed-off-by: Hidde Beydals <hello@hidde.co>
Michael Bridgen 263c664acd Factor out more common secrets command code
Making the secret without data is always the same, so factor that out.

Signed-off-by: Michael Bridgen <michael@weave.works>
Michael Bridgen b12c4c22fb Add command for creating TLS secrets
The image-reflector controller now accepts a secret containing a
client certificate and key, and/or a CA certificate; so it's useful to
have a command for creating them.

`flux create secret helm` is close, but accepts username/password
(which would be ignored), and has the wrong name of course. Happily
though, much can be shared between the implementations.

Signed-off-by: Michael Bridgen <michael@weave.works>
Somtochi Onyekwere 65a2c87b5a Refactor get cmd for kustomization and helmrelease
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Somtochi Onyekwere 584f0eea58 Refactor get source commands
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Hidde Beydals ac6c6e3a30 Incorporate required API changes
* Use `LocalObjectReference` and `NamespacedObjectKindReference`
  from `meta` package, as required by controller API changes.
* Remove `Update` field from created `ImageUpdateAutomation`,
  as the API changed and the default is now defined in the Custom
  Resource Definition.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Somtochi Onyekwere a7586e69fd Refactor cmd global variables into structs
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Hidde Beydals 9e1db06936 Move Git implementation validation to custom flag
Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals a260403334 Remove GitImplementation default
As the field in the CRD is optional.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Stefan Prodan bcdce02b78
Add image tags regex filter arg to policy command
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan 2f0835b655
Make branch arg required for image updates
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan f6fa468acb
Use reconcile request annotation
Replace deprecated `ReconcileAtAnnotation` annotation with `ReconcileRequestAnnotation`

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Hidde Beydals 207c50ceac Deprecate arch flags in favor of multi-arch images
This commit deprecates the architecture flag (`--arch`) for the install
and bootstrap commands, in favor of the bundled multi-arch images that
will be available for the next MINOR range of GOTK controller releases.

Summary of changes:

* `*Arch` variables have been marked as deprecated for both commands.
* `-arm64` suffix is no longer selectively added to the image definition
  of a component's `Deployment`.
* `kubernetes.io/arch` node selector with the defined value has been
  removed from the components' `Deployment`s.
* `Arch` has been removed from the available `Options` in
  `manifestgen/install`.
* Documentation references have been changed to highlight existence
  of multi-arch images and supported architectures.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Somtochi Onyekwere 406601eead Update pkg/git to v0.2.2
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Philip Laine d236a9af57 Add git implementation to generate sync options
Signed-off-by: Philip Laine <philip.laine@gmail.com>
Michael Bridgen cafce536bb Rename asRuntime* -> asClient*
For the avoidance of misdirection.

Signed-off-by: Michael Bridgen <michael@weave.works>
Michael Bridgen d03280a12f Update to controller-runtime 0.7.0
controller-runtime methods now accept `client.Object` and
`client.ObjectList` rather than `runtime.Object`. This means the
adapter interfaces need to change signature, but happily, little else.

Since the list adapter is now distinct to the object adapter, `len()`
can go there instead of the command-specific interfaces.

Signed-off-by: Michael Bridgen <michael@weave.works>
Somtochi Onyekwere 4fcf93306a Gets actual path for owner
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Stefan Prodan 331ac3f031
Add create secret helm command
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan febedaad8f
Map ecdsa/ed25519 args to create secret
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Somtochi Onyekwere 3a4a2002d4 Corrects typo
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Somtochi Onyekwere b8d4af5538 Inform user of path being used
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Somtochi Onyekwere 0646538cef Checks if bootstrap path differs
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Somtochi Onyekwere 61129c6b6a Coverts backward slash to forward slash in path flag
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Somtochi Onyekwere f1cfae8f26 Validates project name for gitlab
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Somtochi Onyekwere dd0b807fe4 Validates components set
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>

Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
Alexei Ledenev 69387fd2a4 Support check command with multiple config files
Resolves: 
Signed-off-by: Alexei Ledenev <alexei.led@gmail.com>
Hidde Beydals 22e26efec1 Fix zsh completion command example
Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals 5ea4e814f5 Add safe guards for relative paths
This commit adds multiple safe guards for relative paths, ensuring they
never traverse outside the working directory.

The `SafeRelativePath` flag calculates the safe relative path based on a
relative base dir, which results in a flattened path.

The write methods of `manifestgen` make use of the `SecureJoin` as well,
to ensure writes are never outside of the given directory when used as
a lib outside of the CLI.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Stefan Prodan 8efe053ffa
Fix cluster domain mapping
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Léopold Jacquot 4d7df52dbe Add cluster-domain option for bootstrap command
Signed-off-by: Léopold Jacquot <leopold.jacquot@infomaniak.com>
Michael Bridgen 0e35c209d9 Factor out upsert and upsertAndWait
It's a common pattern in the create commands to construct a value,
then (if not exporting it) upsert it and wait for it to
reconcile. This commit factors `upsert`, which does the update/insert
bit, and `upsertAndWait`, which does the whole thing.

Since these output messages, they are methods of `apiType` (previously
`names`), so that they have access to the name of the kind they are
operating on.

Signed-off-by: Michael Bridgen <michael@weave.works>
Michael Bridgen 3b9b2cbe9f Reuse isReady from create_image commands
I implemented the isReady procedure for adapters for resume -- use it
in create too.

Signed-off-by: Michael Bridgen <michael@weave.works>
Michael Bridgen 45240bdb71 Rename "auto" subcommands to "image"
This means all the sub-subcommands can drop the `image-` prefix,
making them shorter and more fluent.

E.g.,

    flux create image policy

rather than

    flux create auto image-policy

Signed-off-by: Michael Bridgen <michael@weave.works>
Michael Bridgen 22a5ac7f0f Standardise the names of types
Most commands use either a kind, or a more readable spelling of a
kind, in their output. To make this easier, this centralises the
definition of those names in one place, and lets the command
implementations choose whichever they need.

Signed-off-by: Michael Bridgen <michael@weave.works>
Michael Bridgen d55d185044 Implement suspend, resume, reconcile image-update
.. and refactor. These are all amenable to the adapter refactoring
that has served well so far.

Signed-off-by: Michael Bridgen <michael@weave.works>
Michael Bridgen 2bb09697ce Centralise adapter types
Since the generic commands tend to share a few of the methods they
need -- at least AsClientObject -- it's worth having just one wrapper
struct for each API type, and adding methods to it where necessary.

For the automation types, I put these in auto.go.

While doing this I also did some tidying:

 - I changed the name of the wrappers to `<type>Adapter`, and the
   generic adapter to `universalAdapter` (it's only needed for delete,
   so far).

 - I de-exported and renamed some interface methods e.g.,
   `exportItem`. They aren't needed outside the package.

Signed-off-by: Michael Bridgen <michael@weave.works>
Michael Bridgen f316aff2d3 Add delete, export, get image-update
This uses the established abstractions to implement the usual
subcommands for the ImageUpdateAutomation type.

I've called the sub-subcommand in each case `image-update`, as a
fairly safe shorthand for the much longer `image-update-automation`.

Signed-off-by: Michael Bridgen <michael@weave.works>
Michael Bridgen 433628791b Add create auto image-update command
This adds the create subcommand, without attempting any refactoring.

NB the TODO: the image/v1alpha1 API does not yet export a const for
the name of the kind. The field `RunInterval` will likely be changed
to `Interval` (with a value field), at some point, too.

Signed-off-by: Michael Bridgen <michael@weave.works>
Michael Bridgen 4f52b77563 Factor out export command control flow
The export command works the same way for most (all?) types. I have
made it generic and moved it into export.go, then ported
{export,create}_auto_image{repository,policy}.go to use it.

Signed-off-by: Michael Bridgen <michael@weave.works>
Michael Bridgen 52145c045d Add delete image-policy and refactor
This adds a command for deleting ImagePolicy objects. Since the
control flow for the command needs only a runtime.Object (and a name
for the type), it can be factored out.

I have made the argument (field in the deleteCommand struct) an
interface `objectContainer`, through which the command code gets a
`runtime.Object` to deserialise into (and delete). It could be simply
a `runtime.Object` here; however things like `getCommand` require
other methods, so it's convenient to have an interface for it.

Signed-off-by: Michael Bridgen <michael@weave.works>
Michael Bridgen 512761080e Add get auto image-policy and refactor
This factors the get command implementation so that the control flow
is generic and relies on a handful of methods, then uses that to add
`get auto image-policy` and to rewrite `get auto image-repository`.

Signed-off-by: Michael Bridgen <michael@weave.works>
Michael Bridgen 037a5b71fd Add {create,export} auto image-policy
Signed-off-by: Michael Bridgen <michael@weave.works>
Michael Bridgen b66bdec61a Add subcommands for image-repository
This adds all the standard subcommands for the ImageRepository type.

Following `source`, I have put them under a namespace: `auto`,
referring to automation.

NB For `create` I use controllerutil.CreateOrUpdate, which looks to me
like a slightly more rounded version of the upsert* funcs.

Signed-off-by: Michael Bridgen <michael@weave.works>
Michael Bridgen 4abe69f90a Give flux bootstrap the extra components flag
This commit adds a flag for supplying extra components to bootstrap
(and its subcommands), to match the one for `flux install`.

Since the bootstrapComponents global is used in a few places, I made
it a func and renamed the variable. For consistency, I also renamed
the var used in install.go.

Lastly, so that the flag sorts next to `--components`, I changed it to
`--components-extra` in both commands.

Signed-off-by: Michael Bridgen <michael@weave.works>
Michael Bridgen 75023011d3 Add argument for adding to default install
If you want to install the default set of controllers and the image-*
controllers, at present you have to list every single one of them.

An improvement on this is to let people specify what they want _in
addition_ to the default controllers. This commit adds an argument
`--extra-components` which appends to the (most likely, default value)
slice of `--components`.

Signed-off-by: Michael Bridgen <michael@weave.works>
Philip Laine 82b74d8689 Add git implementation flag and note about Azure DevOps
Signed-off-by: Philip Laine <philip.laine@gmail.com>
Hidde Beydals 88a890d717 Log to stderr
This commit refactors the `printLogger` into a `stderrLogger` that
properly logs to `os.stderr` instead of `os.stdout`.

Signed-off-by: Hidde Beydals <hello@hidde.co>
Stefan Prodan cd87fbba0d
Fix create secret for Git over HTTP/S
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan 9867c4baf0
Add create secret git command
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan af0c939302
Add labels to generated secrets
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan c813eaf6d1
Do not try to reconcile a suspended object
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan ffdaa9dfe9
Fix tenant service account binding
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan d2df9ccf33
Add service account arg to create commands
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan 567ce7f987
Add suspend status to get sources commands
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan e7ff319685
Add resume source commands
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan 072138deff
Add suspend source commands
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan c02fbc2794
Set kubecontext and kubeconfig for kubectl exec
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan a8e5876b2e
Add create tenant to CLI docs
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan 8273851b73
Add service accounts to tenant command
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan 48bed79439
Add values-from arg to create helmrelease cmd
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Hidde Beydals 3c8716f6ac Utilize LastHandledReconcileAt for reconcile cmds
Signed-off-by: Hidde Beydals <hello@hidde.co>
Aurel Canciu 53a1db0703
Adjustments to support new sa name in kustomize
Supporting changes in 

Signed-off-by: Aurel Canciu <aurelcanciu@gmail.com>
Aurel Canciu 2a789ec705
Refactor to adopt k8s standardized Condition type
Updates to use metav1.Condition type and removes references for
deprecated corev1.Condition* constants and uses the new k8s api/meta
helpers in place of the old pkg/apis/meta types.

Signed-off-by: Aurel Canciu <aurelcanciu@gmail.com>
RossyWhite 02bcb4ff3c Fix --dry-run option
Signed-off-by: RossyWhite <daikishiroi@gmail.com>
Stefan Prodan ba34a6d401
Fix GitHub bootstrap with token auth
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan 7792cd6a10
Add token authentication option to bootstrap
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Sebastian Karasek c41487598e
Fix create tenant command export
Signed-off-by: Sebastian Karasek <sebastian@karasek.io>
Stefan Prodan e6b84c4cfc
List components images in check cmd
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan 9f7835d818
Add target namespace to create ks cmd
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Sylvain Rabot 78d7dca985
Add a --context option
Signed-off-by: Sylvain Rabot <sylvain@abstraction.fr>
Hidde Beydals 0bf52f4746 Change `fluxcd/toolkit` to `fluxcd/flux2`
Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals e2752e4508 Rename `gotk` binary to `flux`
Signed-off-by: Hidde Beydals <hello@hidde.co>
Hidde Beydals 9916a53761 Rename `gotk-system` namespace to `flux-system`
Signed-off-by: Hidde Beydals <hello@hidde.co>
Stefan Prodan 9bc250d027
Refactor manifests generation
- introduce manifestgen pkg, to be consumed by the CLI and Terraform provider
- consolidate defaults in manifestgen/install pkg
- introduce Manifest as the returning type of manifest generation
- add helper function to Manifest for writing multi-doc YAMLs on disk

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Philip Laine b0d2a38ff6 Refactor manifest generation
Signed-off-by: Philip Laine <philip.laine@xenit.se>
Stefan Prodan 0e67b76b57
Change copyright to Flux authors
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan 8dfbc35e60
Ignore missing kinds when uninstalling
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Ally Parker 2d67ea5f7f Add secret-ref flag to git source
Add secret-ref flag to Helm source

Add secret-ref to bucket source
“Anton b3ef410fb7 Add source bucket provider flag
“Anton 0c55bca218 Add helm chart source flag
“Anton 5fd28439dc Add kustomization source and decryption provider flags
“Anton 058dfdfcd6 Move flags and utils to internal packages
Stefan Prodan b041dbd14f Add GitLab HTTPS auth to bootstrap options
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Hidde Beydals 19918cd342 Refactor create, reconcile and resume cmds
* Take ObservedGeneration into account in readiness checks where
  applicable
* Reduce amount of code (and duplicate GETs) by working with pointers
  where possible
* Improve logged messages to properly take resource names into account
  and better describe processes
Stefan Prodan 7718c6a2a5
Merge pull request from fluxcd/bootstrap-validate-manifests
Enable client side validation on bootstrap
“Anton 4989826124 Get rid of shell-out and invoke kubetcl directly via exec
Stefan Prodan f23a551ae3
Enable client side validation on bootstrap
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan 880ef303e8
Set alert provider secretRef only if specified
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Stefan Prodan d2d494e079
Uninstall improvements
- ignore not found errors when deleting objects
- remove the CR/CRDs before deleting the cluster role binding
- capture kubectl exist code

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Philip Laine d32e8c6e98 Remove aliases
Philip Laine 65b8942416 Fix minor issues
Philip Laine 8eac7d6b4d Implement table output
Philip Laine 7ebb34de80 Add receiver command
Philip Laine 6ea84906ac Add alert commands
Philip Laine f7971a871a Add alert provider commands
Stefan Prodan 5672646278
Use install pkg in CLI
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
stefanprodan f613c01803 Update blang/semver to v4
Signed-off-by: stefanprodan <stefan.prodan@gmail.com>
Hidde Beydals f3cab6e177 Display proper revision for sources
Includes a change to an empty revision string if the reconciler has not
produced an artifact yet, as this will otherwise result in a nil
pointer dereference.
Hidde Beydals d41bd6b6b1
Merge pull request from circa10a/main
Switch get commands to use tables for output
circa10a 3619cb8bd1 Switch get commands to use tables for output
Signed-off-by: circa10a <caleblemoine@gmail.com>
Hidde Beydals 8e2316ba62 Support multi-path KUBECONFIG
Ref:
https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#the-kubeconfig-environment-variable
stefanprodan 07677ed4a7 Add option to disable the network policy at install time
Hidde Beydals 7b2227bfac Remove faulty `break` from get commands
stefanprodan 1427b1537e Fix Kusomization depends-on mapping
stefanprodan 29c1cf1237 Retry setting annotation on conflict
stefanprodan 0e52065893 Change the bootstrap default branch to main
Hidde Beydals 1a679ee05d Remove creationTimestamp leading spaces
Hidde Beydals 84e36ed847 Use `LastHandledReconcileAt` in reconcile commands
Hidde Beydals f216273008 Make use of `GetCondition` from `pkg/apis/meta`
Hidde Beydals ff6a1c14be Rename 'gitops-system' namespace to 'gotk-system'
To align with the project name, and the group introduced in .
stefanprodan d902c71a6f Update components to v0.1
Stefan Prodan cf080330ba
Merge pull request from fluxcd/kustomize-bootstrap-dir
Generate a kustomize package for the bootstrap manifests
stefanprodan 2373bacb0c Generate a kustomize package for the bootstrap manifests
stefanprodan 393be92632 Add support for multi-namespace tenant ownership
stefanprodan d11fa476e1 Refactor object kind/name parsing
stefanprodan bd2994f9ab Add support for Bucket sources to Kustomizations/HRs
stefanprodan 34147d7694 Add validation for bucket providers
stefanprodan a02452ccb9 Implement bucket CRUD commands
stefanprodan 1c7994a353 Add support for namespace/name format in depends-on
stefanprodan 7b4e815a8d Always apply sync manifests on bootstrap
Stefan Prodan b0e407bf30
Merge pull request from fluxcd/uninstall-fix
Suspend bootstrap kustomization on uninstall
stefanprodan f93a40a18b Suspend bootstrap kustomization on uninstall
stefanprodan 9b0c44162a Validate bootstrap required components
stefanprodan 101e7bbce0 Add support for ARMv7
stefanprodan fafcf09570 Add -n shorthand for namespace flag
stefanprodan 0b14328024 Use the group version for HR APIVersion
stefanprodan 2096532f5d Add create tenant command
stefanprodan 4136eb1444 Add export resource helper function
Stefan Prodan 67e0acd044
Merge pull request from stealthybox/shell-completions
Support bash, fish, zsh, and powershell shell completions as separate sub-commands
leigh capili cbcdfc5f6c Support bash, fish, zsh, and powershell shell completions as separate sub-commands
stefanprodan c36e02bba9 Update kustomize-controller to v0.0.12
stefanprodan 2bac5aabee Add log level flag
stefanprodan d5e78b9f80 Add watch all namespaces flag
stefanprodan 531c2bcf00 Import fluxcd/pkg/runtime
stefanprodan a7b1b04920 Add bootstrap reinstall e2e test
stefanprodan 1218d6abe8 Add branch flag to bootstrap cmd
stefanprodan afef6960b9 Cleanup GitHub e2e repo
stefanprodan b1e66f81ab Add label validation
stefanprodan 797cd9bea2 Add label arg to create commands
Hidde Beydals f18d1efdcb Refactor HelmRelease chart source kind validation
stefanprodan 8b6995e9ec Add decryption flags to create kustomization cmd
stefanprodan 5c8d00665f Use GitHub Container Registry for AMD64/ARM64 images
Stefan Prodan f4d78cc08e
Merge pull request from fluxcd/arch
Add ARM64 support to install/bootstrap
stefanprodan 3f07bd6471 Add arch flag to install/bootstrap
Hidde Beydals 2f861f19c0 Update `gotk create helmrelease` examples
To better reflect optional fields and highlight specific configuration
options.
Hidde Beydals e53d0dadbf Support GitRepository source in HelmRelease cmds
Hidde Beydals fa56685767 Upgrade Toolkit components and K8S deps
* github.com/fluxcd/helm-controller/api to v0.0.6
* github.com/fluxcd/source-controller/api to v0.0.13

* k8s.io/api to v0.18.8
* k8s.io/apiextensions-apiserver to v0.18.8
* k8s.io/apimachinery to v0.18.8
* k8s.io/client-go to v0.18.8
* sigs.k8s.io/controller-runtime to v0.6.2
Hidde Beydals 22624ae4d5 Rename `tk` binary to `gotk`
To avoid conflicts with the `tk` binary from the Tanka project.
Hidde Beydals e751bdc8a9 Change readiness check for HelmRelease
As the HelmRelease injects its own HelmChart, the first reconciliation
will always trigger a `Ready==False` condition while it waits for the
chart to become ready. Given this, we should only take this condition
into account when the `status.LastAttemptedRevision` has been recorded,
as this marks the fact that the chart is available and an action was
attempted.
Hidde Beydals 2078d048a1 Fix: change v1.JSON for HelmRelease to pointer
stefanprodan b5ed8f0183 Add SSH hostname arg to GitLab bootstrap
stefanprodan 17df7a46e2 Make export work offline
Hidde Beydals 123433c4ea Support providing TLS certs for helm source
Manuel Morejon ffd4784916
Replace tab by space
Manuel Morejon 750830c302
Replace tk sync example by tk reconcile
Manuel Morejon d245ef9b39
Remove tk sync example from help command
Signed-off-by: Manuel Morejon <manuel@mmorejon.io>
stefanprodan c2ff169c08 Add image pull secret arg to install/bootstrap
stefanprodan 57a1dbfc6d Add container registry option to install/bootstrap
Stefan Prodan efb39d6fc6
Merge pull request from fluxcd/node-selector
Add linux/amd64 node selector to controllers
stefanprodan aebad92426 Add linux/amd64 node selector to controllers
Set nodeSelector to linux/amd64 for clusters with mixed nodes (linux, windows, amd64, arm).
stefanprodan 8e67cfd5c9 Delete custom resources during uninstall
Remove Kustomizations, GitRepositories and HelmRepositories before deleting the toolkit controllers and CRDs.
stefanprodan 3620b76139 Make notification component optional
stefanprodan 0b2bc7ab3f Implement get/export HelmRelease for Helm releases
stefanprodan 797aec5528 Add create/delete HelmRelease e2e tests
stefanprodan 5f0b95dc59 Implement create/delete for Helm releases
stefanprodan 8534ccbf37 Implement Helm repository commands
stefanprodan 9af874d810 Add examples to all tk commands
stefanprodan aaad618e20 Rename kustomization arg from validate to validation
Fix `tk create kustomization` command args inconsistency with the Kustomize API
stefanprodan 670070a879 Drop support for Kubernetes <1.16
stefanprodan b92cbcd7e7 Use semver manifests as kustomize base
Instead of cloning the components repositories to download the base manifests, we build them in CI at release time and download them in tk install/bootstrap based on the provided semver. This speeds up the manifests generation from minutes to milliseconds.
stefanprodan 499ba15004 Add export option to tk install
stefanprodan c664484fda Update controllers and go modules
- update source-controller to v0.0.5
- update kustomize-controller to v0.0.4
- update notification-controller to v0.0.4
- update helm-controller to v0.0.1-alpha.2
stefanprodan 8dc5db17ac Add helm suspend/resume commands
stefanprodan 7a68c4ccf3 Add reconcile helm commands
stefanprodan 394227571f Rename sync cmd to reconcile
stefanprodan e180611024 Refactor defaults
- add dedicated components flag for bootstrap/install/check
- extract defaults to vars
- update CLI docs
stefanprodan 02521b6964 Add helm-controller to installer
stefanprodan e594350307 Add notification controller to tk components
stefanprodan 4621afcb31 Migrate to fluxcd/pkg
Hidde Beydals 329e21fd78 Create logger interface
Hidde Beydals d7f8a05612 Sort supported ECDSA curves names
To ensure options are always printed in the same order.
Hidde Beydals 21fd436621 Add descriptions to all CLI commands
stefanprodan 892230280c Honour KUBECONFIG environment variable
Hidde Beydals 0e81f6c3af docs: disable autogen footer CLI docs
Hidde Beydals cf45401250
Merge pull request from fluxcd/git/author-email
Use owner in Git author email
Hidde Beydals 15429160c7 Use owner in Git author email
Hidde Beydals dbfa2f9944 Improve cmd messages
Hidde Beydals 1df5a36f84 Copyright headers
stefanprodan 3d7349ee53 Generate cmd docs
stefanprodan 9ffe908c66 Add docs intro
stefanprodan d0a79c2b4c Use git package for bootstrap
stefanprodan f3d50e158a Implement GitLab bootstrap
stefanprodan 4f43b504f4 Assign GitHub teams during bootstrap
stefanprodan dca7b0ba91 Recreate GitHub deploy key during bootstrap
Stefan Prodan 2a61befbfd
Merge pull request from fluxcd/bootstrap-path
Add target path to the bootstrap cmd
stefanprodan 4992e11383 Add target path to the bootstrap cmd
stefanprodan 727734850e Add kustomizations removal to uninstall cmd
stefanprodan 0cd820e923 Add export for public git repos
stefanprodan 51ca2ee9d8 Improve cluster sync wait
stefanprodan e612a8a496 Implement SSH deploy key bootstrap
stefanprodan e70d86e843 Fix SSH secret upsert
stefanprodan 1bc637a43f Add export flag to create commands
stefanprodan f5b738198f Add support for GitHub Enterprise
stefanprodan 34ea89c3be Create GitHub repo if it doesn't exists
stefanprodan d4cbc45e16 Add personal and public options to bootstrap
stefanprodan 59ae2f327c Implement bootstrap upgrade
stefanprodan 4ec5b7fc69 Implement GitHub repository bootstrap
Hidde Beydals 65cfa6d347 Move port check to scanHostKey func
Hidde Beydals 9099ad3d8b Split cmd SSH/auth functions
Hidde Beydals 6017946144 Improve host key scanner, add Ed25519 generator
Hidde Beydals 3a8151bcc0 Add various custom flags
Hidde Beydals 2dfe88b82d Move ssh package from internal to pkg
Hidde Beydals a332e12338 Replace SSH shell-outs with Go implementation
stefanprodan f231107869 Set tk version at release time
stefanprodan 1e7d2e7dce Use kustomize API instead of binary
stefanprodan 89aa7463ef Release v0.0.1-alpha.1
stefanprodan 5c2c4ccdba Add service account args
- update kustomize-controller to v0.0.1-alpha.7
- change args to match the v0.0.1-alpha.7 API
- add service account args
stefanprodan d8802b7d4a Fix resume waiting
stefanprodan afcb41c59b Add bash completion cmd
stefanprodan 155cc66db9 Fix get cmd early exit
stefanprodan 9069a65a97 Add -s alias for silent arg
stefanprodan 5530362568 Add credentials export option for git sources
stefanprodan f127adc8ea Implement export to YAML
- add export commands for git sources and kustomizations
- add export e2e tests
stefanprodan 6d590fe4d2 Implement delete for git sources
- add delete source git command
- add delete source git e2e test
stefanprodan e5e06783bd Implement ks delete, suspend, resume commands
- add delete kustomization command with confirmation and warning id not suspended
- add suspend kustomization command
- add resume kustomization command
- add suspend/resume/delete e2e tests
stefanprodan 2225b2a6a9 Implement get commands
- add get sources git command
- add get kustomizations command
stefanprodan 1e03155e8b Add poll interval global variable
stefanprodan 6d66f42382 Add ks alias to kustomization commands
stefanprodan cfa72ddb0b log: improve cmd logs
stefanprodan 0f99f313a0 check: exit 1 on control plane failed checks
stefanprodan 21e0d38152 Implement sync command
- sync git sources
- sync kustomizations along with their sources
stefanprodan 8d15970dbe Add wait log
stefanprodan c6793f6eaf Refactor create command
- move GitRepository operations to create source git
- update examples and e2e tests
stefanprodan 3bcc2ae992 Format commands examples
stefanprodan a0ed1c2037 Add git tag option to create source
stefanprodan 076aa09a99 Update source if exists
stefanprodan 57474fb274 Implement create kustomization
stefanprodan 78af1dd2b4 Implement components selection
- add components global flag
- install selected components
- check selected components
stefanprodan a9128a2cb4 Log source sync failure message
stefanprodan 0f5204a8c1 Refactor create source
- use source API package instead of a text template
- use controller-runtime client instead of kubectl
stefanprodan d6d7bc329a Add silent option to uninstall
stefanprodan 98c32dce3d Refactor exec helpers
stefanprodan 09678d7966 Add version arg to install command
stefanprodan 4a872836e3 Generate tk docs with cobra/doc
stefanprodan 8392c4fe24 Refactor logging
stefanprodan 2d300d7344 Add semver condition to check output
stefanprodan 13760258ab Add verbose option to create source
stefanprodan e308097785 Add timeout option to install/uninstall
stefanprodan 7d1a14d09a Add uninstall cmd
stefanprodan 4d8800ad62 Add basic-auth option to create source
stefanprodan 9cec671f6c Add public repos and semver support to create cmd
stefanprodan 1371b4d4d3 Implement create source for ssh git repos
- generate host keys and SSH keys
- prompt for deploy key setup
- generate gitrepo source
- wait for source to sync
stefanprodan bba9ac0aa1 Add ssh tools to requirements check
stefanprodan 403a0f2882 Add check command
- verify minimum supported version of kubectl, kustomize and
Kubernetes API
stefanprodan 94e0b3c9c3 Add install command with dry-run option
- build kustomization
- apply output on the cluster
- check rollout status of source and kustomize controllers
stefanprodan e304059299 Add kubeconfig global flag
stefanprodan 4f449a1ffd Add check command
stefanprodan c8fdf76084 Init toolkit CLI