fix(kubernetes): init v1.23.0

This commit is contained in:
Markus Pesch 2021-12-15 17:43:25 +01:00
parent f736eb92ba
commit 0fa1c30b4d
Signed by: volker.raschek
GPG Key ID: 852BCC170D81A982
21 changed files with 440 additions and 0 deletions

5
kubernetes/.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
pkg
src
*.zst*
*.xz*
*.tar.gz

View File

@ -0,0 +1,10 @@
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
# "kubeadm init" and "kubeadm join" populate the KUBELET_KUBEADM_ARGS in this file
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
# The KUBELET_ARGS can be sourced from this file
# NOTE: Using the config.yaml is preferred
EnvironmentFile=-/etc/kubernetes/kubelet.env
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_ARGS

View File

@ -0,0 +1,2 @@
# The file is provided as part of the kubeadm package
net.ipv4.ip_forward = 1

238
kubernetes/PKGBUILD Normal file
View File

@ -0,0 +1,238 @@
# Maintainer: David Runge <dvzrv@archlinux.org>
# Maintainer: Morten Linderud <foxboron@archlinux.org>
pkgbase=kubernetes
pkgname=(kube-apiserver kube-controller-manager kube-proxy kube-scheduler kubectl kubelet kubeadm)
pkgver=1.23.0
pkgrel=1
pkgdesc="Production-Grade Container Scheduling and Management"
arch=(x86_64 aarch64)
url="https://kubernetes.io/"
license=(Apache)
depends=(glibc)
makedepends=(cni-plugins conntrack-tools ethtool git go go-bindata go-md2man
iptables-nft socat rsync)
source=(
"https://github.com/kubernetes/kubernetes/archive/v${pkgver}/kubernetes-${pkgver}.tar.gz"
"${pkgbase}-1.23.0-gotags.patch"
"${pkgbase}-1.23.0-static_cgo_enabled.patch"
"10-kubeadm-kubelet.conf"
"50-kubelet-sysctl.conf"
"kubelet-modules.conf"
"kubelet.env"
"kubelet.service"
"kubernetes-sysusers.conf"
"kubernetes-tmpfiles.conf"
"kube-apiserver.env"
"kube-apiserver.service"
"kube-controller-manager.env"
"kube-controller-manager.service"
"kube-proxy.env"
"kube-proxy.service"
"kube-scheduler.env"
"kube-scheduler.service"
)
sha512sums=('a80c5416a29818d2535d1dd2e8bbb3f70c7674d218ccbfbffb5b1c6c632875ba6c960326d311f560ba91e38ff082c6beeb03dfeab9119f63a081af4df8041dd7'
'da59a9d6e3fd9625d2803e441f6f06c8b272ee5a220eb32426f09245e62c5f19bda324a752ead05111471f7ccd11fe9777630ae9b7ae387fcd94f65a7f1ed5b8'
'affcabbceadddb3f4178b9fba3e15f06bc6a21a6aa1c7b37c48defd1a81f674bc20198458ca7afdf1d979e2175d12648a70bb29d78ddaf7f5897241cd8d56dbe'
'5f7132636b6afe9f00dc450c58073c0829942fa44070e7ec5a2c227c485c83f076bdea081d207f926b44d02700be65bf19a61f5d8d1472edd480f980e6ffbc3a'
'ed5ba22b37eaa9f4950ff3b57d60dd7866fcd5b8bd5197eab3170470528e8d91379483d3eb724589e695184f9b0ed506ebaee73ecca0dc40afdb5f35e79d178a'
'c318b64a03da07dfe435b2d8c368e55b0ab567da78c57ed814a7864fa75aeac52b28cf562b4afd8daa52168af93b318c1fead557ee676e950af25d422c276a17'
'18aaf9e7d6964d633688b5e814f85af3a4fe7dfe3f0042ca04ca4811064cdbcdfbfb28021b15efe45f98cc9fbf1cf23a98972cdbcfd4871b165278a0a1179072'
'fb2cee7ebf303d8405abfe7934d20999882c855ae3280bf1bfbf4d3955d4592b221f009a0220e981b0243907f9392aa1f41db1993f9c1ae19a7af55ac8bde8f7'
'b3cc10f025ce59f19c21deed3476f309db2059ee48dd1467f64fdd5b198537c94a1b3eba822d6f8c79bfb394dccbd2ea5c8840f32900c8ba153900c2df77abd1'
'fbcde2b98c16a0841dd04e709834755f50bd52137685ec724dc5b2699b008b77bf03ecddf0781b9f837c0f392a84e70536bc579ca3f8329a8f5fceaa39dd018c'
'dcb0e59117f76d3230cc3666dedc8a171636816141af43802dc047a9d1855f66298d690259bc9b6b63d66c7488dcc4cb65f99c202d7b46705b70d0ad87644520'
'aa9ea75606faf5a70307b4afabba0a0b310429d26047f21902a29a7b05261a78a36aac0b4e04ce1cba898fbe8d93ab971068fa8d624e9fd4913b88a632b360e7'
'f1b8ea6a4a18fe6258fd45105b100db63a8a9151c0c6ee532569ba25cc5749f239afe8a5ee469d7a91f9d39c30cac8591936c65e3252b4278b1f422f98855d45'
'd0ffbbae151a64590709b8cb24547becfe809daf2fc2b1af22fcb1e1de87c419fa986dfe81cfab5bac8413554db1df59e6498c04eddba0ad8efec8889756511f'
'c5c16d97afc0fa455981a56794547a4e6e8a710b1b686ccf84645c8001a601fa41b624ad0009bf21e56ec2da35874ac7808731b4a5b9b0fd80fc188714708f23'
'dd4efa137462905f9e29a99d69b747ae35e58ba8152794bfa417325953dd5059bad96fabfabf73ce1ee2310dc4ab4d1b95c8d931d33b81c67addcb614a51be54'
'ba277f765959ddb8aa0dee5a86cd9df1f40fb3f6ea1001f24825dbf21bd9342981d13894301170431729f76e710f70c23481e4061c64be29517ff497490f1ef3'
'2c25c0e11a7b2d6d61e03f9afe7ba21f9497495ab02e85f2623ce8c71019fb8a1af16197ab3968d5da050c2188c3e67372aa43322ac91af84f7da61bf73596bc')
b2sums=('3233f84a0628b7a3d0409b3f57f4e9a0a317f089d13d61a91af91b0736c978a8c2479b62164cbf5b0213a36ae63d7cb221e9ba91d9f29eb8599a1c396dce4fbc'
'1f6e88cc5817584c72fd2166d50217f06bf29c66b9317c7b9d1a331d8a8192ad189bdfb0e3f0c467916432e9e6a54891753324cfb9ac12396aee66a65dd851da'
'b06a21c5d4c349c8e9756022681085dc8a6bc4211a8e4700ccf10757a72a0da5e455f36adccfb41c1dd0d61d1df073c2a09e2074e10664f6de37a722c6d1401a'
'dbab30d7e1b566027fec9d6a95dd41ed8f64399c39aac07fb4513ce21050eeeb4a226adfd513f76921c305945dfa4a140602ede574dd5eb4cd287e0f2df21714'
'27a8dcbbe06fa7aea122fc87ca663710ae2179c995270d94e22c905422e2639f3c9c81eef6723467c76366062381d8bd65e84ef79f47fed7c240973a55f5cb0e'
'a03b8a2ce6a606068cad278c6b8039181968c132a935448bf45e1b3668357487da1528569ed582b107db0654a1614b784a73c726729aad42abed18a4c15ce5b6'
'50d5c0c235037b389ee7d5883ebe256287a0e53aba70f3d3571e460b029e8c4ec1a44ae7f08a8aca136504d9728f8a4ce768676ec5110af4a61ff8f19839faeb'
'fc2f424e0ccbeb21267bfcb4045ab7214af51b983495ff7baf6032e2395307873b220a95e5f29c7bc9e709cde246356f4a4d2c77521d8766d574ed3d5e5e362b'
'588c2c61496fa93392122e6927877df42826ab94b922e962b8541968d3baca343c699e9f244001782c9fc42ff84b684659aa1f29dde79dac66cd38b4b0499257'
'b2dda66fb2ddb5ab63059c63773c56c035c51c9cb9856860340eb52d89796d7c109d4cff7d76a482aef8674c83b5fb389095b7d78c3b3217d7624366697f5d83'
'4a3454dc3ad105fe17fd2620b2627e8949776176a7601216d77017fd276315852a3a584bea4f45c127ff250640e02ad319db006ef681b784f87039f7ee098bec'
'a8bf21df4fae1854bd394529323bb4252095d98551d6133bf239b58abf6d58f0cd048236b4f9d2481e06204a4e072c284c36aa202c889dec2c684c92facbae28'
'e57662608a39a59cc9079c5e6276fb6936dcf6f4a9b95c38606dd325f51e6a03e866f272ef231b46697aa5a342869443b2884f44b3152edc3e9a4199ae3f961f'
'b3ca3299b9bbc450c50fb59f60b68029b1abbdd9f0e01e823710dd203a00f5457f4a8cccfeef9ef083e2875b36fb3712af9fcda6ce911c68ca22831e8e1b4298'
'082474a56525f7ea52315fbf9d765081d9f6bbd20ab4213bc2d2a6ddb8a3764987e365f08f157be6deec53f9c1bf2fb6c99595f5649c631e8610fcf81ed61eab'
'5ce796468c442d76f311d1c620576dcd2c784fcd40ecaa68ca3a6d7c089e8703506f712ee918f89ddb4debfe061cea3939fa4f2d2a77553dd1cd7aa4fae17729'
'4f35d3b5296839dd68885b924a41725a3479c2725c77887038c7d402a6aa754e37fe0d3697e746a1b65a5236f9e927df01e99a66d37d227cb801965575403788'
'95a5345e044b8fe9be01fc6230f20b3b12118c6f1fcc3e7ebbfd4d3a3d205dfb492ff0c11397d3dae9abc0cbba83c659ea23803b71c8e240dddc30bf4791dbc5')
prepare() {
cd "${pkgbase}-${pkgver}"
# the -tags can only be a space separated list
patch -Np1 -i ../"${pkgbase}-1.23.0-gotags.patch"
# set static builds CGO_ENABLED=1 for full RELRO
patch -Np1 -i ../"${pkgbase}-1.23.0-static_cgo_enabled.patch"
}
build() {
cd "${pkgbase}-${pkgver}"
export CGO_CPPFLAGS="${CPPFLAGS}"
export CGO_CFLAGS="${CFLAGS}"
export CGO_CXXFLAGS="${CXXFLAGS}"
export CGO_LDFLAGS="${LDFLAGS}"
export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"
# NOTE: this also ensures the binaries have full RELRO
export GOLDFLAGS="-linkmode=external"
export GOARCH="$(go env GOARCH)"
make all KUBE_VERBOSE=5
# shell completion
local _binary
for _binary in {kubeadm,kubectl}; do
"_output/bin/${_binary}" completion bash > "_output/${_binary}"
"_output/bin/${_binary}" completion zsh > "_output/_${_binary}"
done
_output/bin/kubectl completion zsh > _output/kubectl.fish
# docs
hack/update-generated-docs.sh
}
package_kubeadm() {
pkgdesc='A tool for quickly installing Kubernetes and setting up a secure cluster'
groups=(kubernetes-tools)
depends+=(crictl)
install="${pkgname}.install"
cd "${pkgbase}-${pkgver}"
install -vDm 755 "_output/local/bin/linux/${GOARCH}/${pkgname}" -t "$pkgdir/usr/bin"
# service override for kubelet.service
install -vDm 644 "../10-${pkgname}-kubelet.conf" \
"${pkgdir}/usr/lib/systemd/system/kubelet.service.d/10-${pkgname}.conf"
# shell completion
install -vDm 644 "_output/${pkgname}" -t "$pkgdir/usr/share/bash-completion/completions/"
install -vDm 644 "_output/_${pkgname}" -t "$pkgdir/usr/share/zsh/site-functions/"
# man pages
install -vDm 644 "docs/man/man1/${pkgname}"* -t "${pkgdir}/usr/share/man/man1/"
}
package_kubectl() {
pkgdesc='A command line tool for communicating with a Kubernetes API server'
groups=(kubernetes-tools)
cd "${pkgbase}-${pkgver}"
install -vDm 755 "_output/local/bin/linux/${GOARCH}/${pkgname}" -t "$pkgdir/usr/bin"
# man pages
install -vDm 644 "docs/man/man1/${pkgname}"* -t "$pkgdir/usr/share/man/man1"
# shell completion
install -vDm 644 "_output/${pkgname}" -t "$pkgdir/usr/share/bash-completion/completions/"
install -vDm 644 "_output/_${pkgname}" -t "$pkgdir/usr/share/zsh/site-functions/"
install -vDm 644 "_output/${pkgname}.fish" -t "$pkgdir/usr/share/fish/vendor_completions.d/"
}
package_kubelet() {
pkgdesc='An agent that runs on each node in a Kubernetes cluster making sure that containers are running in a Pod'
groups=(kubernetes-control-plane kubernetes-node)
depends+=(cni-plugins conntrack-tools ethtool iptables-nft socat)
optdepends=('containerd: for using the containerd container runtime'
'cri-o: for using the cri-o container runtime'
'docker: for using the docker container runtime')
backup=(etc/kubernetes/kubelet.env)
install=${pkgname}.install
cd "${pkgbase}-${pkgver}"
install -vDm 755 "_output/local/bin/linux/${GOARCH}/${pkgname}" -t "$pkgdir/usr/bin"
# config
install -vDm 644 "../${pkgname}.env" -t "$pkgdir/etc/kubernetes/"
# service
install -vDm 644 "../${pkgname}.service" -t "$pkgdir/usr/lib/systemd/system"
# modules
install -vDm 644 "../${pkgname}-modules.conf" \
"${pkgdir}/usr/lib/modules-load.d/${pkgname}.conf"
# sysctl
install -vDm 644 "../50-${pkgname}-sysctl.conf" \
"${pkgdir}/etc/sysctl.d/50-${pkgname}.conf"
# man pages
install -vDm 644 "docs/man/man1/${pkgname}"* -t "${pkgdir}/usr/share/man/man1/"
# NOTE: without this directory a node worker will emit error messages upon joining a cluster
install -vdm 700 "${pkgdir}/etc/kubernetes/manifests"
}
package_kube-apiserver() {
pkgdesc='Kubernetes control plane component exposing the Kubernetes API'
groups=(kubernetes-control-plane)
backup=(etc/kubernetes/kube-apiserver.env)
cd "${pkgbase}-${pkgver}"
install -vDm 755 "_output/local/bin/linux/${GOARCH}/${pkgname}" -t "$pkgdir/usr/bin"
# config
install -vDm 644 "../${pkgname}.env" -t "${pkgdir}/etc/kubernetes/"
# service
install -vDm 644 "../${pkgname}.service" -t "${pkgdir}/usr/lib/systemd/system/"
# sysusers.d
install -vDm 644 "../kubernetes-sysusers.conf" "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf"
# tmpfiles.d
install -vDm 644 "../kubernetes-tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf"
# man pages
install -vDm 644 "docs/man/man1/${pkgname}"* -t "${pkgdir}/usr/share/man/man1/"
}
package_kube-controller-manager() {
pkgdesc='Kubernetes control plane component that runs controller processes'
groups=(kubernetes-control-plane)
backup=(etc/kubernetes/${pkgname}.env)
cd "${pkgbase}-${pkgver}"
install -Dm 755 "_output/local/bin/linux/${GOARCH}/${pkgname}" -t "$pkgdir/usr/bin"
# config
install -vDm 644 "../${pkgname}.env" -t "${pkgdir}/etc/kubernetes/"
# service
install -vDm 644 "../${pkgname}.service" -t "${pkgdir}/usr/lib/systemd/system/"
# sysusers.d
install -vDm 644 "../kubernetes-sysusers.conf" "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf"
# tmpfiles.d
install -vDm 644 "../kubernetes-tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf"
# man pages
install -vDm 644 "docs/man/man1/${pkgname}"* -t "${pkgdir}/usr/share/man/man1/"
}
package_kube-proxy() {
pkgdesc='Kubernetes network proxy that runs on each node'
groups=(kubernetes-control-plane kubernetes-node)
backup=(etc/kubernetes/${pkgname}.env)
cd "${pkgbase}-${pkgver}"
install -Dm 755 "_output/local/bin/linux/${GOARCH}/${pkgname}" -t "$pkgdir/usr/bin/"
# config
install -vDm 644 "../${pkgname}.env" -t "${pkgdir}/etc/kubernetes/"
# service
install -vDm 644 "../${pkgname}.service" -t "${pkgdir}/usr/lib/systemd/system/"
# man pages
install -vDm 644 "docs/man/man1/${pkgname}"* -t "${pkgdir}/usr/share/man/man1/"
install -vdm 755 "${pkgdir}/etc/kubernetes/"
install -vdm 755 "${pkgdir}/var/lib/${pkgname}/"
}
package_kube-scheduler() {
pkgdesc='Kubernetes control plane component watching over pods on nodes'
groups=(kubernetes-control-plane)
backup=(etc/kubernetes/${pkgname}.env)
cd "${pkgbase}-${pkgver}"
install -Dm 755 "_output/local/bin/linux/${GOARCH}/${pkgname}" -t "$pkgdir/usr/bin"
# config
install -vDm 644 "../${pkgname}.env" -t "${pkgdir}/etc/kubernetes/"
# service
install -vDm 644 "../${pkgname}.service" -t "${pkgdir}/usr/lib/systemd/system/"
# sysusers.d
install -vDm 644 "../kubernetes-sysusers.conf" "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf"
# tmpfiles.d
install -vDm 644 "../kubernetes-tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf"
# man pages
install -vDm 644 "docs/man/man1/${pkgname}"* -t "${pkgdir}/usr/share/man/man1/"
}

