Skip to content

Commit 64f968f

Browse files
committed
Config runtime
Sometimes, admin may want to reinitalize the runtime config depend on the real requirements, e.g. increase some prewarm containers
1 parent 0fcbe81 commit 64f968f

File tree

18 files changed

+484
-89
lines changed

18 files changed

+484
-89
lines changed

ansible/group_vars/all

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@ controller:
105105
authentication:
106106
spi: "{{ controller_authentication_spi | default('') }}"
107107
loglevel: "{{ controller_loglevel | default(whisk_loglevel) | default('INFO') }}"
108+
username: "{{ controller_username | default('controller.user') }}"
109+
password: "{{ controller_password | default('controller.pass') }}"
108110
entitlement:
109111
spi: "{{ controller_entitlement_spi | default('') }}"
110112
protocol: "{{ controller_protocol | default('https') }}"
@@ -200,6 +202,8 @@ invoker:
200202
become: "{{ invoker_docker_become | default(false) }}"
201203
runcdir: "{{ invoker_runcdir | default('/run/docker/runtime-runc/moby') }}"
202204
loglevel: "{{ invoker_loglevel | default(whisk_loglevel) | default('INFO') }}"
205+
username: "{{ invoker_username | default('invoker.user') }}"
206+
password: "{{ invoker_password | default('invoker.pass') }}"
203207
jmxremote:
204208
jvmArgs: "{% if inventory_hostname in groups['invokers'] %}
205209
{{ jmx.jvmCommonArgs }} -Djava.rmi.server.hostname={{ invokerHostname }} -Dcom.sun.management.jmxremote.rmi.port={{ jmx.rmiBasePortInvoker + groups['invokers'].index(inventory_hostname) }} -Dcom.sun.management.jmxremote.port={{ jmx.basePortInvoker + groups['invokers'].index(inventory_hostname) }}

ansible/roles/controller/tasks/deploy.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,18 @@
7171
dest: "{{ controller.confdir }}/{{ controller_name }}/jmxremote.access"
7272
mode: 0777
7373

74+
- name: copy controller auth username file
75+
template:
76+
src: "controllerauth.username.j2"
77+
dest: "{{ controller.confdir }}/{{ controller_name }}/controllerauth.username"
78+
mode: 0777
79+
80+
- name: copy controller auth password file
81+
template:
82+
src: "controllerauth.password.j2"
83+
dest: "{{ controller.confdir }}/{{ controller_name }}/controllerauth.password"
84+
mode: 0777
85+
7486
- name: "copy kafka truststore/keystore"
7587
when: kafka.protocol == 'SSL'
7688
copy:

ansible/roles/invoker/tasks/deploy.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,18 @@
183183
dest: "{{ invoker.confdir }}/{{ invoker_name }}/jmxremote.access"
184184
mode: 0777
185185

186+
- name: copy invoker auth username file
187+
template:
188+
src: "invokerauth.username.j2"
189+
dest: "{{ invoker.confdir }}/invoker{{ groups['invokers'].index(inventory_hostname) }}/invokerauth.username"
190+
mode: 0777
191+
192+
- name: copy invoker auth password file
193+
template:
194+
src: "invokerauth.password.j2"
195+
dest: "{{ invoker.confdir }}/invoker{{ groups['invokers'].index(inventory_hostname) }}/invokerauth.password"
196+
mode: 0777
197+
186198
- name: add additional jvm params if jmxremote is enabled
187199
when: jmx.enabled
188200
set_fact:
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{{ controller.password }}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{{ controller.username }}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{{ invoker.password }}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{{ invoker.username }}

common/scala/src/main/resources/reference.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ whisk.spi {
2727
EntitlementSpiProvider = org.apache.openwhisk.core.entitlement.LocalEntitlementProvider
2828
AuthenticationDirectiveProvider = org.apache.openwhisk.core.controller.BasicAuthenticationDirective
2929
InvokerProvider = org.apache.openwhisk.core.invoker.InvokerReactive
30-
InvokerServerProvider = org.apache.openwhisk.core.invoker.DefaultInvokerServer
30+
InvokerServerProvider = org.apache.openwhisk.core.invoker.InvokerServer
3131
}
3232

3333
dispatchers {

common/scala/src/main/scala/org/apache/openwhisk/core/connector/Message.scala

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,3 +405,30 @@ object EventMessage extends DefaultJsonProtocol {
405405

406406
def parse(msg: String) = Try(format.read(msg.parseJson))
407407
}
408+
409+
case class RuntimeMessage(runtime: String) extends Message {
410+
override def serialize = RuntimeMessage.serdes.write(this).compactPrint
411+
}
412+
413+
object RuntimeMessage extends DefaultJsonProtocol {
414+
def parse(msg: String) = Try(serdes.read(msg.parseJson))
415+
implicit val serdes = jsonFormat(RuntimeMessage.apply _, "runtime")
416+
}
417+
418+
case class PrewarmContainerData(kind: String, memory: Long, var number: Int) extends Message {
419+
override def serialize: String = PrewarmContainerData.serdes.write(this).compactPrint
420+
}
421+
422+
object PrewarmContainerData extends DefaultJsonProtocol {
423+
implicit val serdes = jsonFormat(PrewarmContainerData.apply _, "kind", "memory", "number")
424+
}
425+
426+
case class PrewarmContainerDataList(items: List[PrewarmContainerData])
427+
428+
object PrewarmContainerDataProtocol extends DefaultJsonProtocol {
429+
implicit val prewarmContainerDataFormat = jsonFormat(PrewarmContainerData.apply _, "kind", "memory", "number")
430+
implicit object prewarmContainerDataListJsonFormat extends RootJsonFormat[PrewarmContainerDataList] {
431+
def read(value: JsValue) = PrewarmContainerDataList(value.convertTo[List[PrewarmContainerData]])
432+
def write(f: PrewarmContainerDataList) = ???
433+
}
434+
}

common/scala/src/main/scala/org/apache/openwhisk/core/entity/ExecManifest.scala

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,20 @@ protected[core] object ExecManifest {
5555
mf
5656
}
5757

58+
/**
59+
* Reads runtimes manifest from runtime string
60+
*
61+
* @param runtime
62+
* @return the manifest if initialized successfully, or an failure
63+
*/
64+
protected[core] def initialize(runtime: String): Try[Runtimes] = {
65+
val rmc = loadConfigOrThrow[RuntimeManifestConfig](ConfigKeys.runtimes)
66+
val mf = Try(runtime.parseJson.asJsObject).flatMap(runtimes(_, rmc))
67+
var manifest: Option[Runtimes] = None
68+
mf.foreach(m => manifest = Some(m))
69+
mf
70+
}
71+
5872
/**
5973
* Gets existing runtime manifests.
6074
*

0 commit comments

Comments
 (0)