Skip to content
This repository was archived by the owner on May 25, 2023. It is now read-only.

Commit f8b48f1

Browse files
authored
Merge pull request #194 from lightbend/wip/app
Rename appName to app, and add akka.lightbend.com/service-name label
2 parents 88ec9cc + dae0499 commit f8b48f1

File tree

9 files changed

+63
-35
lines changed

9 files changed

+63
-35
lines changed

cli/shared/src/main/scala/com/lightbend/rp/reactivecli/runtime/kubernetes/Deployment.scala

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,17 @@ object Deployment {
5757
val appName = serviceName(rawAppName)
5858
val appNameVersion = serviceName(s"$appName$VersionSeparator$version")
5959

60+
val serviceResourceName =
61+
deploymentType match {
62+
case CanaryDeploymentType => appName
63+
case BlueGreenDeploymentType => appNameVersion
64+
case RollingDeploymentType => appName
65+
}
66+
6067
val labels = Map(
61-
"appName" -> appName,
62-
"appNameVersion" -> appNameVersion) ++ annotations.akkaClusterBootstrapSystemName.fold(Map.empty[String, String])(system => Map("actorSystemName" -> system))
68+
"app" -> appName,
69+
"appNameVersion" -> appNameVersion) ++ annotations.akkaClusterBootstrapSystemName.fold(Map(
70+
serviceNameLabel -> serviceResourceName))(system => Map(serviceNameLabel -> system))
6371

