diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ba11518..02ef42b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,19 +9,16 @@ jobs: runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - - name: install openjdk - run: | - sudo apt-get update && sudo apt-get install openjdk-17-jdk - sudo update-alternatives --set java /usr/lib/jvm/java-17-openjdk-amd64/bin/java - sudo update-alternatives --set javac /usr/lib/jvm/java-17-openjdk-amd64/bin/javac - java -version + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: 17 + distribution: 'corretto' - name: Build run: | - export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 - export PATH=$JAVA_HOME/bin:$PATH cd ui mvn clean install -q @@ -43,19 +40,16 @@ jobs: runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - - name: install openjdk - run: | - sudo apt-get update && sudo apt-get install openjdk-17-jdk - sudo update-alternatives --set java /usr/lib/jvm/java-17-openjdk-amd64/bin/java - sudo update-alternatives --set javac /usr/lib/jvm/java-17-openjdk-amd64/bin/javac - java -version + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: 17 + distribution: 'corretto' - name: Build run: | - export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 - export PATH=$JAVA_HOME/bin:$PATH cd message-service ./gradlew build @@ -77,19 +71,16 @@ jobs: runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - - name: install openjdk - run: | - sudo apt-get update && sudo apt-get install openjdk-17-jdk - sudo update-alternatives --set java /usr/lib/jvm/java-17-openjdk-amd64/bin/java - sudo update-alternatives --set javac /usr/lib/jvm/java-17-openjdk-amd64/bin/javac - java -version + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: 17 + distribution: 'corretto' - name: Build run: | - export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 - export PATH=$JAVA_HOME/bin:$PATH cd hello-service ./gradlew build diff --git a/hello-service/Dockerfile b/hello-service/Dockerfile index 0e89654..5a85457 100644 --- a/hello-service/Dockerfile +++ b/hello-service/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:17 +FROM amazoncorretto:17.0.4 ADD build/libs/hello-service.jar /usr/local/hello-service/ diff --git a/hello-service/build.gradle b/hello-service/build.gradle index b499c08..56520cc 100644 --- a/hello-service/build.gradle +++ b/hello-service/build.gradle @@ -1,13 +1,12 @@ plugins { - id "org.springframework.boot" version "2.7.4" - id "io.spring.dependency-management" version "1.0.14.RELEASE" - id "java" + id 'java' + id 'org.springframework.boot' version '3.0.1' + id 'io.spring.dependency-management' version '1.1.0' } apply plugin: "io.spring.dependency-management" group = "it.valeriovaudi" -//version = "0.0.1-SNAPSHOT" sourceCompatibility = "17" jar { @@ -19,32 +18,23 @@ repositories { } ext { - set("springCloudVersion", "2021.0.4") + set('springCloudVersion', "2022.0.0") } dependencies { - implementation "org.springframework.cloud:spring-cloud-starter" - + implementation "org.springframework.cloud:spring-cloud-starter-bootstrap" implementation "org.springframework.cloud:spring-cloud-starter-kubernetes-client-all" implementation "org.springframework.cloud:spring-cloud-starter-kubernetes-client-loadbalancer" + implementation 'io.micrometer:micrometer-tracing-bridge-brave' + runtimeOnly 'io.micrometer:micrometer-registry-prometheus' + implementation "org.springframework.boot:spring-boot-starter-webflux" implementation "org.springframework.boot:spring-boot-starter-actuator" - - compileOnly 'org.projectlombok:lombok' - annotationProcessor 'org.projectlombok:lombok' - - testImplementation "org.springframework.boot:spring-boot-starter-test" - testImplementation "io.projectreactor:reactor-test" } dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" } -} - - -tasks.named("test") { - useJUnitPlatform() -} +} \ No newline at end of file diff --git a/hello-service/gradle/wrapper/gradle-wrapper.properties b/hello-service/gradle/wrapper/gradle-wrapper.properties index 8049c68..070cb70 100644 --- a/hello-service/gradle/wrapper/gradle-wrapper.properties +++ b/hello-service/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/hello-service/src/main/java/it/valeriovaudi/helloservice/HelloServiceApplication.java b/hello-service/src/main/java/it/valeriovaudi/helloservice/HelloServiceApplication.java index 88088ca..0838a6b 100644 --- a/hello-service/src/main/java/it/valeriovaudi/helloservice/HelloServiceApplication.java +++ b/hello-service/src/main/java/it/valeriovaudi/helloservice/HelloServiceApplication.java @@ -1,6 +1,5 @@ package it.valeriovaudi.helloservice; -import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -38,7 +37,6 @@ public WebClient.Builder loadBalancedWebClientBuilder() { } } -@Slf4j @Service class HelloService { diff --git a/hello-service/src/main/resources/application.yml b/hello-service/src/main/resources/bootstrap.yml similarity index 82% rename from hello-service/src/main/resources/application.yml rename to hello-service/src/main/resources/bootstrap.yml index fe80a3b..61ff51d 100644 --- a/hello-service/src/main/resources/application.yml +++ b/hello-service/src/main/resources/bootstrap.yml @@ -7,9 +7,6 @@ spring: enabled: true mode: polling period: 5000 - config: - sources: - - name: ${spring.application.name} management: endpoints: diff --git a/helm/spring-cloud-kubernetes-demo/templates/hello-service.yml b/helm/spring-cloud-kubernetes-demo/templates/hello-service.yml index 2d6dfe1..a495033 100644 --- a/helm/spring-cloud-kubernetes-demo/templates/hello-service.yml +++ b/helm/spring-cloud-kubernetes-demo/templates/hello-service.yml @@ -35,10 +35,10 @@ spec: imagePullPolicy: {{ .Values.helloService.image.pullPolicy }} ports: - containerPort: 8080 - + - containerPort: 8081 livenessProbe: httpGet: - path: /actuator/health + path: /actuator/health/liveness port: 8081 initialDelaySeconds: 10 periodSeconds: 10 @@ -46,11 +46,12 @@ spec: readinessProbe: httpGet: - path: /actuator/health + path: /actuator/health/readiness port: 8081 initialDelaySeconds: 10 periodSeconds: 10 successThreshold: 1 + --- kind: Service diff --git a/helm/spring-cloud-kubernetes-demo/templates/message-service.yml b/helm/spring-cloud-kubernetes-demo/templates/message-service.yml index 345a28e..bb9eca2 100644 --- a/helm/spring-cloud-kubernetes-demo/templates/message-service.yml +++ b/helm/spring-cloud-kubernetes-demo/templates/message-service.yml @@ -37,10 +37,10 @@ spec: imagePullPolicy: {{ .Values.messageService.image.pullPolicy }} ports: - containerPort: 8080 - + - containerPort: 8081 livenessProbe: httpGet: - path: /actuator/health + path: /actuator/health/liveness port: 8081 initialDelaySeconds: 10 periodSeconds: 10 @@ -48,7 +48,7 @@ spec: readinessProbe: httpGet: - path: /actuator/health + path: /actuator/health/readiness port: 8081 initialDelaySeconds: 10 periodSeconds: 10 diff --git a/helm/spring-cloud-kubernetes-demo/templates/serviceaccount.yaml b/helm/spring-cloud-kubernetes-demo/templates/serviceaccount.yaml index 8f6c38c..919c357 100644 --- a/helm/spring-cloud-kubernetes-demo/templates/serviceaccount.yaml +++ b/helm/spring-cloud-kubernetes-demo/templates/serviceaccount.yaml @@ -1,4 +1,3 @@ - kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: diff --git a/helm/spring-cloud-kubernetes-demo/templates/ui-interface.yml b/helm/spring-cloud-kubernetes-demo/templates/ui-interface.yml index db94c07..e746919 100644 --- a/helm/spring-cloud-kubernetes-demo/templates/ui-interface.yml +++ b/helm/spring-cloud-kubernetes-demo/templates/ui-interface.yml @@ -5,12 +5,14 @@ metadata: namespace: {{ .Release.Namespace }} data: application.yaml: |- + testValue: it is a test value server: forward-headers-strategy: framework spring: - redis: - host: {{ .Release.Namespace }}-redis-master + data: + redis: + host: {{ .Release.Namespace }}-redis-master cloud: gateway: @@ -56,9 +58,10 @@ spec: imagePullPolicy: {{ .Values.ui.image.pullPolicy }} ports: - containerPort: 8080 + - containerPort: 8081 livenessProbe: httpGet: - path: /actuator/health + path: /actuator/health/liveness port: 8081 initialDelaySeconds: 10 periodSeconds: 10 @@ -66,7 +69,7 @@ spec: readinessProbe: httpGet: - path: /actuator/health + path: /actuator/health/readiness port: 8081 initialDelaySeconds: 10 periodSeconds: 10 diff --git a/helm/spring-cloud-kubernetes-demo/values.yaml b/helm/spring-cloud-kubernetes-demo/values.yaml index dde2cfc..fb24731 100644 --- a/helm/spring-cloud-kubernetes-demo/values.yaml +++ b/helm/spring-cloud-kubernetes-demo/values.yaml @@ -7,8 +7,8 @@ messageService: image: pullPolicy: Always tag: latest -helloService: +helloService: replicas: 2 image: pullPolicy: Always diff --git a/message-service/Dockerfile b/message-service/Dockerfile index 7990e98..65a1fc2 100644 --- a/message-service/Dockerfile +++ b/message-service/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:17 +FROM amazoncorretto:17.0.4 ADD build/libs/message-service.jar /usr/local/message-service/ diff --git a/message-service/build.gradle.kts b/message-service/build.gradle.kts index c5d9051..3a184b8 100644 --- a/message-service/build.gradle.kts +++ b/message-service/build.gradle.kts @@ -1,10 +1,10 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - id("org.springframework.boot") version "2.7.4" - id("io.spring.dependency-management") version "1.0.14.RELEASE" - kotlin("jvm") version "1.6.21" - kotlin("plugin.spring") version "1.6.21" + id("org.springframework.boot") version "3.0.1" + id("io.spring.dependency-management") version "1.1.0" + kotlin("jvm") version "1.7.22" + kotlin("plugin.spring") version "1.7.22" } group = "it.valeriovaudi" @@ -14,21 +14,24 @@ repositories { mavenCentral() } -extra["springCloudVersion"] = "2021.0.4" - +extra["springCloudVersion"] = "2022.0.0" dependencies { - implementation("org.springframework.cloud:spring-cloud-starter") - - implementation("org.springframework.cloud:spring-cloud-starter-kubernetes-client-all") - + implementation("org.springframework.cloud:spring-cloud-starter-bootstrap") implementation("org.springframework.boot:spring-boot-starter-data-mongodb-reactive") implementation("org.springframework.boot:spring-boot-starter-webflux") implementation("org.springframework.boot:spring-boot-starter-actuator") + implementation("org.springframework.cloud:spring-cloud-starter-kubernetes-client-all") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") + implementation("org.jetbrains.kotlin:kotlin-reflect") + + implementation("io.micrometer:micrometer-tracing-bridge-brave") + implementation("io.projectreactor.kotlin:reactor-kotlin-extensions") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor") + runtimeOnly("io.micrometer:micrometer-registry-prometheus") } @@ -43,8 +46,4 @@ tasks.withType { freeCompilerArgs = listOf("-Xjsr305=strict") jvmTarget = "17" } -} - -tasks.withType { - useJUnitPlatform() } \ No newline at end of file diff --git a/message-service/gradle/wrapper/gradle-wrapper.properties b/message-service/gradle/wrapper/gradle-wrapper.properties index 8049c68..070cb70 100644 --- a/message-service/gradle/wrapper/gradle-wrapper.properties +++ b/message-service/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/message-service/src/main/kotlin/it/valeriovaudi/messageservice/MessageServiceApplication.kt b/message-service/src/main/kotlin/it/valeriovaudi/messageservice/MessageServiceApplication.kt index 8bed833..47d4eb4 100644 --- a/message-service/src/main/kotlin/it/valeriovaudi/messageservice/MessageServiceApplication.kt +++ b/message-service/src/main/kotlin/it/valeriovaudi/messageservice/MessageServiceApplication.kt @@ -6,7 +6,7 @@ import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration import org.springframework.data.annotation.Id import org.springframework.data.mongodb.repository.ReactiveMongoRepository -import org.springframework.web.reactive.function.BodyInserters.fromObject +import org.springframework.web.reactive.function.BodyInserters.fromValue import org.springframework.web.reactive.function.server.router import org.springframework.web.util.UriComponentsBuilder import java.util.* @@ -31,7 +31,7 @@ class MessageRoute(private val messageRepository: MessageRepository) { GET("/message") { messageRepository.findAll() .collectList() - .flatMap { ok().body(fromObject(it)) } + .flatMap { ok().body(fromValue(it)) } } GET("/message/random") { @@ -39,7 +39,7 @@ class MessageRoute(private val messageRepository: MessageRepository) { .collectList() .flatMap { if (it.size != 0) { - ok().body(fromObject(it[Random().nextInt(it.size)])) + ok().body(fromValue(it[Random().nextInt(it.size)])) } else { notFound().build() } @@ -48,7 +48,7 @@ class MessageRoute(private val messageRepository: MessageRepository) { GET("/message/{messageId}") { messageRepository.findById(it.pathVariable("messageId")) - .flatMap { ok().body(fromObject(it)) } + .flatMap { ok().body(fromValue(it)) } } POST("/message") { diff --git a/message-service/src/main/resources/application.yml b/message-service/src/main/resources/bootstrap.yml similarity index 82% rename from message-service/src/main/resources/application.yml rename to message-service/src/main/resources/bootstrap.yml index 5c9be30..c353998 100644 --- a/message-service/src/main/resources/application.yml +++ b/message-service/src/main/resources/bootstrap.yml @@ -7,9 +7,6 @@ spring: enabled: true mode: polling period: 5000 - config: - sources: - - name: ${spring.application.name} management: endpoints: diff --git a/ui/Dockerfile b/ui/Dockerfile index b6176b2..fa56567 100644 --- a/ui/Dockerfile +++ b/ui/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:17 +FROM amazoncorretto:17.0.4 ADD target/ui-interface.jar /usr/local/ui-interface/ diff --git a/ui/pom.xml b/ui/pom.xml index ec77390..c77eb74 100644 --- a/ui/pom.xml +++ b/ui/pom.xml @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.4 + 3.0.1 it.valeriovaudi @@ -16,11 +16,23 @@ 17 - 2021.0.4 - 1.32 + 2022.0.0 + + org.springframework.cloud + spring-cloud-starter-bootstrap + + + io.micrometer + micrometer-tracing-bridge-brave + + + io.micrometer + micrometer-registry-prometheus + runtime + org.springframework.cloud spring-cloud-starter-kubernetes-client-all @@ -31,11 +43,6 @@ spring-cloud-starter-kubernetes-client-loadbalancer - - org.projectlombok - lombok - true - org.springframework.session spring-session-core @@ -65,12 +72,6 @@ org.springframework.boot spring-boot-starter-security - - - org.springframework.boot - spring-boot-starter-test - test - diff --git a/ui/src/main/java/it/valeriovaudi/ui/UiApplication.java b/ui/src/main/java/it/valeriovaudi/ui/UiApplication.java index d1b4560..91d80f9 100644 --- a/ui/src/main/java/it/valeriovaudi/ui/UiApplication.java +++ b/ui/src/main/java/it/valeriovaudi/ui/UiApplication.java @@ -24,7 +24,6 @@ public static void main(String[] args) { @Configuration(proxyBeanMethods = false) class SecurityConfig { - @Bean public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) { return http.csrf().disable().authorizeExchange() diff --git a/ui/src/main/resources/application.yml b/ui/src/main/resources/bootstrap.yml similarity index 82% rename from ui/src/main/resources/application.yml rename to ui/src/main/resources/bootstrap.yml index 1141794..82ea3f3 100644 --- a/ui/src/main/resources/application.yml +++ b/ui/src/main/resources/bootstrap.yml @@ -7,9 +7,6 @@ spring: enabled: true mode: polling period: 5000 - config: - sources: - - name: ${spring.application.name} management: endpoints: