jenkinsci / openstack-cloud-plugin

Provision nodes from OpenStack on demand
https://plugins.jenkins.io/openstack-cloud
MIT License
47 stars 84 forks source link

Retention and Idle time is ignored #344

Closed shasi24 closed 1 year ago

shasi24 commented 2 years ago

Jenkins: 2.348 OS: Linux - 4.15.0-74-generic

PrioritySorter:4.1.0 ace-editor:1.1 analysis-model-api:10.10.1 ansible:1.1 ansicolor:1.0.1 ant:475.vf34069fef73c antisamy-markup-formatter:2.7 apache-httpcomponents-client-4-api:4.5.13-1.0 artifact-promotion:0.5.2 artifactory:3.16.2 async-http-client:1.9.40.0 authentication-tokens:1.4 aws-credentials:191.vcb_f183ce58b_9 aws-global-configuration:1.7 aws-java-sdk:1.12.215-339.vdc07efc5320c aws-java-sdk-cloudformation:1.12.215-339.vdc07efc5320c aws-java-sdk-codebuild:1.12.215-339.vdc07efc5320c aws-java-sdk-ec2:1.12.215-339.vdc07efc5320c aws-java-sdk-ecr:1.12.215-339.vdc07efc5320c aws-java-sdk-ecs:1.12.215-339.vdc07efc5320c aws-java-sdk-elasticbeanstalk:1.12.215-339.vdc07efc5320c aws-java-sdk-iam:1.12.215-339.vdc07efc5320c aws-java-sdk-logs:1.12.215-339.vdc07efc5320c aws-java-sdk-minimal:1.12.215-339.vdc07efc5320c aws-java-sdk-ssm:1.12.215-339.vdc07efc5320c aws-lambda:0.5.10 blueocean:1.25.5 blueocean-autofavorite:1.2.5 blueocean-bitbucket-pipeline:1.25.5 blueocean-commons:1.25.5 blueocean-config:1.25.5 blueocean-core-js:1.25.5 blueocean-dashboard:1.25.5 blueocean-display-url:2.4.1 blueocean-events:1.25.5 blueocean-executor-info:1.25.5 blueocean-git-pipeline:1.25.5 blueocean-github-pipeline:1.25.5 blueocean-i18n:1.25.5 blueocean-jira:1.25.5 blueocean-jwt:1.25.5 blueocean-personalization:1.25.5 blueocean-pipeline-api-impl:1.25.5 blueocean-pipeline-editor:1.25.5 blueocean-pipeline-scm-api:1.25.5 blueocean-rest:1.25.5 blueocean-rest-impl:1.25.5 blueocean-web:1.25.5 bootstrap4-api:4.6.0-5 bootstrap5-api:5.1.3-7 bouncycastle-api:2.26 branch-api:2.1046.v0ca_37783ecc5 build-failure-analyzer:2.3.0 build-name-setter:2.2.0 build-timeout:1.20 build-user-vars-plugin:1.8 built-on-column:1.1 caffeine-api:2.9.3-65.v6a_47d0f4d1fe checks-api:1.7.4 claim:2.18.2 cloud-stats:0.27 cloudbees-bitbucket-branch-source:773.v4b_9b_005b562b cloudbees-disk-usage-simple:0.10 cloudbees-folder:6.722.v8165b_a_cf25e9 command-launcher:81.v9c2cb_cb_db_392 conditional-buildstep:1.4.2 config-file-provider:3.10.0 configuration-as-code:1429.v09b_044a_c93de configurationslicing:430.v966357576543 copyartifact:1.46.4 credentials:1087.1089.v2f1b_9a_b_040e4 credentials-binding:523.vd859a_4b_122e6 dashboard-view:2.432.va_712ce35862d data-tables-api:1.11.4-4 display-url-api:2.3.6 docker-commons:1.19 docker-java-api:3.1.5.2 docker-swarm:1.11 docker-workflow:1.28 downstream-build-cache:1.7 durable-task:496.va67c6f9eefa7 ec2:1.68 echarts-api:5.3.2-1 email-ext:2.88 envinject:2.866.v5c0403e3d4df envinject-api:1.199.v3ce31253ed13 extended-read-permission:3.2 extensible-choice-parameter:1.8.0 external-monitor-job:191.v363d0d1efdf8 favorite:2.4.1 flexible-publish:0.16.1 font-awesome-api:6.1.1-1 forensics-api:1.13.0 generic-webhook-trigger:1.84 gerrit-trigger:2.36.0 git:4.11.3 git-changelog:3.23 git-client:3.11.0 git-parameter:0.9.16 git-server:1.11 github:1.34.3 github-api:1.303-400.v35c2d8258028 github-branch-source:1628.vb_2f51293cb_78 gitlab-api:5.0.1-72.vb_8c272862e86 gitlab-branch-source:625.v85cf3a_400cfe gitlab-logo:1.0.5 gitlab-merge-request-jenkins:2.0.0 gitlab-oauth:1.16 gitlab-plugin:1.5.32 gradle:1.38 greenballs:1.15.1 groovy:2.4 handlebars:3.0.8 handy-uri-templates-2-api:2.1.8-22.v77d5b_75e6953 htmlpublisher:1.30 ivy:2.2 jackson2-api:2.13.3-285.vc03c0256d517 javadoc:217.v905b_86277a2a javax-activation-api:1.2.0-3 javax-mail-api:1.6.2-6 jaxb:2.3.6-1 jdk-tool:1.5 jenkins-design-language:1.25.5 jenkins-multijob-plugin:1.36 jersey2-api:2.35-8 jira:3.7.1 jira-steps:2.0.141.vd0c6e6dc83f0 jjwt-api:0.11.2-71.v2722b_b_06a_2a_f job-dsl:1.79 job-restrictions:0.8 jquery:1.12.4-1 jquery-detached:1.2.1 jquery3-api:3.6.0-4 jsch:0.1.55.2 junit:1.63 jython:1.9 ldap:2.10 list-git-branches-parameter:0.0.11 lockable-resources:2.15 logfilesizechecker:1.5 logstash:2.5.0205.vd05825ed46bd mailer:414.vcc4c33714601 managed-scripts:1.5.4 mapdb-api:1.0.9.0 mask-passwords:3.1 matrix-auth:3.1.2 matrix-project:771.v574584b_39e60 maven-plugin:3.18 mercurial:2.16.2 metrics:4.1.6.2 momentjs:1.1.1 mq-notifier:1.3.1 multiple-scms:0.8 muuri-api:0.9.5-1 naginator:1.18.1 nant:1.4.3 next-build-number:1.8 node-iterator-api:1.5.1 nodejs:1.5.1 okhttp-api:4.9.3-105.vb96869f8ac3a openstack-cloud:2.62 p4:1.12.4 parameterized-trigger:2.44 performance:3.20 pipeline-aws:1.43 pipeline-build-step:2.18 pipeline-graph-analysis:195.v5812d95a_a_2f9 pipeline-input-step:448.v37cea_9a_10a_70 pipeline-milestone-step:101.vd572fef9d926 pipeline-model-api:2.2081.v3919681ffc1e pipeline-model-definition:2.2081.v3919681ffc1e pipeline-model-extensions:2.2081.v3919681ffc1e pipeline-rest-api:2.24 pipeline-stage-step:293.v200037eefcd5 pipeline-stage-tags-metadata:2.2081.v3919681ffc1e pipeline-stage-view:2.24 pipeline-utility-steps:2.12.1 plain-credentials:1.8 plugin-util-api:2.17.0 popper-api:1.16.1-3 popper2-api:2.11.5-2 prism-api:1.28.0-1 prometheus:2.0.11 promoted-builds:876.v99d29788b36b promoted-builds-simple:1.9 publish-over:0.22 publish-over-cifs:0.16 pubsub-light:1.16 pull-request-monitoring:1.7.8 python:1.3 rabbitmq-consumer:2.8 rebuild:1.34 resource-disposer:0.19 robot:3.1.0 run-condition:1.5 run-selector:1.1.1 rundeck:3.6.11 saml:2.297.v1a_dff8e51f90 scm-api:608.vfa_f971c5a_a_e9 script-security:1172.v35f6a_0b_8207e scriptler:3.5 select2-api:4.0.13-6 simple-theme-plugin:103.va_161d09c38c7 skip-certificate-check:1.0 slack:608.v19e3b_44b_b_9ff snakeyaml-api:1.30.1 sonar:2.14 sse-gateway:1.25 ssh:2.6.1 ssh-agent:295.v9ca_a_1c7cc3aa ssh-credentials:277.v95c2fec1c047 ssh-slaves:1.814.vc82988f54b_10 ssh-steps:2.0.39.v831c5e6468b_c sshd:3.237.v883d165a_c1d3 structs:318.va_f3ccb_729b_71 subversion:2.15.5 support-core:1174.vc46f6b_04d894 swarm:3.32 test-results-analyzer:0.3.5 timestamper:1.17 token-macro:293.v283932a_0a_b_49 trilead-api:1.57.v6e90e07157e1 uno-choice:2.6.1 variant:1.4 vsphere-cloud:2.27 warnings-ng:9.12.0 windows-slaves:1.8.1 workflow-aggregator:578.vf9af99755f4a workflow-api:1153.vb_912c0e47fba workflow-basic-steps:948.v2c72a_091b_b_68 workflow-cps:2692.v76b_089ccd026 workflow-cps-global-lib:581.ve633085a_8a_87 workflow-durable-task-step:1139.v252a_e12e8463 workflow-job:1181.va_25d15548158 workflow-multibranch:712.vc169a_1387405 workflow-scm-step:400.v6b_89a1317c9a workflow-step-api:625.vd896b_f445a_f8 workflow-support:820.vd1a_6cc65ef33 ws-cleanup:0.42

