2019-09-21 11:22:20 +00:00
|
|
|
# Copyright 1999-2018 Gentoo Authors
|
|
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
|
|
|
|
EAPI=7
|
|
|
|
|
|
|
|
EGO_PN="github.com/rancher/k3s"
|
|
|
|
EGIT_COMMIT="65d8764812ec2a2a2de4e593f0578411264f03f3"
|
|
|
|
EGO_VENDOR=(
|
|
|
|
"github.com/Microsoft/go-winio v0.4.12"
|
|
|
|
"github.com/alexflint/go-filemutex 72bdc8eae2ae"
|
|
|
|
"github.com/bhendo/go-powershell 219e7fb4e41e"
|
|
|
|
"github.com/buger/jsonparser bf1c66bbce23"
|
|
|
|
"github.com/containerd/cgroups 4994991857f9"
|
|
|
|
"github.com/containerd/console c12b1e7919c1"
|
|
|
|
"github.com/containerd/continuity bd77b46c8352"
|
|
|
|
"github.com/containerd/fifo 3d5202aec260"
|
|
|
|
"github.com/containerd/go-cni 40bcf8ec8acd"
|
|
|
|
"github.com/containerd/go-runc 5a6d9f37cfa3"
|
|
|
|
"github.com/containerd/ttrpc f82148331ad2"
|
|
|
|
"github.com/coreos/go-iptables v0.4.2"
|
|
|
|
"github.com/docker/distribution 0d3efadf0154"
|
|
|
|
"github.com/docker/go-events 9461782956ad"
|
|
|
|
"github.com/docker/go-metrics 4ea375f7759c"
|
|
|
|
"github.com/emicklei/go-restful v2.2.1"
|
|
|
|
"github.com/gofrs/flock v0.7.1"
|
|
|
|
"github.com/gogo/googleapis v1.0.0"
|
|
|
|
"github.com/google/cadvisor v0.34.0"
|
|
|
|
"github.com/hashicorp/errwrap 7554cd9344ce"
|
|
|
|
"github.com/hashicorp/go-multierror ed905158d874"
|
|
|
|
"github.com/j-keck/arping v1.0.0"
|
|
|
|
"github.com/juju/errors 0232dcc7464d"
|
|
|
|
"github.com/juju/loggo 6e530bcce5d8"
|
|
|
|
"github.com/juju/testing ce30eb24acd2"
|
|
|
|
"github.com/mindprince/gonvml 9ebdce4bb989"
|
|
|
|
"github.com/mistifyio/go-zfs 166add352731"
|
|
|
|
"github.com/opencontainers/go-digest c9281466c8b2"
|
|
|
|
"github.com/opencontainers/image-spec v1.0.1"
|
|
|
|
"github.com/opencontainers/runtime-tools v0.6.0"
|
|
|
|
"github.com/opencontainers/selinux v1.2.2"
|
|
|
|
"github.com/rakelkar/gonetsh 501daadcadf8"
|
|
|
|
"github.com/seccomp/libseccomp-golang 32f571b70023"
|
|
|
|
"github.com/syndtr/gocapability db04d3cc01c8"
|
|
|
|
"github.com/tchap/go-patricia v2.2.6"
|
|
|
|
"github.com/theckman/go-flock v0.7.1"
|
|
|
|
"github.com/xeipuuv/gojsonpointer 4e3ac2762d5f"
|
|
|
|
"github.com/xeipuuv/gojsonreference bd5ef7bd5415"
|
|
|
|
"github.com/xeipuuv/gojsonschema 1d523034197f"
|
|
|
|
"go.etcd.io/bbolt v1.3.1-etcd.8 github.com/etcd-io/bbolt"
|
|
|
|
"gopkg.in/mgo.v2 a6b53ec6cb22 github.com/go-mgo/mgo"
|
|
|
|
"k8s.io/utils 3a4a5477acf8 github.com/kubernetes/utils"
|
|
|
|
)
|
|
|
|
|
|
|
|
inherit eutils golang-build golang-vcs-snapshot
|
|
|
|
|
|
|
|
ARCHIVE_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
|
|
|
|
KEYWORDS="~amd64"
|
2019-09-24 20:47:32 +00:00
|
|
|
IUSE="rootless symlink"
|
2019-09-21 11:22:20 +00:00
|
|
|
|
|
|
|
DESCRIPTION="Lightweight Kubernetes. 5 less than k8s."
|
|
|
|
HOMEPAGE="https://k3s.io"
|
|
|
|
SRC_URI="${ARCHIVE_URI}
|
|
|
|
${EGO_VENDOR_URI}"
|
|
|
|
LICENSE="Apache-2.0"
|
|
|
|
SLOT="0"
|
|
|
|
|
|
|
|
DEPEND="
|
|
|
|
>=dev-lang/go-1.12
|
|
|
|
rootless? ( app-emulation/slirp4netns )
|
|
|
|
"
|
|
|
|
|
|
|
|
RESTRICT="strip mirror"
|
|
|
|
|
|
|
|
src_prepare() {
|
|
|
|
default
|
|
|
|
|
|
|
|
pushd src/${EGO_PN}
|
|
|
|
|
|
|
|
# Use out version.sh
|
|
|
|
cat <<EOF > scripts/version.sh
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
COMMIT=$EGIT_COMMIT
|
|
|
|
GIT_TAG=$PV
|
|
|
|
VERSION=$PV
|
|
|
|
|
|
|
|
ARCH=\$(go env GOARCH)
|
|
|
|
SUFFIX="-\${ARCH}"
|
|
|
|
|
|
|
|
VERSION_CONTAINERD=\$(grep github.com/containerd/containerd \$(dirname \$0)/../go.mod | head -n1 | awk '{print \$4}')
|
|
|
|
VERSION_CRICTL=\$(grep github.com/kubernetes-sigs/cri-tools \$(dirname \$0)/../go.mod | head -n1 | awk '{print \$4}')
|
|
|
|
EOF
|
|
|
|
|
|
|
|
# Disable go generate, create codegen only
|
|
|
|
sed -i -e 's|go generate|go run pkg/codegen/main.go|' scripts/package-cli
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
src_compile() {
|
|
|
|
pushd src/${EGO_PN}
|
|
|
|
|
|
|
|
export GOPATH="${T}:$(get_golibdir_gopath)"
|
|
|
|
export GOCACHE="${T}/go-cache"
|
|
|
|
export GOFLAGS="-v -work -x -mod=vendor"
|
|
|
|
|
|
|
|
# dont run ./scripts/download but at least:
|
|
|
|
mkdir -p build/static/charts
|
|
|
|
|
|
|
|
./scripts/build
|
|
|
|
./scripts/package-cli
|
|
|
|
|
|
|
|
popd
|
|
|
|
}
|
|
|
|
|
|
|
|
src_install() {
|
|
|
|
pushd src/${EGO_PN}
|
|
|
|
|
|
|
|
dobin dist/artifacts/k3s
|
|
|
|
|
2019-09-24 09:32:10 +00:00
|
|
|
newinitd "${FILESDIR}/k3s.openrc" k3s
|
|
|
|
newconfd "${FILESDIR}/k3s.conf" k3s
|
2019-09-21 11:22:20 +00:00
|
|
|
|
2019-09-24 20:47:32 +00:00
|
|
|
into /var/lib/rancher/${PN}
|
|
|
|
newbin "${FILESDIR}/killall_k3s.sh" killall_k3s.sh
|
|
|
|
|
|
|
|
if use symlink; then
|
|
|
|
for cmd in kubectl crictl ctr; do
|
|
|
|
einfo "Linking ${cmd} to k3s"
|
|
|
|
dosym k3s /usr/bin/${cmd}
|
|
|
|
done
|
|
|
|
fi
|
2019-09-21 11:22:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
pkg_preinst() {
|
|
|
|
K3S_ROOTLESS_UPGRADE=false
|
|
|
|
if use rootless; then
|
|
|
|
has_version 'sys-cluster/k3s[rootless]' || K3S_ROOTLESS_UPGRADE=true
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
pkg_postinst() {
|
|
|
|
if [[ ${K3S_ROOTLESS_UPGRADE} == true ]] ; then
|
|
|
|
elog "For rootless operation, you need to configure subuid/subgid"
|
|
|
|
elog "for user running k3s. In case subuid/subgid has only been"
|
|
|
|
elog "configured for root, run:"
|
|
|
|
elog "usermod --add-subuids 1065536-1131071 <user>"
|
|
|
|
elog "usermod --add-subgids 1065536-1131071 <user>"
|
|
|
|
fi
|
|
|
|
}
|
2019-09-24 20:47:32 +00:00
|
|
|
|
|
|
|
pkg_setup() {
|
|
|
|
if use rootless; then
|
|
|
|
enewgroup ${PN}
|
|
|
|
enewuser ${PN} -1 -1 /var/lib/rancher/${PN} ${PN}
|
|
|
|
fi
|
|
|
|
}
|