pipelines/third_party
Yuan (Bob) Gong c5c8d715ed
fix: upgrade some images to reduce vulnerabilities (#5065)
* fix: upgrade some images to reduce vulnerabilities

* upgrade openssl
2021-02-01 10:23:02 -08:00
..
argo Upgraded Argo to v2.7.5 (#3537) 2020-05-11 23:52:21 -07:00
cli Move go license tools (#2748) 2019-12-17 21:09:57 -08:00
metadata_envoy fix: upgrade some images to reduce vulnerabilities (#5065) 2021-02-01 10:23:02 -08:00
minio License crawler for third party golang libraries (#2393) 2019-10-25 03:15:40 -07:00
OWNERS chore: remove inactive reviewers (#4111) 2020-06-30 19:10:06 -07:00
README.md Add third party license + source code to argo and minio images to comply with their license (#2201) 2019-09-30 22:39:32 -07:00
download_source.sh Add third party license + source code to argo and minio images to comply with their license (#2201) 2019-09-30 22:39:32 -07:00
license.txt Fix Makefile to add licenses using Go modules. (#674) 2019-01-14 15:25:27 -08:00

README.md

How to release third party images

Release a new third party image version

  1. Edit third_party/$LIBRARY/Dockerfile
  2. Change the line from IMAGE_NAME:TAG_NAME to from IMAGE_NAME:NEW_TAG_NAME
  3. Edit third_party/$LIBRARY/release.sh
  4. Change TAG to NEW_TAG_NAME.
  5. Commit and ask someone for review
  6. Run the following (you need to have storage access to ml-pipeline project)
    cd $KFP_SRC
    ./third_party/$LIBRARY/release.sh
    
  7. Make a PR that
    • changes all image references in .release.cloudbuild.yaml
    • changes all image references in manifests

How to build

cd $KFP_SRC
gcloud builds submit --config third_party/argo/cloudbuild.yaml . --substitutions=TAG_NAME="RELEASE_TAG_NAME_HERE"
gcloud builds submit --config third_party/minio/cloudbuild.yaml . --substitutions=TAG_NAME="RELEASE_TAG_NAME_HERE"

or you can build locally using docker too like the following

cd $KFP_SRC
docker build -t $IMAGE_NAME:$TAG -f third_party/minio/Dockerfile .

Verify your built images are good

Run the following command to start an interactive shell in a new container of the image (the image must have shell installed to be able to run it)

docker run -it --entrypoint sh $IMAGE_NAME

Or if the image doesn't have a complete OS (like argoproj/workflow-controller)

docker save nginx > nginx.tar
tar -xvf nginx.tar

This saves layers of the image to a tarball that you can extract and see.

Credits to: https://stackoverflow.com/questions/44769315/how-to-see-docker-image-contents

Release to gcr.io/ml-pipeline

(This has been automated by third_party/release.sh)

  1. First build images in your own project
  2. Use this gcloud command to retag your images to gcr.io/ml-pipeline
  3. When choosing the new tag, use the same text as the original release tag of the third party image