Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit d177c82
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Thu Sep 21 19:02:43 2023 +0100

    updated HelmExecutionBuilder workingDirectory to use PWD instead of new File('.') from FileUtils

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 7ef57c1
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Thu Sep 21 14:09:23 2023 +0100

    removed commented out code that was previously used for shadowjars

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 4891dd5
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Wed Sep 20 20:02:40 2023 +0100

    remove shadowjars

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 9d67a54
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Wed Sep 20 19:48:24 2023 +0100

    remove shadowjars

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 3dc75a0
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Wed Sep 20 19:43:55 2023 +0100

    todo

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 7660afb
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Wed Sep 20 19:42:46 2023 +0100

    more todo's

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 51df393
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Wed Sep 20 18:04:31 2023 +0100

    switch to a different repo to avoid test collisions

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 44754c1
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Wed Sep 20 17:35:19 2023 +0100

    remove code smells

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit d068f26
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Wed Sep 20 16:25:05 2023 +0100

    updated HelmInstallChartTaskTest to different chart/repo to avoid collisions with other tests

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 7821d6f
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Wed Sep 20 13:10:07 2023 +0100

    add licenses at top of kotlin files

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit ae3d3c7
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Wed Sep 20 13:02:06 2023 +0100

    added TODO

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 4a82261
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Wed Sep 20 12:53:04 2023 +0100

    Revert "removed unneeded test implementation reference"

    This reverts commit 8eedff9.

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 674c155
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Wed Sep 20 12:49:28 2023 +0100

    removed unneeded test implementation reference

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 23c3104
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Wed Sep 20 12:45:25 2023 +0100

    upcoming todo for next PR

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 72bf7b3
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Tue Sep 19 22:26:19 2023 +0100

    removed commented out code

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit aec75d3
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Tue Sep 19 22:24:54 2023 +0100

    FileUtils.getWorkingPath()

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 50e2a0e
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Tue Sep 19 22:21:05 2023 +0100

    remove commented out code

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 659283b
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Tue Sep 19 22:20:56 2023 +0100

    remove commented out code

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 5fb6e86
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Tue Sep 19 22:20:30 2023 +0100

    added namespace and create namespace and example chart for installing during build check

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 6102441
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Mon Sep 18 19:44:36 2023 +0100

    working version

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 7e06feb
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Mon Sep 18 19:29:05 2023 +0100

    task working

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 19c176b
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Mon Sep 18 19:06:37 2023 +0100

    non-working version

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 9e2e66f
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Mon Sep 18 17:01:59 2023 +0100

    compiling version although not executing of moving integration tests into examples

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit c5a9b8a
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Fri Sep 15 18:30:00 2023 +0100

    added logic to set the namespace in the helm install task

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit dc85197
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Fri Sep 15 17:47:30 2023 +0100

    removed duplicate export

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 6710059
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Fri Sep 15 17:28:10 2023 +0100

    added support for set and values parameters of install subcommand to handle sets

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 0d49686
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Fri Sep 15 17:27:21 2023 +0100

    enhanced helm client to handle sets of strings for values and set parameters for the install subcommand

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 3f634e0
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Thu Sep 14 19:39:03 2023 +0100

    test nmt install

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit a760d52
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Thu Sep 14 19:06:12 2023 +0100

    update version from 0.7.0 to 0.8.0

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 3c2a99b
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Thu Sep 14 19:04:34 2023 +0100

    todo

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 77c59ef
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Thu Sep 14 18:57:51 2023 +0100

    removed comment from FullstackPlugin.java

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 840f64b
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Thu Sep 14 18:56:19 2023 +0100

    reordered alphabetically

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 28005ad
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Thu Sep 14 18:53:54 2023 +0100

    added set parameter

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit 1d03540
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Thu Sep 14 18:32:07 2023 +0100

    update after merge from main made a mess (part2)

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

commit bb254c6
Author: Jeromy Cannon <jeromy@swirldslabs.com>
Date:   Thu Sep 14 18:26:36 2023 +0100

    update after merge from main made a mess

    Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>

Signed-off-by: Jeromy Cannon <jeromy@swirldslabs.com>
  • Loading branch information
