diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a8a9369 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,6 @@ +FROM cubetiq/cubezdk-alpine +LABEL maintainer="sombochea@cubetiqs.com" +VOLUME /tmp +COPY build/libs/*.jar admin.jar +EXPOSE 8080 8080 +ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/admin.jar", "--spring.profiles.active=dev"] \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 96be693..9251531 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -24,6 +24,7 @@ dependencies { implementation("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("de.codecentric:spring-boot-admin-starter-client") implementation("de.codecentric:spring-boot-admin-starter-server") + implementation("de.codecentric:spring-boot-admin-server-ui") implementation("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor") diff --git a/docker-build.sh b/docker-build.sh new file mode 100644 index 0000000..481c558 --- /dev/null +++ b/docker-build.sh @@ -0,0 +1 @@ +bash gradlew build -x test && docker build . -t cubetiq/admin-server:dev && docker stop admin-server && docker rm -v admin-server && docker run -d -p 7658:7658 --name admin-server --restart always cubetiq/admin-server:dev \ No newline at end of file diff --git a/src/main/kotlin/com/cubetiqs/ops/admin/AdminApplication.kt b/src/main/kotlin/com/cubetiqs/ops/admin/AdminApplication.kt index e0bd92d..0b8c1c0 100644 --- a/src/main/kotlin/com/cubetiqs/ops/admin/AdminApplication.kt +++ b/src/main/kotlin/com/cubetiqs/ops/admin/AdminApplication.kt @@ -1,9 +1,11 @@ package com.cubetiqs.ops.admin +import de.codecentric.boot.admin.server.config.EnableAdminServer import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.runApplication @SpringBootApplication +@EnableAdminServer class AdminApplication fun main(args: Array) { diff --git a/src/main/kotlin/com/cubetiqs/ops/admin/indicator/DownstreamServiceHealthIndicator .kt b/src/main/kotlin/com/cubetiqs/ops/admin/indicator/DownstreamServiceHealthIndicator .kt new file mode 100644 index 0000000..04c24c6 --- /dev/null +++ b/src/main/kotlin/com/cubetiqs/ops/admin/indicator/DownstreamServiceHealthIndicator .kt @@ -0,0 +1,16 @@ +package com.cubetiqs.ops.admin.indicator + +import org.springframework.boot.actuate.health.Health +import org.springframework.boot.actuate.health.ReactiveHealthIndicator +import reactor.core.publisher.Mono + +@Indicator +class DownstreamServiceHealthIndicator : ReactiveHealthIndicator { + override fun health(): Mono? { + return checkDownstreamServiceHealth()?.onErrorResume { Mono.just(Health.Builder().down(it).build()) } + } + + private fun checkDownstreamServiceHealth(): Mono? { + return Mono.just(Health.Builder().up().build()) + } +} \ No newline at end of file diff --git a/src/main/kotlin/com/cubetiqs/ops/admin/indicator/Indicator.kt b/src/main/kotlin/com/cubetiqs/ops/admin/indicator/Indicator.kt new file mode 100644 index 0000000..f1a4010 --- /dev/null +++ b/src/main/kotlin/com/cubetiqs/ops/admin/indicator/Indicator.kt @@ -0,0 +1,12 @@ +package com.cubetiqs.ops.admin.indicator + +import org.springframework.stereotype.Component + +/** + * @author sombochea + * @since 1.0 + */ +@kotlin.annotation.Retention(AnnotationRetention.RUNTIME) +@Target(AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CLASS) +@Component +annotation class Indicator(val value: String = "") \ No newline at end of file diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml new file mode 100644 index 0000000..292133a --- /dev/null +++ b/src/main/resources/application-dev.yml @@ -0,0 +1,20 @@ +management: + endpoints: + web: + exposure: + include: '*' + endpoint: + health: + show-components: always + show-details: always +spring: + boot: + admin: + client: + enabled: true + url: http://localhost:7658 + data: + mongodb: + uri: mongodb://192.168.0.150/admin + application: + name: admin \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties deleted file mode 100644 index 89c2771..0000000 --- a/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -server.port=7658 \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..61abbcf --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,5 @@ +server: + port: 7658 +spring: + profiles: + active: dev \ No newline at end of file