Package io.jenkins.plugins.swarmcloud
Class SwarmAgentTemplate
java.lang.Object
hudson.model.AbstractDescribableImpl<SwarmAgentTemplate>
io.jenkins.plugins.swarmcloud.SwarmAgentTemplate
- All Implemented Interfaces:
Describable<SwarmAgentTemplate>
Template for Docker Swarm agents.
Defines the configuration for agent containers.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classEnvironment variable configuration.static classGeneric resource configuration for Docker Swarm.static classMount configuration for Docker volumes.static classPort binding configuration for Docker Swarm service.static enumMount type enum for Docker volumes. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidDecrements the current instance count.Generates a unique agent name.intGets the available capacity for new instances.Gets cache directories as newline-separated string for UI.Gets configs as newline-separated string for UI (format: configName:targetPath).intintGets the current instance count.Gets the currentInstances counter, initializing if needed.Gets extra hosts entries for container's /etc/hosts file.Gets extra hosts as a newline-separated string (for Jelly UI).Gets generic resources as string for UI (comma-separated: NVIDIA-GPU=1, FPGA=2)intintintintgetImage()getLabel()Gets the set of labels for this template.Gets memory limit in bytes.Gets CPU limit in nanoCPUs (1e9 = 1 CPU).intgetMode()getName()Gets network aliases as a comma-separated string (for Jelly UI).intGets placement constraints as a newline-separated string (for Jelly UI).Gets port bindings as newline-separated string for UI.intlongGets the credentials ID for Docker registry authentication.Gets memory reservation in bytes.Gets CPU reservation in nanoCPUs.longgetUser()booleanChecks if health check is configured.voidIncrements the current instance count.booleanReturns true if container args should be disabled.booleanbooleanChecks if this template matches the given label.protected ObjectEnsures transient fields are initialized after deserialization.resolve()Resolves this template by merging with parent template if inheritFrom is set.voidsetApparmorProfile(String apparmorProfile) voidsetCacheDirs(List<String> cacheDirs) voidsetCacheDirsString(String cacheDirsStr) Sets cache directories from newline-separated string.voidvoidsetCapAddString(String caps) voidsetCapDrop(List<String> capDrop) voidsetCapDropString(String caps) voidsetConfigs(List<SwarmConfigFile> configs) voidsetConfigsString(String configsStr) Sets configs from newline-separated string (format: configName:targetPath).voidsetConnectionTimeoutSeconds(int connectionTimeoutSeconds) voidsetCpuLimit(String cpuLimit) voidsetCpuReservation(String cpuReservation) voidsetCurrentInstances(int count) Sets the current instance count directly.voidsetDisableContainerArgs(boolean disableContainerArgs) voidvoidsetDnsOptions(List<String> dnsOptions) voidsetDnsSearch(List<String> dnsSearch) voidsetDnsServers(List<String> dnsServers) voidvoidsetEntrypoint(String entrypoint) voidsetEnvironmentVariables(List<SwarmAgentTemplate.EnvironmentVariable> environmentVariables) voidvoidsetExtraHosts(List<String> extraHosts) voidsetExtraHostsString(String extraHostsStr) Sets extra hosts from a newline-separated string (for Jelly UI).voidsetGenericResources(List<SwarmAgentTemplate.GenericResource> genericResources) voidvoidsetHealthCheckCommand(String healthCheckCommand) voidsetHealthCheckIntervalSeconds(int healthCheckIntervalSeconds) voidsetHealthCheckRetries(int healthCheckRetries) voidsetHealthCheckTimeoutSeconds(int healthCheckTimeoutSeconds) voidsetHostBinds(List<SwarmAgentTemplate.MountConfig> hostBinds) voidsetHostname(String hostname) voidsetIdleTimeoutMinutes(int idleTimeoutMinutes) voidvoidsetInheritFrom(String inheritFrom) voidvoidsetLabelString(String labelString) voidsetLimitsMemoryBytes(Long bytes) voidsetLimitsNanoCPUs(Long nanoCPUs) voidsetMaxInstances(int maxInstances) voidsetMemoryLimit(String memoryLimit) voidsetMemoryReservation(String memoryReservation) voidvoidsetMounts(List<SwarmAgentTemplate.MountConfig> mounts) voidsetNetworkAliases(List<String> networkAliases) voidsetNetworkAliasesString(String aliases) Sets network aliases from a comma-separated string (for Jelly UI).voidsetNumExecutors(int numExecutors) voidsetParent(SwarmCloud parent) voidsetPlacementConstraints(List<String> placementConstraints) voidsetPlacementConstraintsString(String constraints) Sets placement constraints from a newline-separated string (for Jelly UI).voidsetPortBindings(List<SwarmAgentTemplate.PortBinding> portBindings) voidSets port bindings from newline-separated string.voidsetPortBinds(String portBinds) voidsetPrivileged(boolean privileged) voidsetProvisionRetryCount(int provisionRetryCount) voidsetProvisionRetryDelayMs(long provisionRetryDelayMs) voidsetRegistryCredentialsId(String registryCredentialsId) Sets the credentials ID for Docker registry authentication.voidsetRemoteFs(String remoteFs) voidsetReservationsMemoryBytes(Long bytes) voidsetReservationsNanoCPUs(Long nanoCPUs) voidsetSeccompProfile(String seccompProfile) voidsetSecrets(List<SwarmSecretConfig> secrets) voidsetStopGracePeriod(long stopGracePeriod) voidsetStopSignal(String stopSignal) voidsetSysctls(List<String> sysctls) voidsetSysctlsString(String sysctlsStr) voidvoidsetWorkingDir(String workingDir) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface hudson.model.Describable
getDescriptor
-
Constructor Details
-
SwarmAgentTemplate
-
-
Method Details
-
readResolve
Ensures transient fields are initialized after deserialization. -
getCurrentInstancesCounter
Gets the currentInstances counter, initializing if needed. Public for atomic operations from ClusterMonitor. -
getName
-
getImage
-
setImage
-
getLabelString
-
setLabelString
-
getLabel
-
setLabel
-
getEntrypoint
-
setEntrypoint
-
getRemoteFs
-
setRemoteFs
-
getWorkingDir
-
setWorkingDir
-
getNumExecutors
public int getNumExecutors() -
setNumExecutors
@DataBoundSetter public void setNumExecutors(int numExecutors) -
getMaxInstances
public int getMaxInstances() -
setMaxInstances
@DataBoundSetter public void setMaxInstances(int maxInstances) -
getMode
-
setMode
-
getCpuLimit
-
setCpuLimit
-
getMemoryLimit
-
setMemoryLimit
-
getLimitsNanoCPUs
Gets CPU limit in nanoCPUs (1e9 = 1 CPU). For docker-swarm-plugin compatibility. -
setLimitsNanoCPUs
-
getLimitsMemoryBytes
Gets memory limit in bytes. For docker-swarm-plugin compatibility. -
setLimitsMemoryBytes
-
getReservationsNanoCPUs
Gets CPU reservation in nanoCPUs. For docker-swarm-plugin compatibility. -
setReservationsNanoCPUs
-
getReservationsMemoryBytes
Gets memory reservation in bytes. For docker-swarm-plugin compatibility. -
setReservationsMemoryBytes
-
getCpuReservation
-
setCpuReservation
-
getMemoryReservation
-
setMemoryReservation
-
getMounts
-
setMounts
-
getHostBinds
-
setHostBinds
-
getEnvironmentVariables
-
setEnvironmentVariables
@DataBoundSetter public void setEnvironmentVariables(List<SwarmAgentTemplate.EnvironmentVariable> environmentVariables) -
getEnvVars
-
setEnvVars
-
getPlacementConstraints
-
setPlacementConstraints
-
setPlacementConstraintsString
Sets placement constraints from a newline-separated string (for Jelly UI). -
getPlacementConstraintsString
Gets placement constraints as a newline-separated string (for Jelly UI). -
getNetworkAliases
-
setNetworkAliases
-
setNetworkAliasesString
Sets network aliases from a comma-separated string (for Jelly UI). -
getNetworkAliasesString
Gets network aliases as a comma-separated string (for Jelly UI). -
getSecrets
-
setSecrets
-
getConfigs
-
setConfigs
-
getConfigsString
Gets configs as newline-separated string for UI (format: configName:targetPath). -
setConfigsString
Sets configs from newline-separated string (format: configName:targetPath). Example: nethasp.ini:/opt/1cv8/current/conf/nethasp.ini -
getCacheDirs
-
setCacheDirs
-
getCacheDirsString
Gets cache directories as newline-separated string for UI. -
setCacheDirsString
Sets cache directories from newline-separated string. -
getHealthCheckCommand
-
setHealthCheckCommand
-
getHealthCheckIntervalSeconds
public int getHealthCheckIntervalSeconds() -
setHealthCheckIntervalSeconds
@DataBoundSetter public void setHealthCheckIntervalSeconds(int healthCheckIntervalSeconds) -
getHealthCheckTimeoutSeconds
public int getHealthCheckTimeoutSeconds() -
setHealthCheckTimeoutSeconds
@DataBoundSetter public void setHealthCheckTimeoutSeconds(int healthCheckTimeoutSeconds) -
getHealthCheckRetries
public int getHealthCheckRetries() -
setHealthCheckRetries
@DataBoundSetter public void setHealthCheckRetries(int healthCheckRetries) -
hasHealthCheck
public boolean hasHealthCheck()Checks if health check is configured. -
getCapAdd
-
setCapAdd
-
setCapAddString
-
getCapAddString
-
getCapDrop
-
setCapDrop
-
setCapDropString
-
getCapDropString
-
getSysctls
-
setSysctls
-
setSysctlsString
-
getSysctlsString
-
isPrivileged
public boolean isPrivileged() -
setPrivileged
@DataBoundSetter public void setPrivileged(boolean privileged) -
isDisableContainerArgs
public boolean isDisableContainerArgs()Returns true if container args should be disabled. When disabled, only environment variables are passed to the container. -
setDisableContainerArgs
@DataBoundSetter public void setDisableContainerArgs(boolean disableContainerArgs) -
getUser
-
setUser
-
getHostname
-
setHostname
-
getDnsServers
-
setDnsServers
-
setDnsServersString
-
getDnsServersString
-
getDnsIps
-
setDnsIps
-
getDnsOptions
-
setDnsOptions
-
getDnsSearch
-
setDnsSearch
-
getExtraHosts
Gets extra hosts entries for container's /etc/hosts file. Format: hostname:IP (e.g., myhost:192.168.1.1) -
setExtraHosts
-
setExtraHostsString
Sets extra hosts from a newline-separated string (for Jelly UI). Format: hostname:IP (one per line) -
getExtraHostsString
Gets extra hosts as a newline-separated string (for Jelly UI). -
getStopSignal
-
setStopSignal
-
getStopGracePeriod
public long getStopGracePeriod() -
setStopGracePeriod
@DataBoundSetter public void setStopGracePeriod(long stopGracePeriod) -
getInheritFrom
-
setInheritFrom
-
getGenericResources
-
setGenericResources
@DataBoundSetter public void setGenericResources(List<SwarmAgentTemplate.GenericResource> genericResources) -
getGenericResourcesString
Gets generic resources as string for UI (comma-separated: NVIDIA-GPU=1, FPGA=2) -
setGenericResourcesString
-
getSeccompProfile
-
setSeccompProfile
-
getApparmorProfile
-
setApparmorProfile
-
getConnectionTimeoutSeconds
public int getConnectionTimeoutSeconds() -
setConnectionTimeoutSeconds
@DataBoundSetter public void setConnectionTimeoutSeconds(int connectionTimeoutSeconds) -
getIdleTimeoutMinutes
public int getIdleTimeoutMinutes() -
setIdleTimeoutMinutes
@DataBoundSetter public void setIdleTimeoutMinutes(int idleTimeoutMinutes) -
getProvisionRetryCount
public int getProvisionRetryCount() -
setProvisionRetryCount
@DataBoundSetter public void setProvisionRetryCount(int provisionRetryCount) -
getProvisionRetryDelayMs
public long getProvisionRetryDelayMs() -
setProvisionRetryDelayMs
@DataBoundSetter public void setProvisionRetryDelayMs(long provisionRetryDelayMs) -
getPortBindings
-
setPortBindings
-
getPortBindingsString
Gets port bindings as newline-separated string for UI. Format: [hostPort:]containerPort[/protocol] Examples: 80:8080, :5900, 443:8443/tcp -
setPortBindingsString
Sets port bindings from newline-separated string. -
getPortBinds
-
setPortBinds
-
getRegistryCredentialsId
Gets the credentials ID for Docker registry authentication. Used when pulling private images. -
setRegistryCredentialsId
Sets the credentials ID for Docker registry authentication.- Parameters:
registryCredentialsId- ID of username/password credentials for registry auth
-
resolve
Resolves this template by merging with parent template if inheritFrom is set. Similar to Kubernetes plugin podTemplate inheritance.- Returns:
- Resolved template with inherited values
-
setParent
-
getParent
-
getLabelSet
Gets the set of labels for this template. -
matches
Checks if this template matches the given label. -
generateAgentName
Generates a unique agent name. -
getAvailableCapacity
public int getAvailableCapacity()Gets the available capacity for new instances. -
incrementInstances
public void incrementInstances()Increments the current instance count. -
decrementInstances
public void decrementInstances()Decrements the current instance count. -
getCurrentInstances
public int getCurrentInstances()Gets the current instance count. -
setCurrentInstances
public void setCurrentInstances(int count) Sets the current instance count directly. Used for synchronizing with actual service count from Docker Swarm.
-