mirror of https://github.com/k3s-io/k3s
rename build/ to build-tools/
parent
dfe801de10
commit
27116c6818
6
Makefile
6
Makefile
|
@ -195,7 +195,7 @@ test-cmd: generated_files
|
|||
# TODO(thockin): call clean_generated when we stop committing generated code.
|
||||
.PHONY: clean
|
||||
clean: clean_meta
|
||||
build/make-clean.sh
|
||||
build-tools/make-clean.sh
|
||||
rm -rf $(OUT_DIR)
|
||||
rm -rf Godeps/_workspace # Just until we are sure it is gone
|
||||
|
||||
|
@ -236,7 +236,7 @@ vet:
|
|||
# make release
|
||||
.PHONY: release
|
||||
release:
|
||||
build/release.sh
|
||||
build-tools/release.sh
|
||||
|
||||
# Build a release, but skip tests
|
||||
#
|
||||
|
@ -244,7 +244,7 @@ release:
|
|||
# make release-skip-tests
|
||||
.PHONY: release-skip-tests quick-release
|
||||
release-skip-tests quick-release:
|
||||
KUBE_RELEASE_RUN_TESTS=n KUBE_FASTBUILD=true build/release.sh
|
||||
KUBE_RELEASE_RUN_TESTS=n KUBE_FASTBUILD=true build-tools/release.sh
|
||||
|
||||
# Cross-compile for all platforms
|
||||
#
|
||||
|
|
|
@ -19,21 +19,21 @@ While it is possible to build Kubernetes using a local golang installation, we h
|
|||
|
||||
## Key scripts
|
||||
|
||||
The following scripts are found in the `build/` directory. Note that all scripts must be run from the Kubernetes root directory.
|
||||
The following scripts are found in the `build-tools/` directory. Note that all scripts must be run from the Kubernetes root directory.
|
||||
|
||||
* `build/run.sh`: Run a command in a build docker container. Common invocations:
|
||||
* `build/run.sh make`: Build just linux binaries in the container. Pass options and packages as necessary.
|
||||
* `build/run.sh make cross`: Build all binaries for all platforms
|
||||
* `build/run.sh make test`: Run all unit tests
|
||||
* `build/run.sh make test-integration`: Run integration test
|
||||
* `build/run.sh make test-cmd`: Run CLI tests
|
||||
* `build/copy-output.sh`: This will copy the contents of `_output/dockerized/bin` from the Docker container to the local `_output/dockerized/bin`. It will also copy out specific file patterns that are generated as part of the build process. This is run automatically as part of `build/run.sh`.
|
||||
* `build/make-clean.sh`: Clean out the contents of `_output`, remove any locally built container images and remove the data container.
|
||||
* `/build/shell.sh`: Drop into a `bash` shell in a build container with a snapshot of the current repo code.
|
||||
* `build-tools/run.sh`: Run a command in a build docker container. Common invocations:
|
||||
* `build-tools/run.sh make`: Build just linux binaries in the container. Pass options and packages as necessary.
|
||||
* `build-tools/run.sh make cross`: Build all binaries for all platforms
|
||||
* `build-tools/run.sh make test`: Run all unit tests
|
||||
* `build-tools/run.sh make test-integration`: Run integration test
|
||||
* `build-tools/run.sh make test-cmd`: Run CLI tests
|
||||
* `build-tools/copy-output.sh`: This will copy the contents of `_output/dockerized/bin` from the Docker container to the local `_output/dockerized/bin`. It will also copy out specific file patterns that are generated as part of the build process. This is run automatically as part of `build-tools/run.sh`.
|
||||
* `build-tools/make-clean.sh`: Clean out the contents of `_output`, remove any locally built container images and remove the data container.
|
||||
* `/build-tools/shell.sh`: Drop into a `bash` shell in a build container with a snapshot of the current repo code.
|
||||
|
||||
## Basic Flow
|
||||
|
||||
The scripts directly under `build/` are used to build and test. They will ensure that the `kube-build` Docker image is built (based on `build/build-image/Dockerfile`) and then execute the appropriate command in that container. These scripts will both ensure that the right data is cached from run to run for incremental builds and will copy the results back out of the container.
|
||||
The scripts directly under `build-tools/` are used to build and test. They will ensure that the `kube-build` Docker image is built (based on `build-tools/build-image/Dockerfile`) and then execute the appropriate command in that container. These scripts will both ensure that the right data is cached from run to run for incremental builds and will copy the results back out of the container.
|
||||
|
||||
The `kube-build` container image is built by first creating a "context" directory in `_output/images/build-image`. It is done there instead of at the root of the Kubernetes repo to minimize the amount of data we need to package up when building the image.
|
||||
|
||||
|
@ -92,7 +92,7 @@ Look at `docker-machine stop`, `docker-machine start` and `docker-machine rm` to
|
|||
|
||||
## Releasing
|
||||
|
||||
The `build/release.sh` script will build a release. It will build binaries, run tests, (optionally) build runtime Docker images.
|
||||
The `build-tools/release.sh` script will build a release. It will build binaries, run tests, (optionally) build runtime Docker images.
|
||||
|
||||
The main output is a tar file: `kubernetes.tar.gz`. This includes:
|
||||
* Cross compiled client utilities.
|
||||
|
@ -109,4 +109,4 @@ In addition, there are some other tar files that are created:
|
|||
|
||||
When building final release tars, they are first staged into `_output/release-stage` before being tar'd up and put into `_output/release-tars`.
|
||||
|
||||
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/build/README.md?pixel)]()
|
||||
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/build-tools/README.md?pixel)]()
|
|
@ -41,15 +41,15 @@ readonly KUBE_BUILD_PPC64LE="${KUBE_BUILD_PPC64LE:-n}"
|
|||
|
||||
# Constants
|
||||
readonly KUBE_BUILD_IMAGE_REPO=kube-build
|
||||
readonly KUBE_BUILD_IMAGE_CROSS_TAG="$(cat ${KUBE_ROOT}/build/build-image/cross/VERSION)"
|
||||
readonly KUBE_BUILD_IMAGE_CROSS_TAG="$(cat ${KUBE_ROOT}/build-tools/build-image/cross/VERSION)"
|
||||
|
||||
# This version number is used to cause everyone to rebuild their data containers
|
||||
# and build image. This is especially useful for automated build systems like
|
||||
# Jenkins.
|
||||
#
|
||||
# Increment/change this number if you change the build image (anything under
|
||||
# build/build-image) or change the set of volumes in the data container.
|
||||
readonly KUBE_BUILD_IMAGE_VERSION_BASE="$(cat ${KUBE_ROOT}/build/build-image/VERSION)"
|
||||
# build-tools/build-image) or change the set of volumes in the data container.
|
||||
readonly KUBE_BUILD_IMAGE_VERSION_BASE="$(cat ${KUBE_ROOT}/build-tools/build-image/VERSION)"
|
||||
readonly KUBE_BUILD_IMAGE_VERSION="${KUBE_BUILD_IMAGE_VERSION_BASE}-${KUBE_BUILD_IMAGE_CROSS_TAG}"
|
||||
|
||||
# Here we map the output directories across both the local and remote _output
|
||||
|
@ -421,8 +421,8 @@ function kube::build::build_image() {
|
|||
|
||||
cp /etc/localtime "${LOCAL_OUTPUT_BUILD_CONTEXT}/"
|
||||
|
||||
cp build/build-image/Dockerfile "${LOCAL_OUTPUT_BUILD_CONTEXT}/Dockerfile"
|
||||
cp build/build-image/rsyncd.sh "${LOCAL_OUTPUT_BUILD_CONTEXT}/"
|
||||
cp build-tools/build-image/Dockerfile "${LOCAL_OUTPUT_BUILD_CONTEXT}/Dockerfile"
|
||||
cp build-tools/build-image/rsyncd.sh "${LOCAL_OUTPUT_BUILD_CONTEXT}/"
|
||||
dd if=/dev/urandom bs=512 count=1 2>/dev/null | LC_ALL=C tr -dc 'A-Za-z0-9' | dd bs=32 count=1 2>/dev/null > "${LOCAL_OUTPUT_BUILD_CONTEXT}/rsyncd.password"
|
||||
chmod go= "${LOCAL_OUTPUT_BUILD_CONTEXT}/rsyncd.password"
|
||||
|
||||
|
@ -640,7 +640,7 @@ function kube::build::start_rsyncd_container() {
|
|||
return 0
|
||||
fi
|
||||
|
||||
kube::log::error "Could not connect to rsync container. See build/README.md for setting up remote Docker engine."
|
||||
kube::log::error "Could not connect to rsync container. See build-tools/README.md for setting up remote Docker engine."
|
||||
return 1
|
||||
}
|
||||
|
|
@ -20,7 +20,7 @@ set -o nounset
|
|||
set -o pipefail
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
source "${KUBE_ROOT}/build/common.sh"
|
||||
source "${KUBE_ROOT}/build-tools/common.sh"
|
||||
|
||||
kube::build::verify_prereqs
|
||||
kube::build::copy_output
|
|
@ -26,4 +26,4 @@ $ make push ARCH=ppc64le
|
|||
If you don't want to push the images, run `make` or `make build` instead
|
||||
|
||||
|
||||
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/build/debian-iptables/README.md?pixel)]()
|
||||
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/build-tools/debian-iptables/README.md?pixel)]()
|
|
@ -2,4 +2,4 @@
|
|||
|
||||
Tim Hockin <thockin@google.com>
|
||||
|
||||
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/build/kube-dns/MAINTAINERS.md?pixel)]()
|
||||
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/build-tools/kube-dns/MAINTAINERS.md?pixel)]()
|
|
@ -48,7 +48,7 @@ all: container
|
|||
container:
|
||||
# Copy the content in this dir to the temp dir
|
||||
cp $(KUBE_ROOT)/_output/dockerized/bin/$(PLATFORM)/$(ARCH)/kube-dns $(TEMP_DIR)
|
||||
cp $(KUBE_ROOT)/build/kube-dns/Dockerfile $(TEMP_DIR)
|
||||
cp $(KUBE_ROOT)/build-tools/kube-dns/Dockerfile $(TEMP_DIR)
|
||||
|
||||
# Replace BASEIMAGE with the real base image
|
||||
cd $(TEMP_DIR) && sed -i "s|BASEIMAGE|$(BASEIMAGE)|g" Dockerfile
|
|
@ -262,4 +262,4 @@ of the version number for the `kube-dns` replication controller and well as the
|
|||
`version` label. This will permit a rolling update of `kube-dns`.
|
||||
|
||||
|
||||
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/build/kube-dns/README.md?pixel)]()
|
||||
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/build-tools/kube-dns/README.md?pixel)]()
|
|
@ -8,7 +8,7 @@ are ready, not on every PR.
|
|||
|
||||
```
|
||||
make release
|
||||
cd build/kube-dns
|
||||
cd build-tools/kube-dns
|
||||
make container PREFIX=<your-docker-hub> TAG=rc
|
||||
```
|
||||
|
||||
|
@ -45,4 +45,4 @@ make container PREFIX=<your-docker-hub> TAG=rc
|
|||
8. Allow the PR to be merged.
|
||||
|
||||
|
||||
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/build/kube-dns/RELEASES.md?pixel)]()
|
||||
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/build-tools/kube-dns/RELEASES.md?pixel)]()
|
|
@ -25,7 +25,7 @@ set -o nounset
|
|||
set -o pipefail
|
||||
|
||||
KUBE_ROOT="$(dirname "${BASH_SOURCE}")/.."
|
||||
source "${KUBE_ROOT}/build/common.sh"
|
||||
source "${KUBE_ROOT}/build-tools/common.sh"
|
||||
|
||||
kube::build::verify_prereqs
|
||||
kube::build::build_image
|
|
@ -20,7 +20,7 @@ set -o nounset
|
|||
set -o pipefail
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
source "${KUBE_ROOT}/build/common.sh"
|
||||
source "${KUBE_ROOT}/build-tools/common.sh"
|
||||
|
||||
kube::build::verify_prereqs
|
||||
kube::build::clean
|
|
@ -22,7 +22,7 @@ set -o pipefail
|
|||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
|
||||
source "${KUBE_ROOT}/build/util.sh"
|
||||
source "${KUBE_ROOT}/build-tools/util.sh"
|
||||
|
||||
source "${KUBE_ROOT}/federation/cluster/common.sh"
|
||||
|
|
@ -26,8 +26,8 @@ set -o nounset
|
|||
set -o pipefail
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
source "${KUBE_ROOT}/build/common.sh"
|
||||
source "${KUBE_ROOT}/build/lib/release.sh"
|
||||
source "${KUBE_ROOT}/build-tools/common.sh"
|
||||
source "${KUBE_ROOT}/build-tools/lib/release.sh"
|
||||
|
||||
KUBE_RELEASE_RUN_TESTS=${KUBE_RELEASE_RUN_TESTS-y}
|
||||
|
||||
|
@ -44,7 +44,7 @@ kube::build::copy_output
|
|||
|
||||
if [[ "${FEDERATION:-}" == "true" ]];then
|
||||
(
|
||||
source "${KUBE_ROOT}/build/util.sh"
|
||||
source "${KUBE_ROOT}/build-tools/util.sh"
|
||||
# Write federated docker image tag to workspace
|
||||
kube::release::semantic_image_tag_version > "${KUBE_ROOT}/federation/manifests/federated-image.tag"
|
||||
)
|
|
@ -23,7 +23,7 @@ set -o nounset
|
|||
set -o pipefail
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
source "$KUBE_ROOT/build/common.sh"
|
||||
source "$KUBE_ROOT/build-tools/common.sh"
|
||||
|
||||
kube::build::verify_prereqs
|
||||
kube::build::build_image
|
|
@ -23,8 +23,8 @@ set -o nounset
|
|||
set -o pipefail
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
source "${KUBE_ROOT}/build/common.sh"
|
||||
source "${KUBE_ROOT}/build/lib/release.sh"
|
||||
source "${KUBE_ROOT}/build-tools/common.sh"
|
||||
source "${KUBE_ROOT}/build-tools/lib/release.sh"
|
||||
|
||||
kube::build::verify_prereqs
|
||||
kube::build::build_image
|
|
@ -1534,7 +1534,7 @@ function kube-push {
|
|||
# KUBE_ROOT
|
||||
function test-build-release {
|
||||
# Make a release
|
||||
"${KUBE_ROOT}/build/release.sh"
|
||||
"${KUBE_ROOT}/build-tools/release.sh"
|
||||
}
|
||||
|
||||
# Execute prior to running tests to initialize required structure. This is
|
||||
|
|
|
@ -522,7 +522,7 @@ function kube-down {
|
|||
# KUBE_ROOT
|
||||
function test-build-release {
|
||||
# Make a release
|
||||
"${KUBE_ROOT}/build/release.sh"
|
||||
"${KUBE_ROOT}/build-tools/release.sh"
|
||||
}
|
||||
|
||||
# SSH to a node by name ($1) and run a command ($2).
|
||||
|
|
|
@ -28,14 +28,14 @@ source "${KUBE_ROOT}/cluster/lib/util.sh"
|
|||
source "${KUBE_ROOT}/cluster/lib/logging.sh"
|
||||
# KUBE_RELEASE_VERSION_REGEX matches things like "v1.2.3" or "v1.2.3-alpha.4"
|
||||
#
|
||||
# NOTE This must match the version_regex in build/common.sh
|
||||
# NOTE This must match the version_regex in build-tools/common.sh
|
||||
# kube::release::parse_and_validate_release_version()
|
||||
KUBE_RELEASE_VERSION_REGEX="^v(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(-(beta|alpha)\\.(0|[1-9][0-9]*))?$"
|
||||
KUBE_RELEASE_VERSION_DASHED_REGEX="v(0|[1-9][0-9]*)-(0|[1-9][0-9]*)-(0|[1-9][0-9]*)(-(beta|alpha)-(0|[1-9][0-9]*))?"
|
||||
|
||||
# KUBE_CI_VERSION_REGEX matches things like "v1.2.3-alpha.4.56+abcdefg" This
|
||||
#
|
||||
# NOTE This must match the version_regex in build/common.sh
|
||||
# NOTE This must match the version_regex in build-tools/common.sh
|
||||
# kube::release::parse_and_validate_ci_version()
|
||||
KUBE_CI_VERSION_REGEX="^v(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)-(beta|alpha)\\.(0|[1-9][0-9]*)(\\.(0|[1-9][0-9]*)\\+[-0-9a-z]*)?$"
|
||||
KUBE_CI_VERSION_DASHED_REGEX="^v(0|[1-9][0-9]*)-(0|[1-9][0-9]*)-(0|[1-9][0-9]*)-(beta|alpha)-(0|[1-9][0-9]*)(-(0|[1-9][0-9]*)\\+[-0-9a-z]*)?"
|
||||
|
|
|
@ -1673,7 +1673,7 @@ function kube-push() {
|
|||
# KUBE_ROOT
|
||||
function test-build-release() {
|
||||
# Make a release
|
||||
"${KUBE_ROOT}/build/release.sh"
|
||||
"${KUBE_ROOT}/build-tools/release.sh"
|
||||
}
|
||||
|
||||
# Execute prior to running tests to initialize required structure. This is
|
||||
|
|
|
@ -67,7 +67,7 @@ function detect-project() {
|
|||
# KUBE_ROOT
|
||||
function test-build-release() {
|
||||
echo "... in gke:test-build-release()" >&2
|
||||
"${KUBE_ROOT}/build/release.sh"
|
||||
"${KUBE_ROOT}/build-tools/release.sh"
|
||||
}
|
||||
|
||||
# Verify needed binaries exist.
|
||||
|
|
|
@ -10,7 +10,7 @@ See https://github.com/kubernetes/kubernetes/blob/master/docs/devel/local-cluste
|
|||
|
||||
```console
|
||||
# First, build the binaries
|
||||
$ build/run.sh make cross
|
||||
$ build-tools/run.sh make cross
|
||||
|
||||
# Build for linux/amd64 (default)
|
||||
$ make push VERSION={target_version} ARCH=amd64
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
# Build the kube-discovery image.
|
||||
#
|
||||
# Requires a pre-built kube-discovery binary:
|
||||
# build/run.sh /bin/bash -c "KUBE_BUILD_PLATFORMS=linux/ARCH make WHAT=cmd/kube-discovery"
|
||||
# build-tools/run.sh /bin/bash -c "KUBE_BUILD_PLATFORMS=linux/ARCH make WHAT=cmd/kube-discovery"
|
||||
#
|
||||
# Usage:
|
||||
# [ARCH=amd64] [REGISTRY="gcr.io/google_containers"] make (build|push) VERSION={some_released_version_of_kubernetes}
|
||||
|
|
|
@ -23,7 +23,7 @@ $ cat token-map.json
|
|||
## Build And Run From Source
|
||||
|
||||
```
|
||||
$ build/run.sh /bin/bash -c "KUBE_BUILD_PLATFORMS=linux/amd64 make WHAT=cmd/kube-discovery"
|
||||
$ build-tools/run.sh /bin/bash -c "KUBE_BUILD_PLATFORMS=linux/amd64 make WHAT=cmd/kube-discovery"
|
||||
$ _output/dockerized/bin/linux/amd64/kube-discovery
|
||||
2016/08/23 19:17:28 Listening for requests on port 9898.
|
||||
|
||||
|
|
|
@ -97,7 +97,7 @@ if [[ -z "${KUBECTL_PATH:-}" ]]; then
|
|||
echo "It looks as if you don't have a compiled kubectl binary"
|
||||
echo
|
||||
echo "If you are running from a clone of the git repo, please run"
|
||||
echo "'./build/run.sh make cross'. Note that this requires having"
|
||||
echo "'./build-tools/run.sh make cross'. Note that this requires having"
|
||||
echo "Docker installed."
|
||||
echo
|
||||
echo "If you are running from a binary release tarball, something is wrong. "
|
||||
|
|
|
@ -169,7 +169,7 @@ function prepare-e2e {
|
|||
function test-build-release {
|
||||
# Make a release
|
||||
export KUBE_RELEASE_RUN_TESTS=N
|
||||
"${KUBE_ROOT}/build/release.sh"
|
||||
"${KUBE_ROOT}/build-tools/release.sh"
|
||||
}
|
||||
|
||||
# Must ensure that the following ENV vars are set
|
||||
|
|
|
@ -28,7 +28,7 @@ NODE_IPS=""
|
|||
# KUBE_ROOT
|
||||
function test-build-release() {
|
||||
# Make a release
|
||||
"${KUBE_ROOT}/build/release.sh"
|
||||
"${KUBE_ROOT}/build-tools/release.sh"
|
||||
}
|
||||
|
||||
# From user input set the necessary k8s and etcd configuration information
|
||||
|
|
|
@ -324,7 +324,7 @@ function kube-push {
|
|||
# Execute prior to running tests to build a release if required for env
|
||||
function test-build-release {
|
||||
# Make a release
|
||||
"${KUBE_ROOT}/build/release.sh"
|
||||
"${KUBE_ROOT}/build-tools/release.sh"
|
||||
}
|
||||
|
||||
# Execute prior to running tests to initialize required structure
|
||||
|
|
|
@ -37,13 +37,13 @@ can be found [here](https://www.bazel.io/versions/master/docs/install.html).
|
|||
To build docker images for the components, run:
|
||||
|
||||
```
|
||||
$ bazel build //build/...
|
||||
$ bazel build //build-tools/...
|
||||
```
|
||||
|
||||
To run many of the unit tests, run:
|
||||
|
||||
```
|
||||
$ bazel test //cmd/... //build/... //pkg/... //federation/... //plugin/...
|
||||
$ bazel test //cmd/... //build-tools/... //pkg/... //federation/... //plugin/...
|
||||
```
|
||||
|
||||
To update automanaged build files, run:
|
||||
|
|
|
@ -79,7 +79,7 @@ tracking the tool to automate the batching procedure.
|
|||
#### Cherrypicking a doc change
|
||||
|
||||
If you are cherrypicking a change which adds a doc, then you also need to run
|
||||
`build/versionize-docs.sh` in the release branch to versionize that doc.
|
||||
`build-tools/versionize-docs.sh` in the release branch to versionize that doc.
|
||||
Ideally, just running `hack/cherry_pick_pull.sh` should be enough, but we are
|
||||
not there yet: [#18861](https://github.com/kubernetes/kubernetes/issues/18861)
|
||||
|
||||
|
@ -89,7 +89,7 @@ running `hack/cherry_pick_pull.sh` and before merging the PR:
|
|||
```
|
||||
$ git checkout -b automated-cherry-pick-of-#123456-upstream-release-3.14
|
||||
origin/automated-cherry-pick-of-#123456-upstream-release-3.14
|
||||
$ ./build/versionize-docs.sh release-3.14
|
||||
$ ./build-tools/versionize-docs.sh release-3.14
|
||||
$ git commit -a -m "Running versionize docs"
|
||||
$ git push origin automated-cherry-pick-of-#123456-upstream-release-3.14
|
||||
```
|
||||
|
|
|
@ -49,7 +49,7 @@ branch, but release branches of Kubernetes should not change.
|
|||
|
||||
Official releases are built using Docker containers. To build Kubernetes using
|
||||
Docker please follow [these instructions]
|
||||
(http://releases.k8s.io/HEAD/build/README.md).
|
||||
(http://releases.k8s.io/HEAD/build-tools/README.md).
|
||||
|
||||
## Building Kubernetes on a local OS/shell environment
|
||||
|
||||
|
@ -142,10 +142,10 @@ bump to a minor release version for security updates.
|
|||
Since kubernetes is mostly built and tested in containers, there are a few
|
||||
unique places you need to update the go version.
|
||||
|
||||
- The image for cross compiling in [build/build-image/cross/](../../build/build-image/cross/). The `VERSION` file and `Dockerfile`.
|
||||
- The image for cross compiling in [build-tools/build-image/cross/](../../build-tools/build-image/cross/). The `VERSION` file and `Dockerfile`.
|
||||
- Update [dockerized-e2e-runner.sh](https://github.com/kubernetes/test-infra/blob/master/jenkins/dockerized-e2e-runner.sh) to run a kubekins-e2e with the desired go version, which requires pushing [e2e-image](https://github.com/kubernetes/test-infra/tree/master/jenkins/e2e-image) and [test-image](https://github.com/kubernetes/test-infra/tree/master/jenkins/test-image) images that are `FROM` the desired go version.
|
||||
- The docker image being run in [hack/jenkins/gotest-dockerized.sh](../../hack/jenkins/gotest-dockerized.sh).
|
||||
- The cross tag `KUBE_BUILD_IMAGE_CROSS_TAG` in [build/common.sh](../../build/common.sh)
|
||||
- The cross tag `KUBE_BUILD_IMAGE_CROSS_TAG` in [build-tools/common.sh](../../build-tools/common.sh)
|
||||
|
||||
## Workflow
|
||||
|
||||
|
|
|
@ -305,7 +305,7 @@ Next, specify the docker repository where your ci images will be pushed.
|
|||
* Push the federation container images
|
||||
|
||||
```sh
|
||||
$ build/push-federation-images.sh
|
||||
$ build-tools/push-federation-images.sh
|
||||
```
|
||||
|
||||
#### Deploy federation control plane
|
||||
|
|
|
@ -195,7 +195,7 @@ KUBE_DNS_DOMAIN="cluster.local"
|
|||
KUBE_DNS_REPLICAS=1
|
||||
```
|
||||
|
||||
To know more on DNS service you can look [here](http://issue.k8s.io/6667). Related documents can be found [here](../../build/kube-dns/#how-do-i-configure-it)
|
||||
To know more on DNS service you can look [here](http://issue.k8s.io/6667). Related documents can be found [here](../../build-tools/kube-dns/#how-do-i-configure-it)
|
||||
|
||||
|
||||
<!-- BEGIN MUNGE: GENERATED_ANALYTICS -->
|
||||
|
|
|
@ -311,7 +311,7 @@ A great blog post [that is describing this](https://medium.com/@rakyll/go-1-5-cr
|
|||
Before Go 1.5, the whole Go project had to be cross-compiled from source for **all** platforms that _might_ be used, and that was quite a slow process:
|
||||
|
||||
```console
|
||||
# From build/build-image/cross/Dockerfile when we used Go 1.4
|
||||
# From build-tools/build-image/cross/Dockerfile when we used Go 1.4
|
||||
$ cd /usr/src/go/src
|
||||
$ for platform in ${PLATFORMS}; do GOOS=${platform%/*} GOARCH=${platform##*/} ./make.bash --no-clean; done
|
||||
```
|
||||
|
@ -322,7 +322,7 @@ If you cross-compile multiple times, Go will build parts of `std`, throw it away
|
|||
However, there is an easy way of cross-compiling all `std` packages in advance with Go 1.5+:
|
||||
|
||||
```console
|
||||
# From build/build-image/cross/Dockerfile when we're using Go 1.5+
|
||||
# From build-tools/build-image/cross/Dockerfile when we're using Go 1.5+
|
||||
$ for platform in ${PLATFORMS}; do GOOS=${platform%/*} GOARCH=${platform##*/} go install std; done
|
||||
```
|
||||
|
||||
|
@ -411,7 +411,7 @@ In order to dynamically compile a go binary with `cgo`, we need `gcc` installed
|
|||
|
||||
The only Kubernetes binary that is using C code is the `kubelet`, or in fact `cAdvisor` on which `kubelet` depends. `hyperkube` is also dynamically linked as long as `kubelet` is. We should aim to make `kubelet` statically linked.
|
||||
|
||||
The normal `x86_64-linux-gnu` can't cross-compile binaries, so we have to install gcc cross-compilers for every platform. We do this in the [`kube-cross`](../../build/build-image/cross/Dockerfile) image,
|
||||
The normal `x86_64-linux-gnu` can't cross-compile binaries, so we have to install gcc cross-compilers for every platform. We do this in the [`kube-cross`](../../build-tools/build-image/cross/Dockerfile) image,
|
||||
and depend on the [`emdebian.org` repository](https://wiki.debian.org/CrossToolchains). Depending on `emdebian` isn't ideal, so we should consider using the latest `gcc` cross-compiler packages from the `ubuntu` main repositories in the future.
|
||||
|
||||
Here's an example when cross-compiling plain C code:
|
||||
|
|
|
@ -38,7 +38,7 @@ This is a toy example demonstrating how to use kubernetes DNS.
|
|||
|
||||
### Step Zero: Prerequisites
|
||||
|
||||
This example assumes that you have forked the repository and [turned up a Kubernetes cluster](../../docs/getting-started-guides/). Make sure DNS is enabled in your setup, see [DNS doc](../../build/kube-dns/).
|
||||
This example assumes that you have forked the repository and [turned up a Kubernetes cluster](../../docs/getting-started-guides/). Make sure DNS is enabled in your setup, see [DNS doc](../../build-tools/kube-dns/).
|
||||
|
||||
```sh
|
||||
$ cd kubernetes
|
||||
|
|
|
@ -101,7 +101,7 @@ this example.
|
|||
* Kubernetes version 1.2 is required due to using newer features, such
|
||||
at PV Claims and Deployments. Run `kubectl version` to see your
|
||||
cluster version.
|
||||
* [Cluster DNS](../../build/kube-dns/) will be used for service discovery.
|
||||
* [Cluster DNS](../../build-tools/kube-dns/) will be used for service discovery.
|
||||
* An [external load balancer](http://kubernetes.io/docs/user-guide/services/#type-loadbalancer)
|
||||
will be used to access WordPress.
|
||||
* [Persistent Volume Claims](http://kubernetes.io/docs/user-guide/persistent-volumes/)
|
||||
|
|
|
@ -58,7 +58,7 @@ This example assumes
|
|||
|
||||
- You have a Kubernetes cluster installed and running.
|
||||
- That you have installed the ```kubectl``` command line tool installed in your path and configured to talk to your Kubernetes cluster
|
||||
- That your Kubernetes cluster is running [kube-dns](../../build/kube-dns/) or an equivalent integration.
|
||||
- That your Kubernetes cluster is running [kube-dns](../../build-tools/kube-dns/) or an equivalent integration.
|
||||
|
||||
Optionally, your Kubernetes cluster should be configured with a Loadbalancer integration (automatically configured via kube-up or GKE)
|
||||
|
||||
|
|
|
@ -286,7 +286,7 @@ function push-federation-images {
|
|||
: "${FEDERATION_PUSH_REPO_BASE?Must set FEDERATION_PUSH_REPO_BASE env var}"
|
||||
: "${FEDERATION_IMAGE_TAG?Must set FEDERATION_IMAGE_TAG env var}"
|
||||
|
||||
source "${KUBE_ROOT}/build/common.sh"
|
||||
source "${KUBE_ROOT}/build-tools/common.sh"
|
||||
source "${KUBE_ROOT}/hack/lib/util.sh"
|
||||
|
||||
local FEDERATION_BINARIES=${FEDERATION_BINARIES:-"hyperkube"}
|
||||
|
|
|
@ -24,7 +24,7 @@ KUBE_ROOT=$(readlink -m $(dirname "${BASH_SOURCE}")/../../)
|
|||
|
||||
tagfile="${KUBE_ROOT}/federation/manifests/federated-image.tag"
|
||||
if [[ ! -f "$tagfile" ]]; then
|
||||
echo "FATAL: tagfile ${tagfile} does not exist. Make sure that you have run build/push-federation-images.sh"
|
||||
echo "FATAL: tagfile ${tagfile} does not exist. Make sure that you have run build-tools/push-federation-images.sh"
|
||||
exit 1
|
||||
fi
|
||||
export FEDERATION_IMAGE_TAG="$(cat "${KUBE_ROOT}/federation/manifests/federated-image.tag")"
|
||||
|
|
|
@ -32,8 +32,8 @@ KUBE_ROOT="$(dirname "${BASH_SOURCE}")/../.."
|
|||
DEPLOY_ROOT="${KUBE_ROOT}/federation/deploy"
|
||||
CUR_ROOT="$(pwd)"
|
||||
|
||||
source "${KUBE_ROOT}/build/common.sh"
|
||||
source "${KUBE_ROOT}/build/util.sh"
|
||||
source "${KUBE_ROOT}/build-tools/common.sh"
|
||||
source "${KUBE_ROOT}/build-tools/util.sh"
|
||||
# Provides the detect-project function
|
||||
source "${KUBE_ROOT}/cluster/kube-util.sh"
|
||||
# Provides logging facilities
|
||||
|
|
|
@ -23,7 +23,7 @@ set -o pipefail
|
|||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
|
||||
# Build a release
|
||||
"${KUBE_ROOT}/build/release.sh"
|
||||
"${KUBE_ROOT}/build-tools/release.sh"
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "Building a release failed!"
|
||||
exit 1
|
||||
|
|
|
@ -24,7 +24,7 @@ set -o pipefail
|
|||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
|
||||
# Then build a release
|
||||
"${KUBE_ROOT}/build/release.sh"
|
||||
"${KUBE_ROOT}/build-tools/release.sh"
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "Building the release failed!"
|
||||
exit 1
|
||||
|
|
|
@ -27,7 +27,7 @@ set -o nounset
|
|||
set -o pipefail
|
||||
|
||||
KUBE_ROOT="$(dirname "${BASH_SOURCE}")/.."
|
||||
source "${KUBE_ROOT}/build/common.sh"
|
||||
source "${KUBE_ROOT}/build-tools/common.sh"
|
||||
|
||||
if [[ -z "${REGISTRY:-}" ]]; then
|
||||
echo "REGISTRY must be set"
|
||||
|
|
|
@ -45,7 +45,7 @@ if [[ "${FEDERATION:-}" == "true" ]]; then
|
|||
done
|
||||
tagfile="${KUBE_ROOT}/federation/manifests/federated-image.tag"
|
||||
if [[ ! -f "$tagfile" ]]; then
|
||||
echo "FATAL: tagfile ${tagfile} does not exist. Make sure that you have run build/push-federation-images.sh"
|
||||
echo "FATAL: tagfile ${tagfile} does not exist. Make sure that you have run build-tools/push-federation-images.sh"
|
||||
exit 1
|
||||
fi
|
||||
export FEDERATION_IMAGE_TAG="$(cat "${KUBE_ROOT}/federation/manifests/federated-image.tag")"
|
||||
|
|
|
@ -20,7 +20,7 @@ readonly KUBE_GOPATH="${KUBE_OUTPUT}/go"
|
|||
|
||||
# The set of server targets that we are only building for Linux
|
||||
# Note: if you are adding something here, you might need to add it to
|
||||
# kube::build::source_targets in build/common.sh as well.
|
||||
# kube::build::source_targets in build-tools/common.sh as well.
|
||||
kube::golang::server_targets() {
|
||||
local targets=(
|
||||
cmd/kube-dns
|
||||
|
@ -68,7 +68,7 @@ else
|
|||
readonly KUBE_SERVER_PLATFORMS
|
||||
|
||||
# If we update this we should also update the set of golang compilers we build
|
||||
# in 'build/build-image/cross/Dockerfile'. However, it's only a bit faster since go 1.5, not mandatory
|
||||
# in 'build-tools/build-image/cross/Dockerfile'. However, it's only a bit faster since go 1.5, not mandatory
|
||||
KUBE_CLIENT_PLATFORMS=(
|
||||
linux/amd64
|
||||
linux/386
|
||||
|
|
|
@ -21,9 +21,9 @@ set -o pipefail
|
|||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
|
||||
# NOTE: All output from this script needs to be copied back to the calling
|
||||
# source tree. This is managed in kube::build::copy_output in build/common.sh.
|
||||
# source tree. This is managed in kube::build::copy_output in build-tools/common.sh.
|
||||
# If the output set is changed update that function.
|
||||
|
||||
"${KUBE_ROOT}/build/run.sh" hack/update-generated-protobuf-dockerized.sh "$@"
|
||||
"${KUBE_ROOT}/build-tools/run.sh" hack/update-generated-protobuf-dockerized.sh "$@"
|
||||
|
||||
# ex: ts=2 sw=2 et filetype=sh
|
||||
|
|
|
@ -21,9 +21,9 @@ set -o pipefail
|
|||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
|
||||
# NOTE: All output from this script needs to be copied back to the calling
|
||||
# source tree. This is managed in kube::build::copy_output in build/common.sh.
|
||||
# source tree. This is managed in kube::build::copy_output in build-tools/common.sh.
|
||||
# If the output set is changed update that function.
|
||||
|
||||
${KUBE_ROOT}/build/run.sh hack/update-generated-runtime-dockerized.sh "$@"
|
||||
${KUBE_ROOT}/build-tools/run.sh hack/update-generated-runtime-dockerized.sh "$@"
|
||||
|
||||
# ex: ts=2 sw=2 et filetype=sh
|
||||
|
|
|
@ -29,7 +29,7 @@ package version
|
|||
// works for GitHub tar downloads.
|
||||
//
|
||||
// When releasing a new Kubernetes version, this file is updated by
|
||||
// build/mark_new_version.sh to reflect the new version, and then a
|
||||
// build-tools/mark_new_version.sh to reflect the new version, and then a
|
||||
// git annotated tag (using format vX.Y where X == Major version and Y
|
||||
// == Minor version) is created to point to the commit that updates
|
||||
// pkg/version/base.go
|
||||
|
|
Loading…
Reference in New Issue