View File

@ -0,0 +1,10 @@
# Kubernetes kube-apiserver arguments
#
# The KUBE_APISERVER_ARGS environment variable is used to provide flags and
# options to kube-apiserver when running kube-apiserver.service.
# See `man 1 kube-apiserver` or `kube-apiserver --help` for further information.
#
# NOTE: When using kubeadm to bootstrap a cluster KUBE_APISERVER_ARGS will not
# be considered, as kube-apiserver runs as a privileged system pod in that
# case.
KUBE_APISERVER_ARGS=

View File

@ -0,0 +1,16 @@
[Unit]
Description=Kubernetes API Server
Documentation=man:kube-apiserver(1)
After=network.target
After=etcd.service
[Service]
EnvironmentFile=-/etc/kubernetes/kube-apiserver.env
User=kube
ExecStart=/usr/bin/kube-apiserver $KUBE_APISERVER_ARGS
Restart=on-failure
Type=notify
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,11 @@
# Kubernetes kube-controller-manager arguments
#
# The KUBE_CONTROLLER_MANAGER_ARGS environment variable is used to provide
# flags and options to kube-controller-manager when running
# kube-controller-manager.service. See `man 1 kube-controller-manager` or
# `kube-controller-manager --help` for further information.
#
# NOTE: When using kubeadm to bootstrap a cluster KUBE_CONTROLLER_MANAGER_ARGS
# will not be considered, as kube-controller-manager runs as a privileged
# system pod in that case.
KUBE_CONTROLLER_MANAGER_ARGS=

