Skip to content

Commit 29a9fc1

Browse files
committed
fix: set importer secretId from secretRef name
Signed-off-by: adrims <adrims1986@gmail.com>
1 parent d904409 commit 29a9fc1

1 file changed

Lines changed: 17 additions & 5 deletions

File tree

operator/src/main/java/io/github/microcks/operator/artifact/APISourceReconciler.java

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,12 @@
1717

1818
import io.github.microcks.client.ApiClient;
1919
import io.github.microcks.client.ApiException;
20+
import io.github.microcks.client.api.ConfigApi;
2021
import io.github.microcks.client.api.JobApi;
2122
import io.github.microcks.client.api.MockApi;
2223
import io.github.microcks.client.model.ImportJob;
2324
import io.github.microcks.client.model.Metadata;
25+
import io.github.microcks.client.model.Secret;
2426
import io.github.microcks.client.model.SecretRef;
2527
import io.github.microcks.operator.AbstractMicrocksDependantReconciler;
2628
import io.github.microcks.operator.KeycloakHelper;
@@ -38,7 +40,6 @@
3840
import com.fasterxml.jackson.core.JsonProcessingException;
3941
import com.fasterxml.jackson.databind.JsonNode;
4042
import com.fasterxml.jackson.databind.ObjectMapper;
41-
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
4243
import io.fabric8.kubernetes.client.KubernetesClient;
4344
import io.javaoperatorsdk.operator.api.config.informer.Informer;
4445
import io.javaoperatorsdk.operator.api.reconciler.Cleaner;
@@ -51,6 +52,7 @@
5152
import org.jboss.logging.Logger;
5253

5354
import java.time.Duration;
55+
import java.util.List;
5456

5557
import static io.javaoperatorsdk.operator.api.reconciler.Constants.WATCH_CURRENT_NAMESPACE;
5658

@@ -276,7 +278,7 @@ protected String ensureImporterIsPresent(ApiClient apiClient, ImporterSpec impor
276278
JobApi jobApi = new JobApi(apiClient);
277279
ImportJob job = jobApi.getImportJob(previousId);
278280
if (job != null) {
279-
updateWithImporterSpec(job, importerSpec);
281+
updateWithImporterSpec(apiClient, job, importerSpec);
280282
jobApi.updateImportJob(previousId, job);
281283
return previousId;
282284
}
@@ -287,22 +289,32 @@ protected String ensureImporterIsPresent(ApiClient apiClient, ImporterSpec impor
287289
protected String createImporterJob(ApiClient apiClient, ImporterSpec importerSpec) throws ApiException {
288290
// Move ImporterSpec into Microcks API model.
289291
ImportJob job = new ImportJob();
290-
updateWithImporterSpec(job, importerSpec);
292+
updateWithImporterSpec(apiClient, job, importerSpec);
291293
// Use the apiClient to create the job.
292294
JobApi jobApi = new JobApi(apiClient);
293295
job = jobApi.createImportJob(job);
294296
return job.getId();
295297
}
296298

297-
protected void updateWithImporterSpec(ImportJob job, ImporterSpec importerSpec) {
299+
protected void updateWithImporterSpec(ApiClient apiClient, ImportJob job, ImporterSpec importerSpec) throws ApiException {
298300
job.setName(importerSpec.getName());
299301
job.setRepositoryUrl(importerSpec.getRepository().getUrl());
300302
job.setRepositoryDisableSSLValidation(importerSpec.getRepository().getDisableSSLValidation());
301303
job.setMainArtifact(importerSpec.getMainArtifact());
302304
job.setActive(importerSpec.getActive());
303305
if (importerSpec.getRepository().getSecretRef() != null) {
306+
String secretName = importerSpec.getRepository().getSecretRef();
307+
ConfigApi configApi = new ConfigApi(apiClient);
308+
List<Secret> secrets = configApi.searchSecrets(secretName);
309+
String secretId = secrets.stream()
310+
.filter(secret -> secretName.equals(secret.getName()))
311+
.findFirst()
312+
.map(Secret::getId)
313+
.orElseThrow(() -> new ApiException("Secret '" + secretName + "' not found in Microcks"));
314+
304315
SecretRef secretRef = new SecretRef();
305-
secretRef.setName(importerSpec.getRepository().getSecretRef());
316+
secretRef.setName(secretName);
317+
secretRef.setSecretId(secretId);
306318
job.setSecretRef(secretRef);
307319
}
308320
if (importerSpec.getLabels() != null) {

0 commit comments

Comments
 (0)