diff --git a/README.md b/README.md
index 9b72730..e6fba9c 100644
--- a/README.md
+++ b/README.md
@@ -152,38 +152,40 @@ matches the version of kubernetes deployed.
version of kubernetes in parallel. You could have one step which builds the
[node image], exports it as and OCI image, and pushes it to a registry and then
some more parallel jobs that consume that image. With that approach you don't
- need to compile the smae [node image] over and over.
- See also [the ouput `exported-node-image`](#out-exported-node-image).
+ need to compile the smae [node image] over and over.
+ See also [the ouput `exported-node-image`](#out-exported-node-image).
_Note_: If the task is configured to use upstream kind's default [node image],
this feature is not available. A warning is printed and the output is kept
empty.
-- `INSTALL_METALLB`
+- `INSTALL_METALLB`
If this parameter is set, [metallb] is installed onto the cluster. This
allows users to deploy services of type `LoadBalancer` and get an
`EXTERNAL-IP` for those. This external IP can be used to connect to a
exposed service from the task container, thus from code running in
`KIND_TESTS`.
-- `KIND_PRE_START`
+- `KIND_PRE_START`
... if you want or need to run something just before the kind cluster is
started
-- `DOCKERD_OPTS`
+- `DOCKERD_OPTS`
... if you need to add some configs when starting the docker daemon
-- `DOCKERD_TIMEOUT`
+- `DOCKERD_TIMEOUT`
... how long do you want to wait for docker to come up?
-- `KINDONC_DEBUG`
+- `KINDONC_DEBUG`
... if you want to see all the ugly things that are happening to bring up docker and to run kind
-- `KIND_LOGLEVEL`
- ... make kind more or less verbose when it is doing its business.
- For kind `<= 0.5.1` this value is used for the `--loglevel` option and needs to be one of `panic`, `fatal`, `error`, `warning`, `info`, `debug`.
- For kind `> 0.5.1` this value is used for the `--verbosity` option and needs to be and integer.
-- `KIND_CLUSTER_NAME`
+- `KIND_LOGLEVEL`
+ ... make kind more or less verbose when it is doing its business.
+ For kind `<= 0.5.1` this value is used for the `--loglevel` option and needs to be one of `panic`, `fatal`, `error`, `warning`, `info`, `debug`.
+ For kind `> 0.5.1` this value is used for the `--verbosity` option and needs to be and integer.
+- `KIND_CLUSTER_NAME`
... in case you want to change kind's cluster name -- you actually should not need to do that ...
+- `NODE_IMAGE`
+ ... in case you want to pull the kind node image from somewhere else ...
# Well known task inputs & outputs
## Inputs
-- `kind-on-c`, _mandatory_
+- `kind-on-c`, _mandatory_
The file tree of this repo. At least the [task file](./kind.yaml) and [the
entrypoint](./entrypoint.sh) will (or should) be used from this input, in
future potentially more.
diff --git a/entrypoint.sh b/entrypoint.sh
index 6605fba..ebb0182 100755
--- a/entrypoint.sh
+++ b/entrypoint.sh
@@ -513,6 +513,12 @@ kind::image::prepare() {
return 0
fi
+ if [ -n "${NODE_IMAGE+x}" ]
+ then
+ echo "${NODE_IMAGE}"
+ return 0
+ fi
+
# Fallback to not using a special node image, use the default from kind
# upstream
}
diff --git a/kind.yaml b/kind.yaml
index 9682742..c271695 100644
--- a/kind.yaml
+++ b/kind.yaml
@@ -23,14 +23,15 @@ outputs:
run:
path: kind-on-c/entrypoint.sh
params:
- KIND_TESTS:
- KIND_CONFIG:
- EXPORT_NODE_ROOTFS:
- EXPORT_NODE_IMAGE:
- INSTALL_METALLB:
- KIND_PRE_START:
- DOCKERD_OPTS:
- DOCKERD_TIMEOUT:
- KINDONC_DEBUG:
- KIND_LOGLEVEL:
- KIND_CLUSTER_NAME:
+ KIND_TESTS:
+ KIND_CONFIG:
+ EXPORT_NODE_ROOTFS:
+ EXPORT_NODE_IMAGE:
+ INSTALL_METALLB:
+ KIND_PRE_START:
+ DOCKERD_OPTS:
+ DOCKERD_TIMEOUT:
+ KINDONC_DEBUG:
+ KIND_LOGLEVEL:
+ KIND_CLUSTER_NAME:
+ NODE_IMAGE: