Skip to content

Commit a3b8f2c

Browse files
Added "M" suffix to MEMORY_LIMIT environment variable. (#1056)
## Proposed Changes * Restore "M" suffix of MEMORY_LIMIT variable value deleted by #1053 ## Release Notes ``` Fixes: issue with missing "M" suffix in MEMORY_LIMIT variable value ```
2 parents abba7f2 + ad1fd6b commit a3b8f2c

12 files changed

Lines changed: 78 additions & 29 deletions

pkg/reconciler/app/resources/env.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ func getRuntimeEnvVars(runtime EnvRuntime) runtimeEnvVars {
199199
runtime: CFRunning,
200200
},
201201
{
202-
name: "MEMORY_LIMIT",
202+
name: "MEMORY_LIMIT_IN_MB",
203203
description: "The maximum amount of memory in MB the App can consume.",
204204
compute: func(app *v1alpha1.App) corev1.EnvVar {
205205
return corev1.EnvVar{
@@ -245,7 +245,7 @@ func getRuntimeEnvVars(runtime EnvRuntime) runtimeEnvVars {
245245
// add values that can only be computed at runtime
246246
appValues["limits"] = limits{
247247
Disk: "$(DISK_LIMIT)",
248-
Memory: "$(MEMORY_LIMIT)",
248+
Memory: "$(MEMORY_LIMIT_IN_MB)",
249249
}
250250

251251
valueBytes, _ := json.Marshal(appValues)
@@ -254,7 +254,7 @@ func getRuntimeEnvVars(runtime EnvRuntime) runtimeEnvVars {
254254
// Replace limit values with unquoted env vars.
255255
// This ensures that disk and mem on the "limits" field are correctly represented in the JSON
256256
// as ints instead of strings.
257-
jsonWithInts := strings.ReplaceAll(jsonStr, `"$(MEMORY_LIMIT)"`, "$(MEMORY_LIMIT)")
257+
jsonWithInts := strings.ReplaceAll(jsonStr, `"$(MEMORY_LIMIT_IN_MB)"`, "$(MEMORY_LIMIT_IN_MB)")
258258
jsonWithInts = strings.ReplaceAll(jsonWithInts, `"$(DISK_LIMIT)"`, "$(DISK_LIMIT)")
259259
return corev1.EnvVar{
260260
Value: string(jsonWithInts),
@@ -274,6 +274,12 @@ func getRuntimeEnvVars(runtime EnvRuntime) runtimeEnvVars {
274274
compute: injectedSecretRef(cfutil.DatabaseURLEnvVarName, true),
275275
runtime: CFRunning | CFTask,
276276
},
277+
{
278+
name: "MEMORY_LIMIT",
279+
description: "The maximum amount of memory the App can consume.",
280+
compute: staticValue("$(MEMORY_LIMIT_IN_MB)M"),
281+
runtime: CFRunning | CFStaging | CFTask,
282+
},
277283
}
278284

279285
var out []runtimeEnvVar

pkg/reconciler/app/resources/env_test.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ func TestBuildRuntimeEnvVars(t *testing.T) {
8080
{Name: "INSTANCE_GUID", Value: "$(CF_INSTANCE_GUID)"},
8181
{Name: "CF_INSTANCE_INDEX", Value: "0"},
8282
{Name: "INSTANCE_INDEX", Value: "$(CF_INSTANCE_INDEX)"},
83-
{Name: "MEMORY_LIMIT", ValueFrom: &corev1.EnvVarSource{
83+
{Name: "MEMORY_LIMIT_IN_MB", ValueFrom: &corev1.EnvVarSource{
8484
ResourceFieldRef: &corev1.ResourceFieldSelector{
8585
Divisor: memoryDivisor,
8686
Resource: "limits.memory",
@@ -94,7 +94,7 @@ func TestBuildRuntimeEnvVars(t *testing.T) {
9494
}},
9595
{Name: "LANG", Value: "en_US.UTF-8"},
9696
// json.Marshal writes values in sorted key order
97-
{Name: "VCAP_APPLICATION", Value: `{"application_id":"12345","application_name":"my-app","application_uris":["my-app.example.com"],"limits":{"disk":$(DISK_LIMIT),"mem":$(MEMORY_LIMIT)},"name":"my-app","process_id":"12345","process_type":"web","space_name":"my-ns","uris":["my-app.example.com"]}`},
97+
{Name: "VCAP_APPLICATION", Value: `{"application_id":"12345","application_name":"my-app","application_uris":["my-app.example.com"],"limits":{"disk":$(DISK_LIMIT),"mem":$(MEMORY_LIMIT_IN_MB)},"name":"my-app","process_id":"12345","process_type":"web","space_name":"my-ns","uris":["my-app.example.com"]}`},
9898
{Name: "VCAP_SERVICES", ValueFrom: &corev1.EnvVarSource{
9999
SecretKeyRef: &corev1.SecretKeySelector{
100100
Key: "VCAP_SERVICES",
@@ -113,6 +113,7 @@ func TestBuildRuntimeEnvVars(t *testing.T) {
113113
Optional: ptr.Bool(true),
114114
},
115115
}},
116+
{Name: "MEMORY_LIMIT", Value: "$(MEMORY_LIMIT_IN_MB)M"},
116117
},
117118
},
118119
"staging app": {
@@ -129,7 +130,7 @@ func TestBuildRuntimeEnvVars(t *testing.T) {
129130
{Name: "VCAP_APP_HOST", Value: "$(CF_INSTANCE_IP)"},
130131
{Name: "CF_INSTANCE_PORT", Value: "9999"},
131132
{Name: "CF_INSTANCE_ADDR", Value: "$(CF_INSTANCE_IP):$(CF_INSTANCE_PORT)"},
132-
{Name: "MEMORY_LIMIT", ValueFrom: &corev1.EnvVarSource{
133+
{Name: "MEMORY_LIMIT_IN_MB", ValueFrom: &corev1.EnvVarSource{
133134
ResourceFieldRef: &corev1.ResourceFieldSelector{
134135
Divisor: memoryDivisor,
135136
Resource: "limits.memory",
@@ -143,7 +144,7 @@ func TestBuildRuntimeEnvVars(t *testing.T) {
143144
}},
144145
{Name: "LANG", Value: "en_US.UTF-8"},
145146
// json.Marshal writes values in sorted key order
146-
{Name: "VCAP_APPLICATION", Value: `{"application_id":"12345","application_name":"my-app","application_uris":["my-app.example.com"],"limits":{"disk":$(DISK_LIMIT),"mem":$(MEMORY_LIMIT)},"name":"my-app","process_id":"12345","process_type":"web","space_name":"my-ns","uris":["my-app.example.com"]}`},
147+
{Name: "VCAP_APPLICATION", Value: `{"application_id":"12345","application_name":"my-app","application_uris":["my-app.example.com"],"limits":{"disk":$(DISK_LIMIT),"mem":$(MEMORY_LIMIT_IN_MB)},"name":"my-app","process_id":"12345","process_type":"web","space_name":"my-ns","uris":["my-app.example.com"]}`},
147148
{Name: "VCAP_SERVICES", ValueFrom: &corev1.EnvVarSource{
148149
SecretKeyRef: &corev1.SecretKeySelector{
149150
Key: "VCAP_SERVICES",
@@ -153,6 +154,7 @@ func TestBuildRuntimeEnvVars(t *testing.T) {
153154
Optional: ptr.Bool(false),
154155
},
155156
}},
157+
{Name: "MEMORY_LIMIT", Value: "$(MEMORY_LIMIT_IN_MB)M"},
156158
},
157159
},
158160
"task app": {
@@ -176,7 +178,7 @@ func TestBuildRuntimeEnvVars(t *testing.T) {
176178
},
177179
}},
178180
{Name: "INSTANCE_GUID", Value: "$(CF_INSTANCE_GUID)"},
179-
{Name: "MEMORY_LIMIT", ValueFrom: &corev1.EnvVarSource{
181+
{Name: "MEMORY_LIMIT_IN_MB", ValueFrom: &corev1.EnvVarSource{
180182
ResourceFieldRef: &corev1.ResourceFieldSelector{
181183
Divisor: memoryDivisor,
182184
Resource: "limits.memory",
@@ -190,7 +192,7 @@ func TestBuildRuntimeEnvVars(t *testing.T) {
190192
}},
191193
{Name: "LANG", Value: "en_US.UTF-8"},
192194
// json.Marshal writes values in sorted key order
193-
{Name: "VCAP_APPLICATION", Value: `{"application_id":"12345","application_name":"my-app","application_uris":["my-app.example.com"],"limits":{"disk":$(DISK_LIMIT),"mem":$(MEMORY_LIMIT)},"name":"my-app","process_id":"12345","process_type":"web","space_name":"my-ns","uris":["my-app.example.com"]}`},
195+
{Name: "VCAP_APPLICATION", Value: `{"application_id":"12345","application_name":"my-app","application_uris":["my-app.example.com"],"limits":{"disk":$(DISK_LIMIT),"mem":$(MEMORY_LIMIT_IN_MB)},"name":"my-app","process_id":"12345","process_type":"web","space_name":"my-ns","uris":["my-app.example.com"]}`},
194196
{Name: "VCAP_SERVICES", ValueFrom: &corev1.EnvVarSource{
195197
SecretKeyRef: &corev1.SecretKeySelector{
196198
Key: "VCAP_SERVICES",
@@ -209,6 +211,7 @@ func TestBuildRuntimeEnvVars(t *testing.T) {
209211
Optional: ptr.Bool(true),
210212
},
211213
}},
214+
{Name: "MEMORY_LIMIT", Value: "$(MEMORY_LIMIT_IN_MB)M"},
212215
},
213216
},
214217
}

pkg/reconciler/app/resources/testdata/golden/testmakesource_buildpack_build.golden

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@
103103
"value": "$(CF_INSTANCE_IP):$(CF_INSTANCE_PORT)"
104104
},
105105
{
106-
"name": "MEMORY_LIMIT",
106+
"name": "MEMORY_LIMIT_IN_MB",
107107
"valueFrom": {
108108
"resourceFieldRef": {
109109
"resource": "limits.memory",
@@ -126,7 +126,7 @@
126126
},
127127
{
128128
"name": "VCAP_APPLICATION",
129-
"value": "{\"application_id\":\"\",\"application_name\":\"mybuildpackapp\",\"application_uris\":[],\"limits\":{\"disk\":$(DISK_LIMIT),\"mem\":$(MEMORY_LIMIT)},\"name\":\"mybuildpackapp\",\"process_id\":\"\",\"process_type\":\"web\",\"space_name\":\"myspace\",\"uris\":[]}"
129+
"value": "{\"application_id\":\"\",\"application_name\":\"mybuildpackapp\",\"application_uris\":[],\"limits\":{\"disk\":$(DISK_LIMIT),\"mem\":$(MEMORY_LIMIT_IN_MB)},\"name\":\"mybuildpackapp\",\"process_id\":\"\",\"process_type\":\"web\",\"space_name\":\"myspace\",\"uris\":[]}"
130130
},
131131
{
132132
"name": "VCAP_SERVICES",
@@ -138,6 +138,10 @@
138138
}
139139
}
140140
},
141+
{
142+
"name": "MEMORY_LIMIT",
143+
"value": "$(MEMORY_LIMIT_IN_MB)M"
144+
},
141145
{
142146
"name": "some-env-var",
143147
"value": "cool-env-value"

pkg/reconciler/app/resources/testdata/golden/testmakesource_cascading_env_build.golden

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108
"value": "$(CF_INSTANCE_IP):$(CF_INSTANCE_PORT)"
109109
},
110110
{
111-
"name": "MEMORY_LIMIT",
111+
"name": "MEMORY_LIMIT_IN_MB",
112112
"valueFrom": {
113113
"resourceFieldRef": {
114114
"resource": "limits.memory",
@@ -131,7 +131,7 @@
131131
},
132132
{
133133
"name": "VCAP_APPLICATION",
134-
"value": "{\"application_id\":\"\",\"application_name\":\"mybuildpackapp\",\"application_uris\":[],\"limits\":{\"disk\":$(DISK_LIMIT),\"mem\":$(MEMORY_LIMIT)},\"name\":\"mybuildpackapp\",\"process_id\":\"\",\"process_type\":\"web\",\"space_name\":\"myspace\",\"uris\":[]}"
134+
"value": "{\"application_id\":\"\",\"application_name\":\"mybuildpackapp\",\"application_uris\":[],\"limits\":{\"disk\":$(DISK_LIMIT),\"mem\":$(MEMORY_LIMIT_IN_MB)},\"name\":\"mybuildpackapp\",\"process_id\":\"\",\"process_type\":\"web\",\"space_name\":\"myspace\",\"uris\":[]}"
135135
},
136136
{
137137
"name": "VCAP_SERVICES",
@@ -143,6 +143,10 @@
143143
}
144144
}
145145
},
146+
{
147+
"name": "MEMORY_LIMIT",
148+
"value": "$(MEMORY_LIMIT_IN_MB)M"
149+
},
146150
{
147151
"name": "CASCADE",
148152
"value": "build"

pkg/reconciler/app/resources/testdata/golden/testmakesource_empty_app_and_space_build.golden

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989
"value": "$(CF_INSTANCE_IP):$(CF_INSTANCE_PORT)"
9090
},
9191
{
92-
"name": "MEMORY_LIMIT",
92+
"name": "MEMORY_LIMIT_IN_MB",
9393
"valueFrom": {
9494
"resourceFieldRef": {
9595
"resource": "limits.memory",
@@ -112,7 +112,7 @@
112112
},
113113
{
114114
"name": "VCAP_APPLICATION",
115-
"value": "{\"application_id\":\"\",\"application_name\":\"mybuildpackapp\",\"application_uris\":[],\"limits\":{\"disk\":$(DISK_LIMIT),\"mem\":$(MEMORY_LIMIT)},\"name\":\"mybuildpackapp\",\"process_id\":\"\",\"process_type\":\"web\",\"space_name\":\"myspace\",\"uris\":[]}"
115+
"value": "{\"application_id\":\"\",\"application_name\":\"mybuildpackapp\",\"application_uris\":[],\"limits\":{\"disk\":$(DISK_LIMIT),\"mem\":$(MEMORY_LIMIT_IN_MB)},\"name\":\"mybuildpackapp\",\"process_id\":\"\",\"process_type\":\"web\",\"space_name\":\"myspace\",\"uris\":[]}"
116116
},
117117
{
118118
"name": "VCAP_SERVICES",
@@ -123,6 +123,10 @@
123123
"optional": false
124124
}
125125
}
126+
},
127+
{
128+
"name": "MEMORY_LIMIT",
129+
"value": "$(MEMORY_LIMIT_IN_MB)M"
126130
}
127131
]
128132
},

pkg/reconciler/task/resources/testdata/golden/testmaketaskrun_empty_taskrun.golden

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@
114114
"value": "$(CF_INSTANCE_GUID)"
115115
},
116116
{
117-
"name": "MEMORY_LIMIT",
117+
"name": "MEMORY_LIMIT_IN_MB",
118118
"valueFrom": {
119119
"resourceFieldRef": {
120120
"resource": "limits.memory",
@@ -137,7 +137,7 @@
137137
},
138138
{
139139
"name": "VCAP_APPLICATION",
140-
"value": "{\"application_id\":\"\",\"application_name\":\"\",\"application_uris\":[],\"limits\":{\"disk\":$(DISK_LIMIT),\"mem\":$(MEMORY_LIMIT)},\"name\":\"\",\"process_id\":\"\",\"process_type\":\"web\",\"space_name\":\"\",\"uris\":[]}"
140+
"value": "{\"application_id\":\"\",\"application_name\":\"\",\"application_uris\":[],\"limits\":{\"disk\":$(DISK_LIMIT),\"mem\":$(MEMORY_LIMIT_IN_MB)},\"name\":\"\",\"process_id\":\"\",\"process_type\":\"web\",\"space_name\":\"\",\"uris\":[]}"
141141
},
142142
{
143143
"name": "VCAP_SERVICES",
@@ -158,6 +158,10 @@
158158
"optional": true
159159
}
160160
}
161+
},
162+
{
163+
"name": "MEMORY_LIMIT",
164+
"value": "$(MEMORY_LIMIT_IN_MB)M"
161165
}
162166
],
163167
"resources": {}

pkg/reconciler/task/resources/testdata/golden/testmaketaskrun_nfs_volumes_disabled_taskrun.golden

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@
123123
"value": "$(CF_INSTANCE_GUID)"
124124
},
125125
{
126-
"name": "MEMORY_LIMIT",
126+
"name": "MEMORY_LIMIT_IN_MB",
127127
"valueFrom": {
128128
"resourceFieldRef": {
129129
"resource": "limits.memory",
@@ -146,7 +146,7 @@
146146
},
147147
{
148148
"name": "VCAP_APPLICATION",
149-
"value": "{\"application_id\":\"\",\"application_name\":\"\",\"application_uris\":[],\"limits\":{\"disk\":$(DISK_LIMIT),\"mem\":$(MEMORY_LIMIT)},\"name\":\"\",\"process_id\":\"\",\"process_type\":\"web\",\"space_name\":\"\",\"uris\":[]}"
149+
"value": "{\"application_id\":\"\",\"application_name\":\"\",\"application_uris\":[],\"limits\":{\"disk\":$(DISK_LIMIT),\"mem\":$(MEMORY_LIMIT_IN_MB)},\"name\":\"\",\"process_id\":\"\",\"process_type\":\"web\",\"space_name\":\"\",\"uris\":[]}"
150150
},
151151
{
152152
"name": "VCAP_SERVICES",
@@ -167,6 +167,10 @@
167167
"optional": true
168168
}
169169
}
170+
},
171+
{
172+
"name": "MEMORY_LIMIT",
173+
"value": "$(MEMORY_LIMIT_IN_MB)M"
170174
}
171175
],
172176
"resources": {}

pkg/reconciler/task/resources/testdata/golden/testmaketaskrun_nfs_volumes_enabled_start_command_taskrun.golden

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@
127127
"value": "$(CF_INSTANCE_GUID)"
128128
},
129129
{
130-
"name": "MEMORY_LIMIT",
130+
"name": "MEMORY_LIMIT_IN_MB",
131131
"valueFrom": {
132132
"resourceFieldRef": {
133133
"resource": "limits.memory",
@@ -150,7 +150,7 @@
150150
},
151151
{
152152
"name": "VCAP_APPLICATION",
153-
"value": "{\"application_id\":\"\",\"application_name\":\"\",\"application_uris\":[],\"limits\":{\"disk\":$(DISK_LIMIT),\"mem\":$(MEMORY_LIMIT)},\"name\":\"\",\"process_id\":\"\",\"process_type\":\"web\",\"space_name\":\"\",\"uris\":[]}"
153+
"value": "{\"application_id\":\"\",\"application_name\":\"\",\"application_uris\":[],\"limits\":{\"disk\":$(DISK_LIMIT),\"mem\":$(MEMORY_LIMIT_IN_MB)},\"name\":\"\",\"process_id\":\"\",\"process_type\":\"web\",\"space_name\":\"\",\"uris\":[]}"
154154
},
155155
{
156156
"name": "VCAP_SERVICES",
@@ -171,6 +171,10 @@
171171
"optional": true
172172
}
173173
}
174+
},
175+
{
176+
"name": "MEMORY_LIMIT",
177+
"value": "$(MEMORY_LIMIT_IN_MB)M"
174178
}
175179
],
176180
"resources": {},

pkg/reconciler/task/resources/testdata/golden/testmaketaskrun_nfs_volumes_enabled_taskrun.golden

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@
126126
"value": "$(CF_INSTANCE_GUID)"
127127
},
128128
{
129-
"name": "MEMORY_LIMIT",
129+
"name": "MEMORY_LIMIT_IN_MB",
130130
"valueFrom": {
131131
"resourceFieldRef": {
132132
"resource": "limits.memory",
@@ -149,7 +149,7 @@
149149
},
150150
{
151151
"name": "VCAP_APPLICATION",
152-
"value": "{\"application_id\":\"\",\"application_name\":\"\",\"application_uris\":[],\"limits\":{\"disk\":$(DISK_LIMIT),\"mem\":$(MEMORY_LIMIT)},\"name\":\"\",\"process_id\":\"\",\"process_type\":\"web\",\"space_name\":\"\",\"uris\":[]}"
152+
"value": "{\"application_id\":\"\",\"application_name\":\"\",\"application_uris\":[],\"limits\":{\"disk\":$(DISK_LIMIT),\"mem\":$(MEMORY_LIMIT_IN_MB)},\"name\":\"\",\"process_id\":\"\",\"process_type\":\"web\",\"space_name\":\"\",\"uris\":[]}"
153153
},
154154
{
155155
"name": "VCAP_SERVICES",
@@ -170,6 +170,10 @@
170170
"optional": true
171171
}
172172
}
173+
},
174+
{
175+
"name": "MEMORY_LIMIT",
176+
"value": "$(MEMORY_LIMIT_IN_MB)M"
173177
}
174178
],
175179
"resources": {},

pkg/reconciler/task/resources/testdata/golden/testmaketaskrun_timeout_taskrun.golden

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@
115115
"value": "$(CF_INSTANCE_GUID)"
116116
},
117117
{
118-
"name": "MEMORY_LIMIT",
118+
"name": "MEMORY_LIMIT_IN_MB",
119119
"valueFrom": {
120120
"resourceFieldRef": {
121121
"resource": "limits.memory",
@@ -138,7 +138,7 @@
138138
},
139139
{
140140
"name": "VCAP_APPLICATION",
141-
"value": "{\"application_id\":\"\",\"application_name\":\"\",\"application_uris\":[],\"limits\":{\"disk\":$(DISK_LIMIT),\"mem\":$(MEMORY_LIMIT)},\"name\":\"\",\"process_id\":\"\",\"process_type\":\"web\",\"space_name\":\"\",\"uris\":[]}"
141+
"value": "{\"application_id\":\"\",\"application_name\":\"\",\"application_uris\":[],\"limits\":{\"disk\":$(DISK_LIMIT),\"mem\":$(MEMORY_LIMIT_IN_MB)},\"name\":\"\",\"process_id\":\"\",\"process_type\":\"web\",\"space_name\":\"\",\"uris\":[]}"
142142
},
143143
{
144144
"name": "VCAP_SERVICES",
@@ -159,6 +159,10 @@
159159
"optional": true
160160
}
161161
}
162+
},
163+
{
164+
"name": "MEMORY_LIMIT",
165+
"value": "$(MEMORY_LIMIT_IN_MB)M"
162166
}
163167
],
164168
"resources": {}

0 commit comments

Comments
 (0)