6472
val podTemplate =
6573
PodTemplate.generate(
@@ -87,7 +95,7 @@ object Deployment {
8795
(appNameVersion, Json("appNameVersion" -> appNameVersion.asJson))
8896

8997
case RollingDeploymentType =>
90-
(appName, Json("appName" -> appName.asJson))
98+
(appName, Json("app" -> appName.asJson))
9199
}
92100

93101
Deployment(

cli/shared/src/main/scala/com/lightbend/rp/reactivecli/runtime/kubernetes/Job.scala

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,17 @@ object Job {
5656
|@| restartPolicyValidation(restartPolicy)) { (applicationArgs, rawAppName, version, restartPolicy) =>
5757
val appName = serviceName(rawAppName)
5858
val appNameVersion = serviceName(s"$appName$VersionSeparator$version")
59+
val serviceResourceName =
60+
deploymentType match {
61+
case CanaryDeploymentType => appName
62+
case BlueGreenDeploymentType => appNameVersion
63+
case RollingDeploymentType => appName
64+
}
5965

6066
val labels = Map(
61-
"appName" -> appName,
62-
"appNameVersion" -> appNameVersion) ++ annotations.akkaClusterBootstrapSystemName.fold(Map.empty[String, String])(system => Map("actorSystemName" -> system))
67+
"app" -> appName,
68+
"appNameVersion" -> appNameVersion) ++ annotations.akkaClusterBootstrapSystemName.fold(Map(
69+
serviceNameLabel -> serviceResourceName))(system => Map(serviceNameLabel -> system))
6370

6471
val podTemplate =
6572
PodTemplate.generate(

cli/shared/src/main/scala/com/lightbend/rp/reactivecli/runtime/kubernetes/PodTemplate.scala

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,13 @@ object PodTemplate {
9393
Seq(
9494
s"-Dakka.management.cluster.bootstrap.contact-point-discovery.discovery-method=kubernetes-api",
9595
s"-Dakka.management.cluster.bootstrap.contact-point-discovery.port-name=$managementEndpointName",
96-
s"-Dakka.management.cluster.bootstrap.contact-point-discovery.effective-name=$serviceResourceName",
96+
// https://github.com/akka/akka-management/blob/v0.20.0/cluster-bootstrap/src/main/resources/reference.conf
97+
akkaClusterBootstrapSystemName match {
98+
case Some(systemName) => s"-Dakka.management.cluster.bootstrap.contact-point-discovery.effective-name=$systemName"
99+
case _ => s"-Dakka.management.cluster.bootstrap.contact-point-discovery.effective-name=$serviceResourceName"
100+
},
97101
s"-Dakka.management.cluster.bootstrap.contact-point-discovery.required-contact-point-nr=$noOfReplicas",
98-
akkaClusterBootstrapSystemName.fold("-Dakka.discovery.kubernetes-api.pod-label-selector=appName=%s")(systemName => s"-Dakka.discovery.kubernetes-api.pod-label-selector=actorSystemName=$systemName"),
102+
"-Dakka.discovery.kubernetes-api.pod-label-selector=akka.lightbend.com/service-name=%s",
99103
s"${if (akkaClusterJoinExisting) "-Dakka.management.cluster.bootstrap.form-new-cluster=false" else ""}")
100104
.filter(_.nonEmpty)
101105
.mkString(" ")),
@@ -158,7 +162,7 @@ object PodTemplate {
158162
* If the akkaClusterJoinExisting flag is provided, these labels are removed from the pod template so that
159163
* it isn't used for bootstrap.
160164
*/
161-
private[kubernetes] val PodDiscoveryLabels = Set("appName", "actorSystemName")
165+
private[kubernetes] val PodDiscoveryLabels = Set("app", "actorSystemName")
162166

163167
/**
164168
* Represents possible values for imagePullPolicy field within the Kubernetes pod template.

cli/shared/src/main/scala/com/lightbend/rp/reactivecli/runtime/kubernetes/Service.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ object Service {
6969

7070
val selector =
7171
deploymentType match {
72-
case CanaryDeploymentType => Json("appName" -> appName.asJson)
73-
case RollingDeploymentType => Json("appName" -> appName.asJson)
72+
case CanaryDeploymentType => Json("app" -> appName.asJson)
73+
case RollingDeploymentType => Json("app" -> appName.asJson)
7474
case BlueGreenDeploymentType => Json("appNameVersion" -> appNameVersion.asJson)
7575
}
7676

@@ -85,7 +85,7 @@ object Service {
8585
"kind" -> "Service".asJson,
8686
"metadata" -> Json(
8787
"labels" -> Json(
88-
"appName" -> appName.asJson),
88+
"app" -> appName.asJson),
8989
"name" -> appName.asJson)
9090
.deepmerge(
9191
annotations.namespace.fold(jEmptyObject)(ns => Json("namespace" -> serviceName(ns).asJson))),

cli/shared/src/main/scala/com/lightbend/rp/reactivecli/runtime/kubernetes/package.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import slogging.LazyLogging
3434
import Scalaz._
3535

3636
package object kubernetes extends LazyLogging {
37+
private[reactivecli] val serviceNameLabel = "akka.lightbend.com/service-name"
3738
private[reactivecli] val LivenessInitialDelaySeconds = 60
3839
private[reactivecli] val StatusPeriodSeconds = 10
3940

cli/shared/src/test/scala/com/lightbend/rp/reactivecli/runtime/kubernetes/DeploymentJsonTest.scala

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,9 @@ object DeploymentJsonTest extends TestSuite {
113113
| "metadata": {
114114
| "name": "friendimpl-v3-2-1-snapshot",
115115
| "labels": {
116-
| "appName": "friendimpl",
117-
| "appNameVersion": "friendimpl-v3-2-1-snapshot"
116+
| "app": "friendimpl",
117+
| "appNameVersion": "friendimpl-v3-2-1-snapshot",
118+
| "akka.lightbend.com/service-name": "friendimpl"
118119
| },
119120
| "namespace": "chirper"
120121
| },
@@ -128,8 +129,9 @@ object DeploymentJsonTest extends TestSuite {
128129
| "template": {
129130
| "metadata": {
130131
| "labels": {
131-
| "appName": "friendimpl",
132-
| "appNameVersion": "friendimpl-v3-2-1-snapshot"
132+
| "app": "friendimpl",
133+
| "appNameVersion": "friendimpl-v3-2-1-snapshot",
134+
| "akka.lightbend.com/service-name": "friendimpl"
133135
| },
134136
| "annotations": {
135137
| "annotationKey0": "annotationValue0",
@@ -257,8 +259,9 @@ object DeploymentJsonTest extends TestSuite {
257259
| "metadata": {
258260
| "name": "friendimpl-v3-2-1-snapshot",
259261
| "labels": {
260-
| "appName": "friendimpl",
261-
| "appNameVersion": "friendimpl-v3-2-1-snapshot"
262+
| "app": "friendimpl",
263+
| "appNameVersion": "friendimpl-v3-2-1-snapshot",
264+
| "akka.lightbend.com/service-name": "friendimpl"
262265
| },
263266
| "namespace": "chirper"
264267
| },
@@ -272,8 +275,9 @@ object DeploymentJsonTest extends TestSuite {
272275
| "template": {
273276
| "metadata": {
274277
| "labels": {
275-
| "appName": "friendimpl",
276-
| "appNameVersion": "friendimpl-v3-2-1-snapshot"
278+
| "app": "friendimpl",
279+
| "appNameVersion": "friendimpl-v3-2-1-snapshot",
280+
| "akka.lightbend.com/service-name": "friendimpl"
277281
| },
278282
| "annotations": {
279283
| "annotationKey0": "annotationValue0",
@@ -351,7 +355,7 @@ object DeploymentJsonTest extends TestSuite {
351355
| },
352356
| {
353357
| "name": "RP_JAVA_OPTS",
354-
| "value": "-Dconfig.resource=my-config.conf -Dakka.management.cluster.bootstrap.contact-point-discovery.discovery-method=kubernetes-api -Dakka.management.cluster.bootstrap.contact-point-discovery.port-name=management -Dakka.management.cluster.bootstrap.contact-point-discovery.effective-name=friendimpl -Dakka.management.cluster.bootstrap.contact-point-discovery.required-contact-point-nr=1 -Dakka.discovery.kubernetes-api.pod-label-selector=appName=%s"
358+
| "value": "-Dconfig.resource=my-config.conf -Dakka.management.cluster.bootstrap.contact-point-discovery.discovery-method=kubernetes-api -Dakka.management.cluster.bootstrap.contact-point-discovery.port-name=management -Dakka.management.cluster.bootstrap.contact-point-discovery.effective-name=friendimpl -Dakka.management.cluster.bootstrap.contact-point-discovery.required-contact-point-nr=1 -Dakka.discovery.kubernetes-api.pod-label-selector=akka.lightbend.com/service-name=%s"
355359
| },
356360
| {
357361
| "name": "RP_KUBERNETES_POD_IP",

cli/shared/src/test/scala/com/lightbend/rp/reactivecli/runtime/kubernetes/JobJsonTest.scala

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,15 @@ object JobJsonTest extends TestSuite {
6969
"metadata" -> jObjectFields(
7070
"name" -> jString("friendimpl-v3-2-1-snapshot"),
7171
"labels" -> jObjectFields(
72-
"appName" -> jString("friendimpl"),
73-
"appNameVersion" -> jString("friendimpl-v3-2-1-snapshot"))),
72+
"app" -> jString("friendimpl"),
73+
"appNameVersion" -> jString("friendimpl-v3-2-1-snapshot"),
74+
"akka.lightbend.com/service-name" -> jString("friendimpl"))),
7475
"spec" -> jObjectFields(
7576
"template" -> jObjectFields(
7677
"metadata" -> jObjectFields(
7778
"labels" -> jObjectFields(
78-
"appNameVersion" -> jString("friendimpl-v3-2-1-snapshot"))),
79+
"appNameVersion" -> jString("friendimpl-v3-2-1-snapshot"),
80+
"akka.lightbend.com/service-name" -> jString("friendimpl"))),
7981
"spec" -> jObjectFields(
8082
"restartPolicy" -> jString("OnFailure"),
8183
"containers" -> jArrayElements(

cli/shared/src/test/scala/com/lightbend/rp/reactivecli/runtime/kubernetes/KubernetesPackageTest.scala

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,9 @@ object KubernetesPackageTest extends TestSuite {
131131
| "metadata": {
132132
| "name": "my-app-v3-2-1-snapshot",
133133
| "labels": {
134-
| "appName": "my-app",
135-
| "appNameVersion": "my-app-v3-2-1-snapshot"
134+
| "app": "my-app",
135+
| "appNameVersion": "my-app-v3-2-1-snapshot",
136+
| "akka.lightbend.com/service-name": "my-app"
136137
| },
137138
| "namespace": "chirper"
138139
| },
@@ -146,8 +147,9 @@ object KubernetesPackageTest extends TestSuite {
146147
| "template": {
147148
| "metadata": {
148149
| "labels": {
149-
| "appName": "my-app",
150-
| "appNameVersion": "my-app-v3-2-1-snapshot"
150+
| "app": "my-app",
151+
| "appNameVersion": "my-app-v3-2-1-snapshot",
152+
| "akka.lightbend.com/service-name": "my-app"
151153
| }
152154
| },
153155
| "spec": {
@@ -259,7 +261,7 @@ object KubernetesPackageTest extends TestSuite {
259261
| "kind": "Service",
260262
| "metadata": {
261263
| "labels": {
262-
| "appName": "my-app"
264+
| "app": "my-app"
263265
| },
264266
| "name": "my-app",
265267
| "namespace": "chirper"
@@ -286,7 +288,7 @@ object KubernetesPackageTest extends TestSuite {
286288
| }
287289
| ],
288290
| "selector": {
289-
| "appName": "my-app"
291+
| "app": "my-app"
290292
| }
291293
| }
292294
|}

cli/shared/src/test/scala/com/lightbend/rp/reactivecli/runtime/kubernetes/ServiceJsonTest.scala

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ object ServiceJsonTest extends TestSuite {
6565
.get
6666
.payload
6767
.map { j =>
68-
val result = (j.hcursor --\ "spec" --\ "selector" --\ "appName").focus
68+
val result = (j.hcursor --\ "spec" --\ "selector" --\ "app").focus
6969
val expected = Some(jString("friendimpl"))
7070

7171
assert(result == expected)
@@ -89,7 +89,7 @@ object ServiceJsonTest extends TestSuite {
8989
.get
9090
.get
9191
.payload
92-
.map(j => assert((j.hcursor --\ "spec" --\ "selector" --\ "appName").focus.contains(jString("friendimpl"))))
92+
.map(j => assert((j.hcursor --\ "spec" --\ "selector" --\ "app").focus.contains(jString("friendimpl"))))
9393
}
9494
}
9595

@@ -113,7 +113,7 @@ object ServiceJsonTest extends TestSuite {
113113
| "kind": "Service",
114114
| "metadata": {
115115
| "labels": {
116-
| "appName": "friendimpl"
116+
| "app": "friendimpl"
117117
| },
118118
| "name": "friendimpl",
119119
| "namespace": "chirper"
@@ -128,7 +128,7 @@ object ServiceJsonTest extends TestSuite {
128128
| }
129129
| ],
130130
| "selector": {
131-
| "appName": "friendimpl"
131+
| "app": "friendimpl"
132132
| }
133133
| }
134134
|}
@@ -145,7 +145,7 @@ object ServiceJsonTest extends TestSuite {
145145
| "kind": "Service",
146146
| "metadata": {
147147
| "labels": {
148-
| "appName": "friendimpl"
148+
| "app": "friendimpl"
149149
| },
150150
| "name": "friendimpl",
151151
| "namespace": "chirper"
@@ -163,7 +163,7 @@ object ServiceJsonTest extends TestSuite {
163163
| ],
164164
| "type": "NodePort",
165165
| "selector": {
166-
| "appName": "friendimpl"
166+
| "app": "friendimpl"
167167
| }
168168
| }
169169
|}

0 commit comments

Comments
 (0)