|
1 | 1 | package io.quarkus.kubernetes.deployment; |
2 | 2 |
|
3 | | -import static io.quarkus.kubernetes.deployment.Constants.*; |
4 | | -import static io.quarkus.kubernetes.spi.KubernetesDeploymentTargetBuildItem.*; |
| 3 | +import static io.quarkus.kubernetes.deployment.Constants.DEFAULT_HTTP_PORT; |
| 4 | +import static io.quarkus.kubernetes.deployment.Constants.DEFAULT_S2I_IMAGE_NAME; |
| 5 | +import static io.quarkus.kubernetes.deployment.Constants.DEPLOYMENT; |
| 6 | +import static io.quarkus.kubernetes.deployment.Constants.DEPLOYMENT_CONFIG; |
| 7 | +import static io.quarkus.kubernetes.deployment.Constants.HTTP_PORT; |
| 8 | +import static io.quarkus.kubernetes.deployment.Constants.KNATIVE; |
| 9 | +import static io.quarkus.kubernetes.deployment.Constants.KUBERNETES; |
| 10 | +import static io.quarkus.kubernetes.deployment.Constants.MAX_NODE_PORT_VALUE; |
| 11 | +import static io.quarkus.kubernetes.deployment.Constants.MAX_PORT_NUMBER; |
| 12 | +import static io.quarkus.kubernetes.deployment.Constants.MINIKUBE; |
| 13 | +import static io.quarkus.kubernetes.deployment.Constants.MIN_NODE_PORT_VALUE; |
| 14 | +import static io.quarkus.kubernetes.deployment.Constants.MIN_PORT_NUMBER; |
| 15 | +import static io.quarkus.kubernetes.deployment.Constants.OPENSHIFT; |
| 16 | +import static io.quarkus.kubernetes.deployment.Constants.OPENSHIFT_APP_RUNTIME; |
| 17 | +import static io.quarkus.kubernetes.deployment.Constants.QUARKUS; |
| 18 | +import static io.quarkus.kubernetes.deployment.Constants.QUARKUS_ANNOTATIONS_BUILD_TIMESTAMP; |
| 19 | +import static io.quarkus.kubernetes.deployment.Constants.QUARKUS_ANNOTATIONS_COMMIT_ID; |
| 20 | +import static io.quarkus.kubernetes.deployment.Constants.QUARKUS_ANNOTATIONS_VCS_URL; |
| 21 | +import static io.quarkus.kubernetes.deployment.Constants.SERVICE; |
| 22 | +import static io.quarkus.kubernetes.spi.KubernetesDeploymentTargetBuildItem.DEFAULT_PRIORITY; |
| 23 | +import static io.quarkus.kubernetes.spi.KubernetesDeploymentTargetBuildItem.VANILLA_KUBERNETES_PRIORITY; |
| 24 | +import static io.quarkus.kubernetes.spi.KubernetesDeploymentTargetBuildItem.mergeList; |
5 | 25 |
|
6 | 26 | import java.io.File; |
7 | 27 | import java.io.IOException; |
8 | 28 | import java.math.BigInteger; |
9 | 29 | import java.nio.charset.StandardCharsets; |
10 | 30 | import java.nio.file.Files; |
11 | 31 | import java.nio.file.Path; |
| 32 | +import java.nio.file.Paths; |
12 | 33 | import java.security.MessageDigest; |
13 | 34 | import java.time.ZoneOffset; |
14 | 35 | import java.time.ZonedDateTime; |
15 | 36 | import java.time.format.DateTimeFormatter; |
16 | | -import java.util.*; |
| 37 | +import java.util.ArrayList; |
| 38 | +import java.util.Collection; |
| 39 | +import java.util.Collections; |
| 40 | +import java.util.HashMap; |
| 41 | +import java.util.HashSet; |
| 42 | +import java.util.LinkedList; |
| 43 | +import java.util.List; |
| 44 | +import java.util.Map; |
| 45 | +import java.util.Optional; |
| 46 | +import java.util.Set; |
17 | 47 | import java.util.stream.Collectors; |
18 | 48 |
|
19 | 49 | import org.jboss.logging.Logger; |
|
28 | 58 | import io.dekorate.kubernetes.config.Label; |
29 | 59 | import io.dekorate.kubernetes.config.PortBuilder; |
30 | 60 | import io.dekorate.kubernetes.configurator.AddPort; |
31 | | -import io.dekorate.kubernetes.decorator.*; |
| 61 | +import io.dekorate.kubernetes.decorator.AddAnnotationDecorator; |
| 62 | +import io.dekorate.kubernetes.decorator.AddAwsElasticBlockStoreVolumeDecorator; |
| 63 | +import io.dekorate.kubernetes.decorator.AddAzureDiskVolumeDecorator; |
| 64 | +import io.dekorate.kubernetes.decorator.AddAzureFileVolumeDecorator; |
| 65 | +import io.dekorate.kubernetes.decorator.AddConfigMapVolumeDecorator; |
| 66 | +import io.dekorate.kubernetes.decorator.AddEnvVarDecorator; |
| 67 | +import io.dekorate.kubernetes.decorator.AddImagePullSecretDecorator; |
| 68 | +import io.dekorate.kubernetes.decorator.AddInitContainerDecorator; |
| 69 | +import io.dekorate.kubernetes.decorator.AddLabelDecorator; |
| 70 | +import io.dekorate.kubernetes.decorator.AddLivenessProbeDecorator; |
| 71 | +import io.dekorate.kubernetes.decorator.AddMountDecorator; |
| 72 | +import io.dekorate.kubernetes.decorator.AddPvcVolumeDecorator; |
| 73 | +import io.dekorate.kubernetes.decorator.AddReadinessProbeDecorator; |
| 74 | +import io.dekorate.kubernetes.decorator.AddRoleBindingResourceDecorator; |
| 75 | +import io.dekorate.kubernetes.decorator.AddSecretVolumeDecorator; |
| 76 | +import io.dekorate.kubernetes.decorator.AddServiceAccountResourceDecorator; |
| 77 | +import io.dekorate.kubernetes.decorator.ApplyArgsDecorator; |
| 78 | +import io.dekorate.kubernetes.decorator.ApplyCommandDecorator; |
| 79 | +import io.dekorate.kubernetes.decorator.ApplyImagePullPolicyDecorator; |
| 80 | +import io.dekorate.kubernetes.decorator.ApplyServiceAccountNamedDecorator; |
| 81 | +import io.dekorate.kubernetes.decorator.ApplyWorkingDirDecorator; |
| 82 | +import io.dekorate.kubernetes.decorator.RemoveAnnotationDecorator; |
| 83 | +import io.dekorate.logger.NoopLogger; |
32 | 84 | import io.dekorate.processor.SimpleFileReader; |
33 | 85 | import io.dekorate.processor.SimpleFileWriter; |
34 | 86 | import io.dekorate.project.BuildInfo; |
@@ -224,13 +276,13 @@ public void build(ApplicationInfoBuildItem applicationInfo, |
224 | 276 | final Map<String, String> generatedResourcesMap; |
225 | 277 | // by passing false to SimpleFileWriter, we ensure that no files are actually written during this phase |
226 | 278 | Project project = createProject(applicationInfo, artifactPath); |
227 | | - final SessionWriter sessionWriter = new SimpleFileWriter(root, false); |
| 279 | + final SessionWriter sessionWriter = new SimpleFileWriter(project, false); |
228 | 280 | final SessionReader sessionReader = new SimpleFileReader( |
229 | 281 | project.getRoot().resolve("src").resolve("main").resolve("kubernetes"), kubernetesDeploymentTargets |
230 | 282 | .getEntriesSortedByPriority().stream() |
231 | 283 | .map(EnabledKubernetesDeploymentTargetsBuildItem.Entry::getName).collect(Collectors.toSet())); |
232 | 284 | sessionWriter.setProject(project); |
233 | | - final Session session = Session.getSession(new io.dekorate.logger.NoopLogger()); |
| 285 | + final Session session = Session.getSession(new NoopLogger()); |
234 | 286 | session.setWriter(sessionWriter); |
235 | 287 | session.setReader(sessionReader); |
236 | 288 |
|
@@ -275,21 +327,24 @@ public void build(ApplicationInfoBuildItem applicationInfo, |
275 | 327 |
|
276 | 328 | List<String> generatedFileNames = new ArrayList<>(generatedResourcesMap.size()); |
277 | 329 | for (Map.Entry<String, String> resourceEntry : generatedResourcesMap.entrySet()) { |
278 | | - String fileName = resourceEntry.getKey().replace(root.toAbsolutePath().toString(), ""); |
279 | | - String relativePath = resourceEntry.getKey().replace(root.toAbsolutePath().toString(), KUBERNETES); |
| 330 | + Path path = Paths.get(resourceEntry.getKey()); |
| 331 | + //We need to ignore the config yml |
| 332 | + if (!path.toFile().getParentFile().getName().equals("dekorate")) { |
| 333 | + continue; |
| 334 | + } |
| 335 | + String fileName = path.toFile().getName(); |
| 336 | + Path targetPath = outputTarget.getOutputDirectory().resolve(KUBERNETES).resolve(fileName); |
| 337 | + String relativePath = targetPath.toAbsolutePath().toString().replace(root.toAbsolutePath().toString(), ""); |
280 | 338 |
|
| 339 | + resourceEntry.getKey().replace(root.toAbsolutePath().toString(), KUBERNETES); |
281 | 340 | if (fileName.endsWith(".yml") || fileName.endsWith(".json")) { |
282 | 341 | String target = fileName.substring(0, fileName.lastIndexOf(".")); |
283 | | - if (target.startsWith(File.separator)) { |
284 | | - target = target.substring(1); |
285 | | - } |
286 | | - |
287 | 342 | if (!deploymentTargets.contains(target)) { |
288 | 343 | continue; |
289 | 344 | } |
290 | 345 | } |
291 | 346 |
|
292 | | - generatedFileNames.add(fileName.replace("/", "")); |
| 347 | + generatedFileNames.add(fileName); |
293 | 348 | generatedResourceProducer.produce( |
294 | 349 | new GeneratedFileSystemResourceBuildItem( |
295 | 350 | // we need to make sure we are only passing the relative path to the build item |
|
0 commit comments