|
15 | 15 | import io.sentrius.sso.core.config.SystemOptions; |
16 | 16 | import io.sentrius.sso.core.controllers.BaseController; |
17 | 17 | import io.sentrius.sso.core.dto.AgentRegistrationDTO; |
| 18 | +import io.sentrius.sso.core.dto.podman.ImageIntent; |
| 19 | +import io.sentrius.sso.core.dto.podman.LaunchConfiguration; |
18 | 20 | import io.sentrius.sso.core.exceptions.ZtatException; |
19 | 21 | import io.sentrius.sso.core.model.ATPLPolicyEntity; |
20 | 22 | import io.sentrius.sso.core.model.security.enums.ApplicationAccessEnum; |
|
36 | 38 | import io.sentrius.sso.core.services.security.ZeroTrustRequestService; |
37 | 39 | import io.sentrius.sso.core.services.terminal.SessionTrackingService; |
38 | 40 | import io.sentrius.sso.core.trust.ATPLPolicy; |
| 41 | +import io.sentrius.sso.core.utils.JsonUtil; |
39 | 42 | import jakarta.servlet.http.HttpServletRequest; |
40 | 43 | import jakarta.servlet.http.HttpServletResponse; |
41 | 44 | import jakarta.transaction.Transactional; |
@@ -206,9 +209,19 @@ public ResponseEntity<AgentRegistrationDTO> bootstrap( |
206 | 209 | @PostMapping("/launcher/create") |
207 | 210 | @LimitAccess(applicationAccess = {ApplicationAccessEnum.CAN_MANAGE_APPLICATION}) |
208 | 211 | public ResponseEntity<String> launchPod( |
209 | | - @RequestBody AgentRegistrationDTO registrationDTO, HttpServletRequest request, HttpServletResponse response |
| 212 | + @RequestBody AgentRegistrationDTO registrationDTOPre, HttpServletRequest request, HttpServletResponse response |
210 | 213 | ) throws GeneralSecurityException, IOException, ZtatException { |
211 | 214 |
|
| 215 | + // supplement the registration DTO with image information. |
| 216 | + |
| 217 | + var image = |
| 218 | + ImageIntent.builder().tag(systemOptions.getAgentImageTag()).repo(systemOptions.getAgentRegistry()).build(); |
| 219 | + |
| 220 | + LaunchConfiguration launchConfig = LaunchConfiguration.builder().imageIntent(image).build(); |
| 221 | + log.info("Using agent image intent: {}", JsonUtil.MAPPER.writeValueAsString(launchConfig)); |
| 222 | + AgentRegistrationDTO registrationDTO = |
| 223 | + registrationDTOPre.toBuilder().idleSleepMs(systemOptions.getAgentSleepInterval()).templateLaunchConfiguration( |
| 224 | + JsonUtil.MAPPER.writeValueAsString(launchConfig)).build(); |
212 | 225 | try{ |
213 | 226 | log.info("Launching agent pod with ID: {}", registrationDTO.getAgentName()); |
214 | 227 |
|
|
0 commit comments