[openwhisk-wskdeploy] annotated tag latest updated (af80c22 -> 0a186e9)
This is an automated email from the ASF dual-hosted git repository. houshengbo pushed a change to annotated tag latest in repository https://gitbox.apache.org/repos/asf/openwhisk-wskdeploy.git. *** WARNING: tag latest was modified! *** from af80c22 (commit) to 0a186e9 (tag) tagging af80c22f0fb3158f43c9f08a2423d135579dc07b (commit) replaces 1.1.0 by Travis CI on Tue Feb 23 17:26:41 2021 -0600 - Log - Generated tag from Travis CI build 3520 --- No new revisions were added by this update. Summary of changes:
[openwhisk-wskdeploy] branch master updated: Documentation cleanup, post-gogradle build changes (#1120)
This is an automated email from the ASF dual-hosted git repository. pdesai pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openwhisk-wskdeploy.git The following commit(s) were added to refs/heads/master by this push: new af80c22 Documentation cleanup, post-gogradle build changes (#1120) af80c22 is described below commit af80c22f0fb3158f43c9f08a2423d135579dc07b Author: Matt Rutkowski AuthorDate: Tue Feb 23 17:26:41 2021 -0600 Documentation cleanup, post-gogradle build changes (#1120) * Documentation cleanup, post-gogradle build changes * Documentation cleanup, post-gogradle build changes * Documentation cleanup, post-gogradle build changes * Documentation cleanup, post-gogradle build changes * Update cross compile instructions for gradfle tasks --- README.md | 50 +++ build.gradle | 2 +- parsers/manifest_parser_test.go| 4 +- specification/html/spec_actions.md | 5 +- specification/html/spec_apis.md| 1 + .../html/spec_entity_naming_and_namespacing.md | 18 +++--- specification/html/spec_intro.md | 10 +-- specification/html/spec_maps.md| 1 + specification/html/spec_normative_refs.md | 49 ++- specification/html/spec_package_processing.md | 7 +-- specification/html/spec_parameter_types.md | 6 +- specification/html/spec_parameters.md | 73 +++--- specification/html/spec_rule.md| 2 + specification/html/spec_schema.md | 2 +- specification/html/spec_sequences.md | 2 + specification/html/spec_shared_entity_schema.md| 5 +- specification/html/spec_trigger.md | 4 ++ .../dat/deployment_validate_package_inputs_1.yaml | 2 - tests/dat/manifest_validate_params.yaml| 4 +- 19 files changed, 168 insertions(+), 79 deletions(-) diff --git a/README.md b/README.md index 9c4e8b9..392a737 100644 --- a/README.md +++ b/README.md @@ -154,29 +154,57 @@ After compiling, a suitable wskdeploy binary that works for your OS platform wil 1. Verify your installed Gradle version is `5.5.1` (or higher) -- If you use Windows OS, type ```gradlew.bat -version ```. -- For Unix/Linux/Mac, please type ```./gradlew -version```. +- On Windows OS, type ```gradlew.bat -version ```. +- On Unix/Linux/Mac, please type ```./gradlew -version```. > **Note** Gradle v6 is not yet supported. -1. For Windows type ```gradlew.bat distDocker```. For Linux/Unix/Mac, please type ```./gradlew distDocker```. These -commands will start the wskdeploy cross compile for your specific OS platform inside a Docker container. +1. Cross-compile binaries for all supported Operating Systems and Architectures: -1. After build success, you should find a correct binary under current /bin dir of you openwhisk-deploy clone dir. +- On Windows, type ```gradlew.bat goBuild``` +- On Linux/Unix/Mac, please type ```./gradlew goBuild```. -If you would like to build the binaries available for all the operating systems and architectures, run the following command: +1. Upon a successful build, all binaries can be found within the `./build` directory of your project: -```sh -$ ./gradlew distDocker -PcrossCompileWSKDEPLOY=true -``` +```sh +$ ls build +darwin-amd64 linux-amd64 linux-arm64 linux-s390x windows-amd64 +linux-386 linux-arm linux-ppc64le windows-386 +``` -Then, you will find the binaries and their compressed packages generated under the folder ```bin///``` for each supported Operating System and CPU Architecture pair. + Compiling for a single OS/ARCH + +1. View gradle build tasks for supported Operating Systems and Architectures: + +```sh +./gradlew tasks +``` -### Building for Internationalization +you will see build tasks for supported OS/ARCH combinations: + +```sh +Gogradle tasks +-- +buildDarwinAmd64 - Custom go task. +buildLinux386 - Custom go task. +buildLinuxAmd64 - Custom go task. +buildLinuxArm - Custom go task. +buildLinuxArm64 - Custom go task. +buildLinuxPpc64le - Custom go task. +buildLinuxS390x - Custom go task. +buildWindows386 - Custom go task. +buildWindowsAmd64 - Custom go task. +``` + +> Note: The `buildWindows386` option is only supported on Golang versions less than 1.15. + + Building for Internationalization Please follow this process for building any changes to translatable strings: - [How to generate the file i18n_resources.go for internationalization](https://github.com/apache/openwhisk-wskdeploy/blob/master/wski18n/README.md) +--- + ### Running as a Go program Since ```wskdeploy``` is a GoLang program, you may
[openwhisk-runtime-go] branch rabbah-patch-1 created (now 6d3ffb2)
This is an automated email from the ASF dual-hosted git repository. rabbah pushed a change to branch rabbah-patch-1 in repository https://gitbox.apache.org/repos/asf/openwhisk-runtime-go.git. at 6d3ffb2 Update ENVVARS.md No new revisions were added by this update.
[openwhisk-client-go] branch master updated: Migrate to Go Modules (#143)
This is an automated email from the ASF dual-hosted git repository. mrutkowski pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openwhisk-client-go.git The following commit(s) were added to refs/heads/master by this push: new 9c1b901 Migrate to Go Modules (#143) 9c1b901 is described below commit 9c1b9014e7850042a69fe6ddc3104b78a0d195bf Author: Matt Rutkowski AuthorDate: Tue Feb 23 15:49:57 2021 -0600 Migrate to Go Modules (#143) * Migrate to Go Modules * Migrate to Go Modules * Migrate to Go Modules * Migrate to Go Modules * Migrate to Go Modules * update README for go mod * Apply sugg. changes from Rodric * Apply sugg. changes from Rodric * Apply sugg. changes from Rodric --- .travis.yml | 5 +-- README.md| 84 ++- go.mod | 17 go.sum | 109 +++ vendor/vendor.json | 25 whisk/action.go | 3 +- whisk/client.go | 1 + whisk/client_test.go | 5 ++- 8 files changed, 184 insertions(+), 65 deletions(-) diff --git a/.travis.yml b/.travis.yml index e9642a5..6eb4e5c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,7 +21,7 @@ matrix: include: - os: linux sudo: required - go: "1.13.14" + go: "1.15" services: docker dist: xenial @@ -37,9 +37,8 @@ notifications: before_install: - cd $TRAVIS_BUILD_DIR - - GO_FILES=$(find . -iname '*.go' -type f | grep -v /vendor/) + - GO_FILES=$(find . -iname '*.go' -type f) - test -z "$(gofmt -s -l $(echo $GO_FILES))" - #- pip install --upgrade pip setuptools - pip install --user --upgrade pip setuptools - ./tools/travis/setup.sh diff --git a/README.md b/README.md index 451992a..af9d261 100644 --- a/README.md +++ b/README.md @@ -21,55 +21,81 @@ [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0) [![Build Status](https://travis-ci.com/apache/openwhisk-client-go.svg?branch=master)](https://travis-ci.com/apache/openwhisk-client-go) -This project `openwhisk-client-go` is a Go client library to access Openwhisk API. +This project `openwhisk-client-go` is a Go client library to access the Openwhisk API. +--- + +## Building the project ### Prerequisites -You need to install the following package in order to run this Go client library: -- [Go](https://golang.org/doc/install) -- [govendor](https://github.com/kardianos/govendor) +The Openwhisk Go Client library requires you to [Download and install GoLang](https://golang.org/dl/) onto your local machine. + +> **Note** Go version 1.15 or higher is recommended Make sure you select the package that fits your local environment, and [set the GOPATH environment variable](https://github.com/golang/go/wiki/SettingGOPATH). +### Download the source code from GitHub + +As the code is managed using GitHub, it is easiest to retrieve the code using the `git clone` command. + +If you just want to build the code and do not intend to be a Contributor, you can clone the latest code from the Apache repository: + +```sh +git clone g...@github.com:apache/openwhisk-client-go +``` + +You can also specify a release (tag), if you do not want the latest code, by using the `--branch ` flag. For example, you can clone the source code for the tagged 1.1.0 [release](https://github.com/apache/openwhisk-client-go/releases) + +```sh +git clone --branch 1.1.0 g...@github.com:apache/openwhisk-client-go +``` + +You can also pull the code from a fork of the repository. If you intend to become a Contributor to the project, read the section [Contributing to the project](#contributing-to-the-project) below on how to setup a fork. + +### Building using `go build` -### Installation +Change into the cloned project directory and use the following command to build all packages: -After you download the source code either from the Github or the release page of OpenWhisk, you should have a directory named -_openwhisk-client-go_ to host all the source code. Please copy this root directory _openwhisk-client-go_ -into the directory $GOPATH/src/github.com/apache. +```sh +$ go build -v ./... +``` + +or simply build just the whisk commands: + +```sh +$ go build -v ./whisk +``` +> **Note**: There is no `main` function in this project as the `./whish` packages are treated together as a client library. -### Test +### Testing using `go test` -Open a terminal, and run the following commands to run the unit tests: +Open a terminal, change into the project directory and use the following command to run the unit tests: ``` -$ cd $GOPATH/src/github.com/apache/openwhisk-client-go -$ govendor sync $ go test -v ./... -tags=unit ``` -You should see all the unit tests passed. If not, please [log an
[openwhisk-runtime-docker] branch master updated: Module changes now require c++ for build. - Changes in the modules now require the c++ package for a successful build. The gcc package is not enough a
This is an automated email from the ASF dual-hosted git repository. mhenke pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openwhisk-runtime-docker.git The following commit(s) were added to refs/heads/master by this push: new ef1aadd Module changes now require c++ for build. - Changes in the modules now require the c++ package for a successful build. The gcc package is not enough anymore. new a42d5dc Merge pull request #85 from falkzoll/updateRuntime ef1aadd is described below commit ef1aaddd50dde54012972fa12937aeea9af46181 Author: Falk Zoll AuthorDate: Tue Feb 23 10:39:40 2021 +0100 Module changes now require c++ for build. - Changes in the modules now require the c++ package for a successful build. The gcc package is not enough anymore. --- core/actionProxy/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/actionProxy/Dockerfile b/core/actionProxy/Dockerfile index 173b050..125edcb 100644 --- a/core/actionProxy/Dockerfile +++ b/core/actionProxy/Dockerfile @@ -22,7 +22,7 @@ FROM python:3.6-alpine RUN apk upgrade --update \ && apk add --no-cache bash perl jq zip git curl wget openssl ca-certificates sed openssh-client \ && update-ca-certificates \ - && apk add --no-cache --virtual .build-deps bzip2-dev gcc libc-dev \ + && apk add --no-cache --virtual .build-deps bzip2-dev g++ libc-dev \ && pip install --upgrade pip setuptools six \ && pip install --no-cache-dir gevent==1.3.6 flask==1.0.2 \ && apk del .build-deps
[CONF] OpenWhisk > InvokerHealthyManager
Title: Message Title There's 1 new edit on this page InvokerHealthyManager Ning You Gang edited this page Here's what changed: ... When invoker starts, it creates a InvokerHealthManger actor with init state: Offline During FPCInvokerReactive initializing, it sends Enable message to InvokerHealthManger actor and InvokerHealthManger will goto(Unhealthy) During Unhealthy, InvokerHealthManger invokes test action: create healthyContainerProxy and send Initialize message to healthyContainerProxy. After healthyContainerProxy initialized, it will executes the healthy activation and sends HealthMessage result to invokerHealthyManager, after finished, it will pull healthy activation and execute it and sends healthyMessage again. in invokerHealthyManager side, if failed result invocation number < bufferErrorTolerance, goto(Healthy), at the same time, it will stop to invoke the test action. if FailtureMessage comes from FunctionPullingContainerProxy, invokerHealthyManager will goto(Offline), and starts to invoke test action again immediately FunctionPullingContainerPool sends MemoryInfo message to invokerHealthyManager periodically InvokerHealthyManager sends the memoryInfo and its fsm state together to etcd If invokerHealthyMananager receives GracefulShutdown, it will goto(Offline). 3.Design consideration invoker healthy data in etcd, including memory info and invokerHealthyManager's state, e.g whisk/invokers/0/0{"busyMemory":0,"dedicatedNamespaces":[],"freeMemory":10240,"inProgressMemory":0,"status":"up","tags":[]}whisk/invokers/1/1{"busyMemory":0,"dedicatedNamespaces":[],"freeMemory":10240,"inProgressMemory":0,"status":"up","tags":[]}whisk/invokers/2/2{"busyMemory":0,"dedicatedNamespaces":[],"freeMemory":10240,"inProgressMemory":0,"status":"up","tags":[]}whisk/invokers/3/3{"busyMemory":0,"dedicatedNamespaces":[],"freeMemory":10240,"inProgressMemory":0,"status":"up","tags":[]}whisk/invokers/4/4{"busyMemory":0,"dedicatedNamespaces":[],"freeMemory":10240,"inProgressMemory":0,"status":"up","tags":[]}whisk/invokers/5/5{"busyMemory":0,"dedicatedNamespaces":[],"freeMemory":10240,"inProgressMemory":0,"status":"up","tags":[]} ... Go to page history View page Stop watching space • Manage notifications This message was sent by Atlassian Confluence 7.5.0
[CONF] OpenWhisk > InvokerHealthyManager
Title: Message Title There's 1 new edit on this page InvokerHealthyManager Ning You Gang edited this page Here's what changed: 1.Introduction Manage New scheduler's invoker healthy management, invokerHealthyManager actor will send the memory info(e.g. freeMemory, inprogressMemory, busyMemory) and invoker healthy fsm state(e.g. down, up, unhealthy) together to etcd. Other components can use the healthy data ... which stored into etcd as well, e.g. when send creationContainerMessage to invoker instance, relative component can get the healthy invokers from etcd. 2.Architecture Diagram Image Modified When invoker starts, it creates a InvokerHealthManger actor with init state: Offline During FPCInvokerReactive initializing, it sends Enable message to InvokerHealthManger actor and InvokerHealthManger will goto(Unhealthy) During Unhealthy, InvokerHealthManger invokes test action: create healthyContainerProxy and send Initialize message to healthyContainerProxy healthyContainerProxy sends HealthMessage to invokerHealthyManager, if failed result invocation number < bufferErrorTolerance, goto(Healthy), at the same time, stop to invoke the test action. if FailtureMessage comes from FunctionPullingContainerProxy, invokerHealthyManager will goto(Offline), and starts to invoke test action again immediately FunctionPullingContainerPool sends MemoryInfo message to invokerHealthyManager periodically InvokerHealthyManager sends the memoryInfo and its fsm state to etcd If invokerHealthyMananager receives GracefulShutdown, it will goto(Offline) ... Go to page history View page Stop watching space • Manage notifications This message was sent by Atlassian Confluence 7.5.0
[CONF] OpenWhisk > InvokerHealthyManager
Title: Message Title Ning You Gang created a page InvokerHealthyManager 1.Introduction Manage New scheduler's invoker healthy management, invokerHealthyManager actor will send the memory info(e.g. freeMemory, inprogressMemory, busyMemory) and invoker healthy fsm state(e.g. down, up, unhealthy) together to etcd. Other components can use the healthy data in etcd as well, e.g. when send creationContainerMessage to invoker instance, can get the healthy invokers from etcd. 2.Architecture Diagram When invoker starts, it creates a InvokerHealthManger actor with init state: Offline During FPCInvokerReactive initializing, it sends Enable message to InvokerHealthManger actor and InvokerHealthManger will goto(Unhealthy) During Unhealthy, InvokerHealthManger invokes test action: create healthyContainerProxy and send Initialize message to healthyContainerProxy healthyContainerProxy sends HealthMessage to invokerHealthyManager, if failed result invocation number < bufferErrorTolerance, goto(Healthy), at the same time, stop to invoke the test action. if FailtureMessage comes from FunctionPullingContainerProxy, invokerHealthyManager will goto(Offline), and starts to invoke test action again immediately FunctionPullingContainerPool sends MemoryInfo message to invokerHealthyManager periodically InvokerHealthyManager sends the memoryInfo and its fsm state to etcd If invokerHealthyMananager receives GracefulShutdown, it will goto(Offline) 3.Design consideration invoker healthy data in etcd, including memory info and invokerHealthyManager's state, e.g whisk/invokers/0/0{"busyMemory":0,"dedicatedNamespaces":[],"freeMemory":10240,"inProgressMemory":0,"status":"up","tags":[]}whisk/invokers/1/1{"busyMemory":0,"dedicatedNamespaces":[],"freeMemory":10240,"inProgressMemory":0,"status":"up","tags":[]}whisk/invokers/2/2{"busyMemory":0,"dedicatedNamespaces":[],"freeMemory":10240,"inProgressMemory":0,"status":"up","tags":[]}whisk/invokers/3/3{"busyMemory":0,"dedicatedNamespaces":[],"freeMemory":10240,"inProgressMemory":0,"status":"up","tags":[]}whisk/invokers/4/4{"busyMemory":0,"dedicatedNamespaces":[],"freeMemory":10240,"inProgressMemory":0,"status":"up","tags":[]}whisk/invokers/5/5{"busyMemory":0,"dedicatedNamespaces":[],"freeMemory":10240,"inProgressMemory":0,"status":"up","tags":[]} tags: This is used for some special actions. e.g. need high memory, need power gpu. we can make the action's activations run on corresponding invokers dedicatedNamespaces: dedicatedNamespaces's all actions run on corresponding invoker 2. when invokerHealthyManager's fsm state changes or received the memoryInfo from FunctionPullingContainerProxy, these healthy data will be stored into etcd immediately View page • Like Stop watching space • Manage notifications This message was sent by Atlassian Confluence 7.5.0