getenvoy-package
GetEnvoy is spread across multiple repos. For more details head over to GetEnvoy.io.
This repository contains scripts for building Envoy Proxy for GetEnvoy.
Directory Structure
envoy_pkg
contains the scripts that packages GetEnvoy with bazel configurations for GetEnvoy. It also include packaging tests and build targets for rpm/deb/tar/docker.common
contains theMakefile
that pulls upstream build image scripts and some modifications.centos
,ubuntu-xenial
,alpine
andmac
contains OS specific scripts.
Build Image
The build image is a docker image contains all toolchains required to build Envoy, with some OS specific configuration and patches. This is based on Envoy's build_container scripts, and it is to provide consistent build result with the combination of build image and upstream commit.
To build the image, run:
$ make
builds docker images for Linux distributions in Linux, and macOS build context in macOS.
The docker images will be tagged as gcr.io/getenvoy-package/build-<DISTRIBUTION>:<GIT_SHA>
.
CI built images are published to gcr.io/getenvoy-package
.
Build GetEnvoy package
To build the GetEnvoy package with the build image, run:
docker run -v ${OUTPUT_DIR}:/tmp/getenvoy-package gcr.io/getenvoy-package/build-<DISTRIBUTION>:<GIT_SHA> ./package_envoy.py --dist <DISTRIBUTION> --artifacts_directory /tmp/getenvoy-package
Then the tar package will be copied to where OUTPUT_DIR
points to. The GetEnvoy package is versioned with upstream git SHA and the build repo SHA. i
Debugging package pipeline
To test your local changes to envoy_pkg
, run:
$ docker run -v $(pwd):/envoy_pkg -it gcr.io/getenvoy-package/build-<DISTRIBUTION>:<GIT_SHA>
Then inside docker run so the script won't cleanup the build environment.
./package_envoy.py --dist <DISTRIBUTION> --nocleanup
Supported distribution
- Linux GLIBC - which supports both Ubuntu 14.04+, CentOS/RHEL 7+.
- macOS 10.14.4 with Xcode 11.1
- Alpine Linux (experimental, no GetEnvoy release based on this)