lizan / getenvoy-package

Packaging pipeline for Envoy

Home Page:https://www.getenvoy.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 the Makefile that pulls upstream build image scripts and some modifications.
  • centos, ubuntu-xenial, alpineand mac 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/packaged gcr.io/getenvoy-package/build-<DISTRIBUTION>:<GIT_SHA> ./package_envoy.py --dist <DISTRIBUTION>

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

About

Packaging pipeline for Envoy

https://www.getenvoy.io/

License:Apache License 2.0


Languages

Language:Python 72.7%Language:Makefile 11.4%Language:Shell 11.3%Language:Dockerfile 3.3%Language:C++ 1.3%