Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support alternate Forge for 'bolt module' workflow #2303

Closed
nossralf opened this issue Oct 29, 2020 · 1 comment · Fixed by #2325
Closed

Support alternate Forge for 'bolt module' workflow #2303

nossralf opened this issue Oct 29, 2020 · 1 comment · Fixed by #2325
Assignees
Labels
Feature New features and improvements.

Comments

@nossralf
Copy link

nossralf commented Oct 29, 2020

Use Case

There is currently no way of specifying an alternate Forge URL when using the new bolt module workflow for managing module dependencies. This is supported in the older bolt puppetfile workflow, and something that is almost a necessity in a corporate environment where Bolt plans may rely on internal modules that cannot be published to the Puppet Forge.

We should make a new setting with the exact same structure and keys as puppetfile config option. It's called module-install.

We should also update bolt project migrate to update this setting to update puppetfile to module-install.

If you have the (modules or module-install) key and the puppetfile key you will get a warning to update the puppetfile key to module-install with bolt project migrate. It will not honor the puppetfile key. module-install should not be honored by puppetfile subcommands.

@nossralf nossralf added the Feature New features and improvements. label Oct 29, 2020
@beechtom beechtom self-assigned this Nov 4, 2020
beechtom added a commit to beechtom/bolt that referenced this issue Nov 6, 2020
…modules

This adds support for specifying an alternate Forge and proxies when
installing modules using the `bolt module add|install` and
`Add|Install-BoltModule` commands. This change includes upstream changes
to the `puppetfile-resolver` library and a new config option in Bolt.

The new `module-install` config option accepts a map that configures an
alternate Forge and proxies to use when resolving and installing
modules. This option is identical to the current `puppetfile` config
option, and is only used when running the `bolt module add|install` and
`Add|Install-BoltModule` commands. This setting is available to both the
project config file, `bolt-project.yaml`, and the defaults config file,
`bolt-defaults.yaml`. It is not available to the `bolt.yaml` config
file.

This option is passed to the module installer, which in turn passes
it to both `puppetfile-resolver` and `r10k` when resolving and
installing modules, respectively.

!feature