jeromy-cannon committed Oct 2, 2023
1 parent 7c5b663 commit 962080e
Show file tree
Hide file tree
Showing 14 changed files with 384 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@ plugins {
}

javaModuleDependencies {
versionsFromConsistentResolution(":fullstack-helm-client")

moduleNameToGA.put("com.hedera.fullstack.junit.support", "com.hedera.fullstack:fullstack-junit-support")
moduleNameToGA.put("com.hedera.fullstack.test.toolkit", "com.hedera.fullstack:fullstack-test-toolkit")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,15 @@
* limitations under the License.
*/

package com.hedera.fullstack.gradle.plugin;
plugins {
`kotlin-dsl`
}

public class Dummy {}
repositories {
gradlePluginPortal()
mavenCentral()
}

dependencies {
implementation("com.gradle:gradle-enterprise-gradle-plugin:3.14.1")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
* Copyright (C) 2023 Hedera Hashgraph, LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

pluginManagement {
repositories {
gradlePluginPortal()
mavenCentral()
}
}

plugins {
id("com.gradle.enterprise")
}

// Enable Gradle Build Scan
gradleEnterprise {
buildScan {
termsOfServiceUrl = "https://gradle.com/terms-of-service"
termsOfServiceAgree = "yes"

if (!System.getenv("CI").isNullOrEmpty()) {
publishAlways()
tag("CI")
}
}
}

// Allow projects inside a build to be addressed by dependency coordinates notation.
// https://docs.gradle.org/current/userguide/composite_builds.html#included_build_declaring_substitutions
// Some functionality of the 'java-module-dependencies' plugin relies on this.
includeBuild(".")
23 changes: 17 additions & 6 deletions build-logic/settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,8 +1,19 @@

//dependencyResolutionManagement {
// repositories {
// gradlePluginPortal()
// }
//}
/*
* Copyright (C) 2023 Hedera Hashgraph, LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

includeBuild("project-plugins")

includeBuild("settings-plugins")
40 changes: 29 additions & 11 deletions fullstack-examples/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -13,23 +13,41 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import com.hedera.fullstack.gradle.plugin.HelmInstallChartTask

plugins {
id("java")
id("com.hedera.fullstack.umbrella")
id("com.hedera.fullstack.conventions")
id("com.hedera.fullstack.jpms-modules")
id("com.hedera.fullstack.fullstack-gradle-plugin")
}

dependencies { api(platform(project(":fullstack-bom"))) }
dependencies {
api(platform("com.hedera.fullstack:fullstack-bom"))
implementation("com.hedera.fullstack:fullstack-readiness-api")
implementation("com.hedera.fullstack:fullstack-monitoring-api")
implementation("com.hedera.fullstack:fullstack-test-toolkit")
implementation("com.hedera.fullstack:fullstack-validator-api")
}

tasks.register<HelmInstallChartTask>("helmInstallFstChart") {
createNamespace.set(true)
namespace.set("fst-ns")
release.set("fst")
chart.set("../charts/hedera-network")
}

testing {
suites {
@Suppress("UnstableApiUsage", "unused")
val fullstack by
registering(JvmTestSuite::class) {
useJUnitJupiter()
dependencies { implementation(project(":fullstack-examples")) }
}
}
tasks.register<HelmInstallChartTask>("helmInstallNginxChart") {
createNamespace.set(true)
namespace.set("nginx-ns")
release.set("nginx-release")
chart.set("oci://ghcr.io/nginxinc/charts/nginx-ingress")
}

tasks.assemble.configure { dependsOn(tasks.named("fullstackClasses")) }
// TODO: task register helmUninstallNginxChart

tasks.check {
dependsOn("helmInstallNginxChart")
// TODO: depends on helmUninstallNginxChart
}
29 changes: 29 additions & 0 deletions fullstack-examples/settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
* Copyright (C) 2023 Hedera Hashgraph, LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

pluginManagement {
includeBuild("../build-logic")
includeBuild("..")
repositories {
mavenLocal()
mavenCentral()
gradlePluginPortal()
}
}

rootProject.name = "fullstack-examples"

includeBuild("..")
25 changes: 23 additions & 2 deletions fullstack-gradle-plugin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,27 @@
* limitations under the License.
*/

plugins { id("com.hedera.fullstack.conventions") }
plugins {
id("java-gradle-plugin")
id("com.gradle.plugin-publish").version("1.2.1")
id("com.hedera.fullstack.conventions")
id("com.hedera.fullstack.maven-publish")
}

dependencies { api(platform(project(":fullstack-bom"))) }
dependencies {
api(platform(project(":fullstack-bom")))
implementation(project(":fullstack-helm-client"))
}

gradlePlugin {
plugins {
create("fullstackPlugin") {
id = "com.hedera.fullstack.fullstack-gradle-plugin"
group = "com.hedera.fullstack"
implementationClass = "com.hedera.fullstack.gradle.plugin.FullstackPlugin"
displayName = "Fullstack Plugin"
description =
"The Fullstack Plugin provides tools for working with Fullstack infrastructure."
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/*
* Copyright (C) 2023 Hedera Hashgraph, LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.hedera.fullstack.gradle.plugin;

import org.gradle.api.Plugin;
import org.gradle.api.Project;

public class FullstackPlugin implements Plugin<Project> {
@Override
public void apply(Project project) {
// currently no implementation is needed
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
/*
* Copyright (C) 2023 Hedera Hashgraph, LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.hedera.fullstack.gradle.plugin;

import com.hedera.fullstack.helm.client.HelmClient;
import com.hedera.fullstack.helm.client.HelmClientBuilder;
import com.hedera.fullstack.helm.client.model.Chart;
import com.hedera.fullstack.helm.client.model.install.InstallChartOptionsBuilder;
import org.gradle.api.DefaultTask;
import org.gradle.api.provider.Property;
import org.gradle.api.provider.SetProperty;
import org.gradle.api.tasks.Input;
import org.gradle.api.tasks.Optional;
import org.gradle.api.tasks.TaskAction;
import org.gradle.api.tasks.options.Option;

public abstract class HelmInstallChartTask extends DefaultTask {
@Input
@Option(option = "chart", description = "The name of the chart to install")
public abstract Property<String> getChart();

@Input
@Optional
@Option(option = "createNamespace", description = "Create the release namespace if not present")
public abstract Property<Boolean> getCreateNamespace();

@Input
@Optional
@Option(option = "namespace", description = "The namespace to use when installing the chart")
public abstract Property<String> getNamespace();

@Input
@Option(option = "release", description = "The name of the release to install")
public abstract Property<String> getRelease();

@Input
@Optional
@Option(option = "repo", description = "The name of the repo to install")
public abstract Property<String> getRepo();

@Input
@Optional
@Option(
option = "set",
description =
"set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
public abstract SetProperty<String> getSet();

@Input
@Optional
@Option(option = "values", description = "Specify values in a YAML file or a URL (can specify multiple)")
// TODO: enhance to support multiple values files
public abstract SetProperty<String> getValues();

@TaskAction
void installChart() {
HelmClientBuilder helmClientBuilder = HelmClient.builder();
if (getNamespace().isPresent()) {
helmClientBuilder.defaultNamespace(getNamespace().get());
}
HelmClient helmClient = helmClientBuilder.build();
InstallChartOptionsBuilder optionsBuilder = InstallChartOptionsBuilder.builder();
if (getCreateNamespace().isPresent()) {
optionsBuilder.createNamespace(getCreateNamespace().get());
}
if (getSet().isPresent()) {
optionsBuilder.set(getSet().get());
}
if (getValues().isPresent()) {
optionsBuilder.values(getValues().get());
}
helmClient.installChart(
getRelease().getOrNull(),
new Chart(getChart().getOrNull(), getRepo().getOrNull()),
optionsBuilder.build());

getProject().getLogger().info("testing...");
// TODO log to gradle stdout if there is an error
}
}

This file was deleted.

1 change: 0 additions & 1 deletion fullstack-gradle-plugin/src/main/java/module-info.java

This file was deleted.

Loading

0 comments on commit 962080e

Please sign in to comment.