# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 PortSystem 1.0 PortGroup select 1.0 PortGroup legacysupport 1.1 name kubectl categories sysutils license Apache-2 homepage https://kubectl.docs.kubernetes.io/ installs_libs no maintainers {@patarra gmail.com:patarra} \ @pedrohdz \ {gmail.com:herby.gillot @herbygillot} \ openmaintainer subport kubectl_select {} set source_build no set offline_build yes # *NOTE* Remember to update `latestVersion` on a version upgrade. set latestVersion kubectl-1.30 # When source_build is yes, the checksum should be the one for the # kubernetes source tarball, instead of the zipped pre-built binary. subport kubectl-1.30 { set source_build yes set offline_build no supported_archs x86_64 arm64 platforms {darwin >= 17} set patchNumber 1 revision 0 checksums rmd160 e49065caf6c825b3ec6514169493b34bcce951f5 \ sha256 0b0bae91594fc8f8cc2ae3443f24b95660e6c5f5761bc2dc76cb7ef1c6047d9f \ size 39569165 } subport kubectl-1.29 { set source_build yes set offline_build no supported_archs x86_64 arm64 platforms {darwin >= 17} set patchNumber 5 revision 0 checksums rmd160 450ec11f38b50e206222dee29fd24886dee61175 \ sha256 505f1d5ab105306feddad947a488fe74a8555d5fc7e6ffd652db66fca05312d8 \ size 41172177 } subport kubectl-1.28 { set source_build yes set offline_build no supported_archs x86_64 arm64 platforms {darwin >= 17} set patchNumber 10 revision 0 checksums rmd160 f77ac0fcc086e0ea275bb17583437c7f4bdbb0fb \ sha256 1cdf283372f234281f0a85df20db9b1dc75a02acf61da7f5319011c45172764e \ size 39999209 } subport kubectl-1.27 { set source_build yes supported_archs x86_64 arm64 platforms {darwin >= 17} set patchNumber 14 revision 0 checksums rmd160 fdd428a7e3f628316f8aca0d38bdfe5aac6afbf7 \ sha256 d932ada27970fece05d2c5881db9f61269124382df8cbf4a58e9ae2c4b45e11f \ size 39223536 } subport kubectl-1.26 { set source_build yes supported_archs x86_64 arm64 platforms {darwin >= 17} set patchNumber 15 revision 0 checksums rmd160 52a005df44f39f10d57fb10ecf606e867d1f90de \ sha256 10ab7b287996c04dd584e781808be52a090987f893bc34008ca5321e8c414aa2 \ size 41444383 } subport kubectl-1.25 { set source_build yes supported_archs x86_64 arm64 platforms {darwin >= 17} set patchNumber 16 revision 0 checksums rmd160 c11e7bc1034290339e06d12d069cd75900b3666e \ sha256 c57dd9448066c59eb0eb9c0b595a42caeb461403c0fc9bcbb784d43da2f4a971 \ size 38714770 } subport kubectl-1.24 { set source_build yes supported_archs x86_64 arm64 platforms {darwin >= 17} set patchNumber 17 revision 0 checksums rmd160 b20e891c34db6aa6405f5006467b2614861a7d0b \ sha256 e93cd124db66533f9f7b340af4602a2a69bcd424a7ba4db4011557085d5efe2c \ size 38157141 } subport kubectl-1.23 { set source_build yes supported_archs x86_64 arm64 set patchNumber 17 revision 0 checksums rmd160 b7f36ce95472e256c5dd5d2f4fee1fa08502d184 \ sha256 def840469468254f2b437cb21404b0a76a81b8ee2112583d7f0bdb52e0de1c18 \ size 38135738 } subport kubectl-1.22 { set source_build yes supported_archs x86_64 arm64 set patchNumber 17 revision 0 checksums rmd160 aed0b0cff951dcdebb692f69e932f133b82aa364 \ sha256 d6082dfe3048339921736085167f8878abcec09c839d05ba2e3a8248adfccb11 \ size 36116829 } subport kubectl-1.21 { set patchNumber 14 revision 0 # Use pre-built version to resolve https://trac.macports.org/ticket/63503 checksums rmd160 15e92202b68b15776bcc045f753985541ff60339 \ sha256 30c529fe2891eb93dda99597b5c84cb10d2318bb92ae89e1e6189b3ae5fb6296 \ size 52867344 } subport kubectl-1.20 { set source_build yes supported_archs x86_64 platforms {darwin < 22} set patchNumber 15 revision 0 # because source_build is yes, this is the checksum of the kubernetes # source tarball checksums rmd160 5fbd8e7c81a3d9c2012143e350a78c4440688fe7 \ sha256 527289e39bd202f49dbe10d10b3f9856a01de4da68d4ab973deb422f6cf4d034 \ size 34555426 } subport kubectl-1.19 { set source_build yes supported_archs x86_64 platforms {darwin < 22} set patchNumber 16 revision 0 # because source_build is yes, this is the checksum of the kubernetes # source tarball checksums rmd160 9a32c6ea4aae6871fe36e435f6e952d0ae837d79 \ sha256 0879f67d8a1b1a1a59952c6104761786e41d4db5065de37680f2816734854070 \ size 33574817 } subport kubectl-1.18 { set patchNumber 20 revision 0 checksums rmd160 8f4313fecacbb6169305754538a06c61423227f7 \ sha256 bc709378c27da458b31395787a74cd9ac58dce7dbe2a7ba92f8bc2221eeed0be \ size 50095696 } subport kubectl-1.17 { set patchNumber 17 revision 0 checksums rmd160 4710ba1c832cd9ac6917600bcd54c70eb2b46666 \ sha256 e76b57bbed823a8572f7ccbf9caae56855048434d818dc13559e89ead5f91578 \ size 49542736 } subport kubectl-1.16 { set patchNumber 15 checksums rmd160 7450d9abe9aa07c1929b39e96b9e1995257b42ae \ sha256 aff54bfaaed905813f61a2d0ca039176d6d309e59f92ebdb297c7da1df105485 \ size 48907792 } subport kubectl-1.15 { set patchNumber 12 checksums rmd160 879ef587b357fa4108ca239527e8dd51186ad65d \ sha256 1b06cab9ee7988f8e71c48dd1d9379aa7c14123cbbc63e12ab5342c3e9130972 \ size 48668112 } subport kubectl-1.14 { set patchNumber 10 checksums rmd160 10bdebc38c14482972e0c344d349a6d450c8d182 \ sha256 43d2c24eafb2ef09a6ac77c2b99070668e83edaa325a16a362e304ba578fdc48 \ size 48716328 } subport kubectl-1.13 { set patchNumber 12 checksums rmd160 fdbdf38601ed7767793a4e8540e8454d43c8e91c \ sha256 ddbdc7591569f321b8b0a01dcbd679f6b0a7756f1427a51a39eadfce8d34bea7 \ size 44353656 } subport kubectl-1.12 { platforms {darwin < 21} set patchNumber 10 checksums rmd160 4212a9f7709ef6a7d36f3ebd477140a7d0ef8e50 \ sha256 67acf17bf77b0a9729d17ad5c058a358c0cbd12dbf46478c37111cdd97a0828c \ size 56860112 } subport kubectl-1.11 { platforms {darwin < 21} set patchNumber 10 checksums rmd160 8c3f3121088f745bb9eb279f5531b8b61ff84bc7 \ sha256 cf27dd3e8d5a13439de2214b7a07e2371cdbeaf151ee4c7d63e7e7c34ebbf117 \ size 54985744 } subport kubectl-1.10 { platforms {darwin < 21} set patchNumber 13 checksums rmd160 fe455ab0eb7c862c8dbce970632a9e66c8987cb1 \ sha256 94ec5409ac6715dfec11309795da9b30254b9d818f8b1d38d1ca2e914945868d \ size 54670032 } if {${subport} == ${name}} { PortGroup obsolete 1.0 replaced_by ${latestVersion} version 1.30.1 revision 0 } elseif {${subport} == "kubectl_select"} { version 0.0.0 revision 1 supported_archs noarch platforms any description Common files for selecting the default kubectl version long_description This port installs files that allow 'port select' \ to create links to the preferred default version \ of kubectl. homepage https://www.macports.org/ distfiles use_configure no build {} destroot { xinstall -d ${destroot}${prefix}/share/bash-completion/completions select::install kubectl ${filespath}/base select::install kubectl ${filespath}/none } destroot.keepdirs-append ${destroot}${prefix}/share/bash-completion/completions livecheck.type none } else { set baseVersion [lindex [split ${subport} "-"] 1] set patchVersion ${baseVersion}.${patchNumber} set baseName kubectl${baseVersion} if ${source_build} { # Build kubectl from source PortGroup golang 1.0 go.setup github.com/kubernetes/kubernetes ${patchVersion} v go.package k8s.io/kubernetes go.offline_build ${offline_build} build.cmd make build.target kubectl github.tarball_from archive use_parallel_build no depends_build-append \ port:bash destroot { xinstall ${worksrcpath}/_output/bin/kubectl \ ${destroot}${prefix}/bin/kubectl${baseVersion} } } else { # Use Darwin amd64 pre-built binary PortGroup github 1.0 github.setup kubernetes kubectl ${patchVersion} supported_archs x86_64 master_sites https://storage.googleapis.com/kubernetes-release/release/v${version}/bin/darwin/amd64 distname kubectl dist_subdir ${name}/${version} extract.suffix extract.only use_configure no build {} destroot { xinstall ${distpath}/kubectl \ ${destroot}${prefix}/bin/kubectl${baseVersion} # legacysupport tweaks don't work, since the install here is from # a binary tarball ... have to tweak the binary to use the legacy # support library, which in turn uses the System.B library. legacysupport::relink_libSystem ${destroot}${prefix}/bin/kubectl${baseVersion} } } depends_run port:kubectl_select description Kubernetes cluster CLI long_description Command line interface for running commands against \ Kubernetes clusters post-build { file copy ${filespath}/kubectlX.YY.template ${workpath}/${baseName} reinplace "s|@@BASE_VERSION@@|${baseVersion}|g" ${workpath}/${baseName} reinplace "s|@@PORT_NAME@@|${subport}|g" ${workpath}/${baseName} } post-destroot { set completionsPath ${destroot}${prefix}/share/${subport}/completion xinstall -d ${completionsPath} exec ${destroot}${prefix}/bin/kubectl${baseVersion} completion bash \ > ${completionsPath}/${name}.bash } # Skip -rc and other pre-release tags set regexVersionPart [string map {. {\.}} $baseVersion] livecheck.type regex livecheck.url https://api.github.com/repos/kubernetes/kubernetes/releases?per_page=100 livecheck.regex \".+releases/tag/v(${regexVersionPart}\\.\\d+)\" # Generate select file select.group kubectl select.file ${workpath}/${baseName} notes " To make this the default kubectl run: sudo port select --set kubectl ${baseName} " }