From a503d7718d34b23fd7c363897778c47066aba590 Mon Sep 17 00:00:00 2001 From: christosarvanitis Date: Mon, 1 Dec 2025 12:29:43 +0200 Subject: [PATCH 1/2] Updating for Srping Boot 3 compatibility --- .github/workflows/build.yml | 9 ++-- .github/workflows/build_cd_artifacts.yml | 23 +---------- .github/workflows/release.yml | 5 ++- build.gradle | 10 ++++- common/.DS_Store | Bin 0 -> 6148 bytes .../observability/model/SecurityConfig.java | 39 ++++++++++-------- gradle.properties | 22 +++++----- 7 files changed, 51 insertions(+), 57 deletions(-) create mode 100644 common/.DS_Store diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d02ca6d..b982d8c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,7 +9,9 @@ on: jobs: build: env: - COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} + HARNESS_ARTIFACT_PASSWORD: ${{secrets.HARNESS_ARTIFACTORY_PASSWORD}} + ORG_GRADLE_PROJECT_harness_artifact_user: '${{secrets.HARNESS_ARTIFACTORY_USER}}' + ORG_GRADLE_PROJECT_harness_artifact_password: '${{secrets.HARNESS_ARTIFACTORY_PASSWORD}}' name: Build Plugin runs-on: ubuntu-latest steps: @@ -19,15 +21,12 @@ jobs: uses: actions/setup-java@v3 with: java-version: | - 11 17 distribution: 'zulu' cache: 'gradle' - name: run tests run: | - ./gradlew check aggregatedJacocoReport - ./gradlew coveralls - curl -F 'json_file=@build/coveralls/report.json' 'https://coveralls.io/api/v1/jobs' + ./gradlew test - name: build run: | ./gradlew -PenableCrossCompilerPlugin=true releaseBundle diff --git a/.github/workflows/build_cd_artifacts.yml b/.github/workflows/build_cd_artifacts.yml index e79c273..aad54fd 100644 --- a/.github/workflows/build_cd_artifacts.yml +++ b/.github/workflows/build_cd_artifacts.yml @@ -10,7 +10,8 @@ jobs: publish_images: runs-on: ubuntu-latest env: - GRADLE_ARGS: -Partifactory_user=${{secrets.ARTIFACTORY_USER}} -Partifactory_password=${{secrets.ARTIFACTORY_TOKEN}} + HARNESS_ARTIFACT_PASSWORD: ${{secrets.HARNESS_ARTIFACTORY_PASSWORD}} + GRADLE_ARGS: -Pharness_artifact_user=${{secrets.HARNESS_ARTIFACTORY_USER}} -Pharness_artifact_password=${{secrets.HARNESS_ARTIFACTORY_PASSWORD}} steps: - name: checkout code uses: actions/checkout@v2 @@ -19,7 +20,6 @@ jobs: uses: actions/setup-java@v3 with: java-version: | - 11 17 distribution: 'zulu' cache: 'gradle' @@ -33,9 +33,6 @@ jobs: name: dist path: build/distributions - - name: install JFrog CLI - uses: jfrog/setup-jfrog-cli@v1 - - name: generate variables id: variables uses: armory-io/astrolabe-build-defaults@main @@ -45,19 +42,3 @@ jobs: run: | docker build -t ${{ steps.variables.outputs.artifactory_image_name }} -f build-tools/Dockerfile . - - name: Publish Image To Artifactory - env: - ARTIFACTORY_TOKEN: ${{ secrets.ARTIFACTORY_TOKEN_FOR_IMAGE_PUBLISH }} - run: | - jfrog config add deploy --artifactory-url ${{ steps.variables.outputs.artifactory_url }} --access-token ${ARTIFACTORY_TOKEN} --interactive=false - - jfrog rt dp ${{ steps.variables.outputs.artifactory_image_name }} ${{ steps.variables.outputs.artifactory_docker_repository }} \ - --build-name=${{ steps.variables.outputs.build_name }} \ - --build-number=${{ steps.variables.outputs.build_number }} - - jfrog rt sp "${{ steps.variables.outputs.artifactory_docker_repository }}/armory/${{ steps.variables.outputs.repo }}/${{ steps.variables.outputs.version }}/manifest.json" "spinnaker-plugin=true" - - jfrog rt bag ${{ steps.variables.outputs.build_name }} ${{ steps.variables.outputs.build_number }} - - jfrog rt bp ${{ steps.variables.outputs.build_name }} ${{ steps.variables.outputs.build_number }} \ - --build-url=${{ steps.variables.outputs.build_url }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3dece90..0234ab5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,6 +9,10 @@ jobs: build: name: Release Plugin runs-on: ubuntu-latest + env: + HARNESS_ARTIFACT_PASSWORD: ${{secrets.HARNESS_ARTIFACTORY_PASSWORD}} + ORG_GRADLE_PROJECT_harness_artifact_user: '${{secrets.HARNESS_ARTIFACTORY_USER}}' + ORG_GRADLE_PROJECT_harness_artifact_password: '${{secrets.HARNESS_ARTIFACTORY_PASSWORD}}' steps: - name: checkout code uses: actions/checkout@v2 @@ -17,7 +21,6 @@ jobs: uses: actions/setup-java@v3 with: java-version: | - 11 17 distribution: 'zulu' cache: 'gradle' diff --git a/build.gradle b/build.gradle index e0f14bf..3204630 100644 --- a/build.gradle +++ b/build.gradle @@ -19,6 +19,14 @@ allprojects { repositories { mavenCentral() + maven { + url "https://pkg.harness.io/pkg/NK24qb_MQ0aYFnTJmNEjiw/armory-oss-maven/maven" + credentials { + username = "${harness_artifact_user}" + password = "${harness_artifact_password}" + } + } + } jacoco { @@ -96,7 +104,7 @@ subprojects { subProject -> testImplementation "org.mock-server:mockserver-client-java:5.10.0" testImplementation "org.mock-server:mockserver-junit-rule:5.10.0" testImplementation "org.testcontainers:testcontainers:1.14.3" - testImplementation 'io.rest-assured:rest-assured:4.3.0' + testImplementation 'io.rest-assured:rest-assured:5.2.1' } group = "io.armory.plugins.metrics" diff --git a/common/.DS_Store b/common/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..738cece54970098245ddd65165aa33eff71853b1 GIT binary patch literal 6148 zcmeHKOG*Pl5PfAL1cH#I8=+4S@CIXu3)fyiXGTOA9WZ1+H}Z)3>Z2s%Y!#8J(Dgd? z>Cc1d?gAj2eR~P404&%PMLQFs=1JE{1kZ?KW3)G2-_%`SPYm-nO}h3|)Y#(*9S+w| zO5}px^}C5J{|pU!JoDG%1#3Lw758YF`EamvCG%>OIm3>z%_!<^6lIg7N(PdFWFQ$x z27Z(Q-q|XPrDN)3AQ?yoz8KK+p|B}dfrFzR9aL5V5a%?Tu&>Ww%_)IZ;NVCPMLd=0 zsS+iIcslJR;;O*G(bFMOd`QgvS-gnN&hd+dLn_DA$v`r2%z)Oul$GB9*ZgEAi+l@7 zl?)^U|CIrmZ*R97?k?`uZ~N4{wy@o?sc77w9SZwLj{yGBbL8Bd?l0PBTopJt>L_Zr QbYeaPjF42xz%MZH0V{Yjn*aa+ literal 0 HcmV?d00001 diff --git a/common/src/main/java/io/armory/plugin/observability/model/SecurityConfig.java b/common/src/main/java/io/armory/plugin/observability/model/SecurityConfig.java index 3359d00..fb9909d 100644 --- a/common/src/main/java/io/armory/plugin/observability/model/SecurityConfig.java +++ b/common/src/main/java/io/armory/plugin/observability/model/SecurityConfig.java @@ -1,18 +1,14 @@ package io.armory.plugin.observability.model; -import org.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest; +import org.springframework.boot.actuate.autoconfigure.security.reactive.EndpointRequest; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.core.Ordered; -import org.springframework.core.annotation.Order; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.web.SecurityFilterChain; + -//To avoid collision with other WebSecurityConfigurerAdapters -@Order(Ordered.HIGHEST_PRECEDENCE + 27) @Configuration -@EnableWebSecurity -public class SecurityConfig extends WebSecurityConfigurerAdapter { +public class SecurityConfig { private final PluginConfig pluginConfig; @@ -20,14 +16,21 @@ public SecurityConfig(PluginConfig pluginConfig) { this.pluginConfig = pluginConfig; } - @Override - protected void configure(HttpSecurity http) throws Exception { - if (pluginConfig.getMetrics().getPrometheus().isEnabled()) { - http.requestMatcher(EndpointRequest.to("aop-prometheus")).authorizeRequests((requests) -> - requests.anyRequest().permitAll()); - } else { - http.requestMatcher(EndpointRequest.to("aop-prometheus")).authorizeRequests((requests) -> - requests.anyRequest().denyAll()); - } + @Bean + public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { + if (pluginConfig.getMetrics().getPrometheus().isEnabled()) { + http.authorizeHttpRequests( + authorize -> authorize + .requestMatchers("aop-prometheus") + .permitAll().anyRequest() + ); + } else { + http.authorizeHttpRequests( + authorize -> authorize + .requestMatchers("aop-prometheus") + .denyAll().anyRequest() + ); + } + return http.build(); } } diff --git a/gradle.properties b/gradle.properties index 87439f2..35c5ddb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,19 +1,19 @@ org.gradle.parallel=true spinnakerGradleVersion=8.32.1 -pf4jVersion=3.2.0 -korkVersion=7.236.0 +pf4jVersion=3.10.0 +korkVersion=2025.11.11.00.09.23.main # The service versions listed below are not needed for the actual plugin to function # but are being added in order to enable plugin compatibility testing for the plugin -clouddriverVersion=2024.10.29.18.05.56.master -echoVersion=2024.10.15.15.58.45.master -fiatVersion=2024.10.15.15.57.16.master -front50Version=2024.10.16.05.30.03.master -gateVersion=2024.10.28.17.24.37.master -igorVersion=2024.10.15.15.57.55.master -kayentaVersion=2024.10.03.18.18.40.master -orcaVersion=2024.10.15.16.13.18.master -roscoVersion=2024.10.15.16.02.19.master +clouddriverVersion=2025.11.11.00.09.23.main +echoVersion=2025.11.11.00.09.23.main +fiatVersion=2025.11.11.00.09.23.main +front50Version=2025.11.11.00.09.23.main +gateVersion=2025.11.11.00.09.23.main +igorVersion=2025.11.11.00.09.23.main +kayentaVersion=2025.11.11.00.09.23.main +orcaVersion=2025.11.11.00.09.23.main +roscoVersion=2025.11.11.00.09.23.main targetJava17=true From 6fe32e57c78960714ee791b644161300b1d86c40 Mon Sep 17 00:00:00 2001 From: christosarvanitis Date: Mon, 1 Dec 2025 12:30:21 +0200 Subject: [PATCH 2/2] Updating for Srping Boot 3 compatibility --- common/.DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 common/.DS_Store diff --git a/common/.DS_Store b/common/.DS_Store deleted file mode 100644 index 738cece54970098245ddd65165aa33eff71853b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKOG*Pl5PfAL1cH#I8=+4S@CIXu3)fyiXGTOA9WZ1+H}Z)3>Z2s%Y!#8J(Dgd? z>Cc1d?gAj2eR~P404&%PMLQFs=1JE{1kZ?KW3)G2-_%`SPYm-nO}h3|)Y#(*9S+w| zO5}px^}C5J{|pU!JoDG%1#3Lw758YF`EamvCG%>OIm3>z%_!<^6lIg7N(PdFWFQ$x z27Z(Q-q|XPrDN)3AQ?yoz8KK+p|B}dfrFzR9aL5V5a%?Tu&>Ww%_)IZ;NVCPMLd=0 zsS+iIcslJR;;O*G(bFMOd`QgvS-gnN&hd+dLn_DA$v`r2%z)Oul$GB9*ZgEAi+l@7 zl?)^U|CIrmZ*R97?k?`uZ~N4{wy@o?sc77w9SZwLj{yGBbL8Bd?l0PBTopJt>L_Zr QbYeaPjF42xz%MZH0V{Yjn*aa+