os-explode

command module
v0.0.0-...-21ff4ce Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 4, 2016 License: AGPL-3.0 Imports: 4 Imported by: 0

README

os-explode

This is a program which watches the OpenShift API for ImageStream events (such as when an image is pushed to the integrated registry) and explodes the contents of those images onto disk for use with automated tooling (e.g. image scanners or runc).

Building

This program is built against OpenShift. In order to build it, you must copy the dependencies of OpenShift into the project. If you want to build against a specific version of OpenShift, then edit the file scripts/copy-dependencies and run it. It will make the versions of software the OpenShift depends on available during the build.

With dependencies satisfied, this program is built using go build with no fancy or special options.

Running

The program can be run as a standalone executable, in a docker container, or in an OpenShift pod.

OpenShift/Kubernetes YAML files have been provided in the kube/ directory. To configure a quick deployment, run the following commands.

oc create serviceaccount exploder
oc new-app -f templates/exploder-openshift.yaml
oadm policy add-scc-to-user privileged system:serviceaccount:default:exploder

See below for optional parameters.

Requirements

os-explode is designed to run as root, or at least with CAP_CHOWN in Linux. The token used to access the OpenShift API must have at least permissions to list ImageStreams within a confined namespace (must be a member of the project/namespace), and must be able to list images at the cluster scope.

Configuration

Configuration is done entirely within the environment. The program recognizes the following variables:

Variable Use Provided By
KUBERNETES_SERVICE_HOST OpenShift API Host Kubernetes, otherwise required
KUBERNETES_SERVICE_PORT OpenShift API Port Kubernetes, otherwise required
KUBERNETES_SERVICE_TOKEN OpenShift API Bearer Token Kubernetes, otherwise required[1]
OS_WATCH_NAMESPACE Restrict watch to a specific namespace Default to "" (all)
OS_WATCH_INSECURE If "true", don't validate certificates for API transport Default to "false"
OSTREE_REPO_PATH Path the OSTree repo for exploded images. Default to "/explode"
OS_IMAGE_BLOB_SOURCE URL to the docker layer "blob" storage, currently only the file:// scheme is supported. Default to "file:///registry"
DOCKER_REGISTRY_SERVICE_HOST OpenShift integrated docker registry host OpenShift, othwerwise optional [2]
DOCKER_REGISTRY_SERVICE_PORT OpenShift integrated docker registry port OpenShift, otherwise optional [2]
  • [1] If this environment variable is not specified, Kubernetes provides the token as /var/run/secrets/kubernetes.io/serviceaccount/token. If the variable is provided, it will be taken to be the token value
  • [2] The Docker registry host/port is used to determine if an image can be exploded. In many cases, ImageStreams may refer to external images, and the integrated registry can "pullthrough" these images. If an ImageStream's Docker Image pull reference doesn't match the configured registry host/port, it will be ignored.

License

GNU Affero GPL v3

This program is distributed under the terms of the GNU Affero General Public License version 3.0. Included scripts and vendored sources (code in the vendor/ directory) may be provided under their own, separate licenses.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
pkg
Package pkg contains all of the libraries for os-explode
Package pkg contains all of the libraries for os-explode

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL