Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8381c1ba7d | ||
|
|
4308130cd1 | ||
|
|
721cdac95d | ||
|
|
395fa52962 | ||
|
|
45e5c473ff | ||
|
|
1c3648f0f4 | ||
|
|
5b707728b8 | ||
|
|
c19c211839 | ||
|
|
aace535914 | ||
|
|
59982ef762 | ||
|
|
56c6fef178 | ||
|
|
46b1b32708 | ||
|
|
519101023c | ||
|
|
82b4f51390 | ||
|
|
3256939ac7 | ||
|
|
02e4c5318d | ||
|
|
f06abd2838 | ||
|
|
f0297f2d2c | ||
|
|
ec23bd4d32 | ||
|
|
bab1892673 | ||
|
|
247fe83caa | ||
|
|
5fe6165373 | ||
|
|
64a8f17e6e |
+64
-3
@@ -88,10 +88,71 @@ volumes:
|
|||||||
path: /var/lib/drone/cache/.gradle
|
path: /var/lib/drone/cache/.gradle
|
||||||
|
|
||||||
trigger:
|
trigger:
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
event:
|
event:
|
||||||
include:
|
include:
|
||||||
- push
|
- tag
|
||||||
- custom
|
- custom
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: deploy image
|
||||||
|
type: docker
|
||||||
|
|
||||||
|
platform:
|
||||||
|
os: linux
|
||||||
|
arch: arm64
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: alpine/git
|
||||||
|
environment:
|
||||||
|
SSH_KEY:
|
||||||
|
from_secret: ssh_key
|
||||||
|
commands:
|
||||||
|
- mkdir $HOME/.ssh
|
||||||
|
- echo "$SSH_KEY" > $HOME/.ssh/id_ed25519
|
||||||
|
- chmod 600 $HOME/.ssh/id_ed25519
|
||||||
|
- touch $HOME/.ssh/known_hosts
|
||||||
|
- chmod 600 $HOME/.ssh/known_hosts
|
||||||
|
- ssh-keyscan -H git.2martens.de > $HOME/.ssh/known_hosts 2>/dev/null
|
||||||
|
- git clone ssh://giteajim@git.2martens.de:22/2martens/cloud-configuration.git .
|
||||||
|
- git checkout main
|
||||||
|
- name: modify deployed image
|
||||||
|
image: alpine
|
||||||
|
commands:
|
||||||
|
- sed -i -r "s/(wahlrecht_image_version:).*/\1\ ${DRONE_SEMVER}/" ansible/inventories/host_vars/api-server/public.yaml
|
||||||
|
- name: save modified variable file
|
||||||
|
image: alpine/git
|
||||||
|
environment:
|
||||||
|
SSH_KEY:
|
||||||
|
from_secret: ssh_key
|
||||||
|
commands:
|
||||||
|
- mkdir $HOME/.ssh
|
||||||
|
- echo "$SSH_KEY" > $HOME/.ssh/id_ed25519
|
||||||
|
- chmod 600 $HOME/.ssh/id_ed25519
|
||||||
|
- touch $HOME/.ssh/known_hosts
|
||||||
|
- chmod 600 $HOME/.ssh/known_hosts
|
||||||
|
- ssh-keyscan -H git.2martens.de > $HOME/.ssh/known_hosts 2>/dev/null
|
||||||
|
- git add ansible/inventories/host_vars/api-server/public.yaml
|
||||||
|
- git commit -m "[Drone] Changed wahlrecht_image_version to ${DRONE_SEMVER}"
|
||||||
|
- git push origin main
|
||||||
|
- name: deploy image
|
||||||
|
image: plugins/ansible:latest
|
||||||
|
settings:
|
||||||
|
playbook: ansible/deploy_spring.yaml
|
||||||
|
inventory: ansible/inventories/production
|
||||||
|
private_key:
|
||||||
|
from_secret: ssh_key
|
||||||
|
vault_password:
|
||||||
|
from_secret: vault_password
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
target:
|
||||||
|
- production
|
||||||
|
event:
|
||||||
|
include:
|
||||||
|
- promote
|
||||||
|
- rollback
|
||||||
|
|||||||
@@ -2,11 +2,13 @@ package de.twomartens.wahlrecht.property
|
|||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema
|
import io.swagger.v3.oas.annotations.media.Schema
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties
|
import org.springframework.boot.context.properties.ConfigurationProperties
|
||||||
import org.springframework.boot.context.properties.bind.ConstructorBinding
|
|
||||||
import org.springframework.cloud.context.config.annotation.RefreshScope
|
import org.springframework.cloud.context.config.annotation.RefreshScope
|
||||||
import java.time.ZoneId
|
import java.time.ZoneId
|
||||||
|
|
||||||
@RefreshScope
|
@RefreshScope
|
||||||
@ConfigurationProperties(prefix = "de.twomartens.wahlrecht")
|
@ConfigurationProperties(prefix = "de.twomartens.wahlrecht")
|
||||||
@Schema(description = "Properties, to configure this Application")
|
@Schema(description = "Properties, to configure this Application")
|
||||||
data class ServiceProperties @ConstructorBinding constructor(val defaultTimeZone: ZoneId, val greeting: String)
|
class ServiceProperties {
|
||||||
|
lateinit var defaultTimeZone: ZoneId
|
||||||
|
lateinit var greeting: String
|
||||||
|
}
|
||||||
|
|||||||
-41
@@ -1,41 +0,0 @@
|
|||||||
package de.twomartens.wahlrecht.service
|
|
||||||
|
|
||||||
import mu.KotlinLogging
|
|
||||||
import org.apache.logging.log4j.message.StringMapMessage
|
|
||||||
import org.springframework.beans.factory.annotation.Qualifier
|
|
||||||
import org.springframework.cloud.context.refresh.ContextRefresher
|
|
||||||
import org.springframework.scheduling.annotation.Scheduled
|
|
||||||
import org.springframework.stereotype.Service
|
|
||||||
import java.util.concurrent.TimeUnit
|
|
||||||
|
|
||||||
/**
|
|
||||||
* automatically reloads application*.yaml. reload can also be triggered manually by doing a post
|
|
||||||
* request on http://localhost:12001/actuator/refresh
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
class PropertyReloadService(@Qualifier("configDataContextRefresher") private val contextRefresher: ContextRefresher) {
|
|
||||||
@Scheduled(
|
|
||||||
fixedDelay = REFRESH_SECONDS.toLong(),
|
|
||||||
initialDelay = REFRESH_SECONDS.toLong(),
|
|
||||||
timeUnit = TimeUnit.SECONDS
|
|
||||||
)
|
|
||||||
fun refresh() {
|
|
||||||
val properties = contextRefresher.refresh()
|
|
||||||
if (properties.isNotEmpty()) {
|
|
||||||
log.info(
|
|
||||||
StringMapMessage()
|
|
||||||
.with(PARAM_MESSAGE, "properties changed")
|
|
||||||
.with(PARAM_PROPERTIES, properties.joinToString("\n"))
|
|
||||||
.asString()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
const val REFRESH_SECONDS = 60
|
|
||||||
const val PARAM_MESSAGE = "message"
|
|
||||||
const val PARAM_PROPERTIES = "labels.properties"
|
|
||||||
|
|
||||||
private val log = KotlinLogging.logger {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
spring:
|
spring:
|
||||||
config:
|
config:
|
||||||
import:
|
import:
|
||||||
- "classpath:config/wahlrecht.yaml"
|
- "configserver:http://configserver:8888/config"
|
||||||
- "optional:configserver:http://configserver:8888/config"
|
kafka:
|
||||||
|
bootstrap-servers:
|
||||||
|
- kafka:9092
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ spring:
|
|||||||
resourceserver:
|
resourceserver:
|
||||||
jwt:
|
jwt:
|
||||||
jwk-set-uri: https://id.2martens.de/realms/2martens/protocol/openid-connect/certs
|
jwk-set-uri: https://id.2martens.de/realms/2martens/protocol/openid-connect/certs
|
||||||
|
application:
|
||||||
|
name: wahlrecht
|
||||||
|
|
||||||
springdoc:
|
springdoc:
|
||||||
swagger-ui:
|
swagger-ui:
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
de.twomartens.wahlrecht:
|
de.twomartens.wahlrecht:
|
||||||
greeting: "Moin %s, you are great"
|
greeting: "Moin %s, you are test"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
de.twomartens.wahlrecht:
|
de.twomartens.wahlrecht:
|
||||||
defaultTimeZone: Europe/Berlin
|
defaultTimeZone: Europe/Berlin
|
||||||
greeting: "Hello %s"
|
greeting: "Hello %s, on millenium"
|
||||||
statusprobe:
|
statusprobe:
|
||||||
scheduleDuration: 60
|
scheduleDuration: 60
|
||||||
maxKafkaFailureDuration: 5
|
maxKafkaFailureDuration: 5
|
||||||
|
|||||||
Reference in New Issue
Block a user