mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Merge pull request #18488 from yifan-gu/dockerized_python
Auto commit by PR queue bot
This commit is contained in:
commit
3f91f18a55
@ -820,6 +820,16 @@ function kube::release::write_addon_docker_images_for_server() {
|
||||
) &
|
||||
done
|
||||
|
||||
if [[ ! -z "${BUILD_PYTHON_IMAGE:-}" ]]; then
|
||||
(
|
||||
kube::log::status "Building Docker python image"
|
||||
|
||||
local img_name=python:2.7-slim-pyyaml
|
||||
docker build -t "${img_name}" "${KUBE_ROOT}/cluster/addons/python-image"
|
||||
docker save "${img_name}" > "${1}/${img_name}.tar"
|
||||
) &
|
||||
fi
|
||||
|
||||
kube::util::wait-for-jobs || { kube::log::error "unable to pull or write addon image"; return 1; }
|
||||
kube::log::status "Addon images done"
|
||||
)
|
||||
|
@ -58,6 +58,8 @@ of:
|
||||
pods.
|
||||
1. Note that this cannot happen for Services as their version is always empty.
|
||||
|
||||
Note that in order to run the updator script, python is required on the machine.
|
||||
For OS distros that don't have python installed, a python container will be used.
|
||||
|
||||
|
||||
|
||||
|
3
cluster/addons/python-image/Dockerfile
Normal file
3
cluster/addons/python-image/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
||||
FROM python:2.7-slim
|
||||
|
||||
RUN pip install pyyaml
|
6
cluster/addons/python-image/README.md
Normal file
6
cluster/addons/python-image/README.md
Normal file
@ -0,0 +1,6 @@
|
||||
# Python image
|
||||
|
||||
The python image here is used by OS distros that don't have python installed to
|
||||
run python scripts to parse the yaml files in the addon updator script.
|
||||
|
||||
[]()
|
@ -98,7 +98,7 @@ function log() {
|
||||
function get-object-kind-from-file() {
|
||||
# prints to stdout, so log cannot be used
|
||||
#WARNING: only yaml is supported
|
||||
cat $1 | python -c '''
|
||||
cat $1 | ${PYTHON} -c '''
|
||||
try:
|
||||
import pipes,sys,yaml
|
||||
y = yaml.load(sys.stdin)
|
||||
@ -120,7 +120,7 @@ function get-object-nsname-from-file() {
|
||||
# prints to stdout, so log cannot be used
|
||||
#WARNING: only yaml is supported
|
||||
#addons that do not specify a namespace are assumed to be in "default".
|
||||
cat $1 | python -c '''
|
||||
cat $1 | ${PYTHON} -c '''
|
||||
try:
|
||||
import pipes,sys,yaml
|
||||
y = yaml.load(sys.stdin)
|
||||
|
@ -24,6 +24,16 @@ ADDON_CHECK_INTERVAL_SEC=${TEST_ADDON_CHECK_INTERVAL_SEC:-600}
|
||||
SYSTEM_NAMESPACE=kube-system
|
||||
token_dir=${TOKEN_DIR:-/srv/kubernetes}
|
||||
|
||||
function ensure_python() {
|
||||
if ! python --version > /dev/null 2>&1; then
|
||||
echo "No python on the machine, will use a python image"
|
||||
local -r PYTHON_IMAGE=python:2.7-slim-pyyaml
|
||||
export PYTHON="docker run --interactive --rm --net=none ${PYTHON_IMAGE} python"
|
||||
else
|
||||
export PYTHON=python
|
||||
fi
|
||||
}
|
||||
|
||||
function create-kubeconfig-secret() {
|
||||
local -r token=$1
|
||||
local -r username=$2
|
||||
@ -152,11 +162,16 @@ function load-docker-images() {
|
||||
# managed result is of that. Start everything below that directory.
|
||||
echo "== Kubernetes addon manager started at $(date -Is) with ADDON_CHECK_INTERVAL_SEC=${ADDON_CHECK_INTERVAL_SEC} =="
|
||||
|
||||
# Load any images that we may need
|
||||
load-docker-images /srv/salt/kube-addons-images
|
||||
|
||||
ensure_python
|
||||
|
||||
# Load the kube-env, which has all the environment variables we care
|
||||
# about, in a flat yaml format.
|
||||
kube_env_yaml="/var/cache/kubernetes-install/kube_env.yaml"
|
||||
if [ ! -e "${kubelet_kubeconfig_file}" ]; then
|
||||
eval $(python -c '''
|
||||
eval $(${PYTHON} -c '''
|
||||
import pipes,sys,yaml
|
||||
|
||||
for k,v in yaml.load(sys.stdin).iteritems():
|
||||
@ -164,8 +179,6 @@ for k,v in yaml.load(sys.stdin).iteritems():
|
||||
''' < "${kube_env_yaml}")
|
||||
fi
|
||||
|
||||
# Load any images that we may need
|
||||
load-docker-images /srv/salt/kube-addons-images
|
||||
|
||||
# Create the namespace that will be used to host the cluster-level add-ons.
|
||||
start_addon /etc/kubernetes/addons/namespace.yaml 100 10 "" &
|
||||
|
Loading…
Reference in New Issue
Block a user