Skip to content

Commit 4be4fc8

Browse files
committed
Save application.yaml as Object
1 parent 5785dbd commit 4be4fc8

4 files changed

Lines changed: 9 additions & 4 deletions

File tree

src/main/kotlin/eu/openanalytics/shinyproxyoperator/components/ConfigMapFactory.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
package eu.openanalytics.shinyproxyoperator.components
22

3+
import com.fasterxml.jackson.databind.ObjectMapper
4+
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory
35
import eu.openanalytics.shinyproxyoperator.controller.ShinyProxyController
46
import eu.openanalytics.shinyproxyoperator.crd.ShinyProxy
57
import io.fabric8.kubernetes.api.model.ConfigMap
68
import io.fabric8.kubernetes.api.model.ConfigMapBuilder
79
import io.fabric8.kubernetes.client.KubernetesClient
810
import mu.KotlinLogging
911

12+
1013
class ConfigMapFactory(private val kubeClient: KubernetesClient) {
1114

1215
private val logger = KotlinLogging.logger {}
16+
private val mapper = ObjectMapper(YAMLFactory())
1317

1418
fun create(shinyProxy: ShinyProxy): ConfigMap {
1519
val configMapDefinition: ConfigMap = ConfigMapBuilder()
@@ -24,7 +28,7 @@ class ConfigMapFactory(private val kubeClient: KubernetesClient) {
2428
.withNewUid(shinyProxy.metadata.uid)
2529
.endOwnerReference()
2630
.endMetadata()
27-
.addToData("application-in.yml", shinyProxy.spec.applicationYaml)
31+
.addToData("application-in.yml", mapper.writeValueAsString(shinyProxy.spec.applicationYaml))
2832
.build()
2933

3034
val createdConfigMap = kubeClient.configMaps().inNamespace(shinyProxy.metadata.namespace).create(configMapDefinition)

src/main/kotlin/eu/openanalytics/shinyproxyoperator/crd/ShinyProxySpec.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@ package eu.openanalytics.shinyproxyoperator.crd
22

33
import com.fasterxml.jackson.annotation.JsonProperty
44
import com.fasterxml.jackson.databind.JsonDeserializer
5+
import com.fasterxml.jackson.databind.JsonNode
56
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
67
import io.fabric8.kubernetes.api.model.KubernetesResource
78

89
@JsonDeserialize(using = JsonDeserializer.None::class)
910
class ShinyProxySpec : KubernetesResource {
1011

1112
@JsonProperty("application.yml")
12-
lateinit var applicationYaml: String
13+
lateinit var applicationYaml: JsonNode
1314
}

src/main/resources/cr.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ kind: ShinyProxy
33
metadata:
44
name: example-shinyproxy
55
spec:
6-
application.yml: |
6+
application.yml:
77
proxy:
88
title: Open Analytics Shiny Proxy
99
logo-url: http://www.openanalytics.eu/sites/www.openanalytics.eu/themes/oa/logo.png

src/main/resources/crd.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ spec:
3131
type: object
3232
properties:
3333
application.yml:
34-
type: string
34+
type: object
3535
required:
3636
- application.yml
3737
status:

0 commit comments

Comments
 (0)