Commit Graph
797 Commits
Author SHA1 Message Date
Lucas Bajolet 6f43a82e02 command: add packer plugins install path flag
This new flag allows the `packer plugins install' command to install a
plugin from a local binary rather than from Github.

This command will only call `describe' on the plugin, and won't do any
further checks for functionality. The SHA256SUM will be directly
computed from the binary, so as with anything manual and potentially
sourced by the community, extra care should be applied when invoking
this.
2023-12-04 16:34:31 -05:00
Wilken Rivera ebaf831562 cmd/hcl2upgrade: Add VirtualBox as known plugin 2023-11-28 15:15:09 -05:00
Lucas Bajolet f221a799d8 command: error on invalid plugins remove
If a user attempts to remove a plugin through the `packer plugins
remove' subcommand, and the specified plugin is not installed, the
command succeeds, but does nothing, and exits silently.

This is not clear what is happening, and arguably, calling a command
that does nothing, not even explain what went wrong, is not intuitive.

Because of that, this commit changes how the command behaves in this
case, stating what went wrong, and exiting with a non-zero status.
2023-10-31 11:28:50 -04:00
Lucas Bajolet d47cbe7f48 command: remove SHA256SUM file on plugin removal
When a user invokes `packer plugins remove', the plugin binary gets
removed, but not the corresponding SHA256SUM file.

This patch changes this so that when a binary is removed, so is its
SHA256SUM file.
2023-10-26 12:49:36 -04:00
Wilken Rivera da061169bc cmd/hcl2_upgrade: Don't error when using a HashiCorp plugin that is not installed
This change updates hcl2_upgrade to not flag known plugin components, those used for generating the required plugins
block, when upgrading a legacy JSON template to HCL2. Any unknown plugins will be installed after running packer init
on the generated template so we don't error. We may want to suggest running packer init to install any missing plugins.

* Move knownPluginPrefixes into the hcl2_upgrade command
2023-10-24 06:00:42 -04:00
Wilken Rivera e8d5436228 Remove functions for detecting plugin usage
With the removal of vendored_plugins we are no longer interested in tacking bundled plugins usage.
For plugins such as file, null, or anything bultin into Packer we don't track because there is no
way to install them outside of Packer, for now.
2023-10-24 06:00:42 -04:00
Wilken Rivera c65bb2fdca Remove amazon plugin from acceptance test 2023-10-24 06:00:42 -04:00
Wilken Rivera ac71611cf5 Remove all HashiCorp vendored plugins 2023-10-24 06:00:42 -04:00
Lucas Bajolet 020f18e37f command: remove unused FlagSetFlags enum
The enumeration for FlagSetFlags, which presumably was added when the
Meta structure was introduced, aims to pre-populate the flagset for a
subcommand with a series of arguments.

However, despite it being documented, it is actually not used, and
therefore can safely be removed from the codebase.
2023-10-16 09:51:53 -04:00
Lucas Bajolet c0e594738b init: warn if no requirements specified
When users call `packer init' on a template that does not specify a
`required_plugin' block, the command succeeds but does nothing, which is
not helpful for users that may expect their plugins to install.

