private ImageConfiguration getImageWithContainerName(String containerName) { if (containerName == null) { return null; } List<ImageConfiguration> images = getImages().orElse(Collections.emptyList()); for (ImageConfiguration image : images) { String imageContainerName = KubernetesResourceUtil.extractContainerName(getContext().getGav(), image); if (Objects.equal(containerName, imageContainerName)) { return image; } } return null; }
private String findGrafanaLink() { String defaultDashboard = detectDefaultDashboard(); String query = ""; String projectName = null; String version = null; // TODO - use the docker names which may differ from project metadata! if (StringUtils.isBlank(projectName)) { projectName = getContext().getGav().getArtifactId(); } if (StringUtils.isBlank(version)) { version = getContext().getGav().getVersion(); } if (StringUtils.isNotBlank(projectName)) { query += "&var-project=" + projectName; } if (StringUtils.isNotBlank(version)) { query += "&var-version=" + version; } if (query.startsWith("&")) { query = "?" + query.substring(1); } return String.format("dashboard/file/%s%s", defaultDashboard, query); }
private Map<String, String> createLabels(boolean withoutVersion) { Map<String, String> ret = new HashMap<>(); boolean enableProjectLabel = Configs.asBoolean(getConfig(Config.useProjectLabel)); final GroupArtifactVersion groupArtifactVersion = getContext().getGav(); if (enableProjectLabel) { ret.put("project", groupArtifactVersion.getArtifactId()); } else { // default label is app ret.put("app", groupArtifactVersion.getArtifactId()); } ret.put("group", groupArtifactVersion.getGroupId()); ret.put("provider", "fabric8"); if (!withoutVersion) { ret.put("version", groupArtifactVersion.getVersion()); } return ret; } }
private void mergeContainerName(ImageConfiguration imageConfiguration, Container container) { if (StringUtils.isBlank(container.getName())) { String containerName = extractContainerName(getContext().getGav(), imageConfiguration); log.verbose("Setting container name %s",containerName); container.setName(containerName); } }
private String getDefaultServiceName(Service defaultService) { String defaultServiceName = KubernetesHelper.getName(defaultService); if (StringUtils.isBlank(defaultServiceName)) { defaultServiceName = getContext().getGav().getSanitizedArtifactId(); } return defaultServiceName; }
public AutoTLSEnricher(MavenEnricherContext buildContext) { super(buildContext, ENRICHER_NAME); this.secretName = getConfig(Config.tlsSecretName, getContext().getGav().getArtifactId() + "-tls"); this.initContainerHandler = new InitContainerHandler(buildContext.getLog()); }
public ControllerViaPluginConfigurationEnricher(MavenEnricherContext context) { super(context, "fmp-controller-from-configuration"); HandlerHub handlers = new HandlerHub( getContext().getGav(), getContext().getConfiguration().getProperties()); deployHandler = handlers.getDeploymentHandler(); statefulSetHandler = handlers.getStatefulSetHandler(); }
public DefaultControllerEnricher(MavenEnricherContext buildContext) { super(buildContext, "fmp-controller"); HandlerHub handlers = new HandlerHub( getContext().getGav(), getContext().getConfiguration().getProperties()); rcHandler = handlers.getReplicationControllerHandler(); rsHandler = handlers.getReplicaSetHandler(); deployHandler = handlers.getDeploymentHandler(); statefulSetHandler = handlers.getStatefulSetHandler(); daemonSetHandler = handlers.getDaemonSetHandler(); jobHandler = handlers.getJobHandler(); }
@Override public void addMissingResources(KubernetesListBuilder builder) { final String name = getConfig(Config.name, MavenUtil.createDefaultResourceName(getContext().getGav().getSanitizedArtifactId())); ResourceConfig xmlResourceConfig = getConfiguration().getResource().orElse(null); ResourceConfig config = new ResourceConfig.Builder(xmlResourceConfig)
@Override public Map<String, String> getAnnotations(Kind kind) { if (isOnline() && (kind.isController() || kind == Kind.SERVICE)) { Map<String, String> annotations = new HashMap<>(); String repoName = getContext().getGav().getArtifactId(); try (Repository repository = GitUtil.getGitRepository(getContext().getProjectDirectory())) { // Git annotations (if git is used as SCM) if (repository != null) { String gitCommitId = GitUtil.getGitCommitId(repository); if (gitCommitId != null) { addGitServiceUrl(annotations, repoName, gitCommitId); } else { log.debug("No Git commit id found"); } } else { log.debug("No local Git repository found"); } } catch (IOException | GitAPIException e) { log.error("Cannot extract Git information for adding to annotations: " + e, e); } // Jenkins annotations addJenkinsServiceUrl(annotations, repoName); return annotations; } return null; }
@Override public void addMissingResources(KubernetesListBuilder builder) { final String defaultName = getConfig(Config.name, MavenUtil.createDefaultResourceName(getContext().getGav().getSanitizedArtifactId()));
private Service getDefaultService() { // No image config, no service if (!hasImageConfiguration()) { return null; } String serviceName = getConfig(Config.name, MavenUtil.createDefaultResourceName(getContext().getGav().getSanitizedArtifactId())); // Create service only for all images which are supposed to live in a single pod List<ServicePort> ports = extractPorts(getImages().get()); ServiceBuilder builder = new ServiceBuilder() .withNewMetadata() .withName(serviceName) .withLabels(extractLabels()) .endMetadata(); ServiceFluent.SpecNested<ServiceBuilder> specBuilder = builder.withNewSpec(); if (!ports.isEmpty()) { specBuilder.withPorts(ports); } else if (Configs.asBoolean(getConfig(Config.headless))) { specBuilder.withClusterIP("None"); } else { // No ports, no headless --> no service return null; } if (hasConfig(Config.type)) { specBuilder.withType(getConfig(Config.type)); } specBuilder.endSpec(); return builder.build(); }
@Override public void addMissingResources(KubernetesListBuilder builder) { final String name = getConfig(Config.name, MavenUtil.createDefaultResourceName(getContext().getGav().getSanitizedArtifactId())); final ResourceConfig config = new ResourceConfig.Builder() .controllerName(name)