Commit Graph

2303 Commits (db0920ba32d8e2777936d16f63aca231ef9548c1)
 

Author SHA1 Message Date
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>
4 years ago
Stefan Prodan 008b3b8408
Merge pull request #599 from fluxcd/docs-image-updates
Add image automation guide
4 years ago
Stefan Prodan 7ae3dee900
Add image automation guide
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
4 years ago
Stefan Prodan 2395ab6e14
Merge pull request #597 from fluxcd/fix-cluster-domain
Fix cluster domain mapping
4 years ago
Stefan Prodan 8efe053ffa
Fix cluster domain mapping
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
4 years ago
Stefan Prodan 612600b88c
Merge pull request #595 from L3o-pold/add-cluster-domain-bootstrap-option
Add cluster-domain option for bootstrap command
4 years ago
Léopold Jacquot 4d7df52dbe Add cluster-domain option for bootstrap command
Signed-off-by: Léopold Jacquot <leopold.jacquot@infomaniak.com>
4 years ago
Stefan Prodan b6c63a1aa4
Merge pull request #594 from fluxcd/update-components
Update source-controller to v0.5.4
4 years ago
fluxcdbot a4788ce6bb Update toolkit components 4 years ago
Michael Bridgen 0ba6fc1b36
Merge pull request #538 from fluxcd/image-controller-commands
Add commands for image automation API
4 years ago
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>
4 years ago
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>
4 years ago
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>
4 years ago
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>
4 years ago
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>
4 years ago
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>
4 years ago
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>
4 years ago
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>
4 years ago
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>
4 years ago
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>
4 years ago
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>
4 years ago
Michael Bridgen 037a5b71fd Add {create,export} auto image-policy
Signed-off-by: Michael Bridgen <michael@weave.works>
4 years ago
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>
4 years ago
Hidde Beydals 16f52610ab
Merge pull request #589 from fluxcd/update-components
Update source-controller to v0.5.3
4 years ago
fluxcdbot b2f018e29b Update toolkit components 4 years ago
Michael Bridgen 1f497cac44
Merge pull request #580 from fluxcd/install-image-controllers
Include image controller config in `flux install`
4 years ago
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>
4 years ago
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>
4 years ago
Michael Bridgen 09f145d880 Add kustomizations for the image-* controllers
I have used the cookie-cutter from the examples already there.

Signed-off-by: Michael Bridgen <michael@weave.works>
4 years ago
Michael Bridgen 811cd4248f Include image-* controllers in update workflow
Signed-off-by: Michael Bridgen <michael@weave.works>
4 years ago
Hidde Beydals a4871724ac
Merge pull request #587 from fluxcd/update-components
Update source-controller to v0.5.2
4 years ago
fluxcdbot a7d6446d8f Update toolkit components 4 years ago
Stefan Prodan 635a17ef1e
Merge pull request #586 from fluxcd/kustomize/api-v0.7.0
Update kustomize/api to v0.7.0
4 years ago
Stefan Prodan 6280fbce17
Update kustomize/api to v0.7.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
4 years ago
Stefan Prodan daa72e72b0
Merge pull request #585 from fluxcd/update-components
Update kustomize-controller to v0.5.0
4 years ago
fluxcdbot 35bb770697 Update toolkit components 4 years ago
Stefan Prodan 9cc5a7d8de
Merge pull request #584 from fluxcd/docs-azure-devops
Rearrange Azure DevOps docs
4 years ago
Stefan Prodan 9b62f01b53
Rearrange Azure DevOps docs
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
4 years ago
Stefan Prodan a643a82006
Merge pull request #566 from fluxcd/feature/libgit2
Add git implementation flag and note about Azure DevOps
4 years ago
Philip Laine 82b74d8689 Add git implementation flag and note about Azure DevOps
Signed-off-by: Philip Laine <philip.laine@gmail.com>
4 years ago
Hidde Beydals a5825bb9f5
Merge pull request #581 from fluxcd/stdlogger
Log to stderr
4 years ago
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>
4 years ago
Hidde Beydals be6fab795d
Merge pull request #578 from fluxcd/rel-base-path 4 years ago
Hidde Beydals 7a5b9e2991 Use rel filepath in auto generated kustomization
This works around another bug on Windows platforms that would cause the
kustomize-controller to choke on the kustomization.yaml generated by the
bootstrap command due to the filepath being in a Windows format.

By using `filepath.Rel`, the output is _just_ the filename for files
relative to the bootstrap path, which is at the moment sufficient to
make it work.

Signed-off-by: Hidde Beydals <hello@hidde.co>
4 years ago
Hidde Beydals ee1f70841c Use path rel to working dir for kustomize build
Work around for a bug in kustomize causing it to not properly
handle absolute paths on Windows.

Signed-off-by: Hidde Beydals <hello@hidde.co>
4 years ago
Stefan Prodan adc3d17eab
Merge pull request #577 from fluxcd/update-git-pkg
Update fluxcd/pkg/git to v0.1.0
4 years ago
Stefan Prodan f909d6fde2
Update fluxcd/pkg/git to v0.1.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
4 years ago
Stefan Prodan 016a388147
Merge pull request #573 from fluxcd/update-components
Update toolkit components
4 years ago
fluxcdbot aea442e7e1 Update toolkit components 4 years ago
Hidde Beydals bb013ceb28
Merge pull request #576 from sylr/fix-typo
Fix typo in manifests download error message
4 years ago