mirror of
https://github.com/kemko/nomad.git
synced 2026-01-01 16:05:42 +03:00
As of April 1, Docker Hub rate limits tightened. With only 10 pulls/hr/IP, we're likely to encounter test failures. Switch all Docker images getting pulled from this repository to use the HashiCorp managed registry mirror. Note that most of our tests in `drivers/docker` don't pull from the remote registry but load a local image, while others will need to pull from the remote and fetch different images depending on OS/arch. Refactor the definition of test task configuration to make it clear which is which, and de-factor some false sharing of setup functions. Updates the E2E tests to use that registry by configuring the Docker daemon. This required changing out a few container images that we don't have in the registry, but these new images are all smaller. There are a couple of tests that still use explicitly-tagged `docker.io` images or other third-party registries, which have been left in place. Ref: https://hashicorp.atlassian.net/browse/NET-12233 update E2E images to those in the registry mirror fix windows and docklog test build fix stopsignal test mop-up more mop-up
75 lines
1.7 KiB
HCL
75 lines
1.7 KiB
HCL
# Copyright (c) HashiCorp, Inc.
|
|
# SPDX-License-Identifier: BUSL-1.1
|
|
|
|
variable "registry_address" {
|
|
type = string
|
|
description = "The HTTP address of the local registry"
|
|
}
|
|
|
|
variable "docker_conf_dir" {
|
|
type = string
|
|
description = "The directory in which daemon.json will be written."
|
|
default = "/tmp"
|
|
}
|
|
|
|
variable "user" {
|
|
type = string
|
|
description = "The user to create files as. Should be root in e2e."
|
|
# no default because dealing with root files is annoying locally
|
|
# try -var=user=$USER for local development
|
|
}
|
|
|
|
job "configure-docker" {
|
|
type = "sysbatch"
|
|
|
|
constraint {
|
|
attribute = "${attr.kernel.name}"
|
|
value = "linux"
|
|
}
|
|
|
|
group "create-conf" {
|
|
task "create-daemon-file" {
|
|
driver = "pledge"
|
|
user = "${var.user}"
|
|
|
|
config {
|
|
command = "cp"
|
|
args = ["${NOMAD_TASK_DIR}/daemon.json", "${var.docker_conf_dir}/daemon.json"]
|
|
promises = "stdio rpath wpath cpath"
|
|
unveil = ["r:${NOMAD_TASK_DIR}/daemon.json", "rwc:${var.docker_conf_dir}"]
|
|
}
|
|
|
|
# note we need to keep the existing registry-mirrors from the host configuration
|
|
template {
|
|
destination = "local/daemon.json"
|
|
perms = "644"
|
|
data = <<EOH
|
|
{
|
|
"registry-mirrors": ["https://docker.mirror.hashicorp.services"],
|
|
"insecure-registries": [
|
|
"${var.registry_address}"
|
|
]
|
|
}
|
|
EOH
|
|
}
|
|
resources {
|
|
cpu = 100
|
|
memory = 32
|
|
}
|
|
}
|
|
|
|
task "restart-docker" {
|
|
driver = "raw_exec" # TODO: see if this could be done with pledge?
|
|
|
|
config {
|
|
command = "service"
|
|
args = ["docker", "restart"]
|
|
}
|
|
resources {
|
|
cpu = 100
|
|
memory = 32
|
|
}
|
|
}
|
|
}
|
|
}
|