mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	add an option to push/pull component images from a registry using kube-up
This commit is contained in:
		@@ -344,8 +344,8 @@ function find-release-version() {
 | 
				
			|||||||
  if [[ -f "${KUBE_ROOT}/version" ]]; then
 | 
					  if [[ -f "${KUBE_ROOT}/version" ]]; then
 | 
				
			||||||
    KUBE_GIT_VERSION="$(cat ${KUBE_ROOT}/version)"
 | 
					    KUBE_GIT_VERSION="$(cat ${KUBE_ROOT}/version)"
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  if [[ -f "${KUBE_ROOT}/_output/full/kubernetes/version" ]]; then
 | 
					  if [[ -f "${KUBE_ROOT}/_output/release-stage/full/kubernetes/version" ]]; then
 | 
				
			||||||
    KUBE_GIT_VERSION="$(cat ${KUBE_ROOT}/_output/full/kubernetes/version)"
 | 
					    KUBE_GIT_VERSION="$(cat ${KUBE_ROOT}/_output/release-stage/full/kubernetes/version)"
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if [[ -z "${KUBE_GIT_VERSION}" ]]; then
 | 
					  if [[ -z "${KUBE_GIT_VERSION}" ]]; then
 | 
				
			||||||
@@ -353,3 +353,44 @@ function find-release-version() {
 | 
				
			|||||||
    exit 1
 | 
					    exit 1
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function stage-images() {
 | 
				
			||||||
 | 
					  find-release-version
 | 
				
			||||||
 | 
					  find-release-tars
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  KUBE_IMAGE_TAG="$(echo """${KUBE_GIT_VERSION}""" | sed 's/+/-/g')"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  local docker_wrapped_binaries=(
 | 
				
			||||||
 | 
					    "kube-apiserver"
 | 
				
			||||||
 | 
					    "kube-controller-manager"
 | 
				
			||||||
 | 
					    "kube-scheduler"
 | 
				
			||||||
 | 
					    "kube-proxy"
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  local docker_cmd=("docker")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ "${KUBE_DOCKER_REGISTRY}" == "gcr.io/"* ]]; then
 | 
				
			||||||
 | 
					    local docker_push_cmd=("gcloud" "docker")
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  local temp_dir="$(mktemp -d -t 'kube-server-XXXX')"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  tar xzfv "${SERVER_BINARY_TAR}" -C "${temp_dir}" &> /dev/null
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for binary in "${docker_wrapped_binaries[@]}"; do
 | 
				
			||||||
 | 
					    local docker_tag="$(cat ${temp_dir}/kubernetes/server/bin/${binary}.docker_tag)"
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					      "${docker_cmd[@]}" load -i "${temp_dir}/kubernetes/server/bin/${binary}.tar"
 | 
				
			||||||
 | 
					      "${docker_cmd[@]}" tag -f "gcr.io/google_containers/${binary}:${docker_tag}" "${KUBE_DOCKER_REGISTRY}/${binary}:${KUBE_IMAGE_TAG}"
 | 
				
			||||||
 | 
					      "${docker_push_cmd[@]}" push "${KUBE_DOCKER_REGISTRY}/${binary}:${KUBE_IMAGE_TAG}"
 | 
				
			||||||
 | 
					    ) &> "${temp_dir}/${binary}-push.log" &
 | 
				
			||||||
 | 
					  done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  kube::util::wait-for-jobs || {
 | 
				
			||||||
 | 
					    kube::log::error "unable to push images. see ${temp_dir}/*.log for more info."
 | 
				
			||||||
 | 
					    return 1
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  rm -rf "${temp_dir}"
 | 
				
			||||||
 | 
					  return 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -77,12 +77,13 @@ function set-kube-env() {
 | 
				
			|||||||
  done
 | 
					  done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # kube-env has all the environment variables we care about, in a flat yaml format
 | 
					  # kube-env has all the environment variables we care about, in a flat yaml format
 | 
				
			||||||
  eval $(python -c '''
 | 
					  eval "$(python -c '
 | 
				
			||||||
import pipes,sys,yaml
 | 
					import pipes,sys,yaml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
for k,v in yaml.load(sys.stdin).iteritems():
 | 
					for k,v in yaml.load(sys.stdin).iteritems():
 | 
				
			||||||
  print "readonly {var}={value}".format(var = k, value = pipes.quote(str(v)))
 | 
					  print """readonly {var}={value}""".format(var = k, value = pipes.quote(str(v)))
 | 
				
			||||||
''' < "${kube_env_yaml}")
 | 
					  print """export {var}""".format(var = k)
 | 
				
			||||||
 | 
					  ' < """${kube_env_yaml}""")"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function remove-docker-artifacts() {
 | 
					function remove-docker-artifacts() {
 | 
				
			||||||
@@ -524,7 +525,7 @@ function download-release() {
 | 
				
			|||||||
  done
 | 
					  done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  echo "Running release install script"
 | 
					  echo "Running release install script"
 | 
				
			||||||
  sudo kubernetes/saltbase/install.sh "${SERVER_BINARY_TAR_URL##*/}"
 | 
					  kubernetes/saltbase/install.sh "${SERVER_BINARY_TAR_URL##*/}"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function fix-apt-sources() {
 | 
					function fix-apt-sources() {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1302,6 +1302,8 @@ OPENCONTRAIL_TAG: $(yaml-quote ${OPENCONTRAIL_TAG:-})
 | 
				
			|||||||
OPENCONTRAIL_KUBERNETES_TAG: $(yaml-quote ${OPENCONTRAIL_KUBERNETES_TAG:-})
 | 
					OPENCONTRAIL_KUBERNETES_TAG: $(yaml-quote ${OPENCONTRAIL_KUBERNETES_TAG:-})
 | 
				
			||||||
OPENCONTRAIL_PUBLIC_SUBNET: $(yaml-quote ${OPENCONTRAIL_PUBLIC_SUBNET:-})
 | 
					OPENCONTRAIL_PUBLIC_SUBNET: $(yaml-quote ${OPENCONTRAIL_PUBLIC_SUBNET:-})
 | 
				
			||||||
E2E_STORAGE_TEST_ENVIRONMENT: $(yaml-quote ${E2E_STORAGE_TEST_ENVIRONMENT:-})
 | 
					E2E_STORAGE_TEST_ENVIRONMENT: $(yaml-quote ${E2E_STORAGE_TEST_ENVIRONMENT:-})
 | 
				
			||||||
 | 
					KUBE_IMAGE_TAG: $(yaml-quote ${KUBE_IMAGE_TAG:-})
 | 
				
			||||||
 | 
					KUBE_DOCKER_REGISTRY: $(yaml-quote ${KUBE_DOCKER_REGISTRY:-})
 | 
				
			||||||
EOF
 | 
					EOF
 | 
				
			||||||
  if [ -n "${KUBE_APISERVER_REQUEST_TIMEOUT:-}" ]; then
 | 
					  if [ -n "${KUBE_APISERVER_REQUEST_TIMEOUT:-}" ]; then
 | 
				
			||||||
    cat >>$file <<EOF
 | 
					    cat >>$file <<EOF
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,6 +38,11 @@ echo "... Starting cluster using provider: $KUBERNETES_PROVIDER" >&2
 | 
				
			|||||||
echo "... calling verify-prereqs" >&2
 | 
					echo "... calling verify-prereqs" >&2
 | 
				
			||||||
verify-prereqs
 | 
					verify-prereqs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [[ "${KUBE_STAGE_IMAGES:-}" == "true" ]]; then
 | 
				
			||||||
 | 
					  echo "... staging images" >&2
 | 
				
			||||||
 | 
					  stage-images
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "... calling kube-up" >&2
 | 
					echo "... calling kube-up" >&2
 | 
				
			||||||
kube-up
 | 
					kube-up
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -73,9 +73,16 @@ kube_bin_dir="/srv/salt-new/salt/kube-bins";
 | 
				
			|||||||
docker_images_sls_file="/srv/salt-new/pillar/docker-images.sls";
 | 
					docker_images_sls_file="/srv/salt-new/pillar/docker-images.sls";
 | 
				
			||||||
for docker_file in "${KUBE_DOCKER_WRAPPED_BINARIES[@]}"; do
 | 
					for docker_file in "${KUBE_DOCKER_WRAPPED_BINARIES[@]}"; do
 | 
				
			||||||
  docker_tag=$(cat ${kube_bin_dir}/${docker_file}.docker_tag);
 | 
					  docker_tag=$(cat ${kube_bin_dir}/${docker_file}.docker_tag);
 | 
				
			||||||
 | 
					  if [[ ! -z "${KUBE_IMAGE_TAG}" ]]; then
 | 
				
			||||||
 | 
					    docker_tag="${KUBE_IMAGE_TAG}"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
  sed -i "s/#${docker_file}_docker_tag_value#/${docker_tag}/" "${docker_images_sls_file}";
 | 
					  sed -i "s/#${docker_file}_docker_tag_value#/${docker_tag}/" "${docker_images_sls_file}";
 | 
				
			||||||
done
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cat <<EOF >>"${docker_images_sls_file}"
 | 
				
			||||||
 | 
					kube_docker_registry: '$(echo ${KUBE_DOCKER_REGISTRY:-gcr.io/google_containers})'
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "+++ Swapping in new configs"
 | 
					echo "+++ Swapping in new configs"
 | 
				
			||||||
for dir in "${SALTDIRS[@]}"; do
 | 
					for dir in "${SALTDIRS[@]}"; do
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -111,7 +111,7 @@
 | 
				
			|||||||
"containers":[
 | 
					"containers":[
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
    "name": "kube-apiserver",
 | 
					    "name": "kube-apiserver",
 | 
				
			||||||
    "image": "gcr.io/google_containers/kube-apiserver:{{pillar['kube-apiserver_docker_tag']}}",
 | 
					    "image": "{{pillar['kube_docker_registry']}}/kube-apiserver:{{pillar['kube-apiserver_docker_tag']}}",
 | 
				
			||||||
    "resources": {
 | 
					    "resources": {
 | 
				
			||||||
      "limits": {
 | 
					      "limits": {
 | 
				
			||||||
        "cpu": "250m"
 | 
					        "cpu": "250m"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -65,7 +65,7 @@
 | 
				
			|||||||
"containers":[
 | 
					"containers":[
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
    "name": "kube-controller-manager",
 | 
					    "name": "kube-controller-manager",
 | 
				
			||||||
    "image": "gcr.io/google_containers/kube-controller-manager:{{pillar['kube-controller-manager_docker_tag']}}",
 | 
					    "image": "{{pillar['kube_docker_registry']}}/kube-controller-manager:{{pillar['kube-controller-manager_docker_tag']}}",
 | 
				
			||||||
    "resources": {
 | 
					    "resources": {
 | 
				
			||||||
      "limits": {
 | 
					      "limits": {
 | 
				
			||||||
        "cpu": "200m"
 | 
					        "cpu": "200m"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,7 +25,7 @@ spec:
 | 
				
			|||||||
  hostNetwork: true
 | 
					  hostNetwork: true
 | 
				
			||||||
  containers:
 | 
					  containers:
 | 
				
			||||||
  - name: kube-proxy
 | 
					  - name: kube-proxy
 | 
				
			||||||
    image: gcr.io/google_containers/kube-proxy:{{pillar['kube-proxy_docker_tag']}}
 | 
					    image: {{pillar['kube_docker_registry']}}/kube-proxy:{{pillar['kube-proxy_docker_tag']}}
 | 
				
			||||||
    command:
 | 
					    command:
 | 
				
			||||||
    - /bin/sh
 | 
					    - /bin/sh
 | 
				
			||||||
    - -c
 | 
					    - -c
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,7 @@
 | 
				
			|||||||
"containers":[
 | 
					"containers":[
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
    "name": "kube-scheduler",
 | 
					    "name": "kube-scheduler",
 | 
				
			||||||
    "image": "gcr.io/google_containers/kube-scheduler:{{pillar['kube-scheduler_docker_tag']}}",
 | 
					    "image": "{{pillar['kube_docker_registry']}}/kube-scheduler:{{pillar['kube-scheduler_docker_tag']}}",
 | 
				
			||||||
    "resources": {
 | 
					    "resources": {
 | 
				
			||||||
      "limits": {
 | 
					      "limits": {
 | 
				
			||||||
        "cpu": "100m"
 | 
					        "cpu": "100m"
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user