Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
41 changes: 27 additions & 14 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,28 +71,41 @@ jobs:
uses: actions/checkout@v4
with:
repository: apache/openwhisk
ref: 2.0.0
path: core
- name: Install python packages needed to deploy OpenWhisk
run: |
pip install couchdb
pip install 'jinja2<3.1' ansible==2.8.18
pip install pydocumentdb
pip install humanize requests
python3 -m pip install couchdb
python3 -m pip install 'jinja2<3.1' ansible==2.8.18
python3 -m pip install pydocumentdb
python3 -m pip install humanize 'requests<2.32' 'urllib3<2' 'docker>=6,<7'
- name: Deploy OpenWhisk
working-directory: core/ansible
env:
ANSIBLE_CMD: "ansible-playbook -i environments/local -e docker_image_prefix=openwhisk -e docker_image_tag=nightly"
ANSIBLE_EXTRA_VARS: '{"scheduler_enable":false,"jmxremote_enabled":"","controller_loadbalancer_spi":"org.apache.openwhisk.core.loadBalancer.ShardingContainerPoolBalancer","invokerReactive_spi":"org.apache.openwhisk.core.invoker.InvokerReactive","invokerServer_spi":"org.apache.openwhisk.core.invoker.DefaultInvokerServer"}'
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason that you used the ShardingPoolBalancer that is deprecated?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In OpenWhisk 2.0.0, the docs say the old shared state model was deprecated/removed, while sharding remains available.
Had to use it here because the default FPCPoolBalancer path expects scheduler/etcd configuration, which is what was breaking this CI. ShardingContainerPoolBalancer keeps this legacy Docker-based integration test working without enabling the scheduler path.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for sharing that. I have no objection to merging this.
I was just wondering what the error was when the scheduler was breaking CI.

run: |
$ANSIBLE_CMD setup.yml
$ANSIBLE_CMD prereq.yml
$ANSIBLE_CMD couchdb.yml
$ANSIBLE_CMD initdb.yml
$ANSIBLE_CMD wipe.yml
$ANSIBLE_CMD openwhisk.yml -e '{"openwhisk_cli":{"installation_mode":"remote","remote":{"name":"OpenWhisk_CLI","dest_name":"OpenWhisk_CLI","location":"https://github.com/apache/openwhisk-cli/releases/download/latest"}}}' -e db_activation_backend=ElasticSearch
$ANSIBLE_CMD apigateway.yml
$ANSIBLE_CMD properties.yml # required for to run before routemgmt.yml
$ANSIBLE_CMD routemgmt.yml
$ANSIBLE_CMD postdeploy.yml
PYTHON_BIN="$(command -v python3)"
ANSIBLE_CMD="$ANSIBLE_CMD -e ansible_python_interpreter=$PYTHON_BIN"
$ANSIBLE_CMD setup.yml -e "$ANSIBLE_EXTRA_VARS"
$ANSIBLE_CMD prereq.yml -e "$ANSIBLE_EXTRA_VARS"
"$PYTHON_BIN" -m pip install --upgrade --force-reinstall 'requests<2.32' 'urllib3<2' 'docker>=6,<7'
"$PYTHON_BIN" - <<'PY'
import docker
import requests
import urllib3

docker_version = getattr(docker, "__version__", getattr(docker, "version", "unknown"))
print(f"docker={docker_version} requests={requests.__version__} urllib3={urllib3.__version__}")
PY
$ANSIBLE_CMD couchdb.yml -e "$ANSIBLE_EXTRA_VARS"
$ANSIBLE_CMD initdb.yml -e "$ANSIBLE_EXTRA_VARS"
$ANSIBLE_CMD wipe.yml -e "$ANSIBLE_EXTRA_VARS"
$ANSIBLE_CMD openwhisk.yml -e "$ANSIBLE_EXTRA_VARS" -e '{"openwhisk_cli":{"installation_mode":"remote","remote":{"name":"OpenWhisk_CLI","dest_name":"OpenWhisk_CLI","location":"https://github.com/apache/openwhisk-cli/releases/download/latest"}}}'
$ANSIBLE_CMD apigateway.yml -e "$ANSIBLE_EXTRA_VARS"
$ANSIBLE_CMD properties.yml -e "$ANSIBLE_EXTRA_VARS" # required for to run before routemgmt.yml
$ANSIBLE_CMD routemgmt.yml -e "$ANSIBLE_EXTRA_VARS"
$ANSIBLE_CMD postdeploy.yml -e "$ANSIBLE_EXTRA_VARS"

# Run the intergration tests against the openwhisk deployment
- name: Run integration tests
Expand Down
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@

# Changelog

## v3.21.9
Replace deprecated url.parse usage with WHATWG URL API (#282)

## v3.21.8
Update dependencies
Switched CI from Travis to GitHub Actions
Expand Down
2 changes: 1 addition & 1 deletion NOTICE.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Apache OpenWhisk Client Js
Copyright 2016-2023 The Apache Software Foundation
Copyright 2016-2026 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "openwhisk",
"version": "3.21.8",
"version": "3.21.9",
"description": "JavaScript client library for the Apache OpenWhisk platform",
"main": "lib/main.js",
"typings": "lib/main.d.ts",
Expand Down
Loading