contrib/kube-prometheus: Add a script to sync images to an internal registry
Crazy at it sounds, some Kubernetes installations don't have access to Internet and source all their images from an internal registry. sync-to-internal-registry.jsonnet is a jsonnet snippet that helps with the task of pushing upstream images used by the prometheus operator to an internal registry by printing the right docker pull/tag/push commands. $ jsonnet -J vendor -S --tla-str repository=internal-registry.com/organization sync-to-internal-registry.jsonnet docker pull quay.io/coreos/addon-resizer:1.0 docker tag quay.io/coreos/addon-resizer:1.0 internal-registry.com/organization/addon-resizer:1.0 docker push internal-registry.com/organization/addon-resizer:1.0 docker pull quay.io/prometheus/alertmanager:v0.15.2 docker tag quay.io/prometheus/alertmanager:v0.15.2 internal-registry.com/organization/alertmanager:v0.15.2 docker push internal-registry.com/organization/alertmanager:v0.15.2 ...
This commit is contained in:
21
jsonnet/kube-prometheus/lib/image.libsonnet
Normal file
21
jsonnet/kube-prometheus/lib/image.libsonnet
Normal file
@@ -0,0 +1,21 @@
|
||||
// imageName extracts the image name from a fully qualified image string. eg.
|
||||
// quay.io/coreos/addon-resizer -> addon-resizer
|
||||
// grafana/grafana -> grafana
|
||||
local imageName(image) =
|
||||
local parts = std.split(image, '/');
|
||||
local len = std.length(parts);
|
||||
if len == 3 then
|
||||
# registry.com/org/image
|
||||
parts[2]
|
||||
else if len == 2 then
|
||||
# org/image
|
||||
parts[1]
|
||||
else if len == 1 then
|
||||
# image, ie. busybox
|
||||
parts[0]
|
||||
else
|
||||
error 'unknown image format: ' + image;
|
||||
|
||||
{
|
||||
imageName:: imageName,
|
||||
}
|
||||
1
jsonnet/kube-prometheus/lib/lib.libsonnet
Normal file
1
jsonnet/kube-prometheus/lib/lib.libsonnet
Normal file
@@ -0,0 +1 @@
|
||||
(import 'image.libsonnet')
|
||||
Reference in New Issue
Block a user