diff options
author | freva <valerijf@yahoo-inc.com> | 2016-12-22 15:15:00 +0100 |
---|---|---|
committer | freva <valerijf@yahoo-inc.com> | 2016-12-22 15:15:00 +0100 |
commit | 4696062676578d97dd601dac817a531a0877cc01 (patch) | |
tree | 69f4505d7288f95e901019ec14093eb6b4a1f5a6 | |
parent | 68d7de4fa3a941a97202df1163bd5a0b009128c2 (diff) |
Disable docker image GC locally
3 files changed, 15 insertions, 27 deletions
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java index 81913bfd6cf..dd70d73bf10 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java @@ -55,23 +55,20 @@ import static com.yahoo.vespa.hosted.dockerapi.DockerNetworkCreator.NetworkAddre public class DockerImpl implements Docker { private static final Logger logger = Logger.getLogger(DockerImpl.class.getName()); + public static final String DOCKER_CUSTOM_MACVLAN_NETWORK_NAME = "vespa-macvlan"; static final String LABEL_NAME_MANAGEDBY = "com.yahoo.vespa.managedby"; private final int SECONDS_TO_WAIT_BEFORE_KILLING; private static final String FRAMEWORK_CONTAINER_PREFIX = "/"; + private Optional<DockerImageGarbageCollector> dockerImageGC = Optional.empty(); + private CounterWrapper numberOfDockerDaemonFails; - public static final String DOCKER_CUSTOM_MACVLAN_NETWORK_NAME = "vespa-macvlan"; - - public final Object monitor = new Object(); + private final Object monitor = new Object(); @GuardedBy("monitor") private final Map<DockerImage, CompletableFuture<DockerImage>> scheduledPulls = new HashMap<>(); // Exposed for testing. - DockerClient dockerClient; - - private CounterWrapper numberOfDockerDaemonFails; - - private Optional<DockerImageGarbageCollector> dockerImageGC = Optional.empty(); + final DockerClient dockerClient; // For testing DockerImpl(final DockerClient dockerClient) { @@ -82,25 +79,11 @@ public class DockerImpl implements Docker { DockerImpl( final DockerConfig config, boolean fallbackTo123OnErrors, - boolean trySetupNetwork, MetricReceiverWrapper metricReceiverWrapper) { - if (config.imageGCEnabled()) { - Duration minAgeToDelete = Duration.ofMinutes(config.imageGCMinTimeToLiveMinutes()); - dockerImageGC = Optional.of(new DockerImageGarbageCollector(minAgeToDelete)); - } - SECONDS_TO_WAIT_BEFORE_KILLING = config.secondsToWaitBeforeKillingContainer(); dockerClient = initDockerConnection(config, fallbackTo123OnErrors); setMetrics(metricReceiverWrapper); - - if (trySetupNetwork) { - try { - setupDockerNetworkIfNeeded(); - } catch (Exception e) { - throw new RuntimeException("Could not setup docker network", e); - } - } } @Inject @@ -108,8 +91,16 @@ public class DockerImpl implements Docker { this( config, true, /* fallback to 1.23 on errors */ - true, /* try setup network */ metricReceiver); + + Duration minAgeToDelete = Duration.ofMinutes(config.imageGCMinTimeToLiveMinutes()); + dockerImageGC = Optional.of(new DockerImageGarbageCollector(minAgeToDelete)); + + try { + setupDockerNetworkIfNeeded(); + } catch (Exception e) { + throw new RuntimeException("Could not setup docker network", e); + } } static DefaultDockerClientConfig.Builder buildDockerClientConfig(DockerConfig config) { diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerTestUtils.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerTestUtils.java index 5c4a721b092..b02f7f17686 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerTestUtils.java +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerTestUtils.java @@ -27,8 +27,7 @@ public class DockerTestUtils { .clientKeyPath( operatingSystem == OS.Mac_OS_X ? prefix + "key.pem" : "") .uri( operatingSystem == OS.Mac_OS_X ? "tcp://192.168.99.100:2376" : "tcp://localhost:2376") .connectTimeoutMillis(100) - .secondsToWaitBeforeKillingContainer(0) - .imageGCEnabled(false)); + .secondsToWaitBeforeKillingContainer(0)); private static DockerImpl docker; public static boolean dockerDaemonIsPresent() { @@ -53,7 +52,6 @@ public class DockerTestUtils { docker = new DockerImpl( dockerConfig, false, /* fallback to 1.23 on errors */ - false, /* try setup network */ new MetricReceiverWrapper(MetricReceiver.nullImplementation)); createDockerTestNetworkIfNeeded(docker); } diff --git a/docker-api/src/main/resources/configdefinitions/docker.def b/docker-api/src/main/resources/configdefinitions/docker.def index aa0e96512a9..1914aa0e9ad 100644 --- a/docker-api/src/main/resources/configdefinitions/docker.def +++ b/docker-api/src/main/resources/configdefinitions/docker.def @@ -12,5 +12,4 @@ maxTotalConnections int default = 100 connectTimeoutMillis int default = 100000 # 100 sec readTimeoutMillis int default = 1800000 # 30 min -imageGCEnabled bool default = true imageGCMinTimeToLiveMinutes int default = 45
\ No newline at end of file |