├── settings.gradle ├── .envrc ├── Dockerfile.agent ├── dcos-testing ├── conf │ ├── plugins.conf │ ├── jenkins │ │ └── configuration.yaml │ └── nginx │ │ └── nginx.conf.template ├── README.md └── jenkins-app.json ├── src ├── main │ ├── resources │ │ ├── org │ │ │ └── jenkinsci │ │ │ │ └── plugins │ │ │ │ └── mesos │ │ │ │ ├── MesosSlaveInfo │ │ │ │ └── URI │ │ │ │ │ ├── help-value.html │ │ │ │ │ ├── help-executable.html │ │ │ │ │ ├── help-extract.html │ │ │ │ │ └── config.jelly │ │ │ │ ├── MesosCloud │ │ │ │ ├── help-agentUser.html │ │ │ │ ├── help-frameworkName.html │ │ │ │ ├── help-mesosMasterUrl.html │ │ │ │ ├── help-jenkinsURL.html │ │ │ │ ├── help-role.html │ │ │ │ └── config.jelly │ │ │ │ ├── MesosAgentSpecTemplate │ │ │ │ ├── Volume │ │ │ │ │ ├── help-readOnly.html │ │ │ │ │ ├── help-containerPath.html │ │ │ │ │ ├── help-hostPath.html │ │ │ │ │ └── config.jelly │ │ │ │ ├── help-mem.html │ │ │ │ ├── help-label.html │ │ │ │ ├── ContainerInfo │ │ │ │ │ ├── help-volumes.html │ │ │ │ │ ├── help-dockerForcePullImage.html │ │ │ │ │ ├── help-isDind.html │ │ │ │ │ ├── help-networking.html │ │ │ │ │ ├── help-dockerPrivilegedMode.html │ │ │ │ │ ├── help-type.html │ │ │ │ │ ├── help-dockerImage.html │ │ │ │ │ └── config.jelly │ │ │ │ ├── help-cpus.html │ │ │ │ ├── help-minExecutors.html │ │ │ │ ├── help-disk.html │ │ │ │ ├── help-jnlpArgs.html │ │ │ │ ├── help-maxExecutors.html │ │ │ │ ├── help-idleTerminationMinutes.html │ │ │ │ ├── help-domainFilterModel.html │ │ │ │ ├── help-agentAttributes.html │ │ │ │ ├── help-agentCommandStyle.html │ │ │ │ ├── NetworkInfo │ │ │ │ │ └── config.jelly │ │ │ │ └── config.jelly │ │ │ │ ├── MesosJenkinsAgent │ │ │ │ └── configure-entries.jelly │ │ │ │ └── config │ │ │ │ └── models │ │ │ │ └── faultdomain │ │ │ │ ├── DomainFilterModel │ │ │ │ └── config.jelly │ │ │ │ └── StringDomainFilter │ │ │ │ └── config-detail.jelly │ │ ├── index.jelly │ │ └── application.conf │ └── java │ │ └── org │ │ └── jenkinsci │ │ └── plugins │ │ └── mesos │ │ ├── config │ │ └── models │ │ │ └── faultdomain │ │ │ ├── DomainFilterModelDescriptor.java │ │ │ ├── DomainFilterModel.java │ │ │ ├── Any.java │ │ │ ├── Home.java │ │ │ └── StringDomainFilter.java │ │ ├── MesosRetentionStrategy.java │ │ ├── MesosPodRecordRepository.java │ │ ├── Metrics.java │ │ ├── MesosComputer.java │ │ ├── NoDelayProvisionerStrategy.java │ │ ├── MesosSlaveInfo.java │ │ ├── api │ │ ├── Settings.java │ │ ├── Session.java │ │ ├── LaunchCommandBuilder.java │ │ └── RunTemplateFactory.java │ │ ├── MesosJenkinsAgent.java │ │ ├── MesosAgentSpecTemplate.java │ │ └── MesosApi.java └── test │ ├── java │ └── org │ │ └── jenkinsci │ │ └── plugins │ │ └── mesos │ │ ├── MetricsTest.java │ │ ├── integration │ │ ├── IntegrationTest.java │ │ ├── DockerAgentTest.java │ │ ├── MesosApiTest.java │ │ ├── MesosCloudProvisionTest.java │ │ └── MesosJenkinsAgentLifecycleTest.java │ │ ├── MesosAgentSpecTemplateDescriptorTest.java │ │ ├── MesosSlaveInfoTest.java │ │ ├── fixture │ │ └── AgentSpecMother.java │ │ ├── api │ │ ├── LaunchCommandBuilderTest.java │ │ └── SessionTest.java │ │ ├── TestUtils.java │ │ ├── MesosCloudTest.java │ │ ├── MesosJenkinsAgentTest.java │ │ ├── MesosCloudDescriptorTest.java │ │ └── JenkinsConfigClient.java │ └── resources │ └── configuration.yaml ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── ci ├── set_port_range.sh ├── install_docker.sh ├── run.sh ├── install_mesos.sh └── provision.sh ├── Jenkinsfile ├── nodes └── Dockerfile.windows ├── .github ├── workflows │ └── gradle.yml └── stale.yml ├── gradlew.bat ├── Dockerfile ├── gradlew ├── README.md └── LICENSE /settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'mesos' 2 | -------------------------------------------------------------------------------- /.envrc: -------------------------------------------------------------------------------- 1 | export JAVA_HOME=`/usr/libexec/java_home -v 1.8` 2 | -------------------------------------------------------------------------------- /Dockerfile.agent: -------------------------------------------------------------------------------- 1 | FROM amazoncorretto:8u252 2 | 3 | ENTRYPOINT ["/bin/bash", "-c"] 4 | CMD [] 5 | -------------------------------------------------------------------------------- /dcos-testing/conf/plugins.conf: -------------------------------------------------------------------------------- 1 | configuration-as-code:1.36 2 | metrics:4.0.2.6 3 | job-dsl:1.76 4 | -------------------------------------------------------------------------------- /src/main/resources/org/jenkinsci/plugins/mesos/MesosSlaveInfo/URI/help-value.html: -------------------------------------------------------------------------------- 1 |
key:value pairs.
4 | %ENV_VAR% while
4 | Unix based systems use ${ENV_VAR}.
5 | The timeout can be overridden individually.
15 | *
16 | * @see org.junit.jupiter.api.Timeout
17 | */
18 | @Target({ElementType.TYPE, ElementType.METHOD})
19 | @Retention(RetentionPolicy.RUNTIME)
20 | @Tag("integration")
21 | @Timeout(value = 3, unit = TimeUnit.MINUTES)
22 | public @interface IntegrationTest {}
23 |
--------------------------------------------------------------------------------
/src/main/java/org/jenkinsci/plugins/mesos/MesosRetentionStrategy.java:
--------------------------------------------------------------------------------
1 | package org.jenkinsci.plugins.mesos;
2 |
3 | import hudson.model.Descriptor;
4 | import hudson.slaves.CloudRetentionStrategy;
5 | import hudson.slaves.RetentionStrategy;
6 |
7 | /** A strategy to terminate idle {@link MesosComputer} */
8 | public class MesosRetentionStrategy extends CloudRetentionStrategy {
9 | /**
10 | * Constructs a new {@link hudson.slaves.CloudRetentionStrategy}.
11 | *
12 | * @param idleMinutes The number of minutes to wait before calling getNode().terminate() on an
13 | * idle {@link MesosComputer}
14 | */
15 | public MesosRetentionStrategy(int idleMinutes) {
16 | super(idleMinutes);
17 | }
18 |
19 | public static class DescriptorImpl extends Descriptor