diff --git a/puppet/zulip/manifests/camo.pp b/puppet/zulip/manifests/camo.pp index 22c71464e1..15940dc532 100644 --- a/puppet/zulip/manifests/camo.pp +++ b/puppet/zulip/manifests/camo.pp @@ -6,14 +6,13 @@ class zulip::camo (String $listen_address = '0.0.0.0') { ensure => 'purged', } - $version = '2.3.0' + $version = $zulip::common::versions['go-camo']['version'] $dir = "/srv/zulip-go-camo-${version}" $bin = "${dir}/bin/go-camo" zulip::external_dep { 'go-camo': version => $version, url => "https://github.com/cactus/go-camo/releases/download/v${version}/go-camo-${version}.go1171.linux-amd64.tar.gz", - sha256 => '965506e6edb9d974c810519d71e847afb7ca69d1d01ae7d8be6d7a91de669c0c', tarball_prefix => "go-camo-${version}", } diff --git a/puppet/zulip/manifests/common.pp b/puppet/zulip/manifests/common.pp index ad4041f84f..d234dabaf3 100644 --- a/puppet/zulip/manifests/common.pp +++ b/puppet/zulip/manifests/common.pp @@ -32,4 +32,37 @@ class zulip::common { $supervisor_conf_dir = "${supervisor_system_conf_dir}/zulip" $total_memory_mb = Integer($::memorysize_mb) + + $versions = { + # https://github.com/cactus/go-camo/releases + 'go-camo' => { + 'version' => '2.3.0', + 'sha256' => { + 'amd64' => '965506e6edb9d974c810519d71e847afb7ca69d1d01ae7d8be6d7a91de669c0c', + }, + }, + + # https://go.dev/dl/ + 'golang' => { + 'version' => '1.17.3', + 'sha256' => { + 'amd64' => '550f9845451c0c94be679faf116291e7807a8d78b43149f9506c1b15eb89008c', + }, + }, + + # https://github.com/stripe/smokescreen/tags + 'smokescreen-src' => { + 'version' => 'dc403015f563eadc556a61870c6ad327688abe88', + # Source code, so arch-invariant sha256 + 'sha256' => 'ad4b181d14adcd9425045152b903a343dbbcfcad3c1e7625d2c65d1d50e1959d', + }, + + # https://github.com/wal-g/wal-g/releases + 'wal-g' => { + 'version' => '1.1.1-rc', + 'sha256' => { + 'amd64' => 'eed4de63c2657add6e0fe70f8c0fbe62a4a54405b9bfc801b1912b6c4f2c7107', + }, + }, + } } diff --git a/puppet/zulip/manifests/external_dep.pp b/puppet/zulip/manifests/external_dep.pp index fda591f0b0..6da9432b07 100644 --- a/puppet/zulip/manifests/external_dep.pp +++ b/puppet/zulip/manifests/external_dep.pp @@ -1,15 +1,29 @@ define zulip::external_dep( String $version, - String $sha256, String $url, String $tarball_prefix, + String $sha256 = '', ) { + if $sha256 == '' { + if $zulip::common::versions[$title]['sha256'] =~ Hash { + $sha256_filled = $zulip::common::versions[$title]['sha256'][$::architecture] + if $sha256_filled == undef { + err("No sha256 found for ${title} for architecture ${::architecture}") + fail() + } + } else { + # For things like source code which are arch-invariant + $sha256_filled = $zulip::common::versions[$title]['sha256'] + } + } else { + $sha256_filled = $sha256 + } $dir = "/srv/zulip-${title}-${version}" zulip::sha256_tarball_to { $title: url => $url, - sha256 => $sha256, + sha256 => $sha256_filled, install => { $tarball_prefix => $dir, }, diff --git a/puppet/zulip/manifests/golang.pp b/puppet/zulip/manifests/golang.pp index 03b679b7db..acf4bd8b83 100644 --- a/puppet/zulip/manifests/golang.pp +++ b/puppet/zulip/manifests/golang.pp @@ -1,7 +1,7 @@ # @summary go compiler and tools # class zulip::golang { - $version = '1.17.3' + $version = $zulip::common::versions['golang']['version'] $dir = "/srv/zulip-golang-${version}" $bin = "${dir}/bin/go" @@ -9,7 +9,6 @@ class zulip::golang { zulip::external_dep { 'golang': version => $version, url => "https://golang.org/dl/go${version}.linux-amd64.tar.gz", - sha256 => '550f9845451c0c94be679faf116291e7807a8d78b43149f9506c1b15eb89008c', tarball_prefix => 'go', } } diff --git a/puppet/zulip/manifests/postgresql_backups.pp b/puppet/zulip/manifests/postgresql_backups.pp index 13ee90a9aa..7bb908b68b 100644 --- a/puppet/zulip/manifests/postgresql_backups.pp +++ b/puppet/zulip/manifests/postgresql_backups.pp @@ -3,7 +3,7 @@ class zulip::postgresql_backups { include zulip::postgresql_common - $wal_g_version = '1.1.1-rc' + $wal_g_version = $zulip::common::versions['wal-g']['version'] $bin = "/srv/zulip-wal-g-${wal_g_version}" $package = "wal-g-pg-ubuntu-20.04-${::architecture}" @@ -11,7 +11,6 @@ class zulip::postgresql_backups { zulip::external_dep { 'wal-g': version => $wal_g_version, url => "https://github.com/wal-g/wal-g/releases/download/v${wal_g_version}/${package}.tar.gz", - sha256 => 'eed4de63c2657add6e0fe70f8c0fbe62a4a54405b9bfc801b1912b6c4f2c7107', tarball_prefix => $package, } file { '/usr/local/bin/wal-g': diff --git a/puppet/zulip/manifests/smokescreen.pp b/puppet/zulip/manifests/smokescreen.pp index 64dfbbb778..3c4710c498 100644 --- a/puppet/zulip/manifests/smokescreen.pp +++ b/puppet/zulip/manifests/smokescreen.pp @@ -2,14 +2,13 @@ class zulip::smokescreen { include zulip::supervisor include zulip::golang - $version = 'dc403015f563eadc556a61870c6ad327688abe88' + $version = $zulip::common::versions['smokescreen-src']['version'] $dir = "/srv/zulip-smokescreen-src-${version}" $bin = "/usr/local/bin/smokescreen-${version}-go-${zulip::golang::version}" zulip::external_dep { 'smokescreen-src': version => $version, url => "https://github.com/stripe/smokescreen/archive/${version}.tar.gz", - sha256 => 'ad4b181d14adcd9425045152b903a343dbbcfcad3c1e7625d2c65d1d50e1959d', tarball_prefix => "smokescreen-${version}", }