To remedy that problem, we now output a message like what `packer
plugins required' does on templates without such a block, so that users
have an idea of what to change in order to get the command to work.
2023-09-27 14:47:00 -04:00
guoguangwu 7eb6a45cd4 chore: remove refs to deprecated io/ioutil
Signed-off-by: guoguangwu <[email protected]>
2023-09-26 11:13:31 -04:00
guoguangwu 324e628b86 chore: unnecessary use of fmt.Sprintf
Signed-off-by: guoguangwu <[email protected]>
2023-09-21 09:38:23 -04:00
Lucas Bajolet eb9e1a4795 packer: remove implicit required plugins
Since this feature is no longer something we plan to activate later, as
it contradicts with our efforts to remove bundled plugins, and
encouraging users to move to either manually installing plugins, or
managing them through `packer init', we clean-up the code for this
feature.
2023-08-17 16:51:49 -04:00
hashicorp-copywrite[bot] 19055df3ec [COMPLIANCE] License changes (#12568)
* Updating the license from MPL to Business Source License

Going forward, this project will be licensed under the Business Source License v1.1. Please see our blog post for more details at https://hashi.co/bsl-blog, FAQ at https://hashi.co/license-faq, and details of the license at www.hashicorp.com/bsl.

* Update copyright file headers to BUSL-1.1

---------

Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
2023-08-10 15:53:29 -07:00
Wilken Rivera 99c79ecbd6 Add build tags to skip amd64 tests on darwin/arm64 (#12549) 2023-08-02 15:34:06 -04:00
Lucas Bajolet 3512a175a6 command: change wording for init's postitional arg
`packer init' is meant to be invoked on a template file or a directory.
This was described in the command-line help message as
`[template.pkr.hcl|folder]'.

Because this is encapsulated between square brackets, this could be
taken as an option instead of a positional, mandatory argument.

This commit changes the wording to adopt a similar convention as `packer
build', so the two are consistent in how they are invoked, and to avoid
mistaking this argument as optional.
2023-07-25 16:45:32 -04:00
Lucas Bajolet d0198c8a17 packer: track bundled plugins usage on telemetry 2023-07-25 15:43:47 -04:00
Lucas Bajolet b522edca36 hcl2_upgrade: add required_plugins in out template
When a legacy JSON template references built-in plugins, we add them to
the resulting template as a `required_plugins' block in HCL2.
2023-07-18 16:04:55 -04:00
Lucas Bajolet a2930bda4f packer: warn on bundled plugins usage
Since bundled plugins will be removed in an upcoming version of Packer,
this commit adds a new warning message whenever a template uses one such
plugin.

This warning has been implemented on build, validate, console and the
inspect subcommands.

In addition to warning about the upcoming change and potential issue
this will cause, this warning message proposes solutions to the user so
they know what they'll have to do in order not to rely on those bundled
plugins later.
2023-07-18 15:36:12 -04:00
Wilken Rivera 8982d4f168 Migrate external Parallels plugin to Parallels/packer-plugin-parallels (#12476)
* Update external plugin documentation source

The Parallels plugin for Packer is now maintained by the Parallels team, under
their respective GitHub org. This changes updates the source address for
the external plugin that should be used for pulling new plugin
documentation.

* Removed packer-plugin-parallels for list of vendored plugins
2023-07-03 14:13:08 -04:00
Wilken Rivera d67bacc8d3 Remove community plugins from the vendored plugins list (#12436)
This step removes community plugins from the Packer binary release. These plugins are being maintained and released independently of Packer and have become out of date. To ensure users are using the latest version of the plugins they are being removed in favor of the external plugin installation processes.
2023-05-30 11:25:28 -04:00
Wilken Rivera 06fe087097 Merge pull request #12380 from hashicorp/bump-go-1.20
Bump Go tooling to version 1.20
2023-04-28 13:57:32 -04:00
Wilken Rivera 65f6428fce Remove external archived provisioner plugins (#12374)
This change removes a set of plugins that have not been updated in a while. These
plugins have been archived for some time now. Users wishing to continue using these plugins
should use the `packer plugins install` or `packer init` commands to install the external plugin.
2023-04-28 13:52:49 -04:00
Wilken Rivera 13a24db0de Remove IONOS plugins from vendored plugins (#12385)
* Remove profitbricks plugin
* Remove oneandone plugin

The following plugins have been unmaintained for some time now, and their
upstream cloud provider has consolidate the services. These plugins
will continue to be available to Packer via direct installation using
packer init or the packer plugins install command. But they will no longer
be bundled with Packer.
2023-04-28 13:31:09 -04:00
Wilken Rivera eca75a6847 Run make fmt to fix checks 2023-04-27 15:17:31 -04:00
Wilken Rivera ddd7ee98b6 Bump go.mod to 1.20
* Fix go vet issue

* Bump Go tooling to version 1.20

* Update workflows to use go-version file
2023-04-27 15:11:48 -04:00
Wilken Rivera 08d1dfe36c Remove external plugin for Digital Ocean (#12376)
The Digital Ocean plugin is now maintained and released by the Digital Ocean team.
To ensure users are downloading the latest available version the plugin will nolonger
be bundled with Packer.
2023-04-26 14:06:57 -04:00
Lucas Bajolet 31921f0c9f packer: track template type in spans
The template type for a builder, provisioner, post-processor or
datasource was not tracked with telemetry data.

This commit adds the infrastructure to track this, bumping the schema
for non-crashes to `beta/packer/6' at the same time.
2023-04-18 11:19:21 -04:00
Wilken Rivera e0a5286645 cmd/console: Add config-type flag to command help (#12360)
It is not clear that the console command runs in legacy JSON mode by
default and that users can specify the -config-type flag to toggle HCL2
mode. This change adds the config-type flag to the command's help text
to alert users of the gotcha.

In the next minor Packer release the console command will be updated to
default to HCL2 mode.

Relates to: #12359
Relates to: #10603
2023-04-12 14:27:39 -04:00
Wilken Rivera f678c06396 Migrate external UCloud plugin to ucloud/packer-plugin-ucloud (#12335)
* Update external plugin documentation source

The UCloud plugin for Packer is now maintained by the UCloud team, under
their respective GitHub org. This changes updates the source address for
the external plugin that should be used for pulling new plugin
documentation.

* Remove packer-plugin-ucloud from vendored plugins.
2023-04-04 20:47:47 -04:00