* **Support alternate Forge and proxies when installing modules**
  ([puppetlabs#2303](puppetlabs#2303))

  Bolt now supports specifying an alternate Forge and proxies to use
  when installing modules using the `bolt module add|install` commands
  and `Add|Install-BoltModule` cmdlets. An alternate Forge and proxies
  can be configured using the new `module-install` configuration option
  in `bolt-project.yaml` and `bolt-defaults.yaml`.
@beechtom beechtom linked a pull request Nov 6, 2020 that will close this issue
beechtom added a commit to beechtom/bolt that referenced this issue Nov 6, 2020
…modules

This adds support for specifying an alternate Forge and proxies when
installing modules using the `bolt module add|install` and
`Add|Install-BoltModule` commands. This change includes upstream changes
to the `puppetfile-resolver` library and a new config option in Bolt.

The new `module-install` config option accepts a map that configures an
alternate Forge and proxies to use when resolving and installing
modules. This option is identical to the current `puppetfile` config
option, and is only used when running the `bolt module add|install` and
`Add|Install-BoltModule` commands. This setting is available to both the
project config file, `bolt-project.yaml`, and the defaults config file,
`bolt-defaults.yaml`. It is not available to the `bolt.yaml` config
file.

This option is passed to the module installer, which in turn passes
it to both `puppetfile-resolver` and `r10k` when resolving and
installing modules, respectively.

!feature

* **Support alternate Forge and proxies when installing modules**
  ([puppetlabs#2303](puppetlabs#2303))

  Bolt now supports specifying an alternate Forge and proxies to use
  when installing modules using the `bolt module add|install` commands
  and `Add|Install-BoltModule` cmdlets. An alternate Forge and proxies
  can be configured using the new `module-install` configuration option
  in `bolt-project.yaml` and `bolt-defaults.yaml`.
beechtom added a commit to beechtom/bolt that referenced this issue Nov 6, 2020
…modules

This adds support for specifying an alternate Forge and proxies when
installing modules using the `bolt module add|install` and
`Add|Install-BoltModule` commands. This change includes upstream changes
to the `puppetfile-resolver` library and a new config option in Bolt.

The new `module-install` config option accepts a map that configures an
alternate Forge and proxies to use when resolving and installing
modules. This option is identical to the current `puppetfile` config
option, and is only used when running the `bolt module add|install` and
`Add|Install-BoltModule` commands. This setting is available to both the
project config file, `bolt-project.yaml`, and the defaults config file,
`bolt-defaults.yaml`. It is not available to the `bolt.yaml` config
file.

This option is passed to the module installer, which in turn passes
it to both `puppetfile-resolver` and `r10k` when resolving and
installing modules, respectively.

!feature

* **Support alternate Forge and proxies when installing modules**
  ([puppetlabs#2303](puppetlabs#2303))

  Bolt now supports specifying an alternate Forge and proxies to use
  when installing modules using the `bolt module add|install` commands
  and `Add|Install-BoltModule` cmdlets. An alternate Forge and proxies
  can be configured using the new `module-install` configuration option
  in `bolt-project.yaml` and `bolt-defaults.yaml`.
beechtom added a commit to beechtom/bolt that referenced this issue Nov 10, 2020
…modules

This adds support for specifying an alternate Forge and proxies when
installing modules using the `bolt module add|install` and
`Add|Install-BoltModule` commands. This change includes upstream changes
to the `puppetfile-resolver` library and a new config option in Bolt.

The new `module-install` config option accepts a map that configures an
alternate Forge and proxies to use when resolving and installing
modules. This option is identical to the current `puppetfile` config
option, and is only used when running the `bolt module add|install` and
`Add|Install-BoltModule` commands. This setting is available to both the
project config file, `bolt-project.yaml`, and the defaults config file,
`bolt-defaults.yaml`. It is not available to the `bolt.yaml` config
file.

This option is passed to the module installer, which in turn passes
it to both `puppetfile-resolver` and `r10k` when resolving and
installing modules, respectively.

!feature

* **Support alternate Forge and proxies when installing modules**
  ([puppetlabs#2303](puppetlabs#2303))

  Bolt now supports specifying an alternate Forge and proxies to use
  when installing modules using the `bolt module add|install` commands
  and `Add|Install-BoltModule` cmdlets. An alternate Forge and proxies
  can be configured using the new `module-install` configuration option
  in `bolt-project.yaml` and `bolt-defaults.yaml`.
beechtom added a commit to beechtom/bolt that referenced this issue Nov 10, 2020
…modules

This adds support for specifying an alternate Forge and proxies when
installing modules using the `bolt module add|install` and
`Add|Install-BoltModule` commands. This change includes upstream changes
to the `puppetfile-resolver` library and a new config option in Bolt.

The new `module-install` config option accepts a map that configures an
alternate Forge and proxies to use when resolving and installing
modules. This option is identical to the current `puppetfile` config
option, and is only used when running the `bolt module add|install` and
`Add|Install-BoltModule` commands. This setting is available to both the
project config file, `bolt-project.yaml`, and the defaults config file,
`bolt-defaults.yaml`. It is not available to the `bolt.yaml` config
file.

This option is passed to the module installer, which in turn passes
it to both `puppetfile-resolver` and `r10k` when resolving and
installing modules, respectively.

!feature

* **Support alternate Forge and proxies when installing modules**
  ([puppetlabs#2303](puppetlabs#2303))

  Bolt now supports specifying an alternate Forge and proxies to use
  when installing modules using the `bolt module add|install` commands
  and `Add|Install-BoltModule` cmdlets. An alternate Forge and proxies
  can be configured using the new `module-install` configuration option
  in `bolt-project.yaml` and `bolt-defaults.yaml`.
beechtom added a commit to beechtom/bolt that referenced this issue Nov 11, 2020
…modules

This adds support for specifying an alternate Forge and proxies when
installing modules using the `bolt module add|install` and
`Add|Install-BoltModule` commands. This change includes upstream changes
to the `puppetfile-resolver` library and a new config option in Bolt.

The new `module-install` config option accepts a map that configures an
alternate Forge and proxies to use when resolving and installing
modules. This option is identical to the current `puppetfile` config
option, and is only used when running the `bolt module add|install` and
`Add|Install-BoltModule` commands. This setting is available to both the
project config file, `bolt-project.yaml`, and the defaults config file,
`bolt-defaults.yaml`. It is not available to the `bolt.yaml` config
file.

This option is passed to the module installer, which in turn passes
it to both `puppetfile-resolver` and `r10k` when resolving and
installing modules, respectively.

!feature

* **Support alternate Forge and proxies when installing modules**
  ([puppetlabs#2303](puppetlabs#2303))

  Bolt now supports specifying an alternate Forge and proxies to use
  when installing modules using the `bolt module add|install` commands
  and `Add|Install-BoltModule` cmdlets. An alternate Forge and proxies
  can be configured using the new `module-install` configuration option
  in `bolt-project.yaml` and `bolt-defaults.yaml`.
@op-ct
Copy link
Contributor

op-ct commented Nov 12, 2020

"In a corporate environment where Bolt plans may rely on internal modules that cannot be published to the Puppet Forge"

It would be even more valuable to support git repos (and refs) for individual modules in these environments (as the older bolt puppetfile does)—it is much more common for corporate environments to serve modules from internal git repos than from private Puppet Forges.

beechtom added a commit to beechtom/bolt that referenced this issue Nov 16, 2020
…modules

This adds support for specifying an alternate Forge and proxies when
installing modules using the `bolt module add|install` and
`Add|Install-BoltModule` commands. This change includes upstream changes
to the `puppetfile-resolver` library and a new config option in Bolt.

The new `module-install` config option accepts a map that configures an
alternate Forge and proxies to use when resolving and installing
modules. This option is identical to the current `puppetfile` config
option, and is only used when running the `bolt module add|install` and
`Add|Install-BoltModule` commands. This setting is available to both the
project config file, `bolt-project.yaml`, and the defaults config file,
`bolt-defaults.yaml`. It is not available to the `bolt.yaml` config
file.

This option is passed to the module installer, which in turn passes
it to both `puppetfile-resolver` and `r10k` when resolving and
installing modules, respectively.

!feature

* **Support alternate Forge and proxies when installing modules**
  ([puppetlabs#2303](puppetlabs#2303))

  Bolt now supports specifying an alternate Forge and proxies to use
  when installing modules using the `bolt module add|install` commands
  and `Add|Install-BoltModule` cmdlets. An alternate Forge and proxies
  can be configured using the new `module-install` configuration option
  in `bolt-project.yaml` and `bolt-defaults.yaml`.
@beechtom beechtom added the Blocked Work blocked by other issues or PRs. label Nov 18, 2020
@lucywyman lucywyman removed the Blocked Work blocked by other issues or PRs. label Dec 2, 2020
beechtom added a commit to beechtom/bolt that referenced this issue Dec 4, 2020
…modules

This adds support for specifying an alternate Forge and proxies when
installing modules using the `bolt module add|install` and
`Add|Install-BoltModule` commands. This change includes upstream changes
to the `puppetfile-resolver` library and a new config option in Bolt.

The new `module-install` config option accepts a map that configures an
alternate Forge and proxies to use when resolving and installing
modules. This option is identical to the current `puppetfile` config
option, and is only used when running the `bolt module add|install` and
`Add|Install-BoltModule` commands. This setting is available to both the
project config file, `bolt-project.yaml`, and the defaults config file,
`bolt-defaults.yaml`. It is not available to the `bolt.yaml` config
file.

This option is passed to the module installer, which in turn passes
it to both `puppetfile-resolver` and `r10k` when resolving and
installing modules, respectively.

!feature

* **Support alternate Forge and proxies when installing modules**
  ([puppetlabs#2303](puppetlabs#2303))

  Bolt now supports specifying an alternate Forge and proxies to use
  when installing modules using the `bolt module add|install` commands
  and `Add|Install-BoltModule` cmdlets. An alternate Forge and proxies
  can be configured using the new `module-install` configuration option
  in `bolt-project.yaml` and `bolt-defaults.yaml`.
beechtom added a commit to beechtom/bolt that referenced this issue Dec 4, 2020
…modules

This adds support for specifying an alternate Forge and proxies when
installing modules using the `bolt module add|install` and
`Add|Install-BoltModule` commands. This change includes upstream changes
to the `puppetfile-resolver` library and a new config option in Bolt.

The new `module-install` config option accepts a map that configures an
alternate Forge and proxies to use when resolving and installing
modules. This option is identical to the current `puppetfile` config
option, and is only used when running the `bolt module add|install` and
`Add|Install-BoltModule` commands. This setting is available to both the
project config file, `bolt-project.yaml`, and the defaults config file,
`bolt-defaults.yaml`. It is not available to the `bolt.yaml` config
file.

This option is passed to the module installer, which in turn passes
it to both `puppetfile-resolver` and `r10k` when resolving and
installing modules, respectively.

!feature

* **Support alternate Forge and proxies when installing modules**
  ([puppetlabs#2303](puppetlabs#2303))

  Bolt now supports specifying an alternate Forge and proxies to use
  when installing modules using the `bolt module add|install` commands
  and `Add|Install-BoltModule` cmdlets. An alternate Forge and proxies
  can be configured using the new `module-install` configuration option
  in `bolt-project.yaml` and `bolt-defaults.yaml`.
beechtom added a commit to beechtom/bolt that referenced this issue Dec 4, 2020
…modules

This adds support for specifying an alternate Forge and proxies when
installing modules using the `bolt module add|install` and
`Add|Install-BoltModule` commands. This change includes upstream changes
to the `puppetfile-resolver` library and a new config option in Bolt.

The new `module-install` config option accepts a map that configures an
alternate Forge and proxies to use when resolving and installing
modules. This option is identical to the current `puppetfile` config
option, and is only used when running the `bolt module add|install` and
`Add|Install-BoltModule` commands. This setting is available to both the
project config file, `bolt-project.yaml`, and the defaults config file,
`bolt-defaults.yaml`. It is not available to the `bolt.yaml` config
file.

This option is passed to the module installer, which in turn passes
it to both `puppetfile-resolver` and `r10k` when resolving and
installing modules, respectively.

!feature

* **Support alternate Forge and proxies when installing modules**
  ([puppetlabs#2303](puppetlabs#2303))

  Bolt now supports specifying an alternate Forge and proxies to use
  when installing modules using the `bolt module add|install` commands
  and `Add|Install-BoltModule` cmdlets. An alternate Forge and proxies
  can be configured using the new `module-install` configuration option
  in `bolt-project.yaml` and `bolt-defaults.yaml`.
beechtom added a commit to beechtom/bolt that referenced this issue Dec 4, 2020
…modules

This adds support for specifying an alternate Forge and proxies when
installing modules using the `bolt module add|install` and
`Add|Install-BoltModule` commands. This change includes upstream changes
to the `puppetfile-resolver` library and a new config option in Bolt.

The new `module-install` config option accepts a map that configures an
alternate Forge and proxies to use when resolving and installing
modules. This option is identical to the current `puppetfile` config
option, and is only used when running the `bolt module add|install` and
`Add|Install-BoltModule` commands. This setting is available to both the
project config file, `bolt-project.yaml`, and the defaults config file,
`bolt-defaults.yaml`. It is not available to the `bolt.yaml` config
file.

This option is passed to the module installer, which in turn passes
it to both `puppetfile-resolver` and `r10k` when resolving and
installing modules, respectively.

!feature

* **Support alternate Forge and proxies when installing modules**
  ([puppetlabs#2303](puppetlabs#2303))

  Bolt now supports specifying an alternate Forge and proxies to use
  when installing modules using the `bolt module add|install` commands
  and `Add|Install-BoltModule` cmdlets. An alternate Forge and proxies
  can be configured using the new `module-install` configuration option
  in `bolt-project.yaml` and `bolt-defaults.yaml`.
beechtom added a commit to beechtom/bolt that referenced this issue Dec 4, 2020
…modules

This adds support for specifying an alternate Forge and proxies when
installing modules using the `bolt module add|install` and
`Add|Install-BoltModule` commands. This change includes upstream changes
to the `puppetfile-resolver` library and a new config option in Bolt.

The new `module-install` config option accepts a map that configures an
alternate Forge and proxies to use when resolving and installing
modules. This option is identical to the current `puppetfile` config
option, and is only used when running the `bolt module add|install` and
`Add|Install-BoltModule` commands. This setting is available to both the
project config file, `bolt-project.yaml`, and the defaults config file,
`bolt-defaults.yaml`. It is not available to the `bolt.yaml` config
file.

This option is passed to the module installer, which in turn passes
it to both `puppetfile-resolver` and `r10k` when resolving and
installing modules, respectively.

!feature

* **Support alternate Forge and proxies when installing modules**
  ([puppetlabs#2303](puppetlabs#2303))

  Bolt now supports specifying an alternate Forge and proxies to use
  when installing modules using the `bolt module add|install` commands
  and `Add|Install-BoltModule` cmdlets. An alternate Forge and proxies
  can be configured using the new `module-install` configuration option
  in `bolt-project.yaml` and `bolt-defaults.yaml`.
beechtom added a commit to beechtom/bolt that referenced this issue Dec 4, 2020
This adds a new `module-install` config option that is meant to replace
`puppetfile`. The config option accepts the same sub-options as
`puppetfile` does.

Currently, this config option is not respected when resolving module
dependencies, as changes need to be made to the `puppetfile-resolver`
library to support proxies and an alternate Forge. However, this config
is still passed to r10k, which will respect it when installing modules
from a Puppetfile.

If a user has `module-install` configured and then runs `bolt module
add|install` or `Add|Install-BoltModule`, Bolt will issue a warning
letting the user know that the config option will not be respected when
resolving modules, and then provides a link to a known issue with more
information.

This also adds a handful of warnings that are issued depending on
whether `puppetfile` or `module-install` are configured and if the user
runs `puppetfile install` or `module install`. If both options are
configured, Bolt will also warn and use `module-install`.

This also updates the project migrator to update the `puppetfile` option
to `module-install`.

!feature

* **Add `module-install` configuration option**
  ([puppetlabs#2303](puppetlabs#2303))

  Bolt now supports a `module-install` configuration option in
  `bolt-project.yaml` and `bolt-defaults.yaml`. This option is used to
  configure proxies and an alternate forge when installing modules using
  the `bolt module add|install` commands or `Add|Install-BoltModule`
  cmdlets.

  _This option is not currently supported when resolving module
  dependencies._
beechtom added a commit to beechtom/bolt that referenced this issue Dec 4, 2020
This adds a new `module-install` config option that is meant to replace
`puppetfile`. The config option accepts the same sub-options as
`puppetfile` does.

Currently, this config option is not respected when resolving module
dependencies, as changes need to be made to the `puppetfile-resolver`
library to support proxies and an alternate Forge. However, this config
is still passed to r10k, which will respect it when installing modules
from a Puppetfile.

If a user has `module-install` configured and then runs `bolt module
add|install` or `Add|Install-BoltModule`, Bolt will issue a warning
letting the user know that the config option will not be respected when
resolving modules, and then provides a link to a known issue with more
information.

This also adds a handful of warnings that are issued depending on
whether `puppetfile` or `module-install` are configured and if the user
runs `puppetfile install` or `module install`. If both options are
configured, Bolt will also warn and use `module-install`.

This also updates the project migrator to update the `puppetfile` option
to `module-install`.

!feature

* **Add `module-install` configuration option**
  ([puppetlabs#2303](puppetlabs#2303))

  Bolt now supports a `module-install` configuration option in
  `bolt-project.yaml` and `bolt-defaults.yaml`. This option is used to
  configure proxies and an alternate forge when installing modules using
  the `bolt module add|install` commands or `Add|Install-BoltModule`
  cmdlets.

  _This option is not currently supported when resolving module
  dependencies._
beechtom added a commit to beechtom/bolt that referenced this issue Dec 7, 2020
This adds a new `module-install` config option that is meant to replace
`puppetfile`. The config option accepts the same sub-options as
`puppetfile` does.

Currently, this config option is not respected when resolving module
dependencies, as changes need to be made to the `puppetfile-resolver`
library to support proxies and an alternate Forge. However, this config
is still passed to r10k, which will respect it when installing modules
from a Puppetfile.

If a user has `module-install` configured and then runs `bolt module
add|install` or `Add|Install-BoltModule`, Bolt will issue a warning
letting the user know that the config option will not be respected when
resolving modules, and then provides a link to a known issue with more
information.

This also adds a handful of warnings that are issued depending on
whether `puppetfile` or `module-install` are configured and if the user
runs `puppetfile install` or `module install`. If both options are
configured, Bolt will also warn and use `module-install`.

This also updates the project migrator to update the `puppetfile` option
to `module-install`.

!feature

* **Add `module-install` configuration option**
  ([puppetlabs#2303](puppetlabs#2303))

  Bolt now supports a `module-install` configuration option in
  `bolt-project.yaml` and `bolt-defaults.yaml`. This option is used to
  configure proxies and an alternate forge when installing modules using
  the `bolt module add|install` commands or `Add|Install-BoltModule`
  cmdlets.

  _This option is not currently supported when resolving module
  dependencies._