Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

initial changes for invoker cluster backpressure #3

Open
wants to merge 62 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
e7ad4a2
Update version for Akka dependencies and Scala (#4316)
chetanmeh May 13, 2019
4740d40
Additional cleanup and simplifications for the ActionLoop docs (#4475)
mrutkows May 13, 2019
4df3d09
Updating runtimes to include new Node.js v12 image. (#4472)
jthomas May 15, 2019
ae9ff6a
Update LeanBalancer for invoke SPI change (#4478)
May 15, 2019
8650f36
Limit the minimum to the cpu-share value (#4477)
KeonHee May 15, 2019
541709d
Adding Lean Openwhisk test to Jenkins (#4480)
May 15, 2019
d353d26
Update docker client version to 18.06.3 (#4430)
style95 May 15, 2019
55d975f
Fixing Jenkins Lean Openwhisk test (#4482)
May 20, 2019
fd5d06b
Invoker agent failed to pull docker images if using docker registry n…
neerajmangal May 21, 2019
ed08ed1
Switch to consistent indexing policy for CosmosDB (#4484)
chetanmeh May 21, 2019
73732b4
Update to Alpakka S3 Connector v1.0 release (#4479)
chetanmeh May 22, 2019
1bf6e43
add quotes to avoid build brakes (#4491)
mhenke1 May 22, 2019
2e0c562
Track collection usage metrics for CosmosDB (#4490)
chetanmeh May 23, 2019
72c08a6
Apache OpenWhisk logos as svg (#4493)
rabbah May 27, 2019
6fdc7ce
Use `linesIterator` instead of String.lines (#4495)
chetanmeh May 28, 2019
658516e
Track Kafka client side metrics via Kamon (#4481)
chetanmeh May 29, 2019
aeabc35
Update rest-assured to v4.0.0 (#4500)
chetanmeh May 31, 2019
9d37fad
Use Instant with milli second precision (#4497)
chetanmeh Jun 1, 2019
f9112ed
Fix a few compilation accidents (#4505)
dragos Jun 4, 2019
d0f6ba5
Remove default port on api host. (#4504)
rabbah Jun 5, 2019
e88257e
Consolidated action annotations to a new singleton (#4499)
kiran002 Jun 5, 2019
da61ad2
Settle throttle before running the API GW Tests (#4496)
mhenke1 Jun 11, 2019
1113f2d
Replace JsBoolean() with JsTrue/False. (#4508)
rabbah Jun 11, 2019
ef8b06f
Update all files using Mini license header to use full ASF header (#4…
mrutkows Jun 13, 2019
2fa8c50
Update Dockerfiles to full ASF license header (#4517)
mrutkows Jun 19, 2019
7d92be7
Change API call to Splunk to allow retrieval of large messages (#4519)
selfxp Jun 25, 2019
aff144c
Log more diagnostic info when invoker / controller cluster status cha…
sven-lange-last Jun 26, 2019
2f0155f
Openwhisk in a standalone runnable jar (#4516)
chetanmeh Jun 26, 2019
a882080
"invoker clustered resources"
tysonnorris Mar 5, 2019
65f3395
add a throttle for number of in-flight "container starts" when using …
tysonnorris Mar 6, 2019
f6468a2
remove tight loop in busy retries
tysonnorris Mar 8, 2019
03dc1a7
ContainerPool must evict idles when certain portion of hosts are no l…
tysonnorris Mar 8, 2019
6d945f6
ContainerPool must evict idles when certain portion of hosts are no l…
tysonnorris Mar 8, 2019
19208b8
ContainerPool must evict idles when certain portion of hosts are no l…
tysonnorris Mar 8, 2019
184bd55
refactoring to isolate cluster/local communications to ContainerResou…
tysonnorris Mar 16, 2019
85b0ae1
add GB to size
tysonnorris Mar 18, 2019
ded9882
cleanup
tysonnorris Mar 18, 2019
1e4b41a
cleanup
tysonnorris Mar 18, 2019
4ba7c0d
cleanup; increase replicated data sharing to once per second
tysonnorris Mar 18, 2019
43e91b4
added resent list of activationIds to avoid resending duplicates
tysonnorris Mar 19, 2019
810daa9
added metrics for resource error, rescheduled activation, number node…
tysonnorris Mar 19, 2019
f5a2689
review feedback
tysonnorris Mar 19, 2019
bc673f2
use histogram for node count
tysonnorris Mar 19, 2019
7767607
don't emit metrics from empty nodestats
tysonnorris Mar 20, 2019
b64ae47
tolerate empty nodestats
tysonnorris Mar 21, 2019
550a620
shuffle dependencies
tysonnorris Mar 21, 2019
5d7728d
shuffle dependencies
tysonnorris Mar 21, 2019
89455f9
cleanup
tysonnorris Mar 22, 2019
eb38426
cleanup; adding metrics
tysonnorris Mar 28, 2019
1885198
typo in conf
tysonnorris Mar 28, 2019
cb9615a
added tests; removed some methods defined in ContainerResourceManager
tysonnorris Apr 4, 2019
a184417
cleanup
tysonnorris Apr 15, 2019
ea4a08f
use gauge metrics; update unused refs when containers are purged afte…
tysonnorris Apr 26, 2019
e1e6cd9
change container pool metrics to gauge type, add metric for runbuffer…
tysonnorris May 2, 2019
1ce2d35
fixing idle metrics
tysonnorris May 6, 2019
d5a1964
add counter metric for system errors
tysonnorris May 13, 2019
ba580d3
add idleGrace duration to prevent aggressive collection of recently i…
tysonnorris Jun 7, 2019
23e9cf0
respect idle grace for local remove() as well as remote triggered rem…
tysonnorris Jun 13, 2019
f0faa87
keep track of Container.lastUsed value properly to prevent early clea…
tysonnorris Jun 17, 2019
6d17424
review feedback
tysonnorris Jun 27, 2019
91c3eb8
akka version updates
tysonnorris Jun 28, 2019
a2a1844
fixing tests
tysonnorris Jun 28, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 16 additions & 2 deletions .scalafmt.conf
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

style = intellij
danglingParentheses = false
Expand Down
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ cache:
- $HOME/.gradle/wrapper/

before_install:
- ./tools/travis/docker.sh
- pip install --upgrade pip setuptools six
- pip3 install --upgrade pip setuptools six

Expand Down
29 changes: 23 additions & 6 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ timeout(time: 12, unit: 'HOURS') {
sh "./gradlew distDocker -PdockerRegistry=${domainName}:${port}"
}

stage('Deploy') {
stage('Deploy Lean') {
dir("ansible") {
// Copy the jenkins ansible configuration under the directory ansible. This can make sure the SSH is used to
// access the VMs of invokers by the VM of the controller.
Expand All @@ -77,13 +77,29 @@ timeout(time: 12, unit: 'HOURS') {
sh 'ansible-playbook -i environments/jenkins initdb.yml'
sh 'ansible-playbook -i environments/jenkins wipe.yml'
sh 'ansible-playbook -i environments/jenkins apigateway.yml'
sh 'ansible-playbook -i environments/jenkins openwhisk.yml'
sh 'ansible-playbook -i environments/jenkins openwhisk.yml -e lean=true'
sh 'ansible-playbook -i environments/jenkins properties.yml'
sh 'ansible-playbook -i environments/jenkins routemgmt.yml'
sh 'ansible-playbook -i environments/jenkins postdeploy.yml'
}
}

try {
stage('Test Lean Openwhisk') {
sh './gradlew :tests:test --tests system.basic.WskRestBasicTests -DtestResultsDirName=test-lean-openwhisk'
}
} catch (exp) {
println("Exception: " + exp)
error(exp)
}

stage('Deploy full Openwhisk') {
dir("ansible") {
sh 'ansible-playbook -i environments/jenkins openwhisk.yml -e mode=clean'
sh 'ansible-playbook -i environments/jenkins openwhisk.yml'
}
}

try {
stage('Test') {
sh './gradlew :tests:test -DtestResultsDirName=test-openwhisk'
Expand All @@ -106,17 +122,18 @@ timeout(time: 12, unit: 'HOURS') {
println("Exception:" + exp)
}

} catch (exp) {
println("Exception:" + exp)
error(exp)
} finally {
println("Executing finally block")
stage('Clean up') {
dir("ansible") {
sh 'ansible-playbook -i environments/jenkins openwhisk.yml -e mode=clean'
sh 'ansible-playbook -i environments/jenkins apigateway.yml -e mode=clean'
sh 'ansible-playbook -i environments/jenkins couchdb.yml -e mode=clean'
}
}

} catch (exp) {
println("Exception:" + exp)
} finally {
step([$class: 'JUnitResultArchiver', testResults: '**/test*/**/TEST-*.xml'])
}
}
Expand Down
18 changes: 16 additions & 2 deletions ansible/apigateway.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

- hosts: redis
roles:
Expand Down
18 changes: 16 additions & 2 deletions ansible/controller.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
---
# This playbook deploys Openwhisk Controllers.

Expand Down
18 changes: 16 additions & 2 deletions ansible/couchdb.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
---
# This playbook deploys a CouchDB for Openwhisk.

Expand Down
18 changes: 16 additions & 2 deletions ansible/downloadcli.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
---
# This playbook downloads the Openwhisk cli aka wsk from the API host.

Expand Down
18 changes: 16 additions & 2 deletions ansible/edge.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
---
# This playbook deploys Openwhisk Edge servers.
# The edge is usually populated with NGINX serving as proxy.
Expand Down
18 changes: 16 additions & 2 deletions ansible/environments/docker-machine/group_vars/all
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

config_root_dir: /Users/Shared/wskconf
whisk_logs_dir: /Users/Shared/wsklogs
Expand Down
19 changes: 17 additions & 2 deletions ansible/environments/jenkins/group_vars/openwhisk-vm1-he-de
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

openwhisk_tmp_dir: "{{ lookup('env', 'OPENWHISK_TMP_DIR')|default('/tmp', true) }}"
config_root_dir: "{{ openwhisk_tmp_dir }}/wskconf"
Expand Down Expand Up @@ -36,3 +50,4 @@ runtimes_enable_concurrency: true
limit_action_concurrency_max: 500

invoker1_machine: openwhisk-vm3-he-de
invoker_use_runc: false
19 changes: 17 additions & 2 deletions ansible/environments/jenkins/group_vars/openwhisk-vm2-he-de
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

openwhisk_tmp_dir: "{{ lookup('env', 'OPENWHISK_TMP_DIR')|default('/tmp', true) }}"
config_root_dir: "{{ openwhisk_tmp_dir }}/wskconf"
Expand Down Expand Up @@ -37,3 +51,4 @@ limit_action_concurrency_max: 500
limit_invocations_per_minute: 120

invoker1_machine: openwhisk-vm1-he-de
invoker_use_runc: false
19 changes: 17 additions & 2 deletions ansible/environments/jenkins/group_vars/openwhisk-vm3-he-de
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

openwhisk_tmp_dir: "{{ lookup('env', 'OPENWHISK_TMP_DIR')|default('/tmp', true) }}"
config_root_dir: "{{ openwhisk_tmp_dir }}/wskconf"
Expand Down Expand Up @@ -36,3 +50,4 @@ runtimes_enable_concurrency: true
limit_action_concurrency_max: 500

invoker1_machine: openwhisk-vm2-he-de
invoker_use_runc: false
18 changes: 16 additions & 2 deletions ansible/environments/local/group_vars/all
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

openwhisk_tmp_dir: "{{ lookup('env', 'OPENWHISK_TMP_DIR')|default('/tmp', true) }}"
config_root_dir: "{{ openwhisk_tmp_dir }}/wskconf"
Expand Down
18 changes: 16 additions & 2 deletions ansible/environments/vagrant/group_vars/all
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

openwhisk_tmp_dir: "{{ lookup('env', 'OPENWHISK_TMP_DIR')|default('/tmp', true) }}"
config_root_dir: "{{ openwhisk_tmp_dir }}/wskconf"
Expand Down
18 changes: 16 additions & 2 deletions ansible/files/genssl.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,20 @@
#!/bin/bash
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

set -e

Expand Down
14 changes: 14 additions & 0 deletions ansible/files/runtimes.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,20 @@
"memory": "256 MB"
}
]
},
{
"kind": "nodejs:12",
"default": false,
"image": {
"prefix": "openwhisk",
"name": "action-nodejs-v12",
"tag": "latest"
},
"deprecated": false,
"attached": {
"attachmentName": "codefile",
"attachmentType": "text/plain"
}
}
],
"python": [
Expand Down
Loading