What Operating System are you using (both controller, and any agents involved in the problem)?

Dockerized Jenkins master based over ubuntu (bionic) Jenkins agent ubuntu bionic (vm)

Reproduction steps

  1. Configure openstack dynamic agents
  2. Set Min VM to 1
  3. Set Retention to 4500 (min)

Expected Results

The VM should be up for 4500 min, if the VM is used within retention time (4500 min) clock is reset to another 4500 min. only after 4500 min of being IDLE the VM should remove it self

Actual Results

After 12 Hours (720 min) VM removes it self even if jobs are in the middle of using it. it is completely ignores the retention and IDLE time configured.

Anything else?

No response

shasi24 commented 2 years ago

anyone ? any attention please

olivergondza commented 1 year ago

@shasi24, That is not how retention time and minimal number of running VMs are supposed to interact with each other.

For that reason, retentionTime is not considered for those instances that are kept/launched to satisfy instancesMin requirement.

[1] https://github.com/jenkinsci/openstack-cloud-plugin/blob/master/plugin/src/main/resources/jenkins/plugins/openstack/compute/SlaveOptions/help-retentionTime.html [2] https://github.com/jenkinsci/openstack-cloud-plugin/blob/master/plugin/src/main/resources/jenkins/plugins/openstack/compute/SlaveOptions/help-instancesMin.html