summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys-cluster/kubernetes/Manifest1
-rw-r--r--sys-cluster/kubernetes/files/kube-apiserver.confd7
-rw-r--r--sys-cluster/kubernetes/files/kube-apiserver.initd19
-rw-r--r--sys-cluster/kubernetes/files/kube-apiserver.logrotated7
-rw-r--r--sys-cluster/kubernetes/files/kube-controller-manager.confd9
-rw-r--r--sys-cluster/kubernetes/files/kube-controller-manager.initd19
-rw-r--r--sys-cluster/kubernetes/files/kube-controller-manager.logrotated7
-rw-r--r--sys-cluster/kubernetes/files/kube-proxy.confd4
-rw-r--r--sys-cluster/kubernetes/files/kube-proxy.initd19
-rw-r--r--sys-cluster/kubernetes/files/kube-proxy.logrotated7
-rw-r--r--sys-cluster/kubernetes/files/kube-scheduler.confd9
-rw-r--r--sys-cluster/kubernetes/files/kube-scheduler.initd19
-rw-r--r--sys-cluster/kubernetes/files/kube-scheduler.logrotated7
-rw-r--r--sys-cluster/kubernetes/files/kubelet.confd4
-rw-r--r--sys-cluster/kubernetes/files/kubelet.env17
-rw-r--r--sys-cluster/kubernetes/files/kubelet.initd19
-rw-r--r--sys-cluster/kubernetes/files/kubelet.logrotated7
-rw-r--r--sys-cluster/kubernetes/files/kubelet.service24
-rw-r--r--sys-cluster/kubernetes/kubernetes-1.18.0.ebuild90
-rw-r--r--sys-cluster/kubernetes/metadata.xml17
20 files changed, 312 insertions, 0 deletions
diff --git a/sys-cluster/kubernetes/Manifest b/sys-cluster/kubernetes/Manifest
new file mode 100644
index 000000000000..0d914c7cff95
--- /dev/null
+++ b/sys-cluster/kubernetes/Manifest
@@ -0,0 +1 @@
+DIST kubernetes-1.18.0.tar.gz 32554015 BLAKE2B 24079970cc1887c6dad7b55d9f2fd80cd9f46f1b6c1240cf28abf2eb33b3809bcd858293bb800255533a13e24145fab580b0bd2eb0e06c15ca4e0feeedcf6ff2 SHA512 3298ec63a2fbcd396b415f27a581f4286317ae206c30b35457aed780baae4115059df20e40028df394984caccc8bb4ef6c879ae3c064771c8a5c045dee7998e8
diff --git a/sys-cluster/kubernetes/files/kube-apiserver.confd b/sys-cluster/kubernetes/files/kube-apiserver.confd
new file mode 100644
index 000000000000..db74d27f0207
--- /dev/null
+++ b/sys-cluster/kubernetes/files/kube-apiserver.confd
@@ -0,0 +1,7 @@
+###
+# kubernetes system config
+#
+# The following values are used to configure the kube-apiserver
+#
+
+command_args=""
diff --git a/sys-cluster/kubernetes/files/kube-apiserver.initd b/sys-cluster/kubernetes/files/kube-apiserver.initd
new file mode 100644
index 000000000000..6f649f5a5460
--- /dev/null
+++ b/sys-cluster/kubernetes/files/kube-apiserver.initd
@@ -0,0 +1,19 @@
+#!/sbin/openrc-run
+# Copyright 2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+description="Kubernetes API Server"
+pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"}
+user=${user:-${RC_SVCNAME}}
+group=${group:-${RC_SVCNAME}}
+
+command="/usr/bin/kube-apiserver"
+command_args="${command_args}"
+command_background="true"
+start_stop_daemon_args="--user ${user} --group ${group} \
+ --stdout /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log \
+ --stderr /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log"
+
+depend() {
+ after net
+}
diff --git a/sys-cluster/kubernetes/files/kube-apiserver.logrotated b/sys-cluster/kubernetes/files/kube-apiserver.logrotated
new file mode 100644
index 000000000000..4ed84506231f
--- /dev/null
+++ b/sys-cluster/kubernetes/files/kube-apiserver.logrotated
@@ -0,0 +1,7 @@
+/var/log/kube-apiserver/*.log {
+ missingok
+ size 5M
+ rotate 3
+ compress
+ copytruncate
+}
diff --git a/sys-cluster/kubernetes/files/kube-controller-manager.confd b/sys-cluster/kubernetes/files/kube-controller-manager.confd
new file mode 100644
index 000000000000..155c43a07561
--- /dev/null
+++ b/sys-cluster/kubernetes/files/kube-controller-manager.confd
@@ -0,0 +1,9 @@
+###
+# kubernetes system config
+#
+# The following values are used to configure the kube-controller-manager
+#
+
+# Add your own!
+command_args=""
+
diff --git a/sys-cluster/kubernetes/files/kube-controller-manager.initd b/sys-cluster/kubernetes/files/kube-controller-manager.initd
new file mode 100644
index 000000000000..276197f06562
--- /dev/null
+++ b/sys-cluster/kubernetes/files/kube-controller-manager.initd
@@ -0,0 +1,19 @@
+#!/sbin/openrc-run
+# Copyright 2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+description="Kubernetes Controller Manager service"
+pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"}
+user=${user:-${RC_SVCNAME}}
+group=${group:-${RC_SVCNAME}}
+
+command="/usr/bin/kube-controller-manager"
+command_args="${command_args}"
+command_background="true"
+start_stop_daemon_args="--user ${user} --group ${group} \
+ --stdout /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log \
+ --stderr /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log"
+
+depend() {
+ after net
+}
diff --git a/sys-cluster/kubernetes/files/kube-controller-manager.logrotated b/sys-cluster/kubernetes/files/kube-controller-manager.logrotated
new file mode 100644
index 000000000000..06efce234069
--- /dev/null
+++ b/sys-cluster/kubernetes/files/kube-controller-manager.logrotated
@@ -0,0 +1,7 @@
+/var/log/kube-controller-manager/*.log {
+ missingok
+ size 5M
+ rotate 3
+ compress
+ copytruncate
+}
diff --git a/sys-cluster/kubernetes/files/kube-proxy.confd b/sys-cluster/kubernetes/files/kube-proxy.confd
new file mode 100644
index 000000000000..00f33f358bb9
--- /dev/null
+++ b/sys-cluster/kubernetes/files/kube-proxy.confd
@@ -0,0 +1,4 @@
+###
+# Kubernetes kube-proxy config
+#
+command_args=""
diff --git a/sys-cluster/kubernetes/files/kube-proxy.initd b/sys-cluster/kubernetes/files/kube-proxy.initd
new file mode 100644
index 000000000000..18a75adf0b64
--- /dev/null
+++ b/sys-cluster/kubernetes/files/kube-proxy.initd
@@ -0,0 +1,19 @@
+#!/sbin/openrc-run
+# Copyright 2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+description="Kubernetes Proxy service"
+pidfile=${pidfile:-"/run/${SVCNAME}.pid"}
+user=${user:-root}
+group=${group:-root}
+
+command="/usr/bin/kube-proxy"
+command_args="${command_args}"
+command_background="true"
+start_stop_daemon_args="--user ${user} --group ${group} \
+ --stdout /var/log/${SVCNAME}/${SVCNAME}.log \
+ --stderr /var/log/${SVCNAME}/${SVCNAME}.log"
+
+depend() {
+ after net
+}
diff --git a/sys-cluster/kubernetes/files/kube-proxy.logrotated b/sys-cluster/kubernetes/files/kube-proxy.logrotated
new file mode 100644
index 000000000000..b8d1032c1f76
--- /dev/null
+++ b/sys-cluster/kubernetes/files/kube-proxy.logrotated
@@ -0,0 +1,7 @@
+/var/log/kube-proxy/*.log {
+ missingok
+ size 5M
+ rotate 3
+ compress
+ copytruncate
+}
diff --git a/sys-cluster/kubernetes/files/kube-scheduler.confd b/sys-cluster/kubernetes/files/kube-scheduler.confd
new file mode 100644
index 000000000000..8442e0348d23
--- /dev/null
+++ b/sys-cluster/kubernetes/files/kube-scheduler.confd
@@ -0,0 +1,9 @@
+###
+# kubernetes system config
+#
+# The following values are used to configure the kube-scheduler
+#
+
+# Add your own!
+command_args=""
+
diff --git a/sys-cluster/kubernetes/files/kube-scheduler.initd b/sys-cluster/kubernetes/files/kube-scheduler.initd
new file mode 100644
index 000000000000..2c49bce3ec80
--- /dev/null
+++ b/sys-cluster/kubernetes/files/kube-scheduler.initd
@@ -0,0 +1,19 @@
+#!/sbin/openrc-run
+# Copyright 2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+description="Kubernetes Scheduler service"
+pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"}
+user=${user:-${RC_SVCNAME}}
+group=${group:-${RC_SVCNAME}}
+
+command="/usr/bin/kube-scheduler"
+command_args="${command_args}"
+command_background="true"
+start_stop_daemon_args="--user ${user} --group ${group} \
+ --stdout /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log \
+ --stderr /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log"
+
+depend() {
+ after net
+}
diff --git a/sys-cluster/kubernetes/files/kube-scheduler.logrotated b/sys-cluster/kubernetes/files/kube-scheduler.logrotated
new file mode 100644
index 000000000000..6cce6c6f5be7
--- /dev/null
+++ b/sys-cluster/kubernetes/files/kube-scheduler.logrotated
@@ -0,0 +1,7 @@
+/var/log/kube-scheduler/*.log {
+ missingok
+ size 5M
+ rotate 3
+ compress
+ copytruncate
+}
diff --git a/sys-cluster/kubernetes/files/kubelet.confd b/sys-cluster/kubernetes/files/kubelet.confd
new file mode 100644
index 000000000000..24f424877eb8
--- /dev/null
+++ b/sys-cluster/kubernetes/files/kubelet.confd
@@ -0,0 +1,4 @@
+###
+# Kubernetes Kubelet (worker) config
+
+command_args=""
diff --git a/sys-cluster/kubernetes/files/kubelet.env b/sys-cluster/kubernetes/files/kubelet.env
new file mode 100644
index 000000000000..a623673960ff
--- /dev/null
+++ b/sys-cluster/kubernetes/files/kubelet.env
@@ -0,0 +1,17 @@
+###
+# kubernetes kubelet (minion) config
+
+# The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
+KUBELET_ADDRESS="--address=127.0.0.1"
+
+# The port for the info server to serve on
+# KUBELET_PORT="--port=10250"
+
+# You may leave this blank to use the actual hostname
+KUBELET_HOSTNAME="--hostname-override=127.0.0.1"
+
+# Edit the kubelet.kubeconfig to have correct cluster server address
+KUBELET_KUBECONFIG=/etc/kubernetes/kubelet.kubeconfig
+
+# Add your own!
+KUBELET_ARGS="--cgroup-driver=systemd --fail-swap-on=false"
diff --git a/sys-cluster/kubernetes/files/kubelet.initd b/sys-cluster/kubernetes/files/kubelet.initd
new file mode 100644
index 000000000000..363f635b5863
--- /dev/null
+++ b/sys-cluster/kubernetes/files/kubelet.initd
@@ -0,0 +1,19 @@
+#!/sbin/openrc-run
+# Copyright 2016-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+description="Kubelet, a Kubernetes node agent"
+pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"}
+user=${user:-root}
+group=${group:-root}
+
+command="/usr/bin/kubelet"
+command_args="${command_args}"
+command_background="true"
+start_stop_daemon_args="--user ${user} --group ${group} \
+ --stdout /var/log/kubelet/${RC_SVCNAME}.log \
+ --stderr /var/log/kubelet/${RC_SVCNAME}.log"
+
+depend() {
+ after net
+}
diff --git a/sys-cluster/kubernetes/files/kubelet.logrotated b/sys-cluster/kubernetes/files/kubelet.logrotated
new file mode 100644
index 000000000000..ddf8c1dd80f6
--- /dev/null
+++ b/sys-cluster/kubernetes/files/kubelet.logrotated
@@ -0,0 +1,7 @@
+/var/log/kubernetes/*.log {
+ missingok
+ size 5M
+ rotate 3
+ compress
+ copytruncate
+}
diff --git a/sys-cluster/kubernetes/files/kubelet.service b/sys-cluster/kubernetes/files/kubelet.service
new file mode 100644
index 000000000000..1082bbac1d0b
--- /dev/null
+++ b/sys-cluster/kubernetes/files/kubelet.service
@@ -0,0 +1,24 @@
+[Unit]
+Description=Kubernetes Kubelet Server
+Documentation=https://kubernetes.io/docs/concepts/overview/components/#kubelet https://kubernetes.io/docs/reference/generated/kubelet/
+After=docker.service
+Requires=docker.service
+
+[Service]
+WorkingDirectory=/var/lib/kubelet
+EnvironmentFile=-/etc/kubernetes/config
+EnvironmentFile=-/etc/kubernetes/kubelet
+ExecStart=/usr/bin/kubelet \
+ $KUBE_LOGTOSTDERR \
+ $KUBE_LOG_LEVEL \
+ $KUBELET_KUBECONFIG \
+ $KUBELET_ADDRESS \
+ $KUBELET_PORT \
+ $KUBELET_HOSTNAME \
+ $KUBE_ALLOW_PRIV \
+ $KUBELET_ARGS
+Restart=on-failure
+KillMode=process
+
+[Install]
+WantedBy=multi-user.target
diff --git a/sys-cluster/kubernetes/kubernetes-1.18.0.ebuild b/sys-cluster/kubernetes/kubernetes-1.18.0.ebuild
new file mode 100644
index 000000000000..50827671959d
--- /dev/null
+++ b/sys-cluster/kubernetes/kubernetes-1.18.0.ebuild
@@ -0,0 +1,90 @@
+# Copyright 2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit bash-completion-r1 go-module systemd
+
+DESCRIPTION="production-grade container orchestration"
+HOMEPAGE="https://kubernetes.io"
+SRC_URI="https://github.com/kubernetes/kubernetes/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+AGENT="kubelet"
+CLI="kubeadm kubectl"
+SERVICES="kube-apiserver kube-controller-manager kube-proxy kube-scheduler"
+IUSE="hardened"
+for x in ${AGENT} ${CLI} ${SERVICES}; do
+ IUSE+=" +${x}"
+done
+
+BDEPEND=">=dev-lang/go-1.13"
+COMMON_DEPEND="
+ kube-apiserver? (
+ acct-group/kube-apiserver
+ acct-user/kube-apiserver
+ )
+ kube-controller-manager? (
+ acct-group/kube-controller-manager
+ acct-user/kube-controller-manager
+ )
+ kube-scheduler? (
+ acct-group/kube-scheduler
+ acct-user/kube-scheduler
+ )"
+DEPEND="${COMMON_DEPEND}"
+RDEPEND="${COMMON_DEPEND}
+ kube-proxy? ( net-firewall/conntrack-tools )
+ !sys-cluster/kubeadm
+ !sys-cluster/kubectl
+ !sys-cluster/kubelet
+ !sys-cluster/kube-apiserver
+ !sys-cluster/kube-controller-manager
+ !sys-cluster/kube-proxy
+ !sys-cluster/kube-scheduler"
+
+RESTRICT+=" test"
+
+src_compile() {
+ local x
+ for x in ${AGENT} ${CLI} ${SERVICES}; do
+ use $x || continue
+ CGO_LDFLAGS="$(usex hardened '-fno-PIC ' '')" \
+ emake -j1 GOFLAGS=-v GOLDFLAGS="" LDFLAGS="" WHAT=cmd/${x}
+ done
+}
+
+src_install() {
+ local x
+ for x in ${AGENT} ${CLI} ${SERVICES}; do
+ use $x || continue
+ dobin _output/bin/${x}
+ if has ${x} ${CLI}; then
+ _output/bin/${x} completion bash > ${x}.bash || die
+ _output/bin/${x} completion zsh > ${x}.zsh || die
+ newbashcomp ${x}.bash ${x}
+ insinto /usr/share/zsh/site-functions
+ newins ${x}.zsh _${x}
+ continue
+ fi
+ newinitd "${FILESDIR}"/${x}.initd ${x}
+ newconfd "${FILESDIR}"/${x}.confd ${x}
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}"/${x}.logrotated ${x}
+ keepdir /var/log/${x}
+ if [[ "$x" =~ kubelet ]]; then
+ systemd_dounit "${FILESDIR}"/${x}.service
+ insinto /etc/kubernetes
+ newins "${FILESDIR}"/${x}.env ${x}.env
+ keepdir /etc/kubernetes/manifests
+ fi
+ if [[ $x =~ kubelet|kube-proxy ]]; then
+ keepdir /var/lib/${x}
+ fi
+# if [[ $x =~ .*apiserver|.*controller-manager|.*scheduler ]]; then
+# fowners ${x}:${x} /var/log/${x}
+# fi
+ done
+}
diff --git a/sys-cluster/kubernetes/metadata.xml b/sys-cluster/kubernetes/metadata.xml
new file mode 100644
index 000000000000..abf38f229729
--- /dev/null
+++ b/sys-cluster/kubernetes/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>williamh@gentoo.org</email>
+ <name>William Hubbs</name>
+ </maintainer>
+ <use>
+ <flag name="kubeadm">CLI to bootstrap a secure Kubernetes cluster</flag>
+ <flag name="kubectl">CLI to run commands against Kubernetes clusters</flag>
+ <flag name="kubelet">Kubernetes node agent</flag>
+ <flag name="kube-apiserver">Kubernetes API server</flag>
+ <flag name="kube-controller-manager">Kubernetes controller manager</flag>
+ <flag name="kube-proxy">Kubernetes proxy service</flag>
+ <flag name="kube-scheduler">Kubernetes scheduler</flag>
+ </use>
+</pkgmetadata>