kubernetes: package init
Signed-off-by: xiadanni <xiadanni1@huawei.com>
This commit is contained in:
parent
a321bc6a45
commit
0b3472381f
5
env-apiserver
Normal file
5
env-apiserver
Normal file
@ -0,0 +1,5 @@
|
||||
KUBE_API_ADDRESS="--insecure-bind-address=127.0.0.1"
|
||||
KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379,http://127.0.0.1:4001"
|
||||
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
|
||||
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"
|
||||
KUBE_API_ARGS=""
|
||||
4
env-config
Normal file
4
env-config
Normal file
@ -0,0 +1,4 @@
|
||||
KUBE_LOGTOSTDERR="--logtostderr=true"
|
||||
KUBE_LOG_LEVEL="--v=0"
|
||||
KUBE_ALLOW_PRIV="--allow-privileged=false"
|
||||
KUBE_MASTER="--master=http://127.0.0.1:8080"
|
||||
1
env-controller-manager
Normal file
1
env-controller-manager
Normal file
@ -0,0 +1 @@
|
||||
KUBE_CONTROLLER_MANAGER_ARGS=""
|
||||
4
env-kubelet
Normal file
4
env-kubelet
Normal file
@ -0,0 +1,4 @@
|
||||
KUBELET_ADDRESS="--address=127.0.0.1"
|
||||
KUBELET_HOSTNAME="--hostname-override=127.0.0.1"
|
||||
KUBELET_KUBECONFIG=/etc/kubernetes/kubelet.kubeconfig
|
||||
KUBELET_ARGS="--cgroup-driver=systemd --fail-swap-on=false"
|
||||
12
env-kubelet.kubeconfig
Normal file
12
env-kubelet.kubeconfig
Normal file
@ -0,0 +1,12 @@
|
||||
apiVersion: v1
|
||||
kind: Config
|
||||
clusters:
|
||||
- cluster:
|
||||
server: http://127.0.0.1:8080/
|
||||
name: local
|
||||
contexts:
|
||||
- context:
|
||||
cluster: local
|
||||
name: local
|
||||
current-context: local
|
||||
|
||||
1
env-scheduler
Normal file
1
env-scheduler
Normal file
@ -0,0 +1 @@
|
||||
KUBE_SCHEDULER_ARGS=""
|
||||
27
kube-apiserver.service
Normal file
27
kube-apiserver.service
Normal file
@ -0,0 +1,27 @@
|
||||
[Unit]
|
||||
Description=Kubernetes API Server
|
||||
Documentation=https://kubernetes.io/docs/reference/generated/kube-apiserver/
|
||||
After=network.target
|
||||
After=etcd.service
|
||||
|
||||
[Service]
|
||||
EnvironmentFile=-/etc/kubernetes/config
|
||||
EnvironmentFile=-/etc/kubernetes/apiserver
|
||||
User=kube
|
||||
ExecStart=/usr/bin/kube-apiserver \
|
||||
$KUBE_LOGTOSTDERR \
|
||||
$KUBE_LOG_LEVEL \
|
||||
$KUBE_ETCD_SERVERS \
|
||||
$KUBE_API_ADDRESS \
|
||||
$KUBE_API_PORT \
|
||||
$KUBELET_PORT \
|
||||
$KUBE_ALLOW_PRIV \
|
||||
$KUBE_SERVICE_ADDRESSES \
|
||||
$KUBE_ADMISSION_CONTROL \
|
||||
$KUBE_API_ARGS
|
||||
Restart=on-failure
|
||||
Type=notify
|
||||
LimitNOFILE=65536
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
18
kube-controller-manager.service
Normal file
18
kube-controller-manager.service
Normal file
@ -0,0 +1,18 @@
|
||||
[Unit]
|
||||
Description=Kubernetes Controller Manager
|
||||
Documentation=https://kubernetes.io/docs/reference/generated/kube-controller-manager/
|
||||
|
||||
[Service]
|
||||
EnvironmentFile=-/etc/kubernetes/config
|
||||
EnvironmentFile=-/etc/kubernetes/controller-manager
|
||||
User=kube
|
||||
ExecStart=/usr/bin/kube-controller-manager \
|
||||
$KUBE_LOGTOSTDERR \
|
||||
$KUBE_LOG_LEVEL \
|
||||
$KUBE_MASTER \
|
||||
$KUBE_CONTROLLER_MANAGER_ARGS
|
||||
Restart=on-failure
|
||||
LimitNOFILE=65536
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
18
kube-proxy.service
Normal file
18
kube-proxy.service
Normal file
@ -0,0 +1,18 @@
|
||||
[Unit]
|
||||
Description=Kubernetes Kube-Proxy Server
|
||||
Documentation=https://kubernetes.io/docs/reference/generated/kube-proxy/
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
EnvironmentFile=-/etc/kubernetes/config
|
||||
EnvironmentFile=-/etc/kubernetes/proxy
|
||||
ExecStart=/usr/bin/kube-proxy \
|
||||
$KUBE_LOGTOSTDERR \
|
||||
$KUBE_LOG_LEVEL \
|
||||
$KUBE_MASTER \
|
||||
$KUBE_PROXY_ARGS
|
||||
Restart=on-failure
|
||||
LimitNOFILE=65536
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
18
kube-scheduler.service
Normal file
18
kube-scheduler.service
Normal file
@ -0,0 +1,18 @@
|
||||
[Unit]
|
||||
Description=Kubernetes Scheduler Plugin
|
||||
Documentation=https://kubernetes.io/docs/reference/generated/kube-scheduler/
|
||||
|
||||
[Service]
|
||||
EnvironmentFile=-/etc/kubernetes/config
|
||||
EnvironmentFile=-/etc/kubernetes/scheduler
|
||||
User=kube
|
||||
ExecStart=/usr/bin/kube-scheduler \
|
||||
$KUBE_LOGTOSTDERR \
|
||||
$KUBE_LOG_LEVEL \
|
||||
$KUBE_MASTER \
|
||||
$KUBE_SCHEDULER_ARGS
|
||||
Restart=on-failure
|
||||
LimitNOFILE=65536
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
14
kubeadm.conf
Normal file
14
kubeadm.conf
Normal file
@ -0,0 +1,14 @@
|
||||
[Service]
|
||||
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --fail-swap-on=false"
|
||||
Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests"
|
||||
Environment="KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/usr/libexec/cni"
|
||||
Environment="KUBELET_DNS_ARGS=--cluster-dns=10.96.0.10 --cluster-domain=cluster.local"
|
||||
Environment="KUBELET_AUTHZ_ARGS=--authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt"
|
||||
Environment="KUBELET_EXTRA_ARGS=--cgroup-driver=systemd"
|
||||
|
||||
ExecStart=
|
||||
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_EXTRA_ARGS
|
||||
|
||||
Restart=always
|
||||
StartLimitInterval=0
|
||||
RestartSec=10
|
||||
23
kubelet.service
Normal file
23
kubelet.service
Normal file
@ -0,0 +1,23 @@
|
||||
[Unit]
|
||||
Description=Kubernetes Kubelet Server
|
||||
Documentation=https://kubernetes.io/docs/reference/generated/kubelet/
|
||||
After=docker.service crio.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
|
||||
BIN
kubernetes-1.18.6.tar.gz
Normal file
BIN
kubernetes-1.18.6.tar.gz
Normal file
Binary file not shown.
3
kubernetes-accounting.conf
Normal file
3
kubernetes-accounting.conf
Normal file
@ -0,0 +1,3 @@
|
||||
[Manager]
|
||||
DefaultCPUAccounting=yes
|
||||
DefaultMemoryAccounting=yes
|
||||
1
kubernetes.conf
Normal file
1
kubernetes.conf
Normal file
@ -0,0 +1 @@
|
||||
d /var/run/kubernetes 0755 kube kube -
|
||||
247
kubernetes.spec
Normal file
247
kubernetes.spec
Normal file
@ -0,0 +1,247 @@
|
||||
%global debug_package %{nil}
|
||||
%global _buildshell /bin/bash
|
||||
|
||||
Name: kubernetes
|
||||
Version: 1.18.6
|
||||
Release: 1
|
||||
Summary: Container cluster management
|
||||
License: ASL 2.0
|
||||
URL: https://k8s.io/kubernetes
|
||||
Source0: kubernetes-1.18.6.tar.gz
|
||||
Source1: kube-proxy.service
|
||||
Source2: kube-apiserver.service
|
||||
Source3: kube-scheduler.service
|
||||
Source4: kube-controller-manager.service
|
||||
Source5: kubelet.service
|
||||
Source6: env-apiserver
|
||||
Source7: env-config
|
||||
Source8: env-controller-manager
|
||||
Source9: env-kubelet
|
||||
Source10: env-kubelet.kubeconfig
|
||||
Source11: env-proxy
|
||||
Source12: env-scheduler
|
||||
Source13: kubernetes-accounting.conf
|
||||
Source14: kubeadm.conf
|
||||
Source15: kubernetes.conf
|
||||
|
||||
%description
|
||||
Container cluster management.
|
||||
|
||||
%package master
|
||||
Summary: Kubernetes services for master host
|
||||
|
||||
BuildRequires: golang systemd rsync go-md2man
|
||||
|
||||
Requires(pre): shadow-utils
|
||||
Requires: kubernetes-client = %{version}-%{release}
|
||||
|
||||
Conflicts: kubernetes-node < %{version}-%{release}
|
||||
Conflicts: kubernetes-node > %{version}-%{release}
|
||||
|
||||
%description master
|
||||
Kubernetes services for master host.
|
||||
|
||||
%package node
|
||||
Summary: Kubernetes services for node host
|
||||
|
||||
BuildRequires: golang systemd rsync go-md2man
|
||||
|
||||
Requires(pre): shadow-utils
|
||||
Requires: docker conntrack-tools socat
|
||||
Requires: kubernetes-client = %{version}-%{release}
|
||||
|
||||
Conflicts: kubernetes-master < %{version}-%{release}
|
||||
Conflicts: kubernetes-master > %{version}-%{release}
|
||||
|
||||
%description node
|
||||
Kubernetes services for node host.
|
||||
|
||||
%package kubeadm
|
||||
Summary: Kubernetes tool for standing up clusters
|
||||
|
||||
Requires: kubernetes-node = %{version}-%{release}
|
||||
Requires: containernetworking-plugins
|
||||
|
||||
%description kubeadm
|
||||
Kubernetes tool for standing up clusters.
|
||||
|
||||
%package client
|
||||
Summary: Kubernetes client tools
|
||||
|
||||
BuildRequires: golang
|
||||
|
||||
%description client
|
||||
Kubernetes client tools.
|
||||
|
||||
%package help
|
||||
Summary: Help documents for kubernetes
|
||||
|
||||
%description help
|
||||
Help documents for kubernetes.
|
||||
|
||||
%prep
|
||||
%setup -q -n kubernetes-1.18.6
|
||||
mkdir -p src/k8s.io/kubernetes
|
||||
mv $(ls | grep -v "^src$") src/k8s.io/kubernetes/.
|
||||
|
||||
%build
|
||||
pushd src/k8s.io/kubernetes/
|
||||
export KUBE_GIT_TREE_STATE="clean"
|
||||
export KUBE_GIT_COMMIT=%{commit}
|
||||
export KUBE_GIT_VERSION=v{version}
|
||||
export KUBE_EXTRA_GOPATH=$(pwd)/Godeps/_workspace
|
||||
|
||||
make WHAT="cmd/kube-proxy"
|
||||
make WHAT="cmd/kube-apiserver"
|
||||
make WHAT="cmd/kube-controller-manager"
|
||||
make WHAT="cmd/kubelet"
|
||||
make WHAT="cmd/kubeadm"
|
||||
make WHAT="cmd/kube-scheduler"
|
||||
make WHAT="cmd/kubectl"
|
||||
|
||||
bash ./hack/generate-docs.sh
|
||||
popd
|
||||
|
||||
%install
|
||||
pushd src/k8s.io/kubernetes/
|
||||
. hack/lib/init.sh
|
||||
kube::golang::setup_env
|
||||
output_path="${KUBE_OUTPUT_BINPATH}/$(kube::golang::host_platform)"
|
||||
|
||||
# install binary
|
||||
install -m 755 -d %{buildroot}%{_bindir}
|
||||
install -p -m 755 -t %{buildroot}%{_bindir} ${output_path}/kube-proxy
|
||||
install -p -m 755 -t %{buildroot}%{_bindir} ${output_path}/kube-apiserver
|
||||
install -p -m 755 -t %{buildroot}%{_bindir} ${output_path}/kube-controller-manager
|
||||
install -p -m 755 -t %{buildroot}%{_bindir} ${output_path}/kubelet
|
||||
install -p -m 755 -t %{buildroot}%{_bindir} ${output_path}/kubeadm
|
||||
install -p -m 755 -t %{buildroot}%{_bindir} ${output_path}/kube-scheduler
|
||||
install -p -m 755 -t %{buildroot}%{_bindir} ${output_path}/kubectl
|
||||
|
||||
# install service
|
||||
install -d -m 0755 %{buildroot}%{_unitdir}
|
||||
install -m 0644 -t %{buildroot}%{_unitdir} %{SOURCE1}
|
||||
install -m 0644 -t %{buildroot}%{_unitdir} %{SOURCE2}
|
||||
install -m 0644 -t %{buildroot}%{_unitdir} %{SOURCE3}
|
||||
install -m 0644 -t %{buildroot}%{_unitdir} %{SOURCE4}
|
||||
install -m 0644 -t %{buildroot}%{_unitdir} %{SOURCE5}
|
||||
|
||||
# install env
|
||||
%define remove_prefix() %(echo -n %1|sed 's/.*env-//g')
|
||||
install -d -m 0755 %{buildroot}%{_sysconfdir}/kubernetes
|
||||
install -d -m 0700 %{buildroot}%{_sysconfdir}/kubernetes/manifests
|
||||
install -m 644 -T %{SOURCE6} %{buildroot}%{_sysconfdir}/kubernetes/%{remove_prefix %{SOURCE6}}
|
||||
install -m 644 -T %{SOURCE7} %{buildroot}%{_sysconfdir}/kubernetes/%{remove_prefix %{SOURCE7}}
|
||||
install -m 644 -T %{SOURCE8} %{buildroot}%{_sysconfdir}/kubernetes/%{remove_prefix %{SOURCE8}}
|
||||
install -m 644 -T %{SOURCE9} %{buildroot}%{_sysconfdir}/kubernetes/%{remove_prefix %{SOURCE9}}
|
||||
install -m 644 -T %{SOURCE10} %{buildroot}%{_sysconfdir}/kubernetes/%{remove_prefix %{SOURCE10}}
|
||||
install -m 644 -T %{SOURCE11} %{buildroot}%{_sysconfdir}/kubernetes/%{remove_prefix %{SOURCE11}}
|
||||
install -m 644 -T %{SOURCE12} %{buildroot}%{_sysconfdir}/kubernetes/%{remove_prefix %{SOURCE12}}
|
||||
|
||||
# install conf
|
||||
install -d -m 0755 %{buildroot}/%{_sysconfdir}/systemd/system.conf.d
|
||||
install -p -m 0644 -t %{buildroot}/%{_sysconfdir}/systemd/system.conf.d %{SOURCE13}
|
||||
install -d -m 0755 %{buildroot}/%{_sysconfdir}/systemd/system/kubelet.service.d
|
||||
install -p -m 0644 -t %{buildroot}/%{_sysconfdir}/systemd/system/kubelet.service.d %{SOURCE14}
|
||||
install -d -m 0755 %{buildroot}%{_tmpfilesdir}
|
||||
install -p -m 0644 -t %{buildroot}/%{_tmpfilesdir} %{SOURCE15}
|
||||
|
||||
# install man
|
||||
install -d %{buildroot}%{_mandir}/man1
|
||||
install -p -m 644 docs/man/man1/* %{buildroot}%{_mandir}/man1
|
||||
|
||||
install -d -m 0755 %{buildroot}%{_datadir}/bash-completion/completions/
|
||||
%{buildroot}%{_bindir}/kubectl completion bash > %{buildroot}%{_datadir}/bash-completion/completions/kubectl
|
||||
|
||||
install -d %{buildroot}%{_sharedstatedir}/kubelet
|
||||
mkdir -p %{buildroot}/run
|
||||
install -d -m 0755 %{buildroot}/run/kubernetes/
|
||||
popd
|
||||
|
||||
mv src/k8s.io/kubernetes/*.md .
|
||||
mv src/k8s.io/kubernetes/LICENSE .
|
||||
|
||||
%files
|
||||
|
||||
%files help
|
||||
%{_mandir}/man1/*
|
||||
|
||||
%files master
|
||||
%license LICENSE
|
||||
%doc *.md
|
||||
%attr(754, -, kube) %caps(cap_net_bind_service=ep) %{_bindir}/kube-apiserver
|
||||
%{_bindir}/kube-controller-manager
|
||||
%{_bindir}/kube-scheduler
|
||||
%{_unitdir}/kube-apiserver.service
|
||||
%{_unitdir}/kube-controller-manager.service
|
||||
%{_unitdir}/kube-scheduler.service
|
||||
%dir %{_sysconfdir}/kubernetes
|
||||
%config(noreplace) %{_sysconfdir}/kubernetes/apiserver
|
||||
%config(noreplace) %{_sysconfdir}/kubernetes/scheduler
|
||||
%config(noreplace) %{_sysconfdir}/kubernetes/config
|
||||
%config(noreplace) %{_sysconfdir}/kubernetes/controller-manager
|
||||
%{_tmpfilesdir}/kubernetes.conf
|
||||
%verify(not size mtime md5) %attr(755, kube,kube) %dir /run/kubernetes
|
||||
|
||||
%files node
|
||||
%license LICENSE
|
||||
%doc *.md
|
||||
%{_bindir}/kubelet
|
||||
%{_bindir}/kube-proxy
|
||||
%{_unitdir}/kube-proxy.service
|
||||
%{_unitdir}/kubelet.service
|
||||
%dir %{_sharedstatedir}/kubelet
|
||||
%dir %{_sysconfdir}/kubernetes
|
||||
%dir %{_sysconfdir}/kubernetes/manifests
|
||||
%config(noreplace) %{_sysconfdir}/kubernetes/config
|
||||
%config(noreplace) %{_sysconfdir}/kubernetes/kubelet
|
||||
%config(noreplace) %{_sysconfdir}/kubernetes/proxy
|
||||
%config(noreplace) %{_sysconfdir}/kubernetes/kubelet.kubeconfig
|
||||
%config(noreplace) %{_sysconfdir}/systemd/system.conf.d/kubernetes-accounting.conf
|
||||
%{_tmpfilesdir}/kubernetes.conf
|
||||
%verify(not size mtime md5) %attr(755, kube,kube) %dir /run/kubernetes
|
||||
|
||||
%files kubeadm
|
||||
%license LICENSE
|
||||
%doc *.md
|
||||
%{_bindir}/kubeadm
|
||||
%dir %{_sysconfdir}/systemd/system/kubelet.service.d
|
||||
%config(noreplace) %{_sysconfdir}/systemd/system/kubelet.service.d/kubeadm.conf
|
||||
|
||||
%files client
|
||||
%license LICENSE
|
||||
%doc *.md
|
||||
%{_bindir}/kubectl
|
||||
%{_datadir}/bash-completion/completions/kubectl
|
||||
|
||||
%pre master
|
||||
getent group kube >/dev/null || groupadd -r kube
|
||||
getent passwd kube >/dev/null || useradd -r -g kube -d / -s /sbin/nologin \
|
||||
-c "Kubernetes user" kube
|
||||
|
||||
%post master
|
||||
%systemd_post kube-apiserver kube-scheduler kube-controller-manager
|
||||
|
||||
%preun master
|
||||
%systemd_preun kube-apiserver kube-scheduler kube-controller-manager
|
||||
|
||||
%postun master
|
||||
%systemd_postun kube-apiserver kube-scheduler kube-controller-manager
|
||||
|
||||
%pre node
|
||||
getent group kube >/dev/null || groupadd -r kube
|
||||
getent passwd kube >/dev/null || useradd -r -g kube -d / -s /sbin/nologin \
|
||||
-c "Kubernetes user" kube
|
||||
|
||||
%post node
|
||||
%systemd_post kubelet kube-proxy
|
||||
|
||||
%preun node
|
||||
%systemd_preun kubelet kube-proxy
|
||||
|
||||
%postun node
|
||||
%systemd_postun kubelet kube-proxy
|
||||
|
||||
%changelog
|
||||
* Sat Jul 25 2020 xiadanni <xiadanni1@huawei.com> - 1.18.6-1
|
||||
- Package init
|
||||
Loading…
x
Reference in New Issue
Block a user