hashicorp / hc-install

Go module for downloading or locating HashiCorp binaries, verifying signatures and checksums, and asserting version constraints.

Home Page:https://pkg.go.dev/github.com/hashicorp/hc-install

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Fill in all products

kmoe opened this issue · comments

commented

Main products

  • terraform
  • consul
  • nomad
  • boundary
  • packer
  • sentinel
  • vagrant
  • vault
  • waypoint

Other tools

Need to check for each one whether (1) it's on Checkpoint (but see #9); (2) whether it's appropriate to install with hcinstall; (3) whether it has a version command.

  • atlas-upload-cli
  • boundary-desktop
  • consul-terraform-sync
  • docker-base
  • docker-basetool
  • envconsul
  • hcs
  • levant
  • nomad-autoscaler
  • nomad-driver-lxc
  • nomad-driver-podman
  • otto
  • serf
  • tfc-agent
  • vagrant-vmware-utility
  • vault-auditor
  • vault-ssh-helper
  • waypoint-entrypoint

Plugins

I assume everything else on releases.hashicorp.com not on this list is a plugin for one of the main products. Need to check whether programmatic installation of these plugins via hcinstall would ever be appropriate.

Only some products are available on Checkpoint. I Hope this helps.

$ curl https://checkpoint-api.hashicorp.com/v1/check/terraform
{"product":"terraform","current_version":"1.0.10","current_release":1635432003,"current_download_url":"https://releases.hashicorp.com/terraform/1.0.10","current_changelog_url":"https://github.com/hashicorp/terraform/blob/v1.0.10/CHANGELOG.md","project_website":"https://www.terraform.io","alerts":[]}

$ curl https://checkpoint-api.hashicorp.com/v1/check/vault
404 page not found

$ curl https://checkpoint-api.hashicorp.com/v1/check/nomad
{"product":"nomad","current_version":"1.1.6","current_release":1634330710,"current_download_url":"https://releases.hashicorp.com/nomad/1.1.6","current_changelog_url":"https://github.com/hashicorp/nomad/blob/v1.1.6/CHANGELOG.md","project_website":"https://nomadproject.io","alerts":[]}

$ curl https://checkpoint-api.hashicorp.com/v1/check/consul
{"product":"consul","current_version":"1.10.3","current_release":1632776902,"current_download_url":"https://releases.hashicorp.com/consul/1.10.3/","current_changelog_url":"https://github.com/hashicorp/consul/releases/tag/v1.10.3","project_website":"https://www.consul.io","alerts":[]}

$ curl https://checkpoint-api.hashicorp.com/v1/check/boundary
404 page not found

$ curl https://checkpoint-api.hashicorp.com/v1/check/waypoint
404 page not found

$ curl https://checkpoint-api.hashicorp.com/v1/check/packer
{"product":"packer","current_version":"1.7.8","current_release":1635863380,"current_download_url":"https://releases.hashicorp.com/packer/1.7.8/","current_changelog_url":"https://github.com/hashicorp/packer/blob/master/CHANGELOG.md#178-october-27-2021","project_website":"https://www.packer.io","alerts":[]}

$ curl https://checkpoint-api.hashicorp.com/v1/check/vagrant
{"product":"vagrant","current_version":"2.2.18","current_release":1627408082,"current_download_url":"https://releases.hashicorp.com/vagrant/2.2.18/","current_changelog_url":"https://github.com/hashicorp/vagrant/blob/v2.2.18/CHANGELOG.md","project_website":"https://www.vagrantup.com","alerts":[]}

$ curl https://checkpoint-api.hashicorp.com/v1/check/sentinel
404 page not found

I think we should probably just focus on implementing the main products. The risk is that BuildInstructions in particular can be quite fragile, although I'm hoping #58 can address some of that fragility.

More importantly downstream consumers can always craft their own product.Product{} for any product and depending on what installation source they pick, this may not even need to be complete - i.e. if one isn't going to ever use build.GitRevision{...} then there's no need for BuildInstructions.