View File

@ -0,0 +1,13 @@
[Unit]
Description=Kubernetes Controller Manager
Documentation=man:kube-controller-manager(1)
[Service]
EnvironmentFile=-/etc/kubernetes/kube-controller-manager.env
User=kube
ExecStart=/usr/bin/kube-controller-manager $KUBE_CONTROLLER_MANAGER_ARGS
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,9 @@
# Kubernetes kube-proxy arguments
#
# The KUBE_PROXY_ARGS environment variable is used to provide flags and
# options to kube-proxy when running kube-proxy.service.
# See `man 1 kube-proxy` or `kube-proxy --help` for further information.
#
# NOTE: When using kubeadm to bootstrap a cluster KUBE_PROXY_ARGS will not
# be considered, as kube-proxy runs as a privileged system pod in that case.
KUBE_PROXY_ARGS=

View File

@ -0,0 +1,13 @@
[Unit]
Description=Kubernetes Kube-Proxy Server
Documentation=man:kube-proxy(1)
After=network.target
[Service]
EnvironmentFile=-/etc/kubernetes/kube-proxy.env
ExecStart=/usr/bin/kube-proxy $KUBE_PROXY_ARGS
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,10 @@
# Kubernetes kube-scheduler arguments
#
# The KUBE_SCHEDULER_ARGS environment variable is used to provide flags and
# options to kube-scheduler when running kube-scheduler.service.
# See `man 1 kube-scheduler` or `kube-scheduler --help` for further information.
#
# NOTE: When using kubeadm to bootstrap a cluster KUBE_SCHEDULER_ARGS will not
# be considered, as kube-scheduler runs as a privileged system pod in that
# case.
KUBE_SCHEDULER_ARGS=

View File

@ -0,0 +1,13 @@
[Unit]
Description=Kubernetes Scheduler Plugin
Documentation=man:kube-scheduler(1)
[Service]
EnvironmentFile=-/etc/kubernetes/kube-scheduler.env
User=kube
ExecStart=/usr/bin/kube-scheduler $KUBE_SCHEDULER_ARGS
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,14 @@
# arg 1: the new package version
post_install() {
printf "Switch on IP forwarding: sysctl net.ipv4.ip_forward=1\n"
}
## arg 1: the new package version
## arg 2: the old package version
post_upgrade() {
local _changelog_121="https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.21.md#no-really-you-must-read-this-before-you-upgrade"
if [[ "$(vercmp "$2" "1.21.0-1")" -lt 0 ]]; then
printf "WARNING: Read important changelog notice:\n"
printf " %s\n" "${_changelog_121}"
fi
}

View File

@ -0,0 +1 @@
br_netfilter

9
kubernetes/kubelet.env Normal file
View File

@ -0,0 +1,9 @@
# Kubernetes kubelet arguments
#
# The KUBELET_ARGS environment variable is used to provide flags and options to
# kubelet when running kubelet.service.
# See `man 1 kubelet` or `kubelet --help` for further information.
#
# NOTE: When using kubeadm to bootstrap a cluster KUBELET_ARGS will be appended
# to the kubeadm specific environment variables.
KUBELET_ARGS=--cni-bin-dir=/usr/lib/cni

