diff --git a/infra-templates/imagepuller/0/docker-compose.yml.tpl b/infra-templates/imagepuller/0/docker-compose.yml.tpl
new file mode 100644
index 0000000..2d39fef
--- /dev/null
+++ b/infra-templates/imagepuller/0/docker-compose.yml.tpl
@@ -0,0 +1,25 @@
+version: '2'
+services:
+ imagepuller:
+ image: superseb/imagepuller:0.1.5
+ {{- if eq .Values.PRIVILEGED "true"}}
+ privileged: true
+ {{- end}}
+ environment:
+ CHECK_CPU_USAGE: ${CHECK_CPU_USAGE}
+ CPU_USAGE_MAX: ${CPU_USAGE_MAX}
+ CPU_USAGE_SLEEP: ${CPU_USAGE_SLEEP}
+ RANCHER_VERSION: ${RANCHER_VERSION}
+ RANDOM_SLEEP: ${RANDOM_SLEEP}
+ stdin_open: true
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock
+ {{- if eq .Values.MOUNT_DOCKER_CONFIG "true"}}
+ - ${DOCKER_CONFIG_LOCATION}:/root/.docker/config.json
+ {{- end}}
+ tty: true
+ labels:
+ io.rancher.container.agent.role: environment
+ io.rancher.container.start_once: 'true'
+ io.rancher.container.create_agent: 'true'
+ io.rancher.scheduler.global: 'true'
diff --git a/infra-templates/imagepuller/0/rancher-compose.yml b/infra-templates/imagepuller/0/rancher-compose.yml
new file mode 100644
index 0000000..b91a0a8
--- /dev/null
+++ b/infra-templates/imagepuller/0/rancher-compose.yml
@@ -0,0 +1,58 @@
+version: '2'
+catalog:
+ name: imagepuller
+ version: 0.1.5
+ description: A script to pull images for a specific Rancher version to speed up upgrades
+ minimum_rancher_version: v1.6.0
+ questions:
+ - variable: CHECK_CPU_USAGE
+ label: CHECK_CPU_USAGE
+ description: Enable CPU usage check
+ type: boolean
+ default: true
+ required: true
+ - variable: CPU_USAGE_MAX
+ label: CPU_USAGE_MAX
+ description: Maximum CPU usage in % to halt pulling images
+ type: int
+ default: 75
+ required: true
+ - variable: CPU_USAGE_SLEEP
+ label: CPU_USAGE_SLEEP
+ description: Amount of seconds to sleep when cpu usage is too high
+ type: int
+ default: 120
+ required: true
+ - variable: MOUNT_DOCKER_CONFIG
+ label: MOUNT_DOCKER_CONFIG
+ description: Mount docker config as volume (for registries with authentication)
+ type: boolean
+ default: false
+ required: true
+ - variable: DOCKER_CONFIG_LOCATION
+ label: DOCKER_CONFIG_LOCATION
+ description: Docker config location on the host (for registries with authentication)
+ type: string
+ default: "/root/.docker/config.json"
+ required: true
+ - variable: PRIVILEGED
+ label: PRIVILEGED
+ description: Run as privileged (e.g. when SELinux is enabled)
+ type: boolean
+ default: false
+ required: true
+ - variable: RANDOM_SLEEP
+ label: RANDOM_SLEEP
+ description: Sleep a "random" amount of seconds between image pulls
+ type: boolean
+ default: false
+ required: true
+ - variable: RANCHER_VERSION
+ label: RANCHER_VERSION
+ description: Reference version to identify what images to pull
+ type: string
+ default: v1.6.14
+ required: true
+services:
+ imagepuller:
+ start_on_create: true
diff --git a/infra-templates/imagepuller/catalogIcon-imagepuller.svg b/infra-templates/imagepuller/catalogIcon-imagepuller.svg
new file mode 100644
index 0000000..06ac8fd
--- /dev/null
+++ b/infra-templates/imagepuller/catalogIcon-imagepuller.svg
@@ -0,0 +1,26 @@
+
+
diff --git a/infra-templates/imagepuller/config.yml b/infra-templates/imagepuller/config.yml
new file mode 100644
index 0000000..ce52007
--- /dev/null
+++ b/infra-templates/imagepuller/config.yml
@@ -0,0 +1,8 @@
+name: Imagepuller
+description: |
+ A script to pull images for a specific Rancher version to speed up upgrades
+version: 0.1.5
+category: Automation
+maintainer: "Sebastiaan van Steenis "
+license: Apache 2.0
+projectURL: https://github.com/superseb/imagepuller