INFRA-3746 | Abhishek | Configure different image for golang diagnostics

This commit is contained in:
Abhishek Katiyar
2024-12-26 17:57:54 +05:30
parent 9425d4af25
commit c55c201b4e
4 changed files with 33 additions and 6 deletions

View File

@@ -11,7 +11,8 @@ import static com.navi.infra.portal.v2.diagnostic.DiagnosticServiceUtilities.get
import static com.navi.infra.portal.v2.diagnostic.DiagnosticServiceUtilities.getEnvironment;
import static com.navi.infra.portal.v2.diagnostic.DiagnosticServiceUtilities.getLanguage;
import static com.navi.infra.portal.v2.diagnostic.DiagnosticServiceUtilities.getNamespace;
import static com.navi.infra.portal.v2.diagnostic.DiagnosticServiceUtilities.getPort;
import static com.navi.infra.portal.v2.diagnostic.DiagnosticServiceUtilities.getPortForDiagnostics;
import static com.navi.infra.portal.v2.diagnostic.DiagnosticServiceUtilities.getRunnerImage;
import static java.util.stream.Collectors.toList;
import com.navi.infra.portal.client.AwsS3Client;
@@ -42,6 +43,8 @@ class DiagnosticServiceImpl implements DiagnosticService {
private final String dagId;
private final String vertical;
private final String runnerImage;
private final String golangRunnerImage;
private final String airflowUrl;
public DiagnosticServiceImpl(
@@ -52,12 +55,14 @@ class DiagnosticServiceImpl implements DiagnosticService {
@Value("${service-dump.dag.id}") String dagId,
@Value("${portal.vertical}") String vertical,
@Value("${service-dump.image.name}") String runnerImage,
@Value("${golang-service-dump.image.name}") String golangRunnerImage,
@Value("${airflow.url}") String airflowUrl
) {
this.airflowClient = airflowClient;
this.manifestService = manifestService;
this.diagnosticRepository = diagnosticRepository;
this.awsS3Client = awsS3Client;
this.golangRunnerImage = golangRunnerImage;
this.dagId = dagId;
this.vertical = vertical;
this.runnerImage = runnerImage;
@@ -72,7 +77,7 @@ class DiagnosticServiceImpl implements DiagnosticService {
final var environment = getEnvironment(manifest);
final var manifestName = manifest.getName();
final var language = getLanguage(manifest);
final var port = getPort(manifest);
final var port = getPortForDiagnostics(manifest);
return createDiagnostic(
triggerDiagnosticRequest, cluster, namespace, environment, manifestName, language, port
)
@@ -144,6 +149,8 @@ class DiagnosticServiceImpl implements DiagnosticService {
final var diagnosticPath = getDiagnosticPath(environment, manifestName);
final var diagnosticType = triggerDiagnosticRequest.getDiagnosticType();
final var image = getRunnerImage(language, runnerImage, golangRunnerImage);
DiagnosticTriggerRequestBuilder requestBuilder = new DiagnosticTriggerRequestBuilder()
.cluster(cluster)
.namespace(namespace)
@@ -153,7 +160,7 @@ class DiagnosticServiceImpl implements DiagnosticService {
.dagId(dagId)
.runId(createRunId(podName, instant))
.containerName(getContainerFromPod(podName))
.runnerImage(runnerImage)
.runnerImage(image)
.diagnosticResultName(diagnosticResultName)
.diagnosticType(diagnosticType.getName())
.isFullDump(triggerDiagnosticRequest.isFullDump())

View File

@@ -63,9 +63,12 @@ public class DiagnosticServiceUtilities {
"Language is not present in manifest " + manifest.fullName());
}
static Integer getPort(Manifest manifest) {
return requireNonNull(manifest.getDeployment().getMetricsPort(),
"Metrics port is not present in manifest " + manifest.fullName());
static Integer getPortForDiagnostics(Manifest manifest) {
if (manifest.getMetadata().getLanguage().equals("Golang")) {
return requireNonNull(manifest.getDeployment().getMetricsPort(),
"Metrics port is not present in manifest " + manifest.fullName());
}
return null;
}
static String getNamespace(Manifest manifest) {
@@ -85,4 +88,19 @@ public class DiagnosticServiceUtilities {
static String getDiagnosticTaskLogUrl(String airflowUrl, String logUrl) {
return airflowUrl + "/" + logUrl;
}
static String getRunnerImage(
String language,
String javaRunnerImage,
String golangRunnerImage
) {
switch (language) {
case "Golang":
return golangRunnerImage;
case "Java":
case "Kotlin":
return javaRunnerImage;
}
throw new RuntimeException("Could not find runnner image for language " + language);
}
}

View File

@@ -70,6 +70,7 @@ airflow.url=${AIRFLOW_URL}
airflow.token=${AIRFLOW_AUTH_TOKEN}
service-dump.dag.id=${SERVICE_DUMP_DAG_ID}
service-dump.image.name=${SERVICE_DUMP_IMAGE_NAME:193044292705.dkr.ecr.ap-south-1.amazonaws.com/common/jdk11-diagnostic:v101e0a93f95d3989fe6484cd5c0dae05cfe0ce3b}
golang-service-dump.image.name=${GOLANG_SERVICE_DUMP_IMAGE_NAME:193044292705.dkr.ecr.ap-south-1.amazonaws.com/common/golang-diagnostic:v3db848072fbfb602c1c17c2b5f733dc58005f099}
aws.profile=${AWS_PROFILE:default}
spring.mvc.async.request-timeout=1800000
jit.number_of_prod_approvals=2

View File

@@ -72,6 +72,7 @@ jit.slack.policy.upload.channel.id=C0000000000
jit.max-grant-window=24
slackbot.token=xoxb-676123123123-123123123123-123123123123-123123123123
service-dump.image.name=${SERVICE_DUMP_IMAGE_NAME:193044292705.dkr.ecr.ap-south-1.amazonaws.com/common/jdk11-diagnostic:va39edbc8ebfbe68aedb776566e11b88cb4920d75}
golang-service-dump.image.name=${GOLANG_SERVICE_DUMP_IMAGE_NAME:193044292705.dkr.ecr.ap-south-1.amazonaws.com/common/golang-diagnostic:v3db848072fbfb602c1c17c2b5f733dc58005f099}
github.token=${GITHUB_CLOUD_OAUTH_TOKEN:token}
gocd.pipelines.config="{\"navi-data-science\":{\"gocdServerUrl\":\"https://datascience-pipelines.cmd.navi-tech.in\",\"gocdAdminAccessToken\":\"datascience-token\"},\"navi-infra\":{\"gocdServerUrl\":\"https://infra-pipelines.cmd.navi-tech.in\",\"gocdAdminAccessToken\":\"infra-token\"},\"default\":{\"gocdServerUrl\":\"https://pipelines.cmd.navi-tech.in\",\"gocdAdminAccessToken\":\"pipelines-token\"}}"
vertical.owner.map={'lending':{'navi-data-science':'navi-data-science','default':'navi-medici'},'insurance':{'default':'navi-gi'},'sa':{'default':'navi-sa'},'amc':{'default':'navi-amc'},'navi-pay':{'default':'navi-pay'},'navi-ppl':{'default':'navi-ppl'}}