View File

@ -0,0 +1,18 @@
#!/usr/bin/env bash
post_install() {
if ! grep "br_netfilter" /proc/modules; then
echo "Load the br_netfilter kernel module or reboot: modprobe br_netfilter."
fi
if [[ $(swapon --noheadings | wc -l) -ne 0 ]]; then
echo "WARNING: Disable swap before using kubelet.service."
fi
}
post_upgrade() {
local _changelog_121="https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.21.md#no-really-you-must-read-this-before-you-upgrade"
if [[ "$(vercmp "$2" "1.21.0-1")" -lt 0 ]]; then
printf "WARNING: Read important changelog notice:\n"
printf " %s\n" "${_changelog_121}"
fi
}

View File

@ -0,0 +1,20 @@
[Unit]
Description=The Kubernetes Node Agent
Documentation=https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/
[Service]
ConfigurationDirectory=kubernetes
CPUAccounting=true
IPAccounting=true
EnvironmentFile=-/etc/kubernetes/kubelet.env
ExecStart=/usr/bin/kubelet $KUBELET_ARGS
KillMode=process
MemoryAccounting=true
StartLimitInterval=0
Restart=on-failure
RestartSec=10
RuntimeDirectory=kubelet
StateDirectory=kubelet
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,12 @@
diff -ruN a/hack/lib/golang.sh b/hack/lib/golang.sh
--- a/hack/lib/golang.sh 2021-12-07 19:08:39.000000000 +0100
+++ b/hack/lib/golang.sh 2021-12-08 23:59:38.948699522 +0100
@@ -808,7 +808,7 @@
# extract tags if any specified in GOFLAGS
# shellcheck disable=SC2001
- gotags="selinux,notest,$(echo "${GOFLAGS:-}" | sed -ne 's|.*-tags=\([^-]*\).*|\1|p')"
+ gotags="selinux notest $(echo "${GOFLAGS:-}" | sed -ne 's|.*-tags=\([^-]*\).*|\1|p')"
local -a targets=()
local arg

View File

@ -0,0 +1,14 @@
diff -ruN a/hack/lib/golang.sh b/hack/lib/golang.sh
--- a/hack/lib/golang.sh 2021-12-07 19:08:39.000000000 +0100
+++ b/hack/lib/golang.sh 2021-12-09 18:53:23.588259078 +0100
@@ -718,8 +718,8 @@
-ldflags "${goldflags:-}"
-tags "${gotags:-}"
)
- V=1 kube::log::info "> static build CGO_ENABLED=0: ${statics[*]}"
- CGO_ENABLED=0 kube::golang::build_some_binaries "${statics[@]}"
+ V=1 kube::log::info "> static build CGO_ENABLED=1: ${statics[*]}"
+ CGO_ENABLED=1 kube::golang::build_some_binaries "${statics[@]}"
fi
if [[ "${#nonstatics[@]}" != 0 ]]; then

View File

@ -0,0 +1 @@
u kube - "User for Kubernetes services" - -

View File

@ -0,0 +1 @@
d /run/kubernetes 750 root kube - -