Using an Image Store for Edge Delta

Using an Image Store to keep Edge Delta images under version control.

Overview

You can save the Edge Delta agent image in your own image repository. Keeping your images (and configurations) isolated gives you control over changes. With this workflow, change control on image repository enables you to have change control on your cluster. You can also monitor changes to images and configurations using code diffs before applying them to your image repo, configuration repos (if you are using Continuous Delivery), and in turn, cluster. This also makes maintaining custom settings easier as you can isolate all your customizations from vendor updates to the default manifests.

Alternatively, for a lightweight implementation you can use the public Edge Delta chart repository and image store and simply pass in custom variables.

Create an Image Store Containing the Edge Delta Images

On your local machine:

  1. Create an image store and ensure you have access to it, in this example a docker hub account is used.
  2. Unpack a copy of the chart you downloaded earlier (replace x.x.xx) and open it.
helm pull edgedelta/edgedelta --version vx.x.xx --untar 
cd edgedelta
cat values.yaml
  1. Examine the values.yaml file and note the image repo location for the agent: gcr.io/edgedelta/agent
image:
  name: gcr.io/edgedelta/agent

You may want to also have optional Edge Delta images in your store like the trouble shooter and HttpRecorder:

  • gcr.io/edgedelta/agent-troubleshooter:latest
  • gcr.io/edgedelta/httprecorder:latest
  1. Pull the specific Edge Delta agent image and version (replace x.x.xx) from the public image store.
docker pull gcr.io/edgedelta/agent:vx.x.xx
  1. Tag the local image with your image repo URL and the tag (replace x.x.xx)
docker tag gcr.io/edgedelta/agent:vx.x.xx <imagerepo.io/yourusername/yourreponame>:vx.x.xx
  1. Push the local image to your store using the tag (replace x.x.xx).
docker push <imagerepo.io/username/reponame>:vx.x.xx
  1. Clean up the unpacked chart and local images.
docker image ls
docker image rm -f <image ID>
cd .. 
rm -r edgedelta

See Also:

GitOps Principles Deployment of Edge Delta