Giter Site home page Giter Site logo

solsa's Introduction

SolSA

The SolSA library for Node.js makes it possible to specify the architecture of Kubernetes applications as programs.

SolSA enables developers to configure Kubernetes-managed resources by writing JavaScript or TypeScript code instead of YAML. SolSA automatically translates the developer written code to the required lower-level YAML. SolSA integrates with IDEs such as Visual Studio Code to provide online validation, code completion, and documentation of the various resources and configuration parameters. SolSA enables the definition of architectural patterns (bundles of resources) that can be used across many applications.

Thanks to Kubernetes operators, Kubernetes applications can include not only containerized services but also managed cloud services (using for instance the IBM Cloud Operator), cloud functions (using the IBM Cloud Functions Operator), Knative services and events, etc.

While SolSA is meant to facilitate application development and deployment on the IBM Cloud and supports a few IBM-specific services out of the box, the SolSA programming model and library implementation is intended to work with any Kubernetes cluster and any cloud. No IBM Cloud account required.

SolSA is an open-source project with an Apache 2.0 license. We welcome contributions!

Motivation and Capabilities

Kubernetes is becoming the de facto standard for managing applications in the cloud. While YAML is a fine language to perform some basic configuration, we believe application developers need to reason about applications at a higher-level of abstraction using the languages and tools they are familiar with.

Developers can use SolSA to configure Kubernetes resources using JavaScript or TypeScript instead of YAML. But SolSA is not just a syntax. SolSA supports bundling together resources into reusable abstractions that expose curated configuration parameters. For instance, SolSA offers a ContainerizedService bundle that combines a Deployment and a Service, automatically bridging the two by means of auto-generated labels and selectors.

SolSA bundles can be smart and vary their content based on context. In particular, SolSA leverages Kustomize to permit targeting multiple environments, e.g., a local development cluster, a Red Hat OpenShift on IBM Cloud cluster, or an IBM Cloud Kubernetes Service cluster. SolSA automatically tailors resource bundles such as Ingress to the specifics of each targeted environment.

SolSA can synthesize all the YAML needed to deploy an application. But it does not have to do so. SolSA supports easy configuration to select which resources should be unique to an application instance and which resources should be shared across multiple instances.

SolSA facilitates the configuration of related resouces for instance a Kafka instance, a Kafka topic, and a Knative Kafka event source, by automatically reusing relevant configuration information. SolSA can not only inject configuration information from one resource into another during YAML generation but also, if necessary, during deployment using the Composable Operator. Using this operator, SolSA can for example configure a Kafka source to dynamically obtain a list of broker urls from a Kafka instance deployed at the same time.

SolSA generates pure Kubernetes YAML that can be deployed at once, i.e., with a single kubectl apply command. SolSA does not need a server-side component.

SolSA includes an optional capability to containerize Node.js code. This facilitates the integration of components that require a little bit of glue code to interface properly, e.g., to align schemas or match protocols. This glue code can leverage Node.js frameworks such as Express or KafkaJS. SolSA builds and pushes the container image in addition to synthesizing the YAML to instantiate the image with the proper configuration.

Components

SolSA consists of:

  • A solsa Node.js module that makes it possible to configure using JavaScript or TypeScript:
    • all the standard Kubernetes resources,
    • custom resources supported by a growing set of operators,
    • resource bundles that provide high-level abstractions of key architectural patterns.
  • A solsa command-line interface (CLI):
    • solsa build builds container images for SolSA-defined services (if any).
    • solsa push pushes container images for SolSA-defined services (if any).
    • solsa yaml synthesizes YAML for deploying SolSA solutions on Kubernetes.

SolSA supports Node.js 8 and above, Kubernetes 1.14 and above.

SolSA Setup

Option 1: Global Install

The easiest way to use SolSA is to install it globally. Run the following command:

npm install -g solsa

This will add the SolSA CLI to your PATH. This will also download kustomize on supported platforms (darwin x86_64 and linux x86_64). On other platforms, please install kustomize per Kustomize's install instructions and adjust your PATH to include it.

Try the CLI:

solsa
Usage:
  solsa <command> [flags]

Available commands:
  build <solution.js>        build container images
  push <solution.js>         push container images to registries for current kubernetes context
  yaml <solution.js>         synthesize yaml for current kubernetes context

Global flags:
      --cluster <cluster>    use <cluster> instead of current kubernetes cluster
      --config <config>      use <config> file instead of default
  -c, --context <context>    use <context> instead of current kubernetes context
  -d, --debug                output a stack trace on error

Flags for "yaml" command:
  -o, --output <file>        output base yaml and context overlays to <file>.tgz

While a global install is enough to use the SolSA CLI, we recommend you also link SolSA from your home directory:

cd
npm link solsa

This will ensure that IDEs such as Visual Studio Code can locate the SolSA module and provide an optimal developer experience with code completion and hover help.

Option 2: Local Install

Install SolSA locally for use in a single project.

npm install solsa

This will install SolSA as a dependency to your current project (package.json). This will also download kustomize on supported platforms (darwin x86_64 and linux x86_64). On other platforms, please install kustomize per Kustomize's install instructions and adjust your PATH to include it.

Typically, a local install does not add the SolSA CLI to the PATH. To run the CLI use:

$(npm bin)/solsa
Usage:
  solsa <command> <solution> [flags]

Available commands:
  build <solution>           build container images
  push <solution>            push container images to registries for current kubernetes context
  yaml <solution>            synthesize yaml for current kubernetes context

Global flags:
      --cluster <cluster>    use <cluster> instead of current kubernetes cluster
      --config <config>      use <config> file instead of default
  -c, --context <context>    use <context> instead of current kubernetes context
  -d, --debug                output a stack trace on error

Flags for "yaml" command:
  -o, --output <file>        output base yaml and context overlays to <file>.tgz
  -a, --appname <name>       add the label solsa.ibm.com/app=<name> to all generated resources

Option 3: Developer Install

To contribute to the development of SolSA, you will need to clone this repository, install, build, and link SolSA:

git clone https://github.com/IBM/solsa.git
cd solsa
npm install
npm run build
npm link

To use your local SolSA checkout in other projects run in each project:

npm link solsa

Kubernetes Cluster Setup

Minimal install

We assume that you have already configured kubectl or oc to be able to access each Kubernetes cluster you will be using with SolSA.

We assume that you have already installed kustomize. If not, please install it per Kustomize's install instructions and adjust your PATH to include it.

Proper configuration of kubectl/oc and kustomize is sufficient to enable you to use SolSA to generate YAML for all core Kubernetes resource types.

Optional install: Operators

If you intend to use SolSA to define solutions that include advanced features such as configuring cloud services or Knative resources, you will need to install the necessary Operators. On each cluster, do the following:

  1. Install the Composable Operator from https://github.com/IBM/composable.

  2. Install the IBM Cloud Operator from https://github.com/IBM/cloud-operators.

  3. Install the IBM Event Streams Topic Operator from https://github.com/IBM/event-streams-topic.

  4. Install the IBM Cloud Functions Operator from https://github.com/IBM/cloud-functions-operator.

Optional install: Knative

If you intend to use SolSA to define solutions that include Knative resources, you will need a cluster with Knative installed. For example, if you are using a cluster provisioned via the IBM Cloud Kubernetes Service, follow the instructions at https://knative.dev/docs/install/knative-with-iks.

SolSA Local Configuration File

You can optionally create a .solsa.yaml file in your home directory that describes each Kubernetes context for which you want SolSA to generate a specialized Kustomize overlay. Just like kubectl, solsa supports both cluster-level and context-level specification.

The configuration information in sosla.yaml enables cluster-specific and/or context-specific generation of Ingress resources and container image rewrites such as switching default registries or image tags.

Please refer to the full documentation of .solsa.yaml for full details, including ingress specifications for a variety of kinds of Kubernetes clusters. Shown below is a basic .solsa.yaml file that enables sosla to target the Kubernetes v1.14 cluster included in Docker Desktop v2.1.

clusters:
- name: 'docker-desktop'
  ingress:
    nodePort: true

We will assume this configuration file in the following example.

A First Example

A sample SolSA solution is provided in helloWorld.js.

const solsa = require('solsa')

module.exports = new solsa.ContainerizedService({ name: 'hello-world', image: 'docker.io/ibmcom/kn-helloworld', port: 8080, ingress:true })

It consists of a single containerized service which when deployed will be exposed via an ingress.

This solution can be deployed to the current Kubernetes context using the solsa CLI and either kubectl or oc as follows.

solsa yaml helloWorld.js | kubectl apply -f -

The YAML synthesized by SolSA for this example depends on the SolSA configuration file used. If no configuration file is used, the ingress request is ignored and the CLI outputs a warning message.

Assuming the configuration file provided in the previous section, the YAML synthesized when targeting cluster docker-desktop is helloWorld.yaml. In this configuration, SolSA synthesizes Service objects with type NodePort for all the exposed service. Moreover, port numbers are assigned dynamically. We can obtain the port number for the deployed hello-world service using command:

kubectl get service hello-world -o jsonpath={.spec.ports[0].nodePort}
31509

Assuming 1.2.3.4 is the public IP of one of the worker node of the targeted Kubernetes cluster, we can then query the deployed containerized service using curl:

curl 1.2.3.4:31509
Hello World!

To undeploy the solution, use the command:

solsa yaml helloWorld.js | kubectl delete -f -

More Examples

The solsa-examples repository contains other examples of cloud-native applications, services, and architectural patterns defined using SolSA.

Building SolSA-defined Services

In order to build and deploy solutions that include SolSA-defined services, run:

solsa build mySolution.js
solsa push mySolution.js
solsa yaml mySolution.js | kubectl apply -f -

The build command builds images for the SolSA-defined services. The push command tags and pushes these images according to the SolSA configuration for the current Kubernetes context.

solsa's People

Contributors

dependabot[bot] avatar dgrove-oss avatar dmatch01 avatar kalantar avatar lionelvillard avatar tardieu avatar vazirim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

solsa's Issues

Support optional secrets

Need to support secrets being optional

          - name: KAFKA_API_KEY
            valueFrom:
              secretKeyRef:
                name: kafka
                key: api-key
                optional: true

Installation fails when not in $HOME directory

Per the install instructions ran npm install -g solsa from a directoy that was not $HOME and got the following error:
npm ERR! code ENOENT
npm ERR! syscall chmod
npm ERR! path /usr/local/lib/node_modules/solsa/dist/bin/solsa.js
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, chmod '/usr/local/lib/node_modules/solsa/dist/bin/solsa.js'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

Resolved the problem by re-running the command from $HOME: cd $HOME; npm install -g solsa

More info:

MacUsersMBP:IBM macuser1$ node -v
v12.12.0
MacUsersMBP:IBM macuser1$ npm -v
6.11.3
MacUsersMBP:IBM macuser1$ npm install -g solsa
npm WARN rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/balanced-match is not a child of /usr/local/lib
npm WARN rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/concat-map is not a child of /usr/local/lib
npm WARN rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/brace-expansion is not a child of /usr/local/lib
npm WARN rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/esprima is not a child of /usr/local/lib
npm WARN rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/fs.realpath is not a child of /usr/local/lib
npm WARN rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/inherits is not a child of /usr/local/lib
npm WARN rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/minimatch is not a child of /usr/local/lib
npm WARN rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/path-is-absolute is not a child of /usr/local/lib
npm WARN rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/sprintf-js is not a child of /usr/local/lib
npm WARN rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/argparse is not a child of /usr/local/lib
npm WARN rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/wrappy is not a child of /usr/local/lib
npm WARN rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/once is not a child of /usr/local/lib
npm WARN rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/inflight is not a child of /usr/local/lib
npm WARN rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/glob is not a child of /usr/local/lib
npm WARN rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/rimraf is not a child of /usr/local/lib
npm WARN rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/js-yaml is not a child of /usr/local/lib
npm WARN rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/minimist is not a child of /usr/local/lib
npm WARN rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/tmp is not a child of /usr/local/lib
npm ERR! code ENOENT
npm ERR! syscall chmod
npm ERR! path /usr/local/lib/node_modules/solsa/dist/bin/solsa.js
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, chmod '/usr/local/lib/node_modules/solsa/dist/bin/solsa.js'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent 

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/macuser1/.npm/_logs/2019-10-22T13_22_42_475Z-debug.log
MacUsersMBP:IBM macuser1$ solsa
-bash: solsa: command not found
MacUsersMBP:IBM macuser1$ cat /Users/macuser1/.npm/_logs/2019-10-22T13_22_42_475Z-debug.log
0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   '/usr/local/Cellar/node/12.12.0/bin/node',
1 verbose cli   '/usr/local/bin/npm',
1 verbose cli   'install',
1 verbose cli   '-g',
1 verbose cli   'solsa'
1 verbose cli ]
2 info using [email protected]
3 info using [email protected]
4 verbose npm-session 89af483ae79a989f
5 silly install loadCurrentTree
6 silly install readGlobalPackageData
7 silly pacote directory manifest for undefined@file:solsa fetched in 9ms
8 timing stage:loadCurrentTree Completed in 21ms
9 silly install loadIdealTree
10 silly install cloneCurrentTreeToIdealTree
11 timing stage:loadIdealTree:cloneCurrentTree Completed in 0ms
12 silly install loadShrinkwrap
13 timing stage:loadIdealTree:loadShrinkwrap Completed in 1ms
14 silly install loadAllDepsIntoIdealTree
15 silly resolveWithNewModule [email protected] checking installable status
16 http fetch GET 200 https://registry.npmjs.org/minimist 230ms
17 http fetch GET 200 https://registry.npmjs.org/js-yaml 233ms
18 silly pacote range manifest for js-yaml@^3.12.1 fetched in 250ms
19 silly resolveWithNewModule [email protected] checking installable status
20 http fetch GET 200 https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz 64ms
21 silly pacote range manifest for minimist@^1.2.0 fetched in 302ms
22 silly resolveWithNewModule [email protected] checking installable status
23 http fetch GET 200 https://registry.npmjs.org/tmp 1995ms
24 silly pacote range manifest for tmp@^0.1.0 fetched in 1999ms
25 silly resolveWithNewModule [email protected] checking installable status
26 http fetch GET 200 https://registry.npmjs.org/esprima 82ms
27 silly pacote range manifest for esprima@^4.0.0 fetched in 86ms
28 silly resolveWithNewModule [email protected] checking installable status
29 http fetch GET 200 https://registry.npmjs.org/argparse 1146ms
30 silly pacote range manifest for argparse@^1.0.7 fetched in 1151ms
31 silly resolveWithNewModule [email protected] checking installable status
32 http fetch GET 200 https://registry.npmjs.org/sprintf-js 47ms
33 http fetch GET 200 https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz 51ms
34 silly pacote range manifest for sprintf-js@~1.0.2 fetched in 102ms
35 silly resolveWithNewModule [email protected] checking installable status
36 http fetch GET 200 https://registry.npmjs.org/rimraf 122ms
37 silly pacote range manifest for rimraf@^2.6.3 fetched in 126ms
38 silly resolveWithNewModule [email protected] checking installable status
39 http fetch GET 200 https://registry.npmjs.org/glob 57ms
40 silly pacote range manifest for glob@^7.1.3 fetched in 61ms
41 silly resolveWithNewModule [email protected] checking installable status
42 http fetch GET 200 https://registry.npmjs.org/inherits 56ms
43 http fetch GET 200 https://registry.npmjs.org/fs.realpath 57ms
44 http fetch GET 200 https://registry.npmjs.org/inflight 58ms
45 silly pacote range manifest for inherits@2 fetched in 63ms
46 silly resolveWithNewModule [email protected] checking installable status
47 silly pacote range manifest for fs.realpath@^1.0.0 fetched in 64ms
48 silly resolveWithNewModule [email protected] checking installable status
49 http fetch GET 200 https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz 43ms
50 silly pacote range manifest for inflight@^1.0.4 fetched in 107ms
51 silly resolveWithNewModule [email protected] checking installable status
52 http fetch GET 200 https://registry.npmjs.org/minimatch 118ms
53 http fetch GET 200 https://registry.npmjs.org/once 125ms
54 http fetch GET 200 https://registry.npmjs.org/path-is-absolute 126ms
55 silly pacote range manifest for once@^1.3.0 fetched in 130ms
56 silly resolveWithNewModule [email protected] checking installable status
57 http fetch GET 200 https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz 47ms
58 silly pacote range manifest for path-is-absolute@^1.0.0 fetched in 177ms
59 silly resolveWithNewModule [email protected] checking installable status
60 http fetch GET 200 https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz 66ms
61 silly pacote range manifest for minimatch@^3.0.4 fetched in 189ms
62 silly resolveWithNewModule [email protected] checking installable status
63 http fetch GET 200 https://registry.npmjs.org/wrappy 41ms
64 http fetch GET 200 https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz 42ms
65 silly pacote range manifest for wrappy@1 fetched in 87ms
66 silly resolveWithNewModule [email protected] checking installable status
67 http fetch GET 200 https://registry.npmjs.org/brace-expansion 50ms
68 silly pacote range manifest for brace-expansion@^1.1.7 fetched in 55ms
69 silly resolveWithNewModule [email protected] checking installable status
70 http fetch GET 200 https://registry.npmjs.org/concat-map 49ms
71 http fetch GET 200 https://registry.npmjs.org/balanced-match 51ms
72 silly pacote version manifest for [email protected] fetched in 55ms
73 silly resolveWithNewModule [email protected] checking installable status
74 silly pacote range manifest for balanced-match@^1.0.0 fetched in 56ms
75 silly resolveWithNewModule [email protected] checking installable status
76 timing stage:loadIdealTree:loadAllDepsIntoIdealTree Completed in 3872ms
77 timing stage:loadIdealTree Completed in 3879ms
78 silly currentTree lib
79 silly idealTree lib
79 silly idealTree └─┬ [email protected]
79 silly idealTree   ├── [email protected]
79 silly idealTree   ├── [email protected]
79 silly idealTree   ├── [email protected]
79 silly idealTree   ├── [email protected]
79 silly idealTree   ├── [email protected]
79 silly idealTree   ├── [email protected]
79 silly idealTree   ├── [email protected]
79 silly idealTree   ├── [email protected]
79 silly idealTree   ├── [email protected]
79 silly idealTree   ├── [email protected]
79 silly idealTree   ├── [email protected]
79 silly idealTree   ├── [email protected]
79 silly idealTree   ├── [email protected]
79 silly idealTree   ├── [email protected]
79 silly idealTree   ├── [email protected]
79 silly idealTree   ├── [email protected]
79 silly idealTree   ├── [email protected]
79 silly idealTree   └── [email protected]
80 silly install generateActionsToTake
81 timing stage:generateActionsToTake Completed in 5ms
82 silly diffTrees action count 19
83 silly diffTrees add [email protected]
84 silly diffTrees add [email protected]
85 silly diffTrees add [email protected]
86 silly diffTrees add [email protected]
87 silly diffTrees add [email protected]
88 silly diffTrees add [email protected]
89 silly diffTrees add [email protected]
90 silly diffTrees add [email protected]
91 silly diffTrees add [email protected]
92 silly diffTrees add [email protected]
93 silly diffTrees add [email protected]
94 silly diffTrees add [email protected]
95 silly diffTrees add [email protected]
96 silly diffTrees add [email protected]
97 silly diffTrees add [email protected]
98 silly diffTrees add [email protected]
99 silly diffTrees add [email protected]
100 silly diffTrees add [email protected]
101 silly diffTrees add [email protected]
102 silly decomposeActions action count 150
103 silly decomposeActions fetch [email protected]
104 silly decomposeActions extract [email protected]
105 silly decomposeActions preinstall [email protected]
106 silly decomposeActions build [email protected]
107 silly decomposeActions install [email protected]
108 silly decomposeActions postinstall [email protected]
109 silly decomposeActions finalize [email protected]
110 silly decomposeActions refresh-package-json [email protected]
111 silly decomposeActions fetch [email protected]
112 silly decomposeActions extract [email protected]
113 silly decomposeActions preinstall [email protected]
114 silly decomposeActions build [email protected]
115 silly decomposeActions install [email protected]
116 silly decomposeActions postinstall [email protected]
117 silly decomposeActions finalize [email protected]
118 silly decomposeActions refresh-package-json [email protected]
119 silly decomposeActions fetch [email protected]
120 silly decomposeActions extract [email protected]
121 silly decomposeActions preinstall [email protected]
122 silly decomposeActions build [email protected]
123 silly decomposeActions install [email protected]
124 silly decomposeActions postinstall [email protected]
125 silly decomposeActions finalize [email protected]
126 silly decomposeActions refresh-package-json [email protected]
127 silly decomposeActions fetch [email protected]
128 silly decomposeActions extract [email protected]
129 silly decomposeActions preinstall [email protected]
130 silly decomposeActions build [email protected]
131 silly decomposeActions install [email protected]
132 silly decomposeActions postinstall [email protected]
133 silly decomposeActions finalize [email protected]
134 silly decomposeActions refresh-package-json [email protected]
135 silly decomposeActions fetch [email protected]
136 silly decomposeActions extract [email protected]
137 silly decomposeActions preinstall [email protected]
138 silly decomposeActions build [email protected]
139 silly decomposeActions install [email protected]
140 silly decomposeActions postinstall [email protected]
141 silly decomposeActions finalize [email protected]
142 silly decomposeActions refresh-package-json [email protected]
143 silly decomposeActions fetch [email protected]
144 silly decomposeActions extract [email protected]
145 silly decomposeActions preinstall [email protected]
146 silly decomposeActions build [email protected]
147 silly decomposeActions install [email protected]
148 silly decomposeActions postinstall [email protected]
149 silly decomposeActions finalize [email protected]
150 silly decomposeActions refresh-package-json [email protected]
151 silly decomposeActions fetch [email protected]
152 silly decomposeActions extract [email protected]
153 silly decomposeActions preinstall [email protected]
154 silly decomposeActions build [email protected]
155 silly decomposeActions install [email protected]
156 silly decomposeActions postinstall [email protected]
157 silly decomposeActions finalize [email protected]
158 silly decomposeActions refresh-package-json [email protected]
159 silly decomposeActions fetch [email protected]
160 silly decomposeActions extract [email protected]
161 silly decomposeActions preinstall [email protected]
162 silly decomposeActions build [email protected]
163 silly decomposeActions install [email protected]
164 silly decomposeActions postinstall [email protected]
165 silly decomposeActions finalize [email protected]
166 silly decomposeActions refresh-package-json [email protected]
167 silly decomposeActions fetch [email protected]
168 silly decomposeActions extract [email protected]
169 silly decomposeActions preinstall [email protected]
170 silly decomposeActions build [email protected]
171 silly decomposeActions install [email protected]
172 silly decomposeActions postinstall [email protected]
173 silly decomposeActions finalize [email protected]
174 silly decomposeActions refresh-package-json [email protected]
175 silly decomposeActions fetch [email protected]
176 silly decomposeActions extract [email protected]
177 silly decomposeActions preinstall [email protected]
178 silly decomposeActions build [email protected]
179 silly decomposeActions install [email protected]
180 silly decomposeActions postinstall [email protected]
181 silly decomposeActions finalize [email protected]
182 silly decomposeActions refresh-package-json [email protected]
183 silly decomposeActions fetch [email protected]
184 silly decomposeActions extract [email protected]
185 silly decomposeActions preinstall [email protected]
186 silly decomposeActions build [email protected]
187 silly decomposeActions install [email protected]
188 silly decomposeActions postinstall [email protected]
189 silly decomposeActions finalize [email protected]
190 silly decomposeActions refresh-package-json [email protected]
191 silly decomposeActions fetch [email protected]
192 silly decomposeActions extract [email protected]
193 silly decomposeActions preinstall [email protected]
194 silly decomposeActions build [email protected]
195 silly decomposeActions install [email protected]
196 silly decomposeActions postinstall [email protected]
197 silly decomposeActions finalize [email protected]
198 silly decomposeActions refresh-package-json [email protected]
199 silly decomposeActions fetch [email protected]
200 silly decomposeActions extract [email protected]
201 silly decomposeActions preinstall [email protected]
202 silly decomposeActions build [email protected]
203 silly decomposeActions install [email protected]
204 silly decomposeActions postinstall [email protected]
205 silly decomposeActions finalize [email protected]
206 silly decomposeActions refresh-package-json [email protected]
207 silly decomposeActions fetch [email protected]
208 silly decomposeActions extract [email protected]
209 silly decomposeActions preinstall [email protected]
210 silly decomposeActions build [email protected]
211 silly decomposeActions install [email protected]
212 silly decomposeActions postinstall [email protected]
213 silly decomposeActions finalize [email protected]
214 silly decomposeActions refresh-package-json [email protected]
215 silly decomposeActions fetch [email protected]
216 silly decomposeActions extract [email protected]
217 silly decomposeActions preinstall [email protected]
218 silly decomposeActions build [email protected]
219 silly decomposeActions install [email protected]
220 silly decomposeActions postinstall [email protected]
221 silly decomposeActions finalize [email protected]
222 silly decomposeActions refresh-package-json [email protected]
223 silly decomposeActions fetch [email protected]
224 silly decomposeActions extract [email protected]
225 silly decomposeActions preinstall [email protected]
226 silly decomposeActions build [email protected]
227 silly decomposeActions install [email protected]
228 silly decomposeActions postinstall [email protected]
229 silly decomposeActions finalize [email protected]
230 silly decomposeActions refresh-package-json [email protected]
231 silly decomposeActions fetch [email protected]
232 silly decomposeActions extract [email protected]
233 silly decomposeActions preinstall [email protected]
234 silly decomposeActions build [email protected]
235 silly decomposeActions install [email protected]
236 silly decomposeActions postinstall [email protected]
237 silly decomposeActions finalize [email protected]
238 silly decomposeActions refresh-package-json [email protected]
239 silly decomposeActions fetch [email protected]
240 silly decomposeActions extract [email protected]
241 silly decomposeActions preinstall [email protected]
242 silly decomposeActions build [email protected]
243 silly decomposeActions install [email protected]
244 silly decomposeActions postinstall [email protected]
245 silly decomposeActions finalize [email protected]
246 silly decomposeActions refresh-package-json [email protected]
247 silly decomposeActions preinstall [email protected]
248 silly decomposeActions build [email protected]
249 silly decomposeActions install [email protected]
250 silly decomposeActions postinstall [email protected]
251 silly decomposeActions finalize [email protected]
252 silly decomposeActions refresh-package-json [email protected]
253 silly install executeActions
254 silly doSerial global-install 150
255 verbose correctMkdir /Users/macuser1/.npm/_locks correctMkdir not in flight; initializing
256 verbose lock using /Users/macuser1/.npm/_locks/staging-3a08f0df5026584d.lock for /usr/local/lib/node_modules/.staging
257 silly doParallel extract 18
258 silly extract [email protected]
259 silly extract [email protected]
260 silly extract [email protected]
261 silly extract [email protected]
262 silly extract [email protected]
263 silly extract [email protected]
264 silly extract [email protected]
265 silly extract [email protected]
266 silly extract [email protected]
267 silly extract [email protected]
268 silly extract [email protected]
269 silly extract [email protected]
270 silly extract [email protected]
271 silly extract [email protected]
272 silly extract [email protected]
273 silly extract [email protected]
274 silly extract [email protected]
275 silly extract [email protected]
276 silly tarball trying balanced-match@^1.0.0 by hash: sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
277 silly tarball trying [email protected] by hash: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
278 silly tarball trying brace-expansion@^1.1.7 by hash: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
279 silly tarball trying esprima@^4.0.0 by hash: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
280 silly tarball trying fs.realpath@^1.0.0 by hash: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
281 silly tarball trying inherits@2 by hash: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
282 silly tarball trying minimatch@^3.0.4 by hash: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
283 silly tarball trying path-is-absolute@^1.0.0 by hash: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
284 silly tarball trying sprintf-js@~1.0.2 by hash: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
285 silly tarball trying argparse@^1.0.7 by hash: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
286 silly tarball trying wrappy@1 by hash: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
287 silly tarball trying once@^1.3.0 by hash: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
288 silly tarball trying inflight@^1.0.4 by hash: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
289 silly tarball trying glob@^7.1.3 by hash: sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==
290 silly tarball trying rimraf@^2.6.3 by hash: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
291 silly tarball trying js-yaml@^3.12.1 by hash: sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
292 silly tarball trying minimist@^1.2.0 by hash: sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
293 silly tarball trying tmp@^0.1.0 by hash: sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==
294 silly tarball no local data for balanced-match@^1.0.0. Extracting by manifest.
295 silly tarball no local data for [email protected]. Extracting by manifest.
296 silly tarball no local data for brace-expansion@^1.1.7. Extracting by manifest.
297 silly tarball no local data for esprima@^4.0.0. Extracting by manifest.
298 silly tarball no local data for fs.realpath@^1.0.0. Extracting by manifest.
299 silly tarball no local data for inherits@2. Extracting by manifest.
300 silly tarball no local data for argparse@^1.0.7. Extracting by manifest.
301 silly tarball no local data for once@^1.3.0. Extracting by manifest.
302 silly tarball no local data for glob@^7.1.3. Extracting by manifest.
303 silly tarball no local data for rimraf@^2.6.3. Extracting by manifest.
304 silly tarball no local data for js-yaml@^3.12.1. Extracting by manifest.
305 silly tarball no local data for tmp@^0.1.0. Extracting by manifest.
306 silly extract path-is-absolute@^1.0.0 extracted to /usr/local/lib/node_modules/.staging/path-is-absolute-0513ff01 (60ms)
307 silly extract wrappy@1 extracted to /usr/local/lib/node_modules/.staging/wrappy-a1f102e2 (59ms)
308 silly extract inflight@^1.0.4 extracted to /usr/local/lib/node_modules/.staging/inflight-813fede6 (59ms)
309 silly extract minimatch@^3.0.4 extracted to /usr/local/lib/node_modules/.staging/minimatch-9aacf970 (61ms)
310 silly extract minimist@^1.2.0 extracted to /usr/local/lib/node_modules/.staging/minimist-36a67427 (65ms)
311 silly extract sprintf-js@~1.0.2 extracted to /usr/local/lib/node_modules/.staging/sprintf-js-abc080ff (67ms)
312 http fetch GET 200 https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz 56ms
313 silly extract balanced-match@^1.0.0 extracted to /usr/local/lib/node_modules/.staging/balanced-match-4ffbdb66 (78ms)
314 http fetch GET 200 https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz 88ms
315 http fetch GET 200 https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz 86ms
316 http fetch GET 200 https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz 88ms
317 silly extract [email protected] extracted to /usr/local/lib/node_modules/.staging/concat-map-a0857795 (111ms)
318 silly extract inherits@2 extracted to /usr/local/lib/node_modules/.staging/inherits-e8e4ce98 (109ms)
319 silly extract fs.realpath@^1.0.0 extracted to /usr/local/lib/node_modules/.staging/fs.realpath-16725094 (111ms)
320 http fetch GET 200 https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz 90ms
321 http fetch GET 200 https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz 92ms
322 silly extract brace-expansion@^1.1.7 extracted to /usr/local/lib/node_modules/.staging/brace-expansion-ae7db7f1 (114ms)
323 silly extract esprima@^4.0.0 extracted to /usr/local/lib/node_modules/.staging/esprima-d65324b8 (117ms)
324 http fetch GET 200 https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz 155ms
325 http fetch GET 200 https://registry.npmjs.org/glob/-/glob-7.1.5.tgz 156ms
326 silly extract glob@^7.1.3 extracted to /usr/local/lib/node_modules/.staging/glob-fac2558a (180ms)
327 http fetch GET 200 https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz 164ms
328 http fetch GET 200 https://registry.npmjs.org/once/-/once-1.4.0.tgz 165ms
329 silly extract once@^1.3.0 extracted to /usr/local/lib/node_modules/.staging/once-e3643102 (186ms)
330 silly extract argparse@^1.0.7 extracted to /usr/local/lib/node_modules/.staging/argparse-7d42710c (195ms)
331 http fetch GET 200 https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz 190ms
332 silly extract tmp@^0.1.0 extracted to /usr/local/lib/node_modules/.staging/tmp-3fa50be6 (217ms)
333 http fetch GET 200 https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz 197ms
334 silly extract rimraf@^2.6.3 extracted to /usr/local/lib/node_modules/.staging/rimraf-91f8acc6 (230ms)
335 silly extract js-yaml@^3.12.1 extracted to /usr/local/lib/node_modules/.staging/js-yaml-9c79cddd (231ms)
336 timing action:extract Completed in 238ms
337 silly doReverseSerial unbuild 150
338 silly doSerial remove 150
339 silly doSerial move 150
340 silly doSerial finalize 150
341 silly finalize /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/balanced-match
342 silly finalize /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/concat-map
343 silly finalize /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/brace-expansion
344 silly finalize /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/esprima
345 silly finalize /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/fs.realpath
346 silly finalize /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/inherits
347 silly finalize /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/minimatch
348 silly finalize /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/path-is-absolute
349 silly finalize /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/sprintf-js
350 silly finalize /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/argparse
351 silly finalize /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/wrappy
352 silly finalize /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/once
353 silly finalize /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/inflight
354 silly finalize /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/glob
355 silly finalize /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/rimraf
356 silly finalize /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/js-yaml
357 silly finalize /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/minimist
358 silly finalize /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/tmp
359 silly finalize /Users/macuser1/git_workspaces/github.com/IBM/solsa
360 timing action:finalize Completed in 24ms
361 silly doParallel refresh-package-json 19
362 silly refresh-package-json /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/balanced-match
363 silly refresh-package-json /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/concat-map
364 silly refresh-package-json /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/brace-expansion
365 silly refresh-package-json /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/esprima
366 silly refresh-package-json /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/fs.realpath
367 silly refresh-package-json /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/inherits
368 silly refresh-package-json /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/minimatch
369 silly refresh-package-json /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/path-is-absolute
370 silly refresh-package-json /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/sprintf-js
371 silly refresh-package-json /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/argparse
372 silly refresh-package-json /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/wrappy
373 silly refresh-package-json /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/once
374 silly refresh-package-json /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/inflight
375 silly refresh-package-json /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/glob
376 silly refresh-package-json /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/rimraf
377 silly refresh-package-json /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/js-yaml
378 silly refresh-package-json /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/minimist
379 silly refresh-package-json /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/tmp
380 silly refresh-package-json /Users/macuser1/git_workspaces/github.com/IBM/solsa
381 timing action:refresh-package-json Completed in 46ms
382 silly doParallel preinstall 19
383 silly preinstall [email protected]
384 info lifecycle [email protected]~preinstall: [email protected]
385 silly preinstall [email protected]
386 info lifecycle [email protected]~preinstall: [email protected]
387 silly preinstall [email protected]
388 info lifecycle [email protected]~preinstall: [email protected]
389 silly preinstall [email protected]
390 info lifecycle [email protected]~preinstall: [email protected]
391 silly preinstall [email protected]
392 info lifecycle [email protected]~preinstall: [email protected]
393 silly preinstall [email protected]
394 info lifecycle [email protected]~preinstall: [email protected]
395 silly preinstall [email protected]
396 info lifecycle [email protected]~preinstall: [email protected]
397 silly preinstall [email protected]
398 info lifecycle [email protected]~preinstall: [email protected]
399 silly preinstall [email protected]
400 info lifecycle [email protected]~preinstall: [email protected]
401 silly preinstall [email protected]
402 info lifecycle [email protected]~preinstall: [email protected]
403 silly preinstall [email protected]
404 info lifecycle [email protected]~preinstall: [email protected]
405 silly preinstall [email protected]
406 info lifecycle [email protected]~preinstall: [email protected]
407 silly preinstall [email protected]
408 info lifecycle [email protected]~preinstall: [email protected]
409 silly preinstall [email protected]
410 info lifecycle [email protected]~preinstall: [email protected]
411 silly preinstall [email protected]
412 info lifecycle [email protected]~preinstall: [email protected]
413 silly preinstall [email protected]
414 info lifecycle [email protected]~preinstall: [email protected]
415 silly preinstall [email protected]
416 info lifecycle [email protected]~preinstall: [email protected]
417 silly preinstall [email protected]
418 info lifecycle [email protected]~preinstall: [email protected]
419 silly preinstall [email protected]
420 info lifecycle [email protected]~preinstall: [email protected]
421 timing action:preinstall Completed in 3ms
422 silly doSerial build 150
423 silly build [email protected]
424 info linkStuff [email protected]
425 silly linkStuff [email protected] has /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules as its parent node_modules
426 silly linkStuff [email protected] is part of a global install
427 silly linkStuff [email protected] is installed into a global node_modules
428 silly build [email protected]
429 info linkStuff [email protected]
430 silly linkStuff [email protected] has /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules as its parent node_modules
431 silly linkStuff [email protected] is part of a global install
432 silly linkStuff [email protected] is installed into a global node_modules
433 silly build [email protected]
434 info linkStuff [email protected]
435 silly linkStuff [email protected] has /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules as its parent node_modules
436 silly linkStuff [email protected] is part of a global install
437 silly linkStuff [email protected] is installed into a global node_modules
438 silly build [email protected]
439 info linkStuff [email protected]
440 silly linkStuff [email protected] has /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules as its parent node_modules
441 silly linkStuff [email protected] is part of a global install
442 silly linkStuff [email protected] is installed into a global node_modules
443 verbose linkBins [
443 verbose linkBins   { esparse: './bin/esparse.js', esvalidate: './bin/esvalidate.js' },
443 verbose linkBins   '/Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/.bin',
443 verbose linkBins   false
443 verbose linkBins ]
444 silly build [email protected]
445 info linkStuff [email protected]
446 silly linkStuff [email protected] has /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules as its parent node_modules
447 silly linkStuff [email protected] is part of a global install
448 silly linkStuff [email protected] is installed into a global node_modules
449 silly build [email protected]
450 info linkStuff [email protected]
451 silly linkStuff [email protected] has /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules as its parent node_modules
452 silly linkStuff [email protected] is part of a global install
453 silly linkStuff [email protected] is installed into a global node_modules
454 silly build [email protected]
455 info linkStuff [email protected]
456 silly linkStuff [email protected] has /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules as its parent node_modules
457 silly linkStuff [email protected] is part of a global install
458 silly linkStuff [email protected] is installed into a global node_modules
459 silly build [email protected]
460 info linkStuff [email protected]
461 silly linkStuff [email protected] has /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules as its parent node_modules
462 silly linkStuff [email protected] is part of a global install
463 silly linkStuff [email protected] is installed into a global node_modules
464 silly build [email protected]
465 info linkStuff [email protected]
466 silly linkStuff [email protected] has /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules as its parent node_modules
467 silly linkStuff [email protected] is part of a global install
468 silly linkStuff [email protected] is installed into a global node_modules
469 silly build [email protected]
470 info linkStuff [email protected]
471 silly linkStuff [email protected] has /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules as its parent node_modules
472 silly linkStuff [email protected] is part of a global install
473 silly linkStuff [email protected] is installed into a global node_modules
474 silly build [email protected]
475 info linkStuff [email protected]
476 silly linkStuff [email protected] has /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules as its parent node_modules
477 silly linkStuff [email protected] is part of a global install
478 silly linkStuff [email protected] is installed into a global node_modules
479 silly build [email protected]
480 info linkStuff [email protected]
481 silly linkStuff [email protected] has /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules as its parent node_modules
482 silly linkStuff [email protected] is part of a global install
483 silly linkStuff [email protected] is installed into a global node_modules
484 silly build [email protected]
485 info linkStuff [email protected]
486 silly linkStuff [email protected] has /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules as its parent node_modules
487 silly linkStuff [email protected] is part of a global install
488 silly linkStuff [email protected] is installed into a global node_modules
489 silly build [email protected]
490 info linkStuff [email protected]
491 silly linkStuff [email protected] has /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules as its parent node_modules
492 silly linkStuff [email protected] is part of a global install
493 silly linkStuff [email protected] is installed into a global node_modules
494 silly build [email protected]
495 info linkStuff [email protected]
496 silly linkStuff [email protected] has /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules as its parent node_modules
497 silly linkStuff [email protected] is part of a global install
498 silly linkStuff [email protected] is installed into a global node_modules
499 verbose linkBins [
499 verbose linkBins   { rimraf: './bin.js' },
499 verbose linkBins   '/Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/.bin',
499 verbose linkBins   false
499 verbose linkBins ]
500 silly build [email protected]
501 info linkStuff [email protected]
502 silly linkStuff [email protected] has /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules as its parent node_modules
503 silly linkStuff [email protected] is part of a global install
504 silly linkStuff [email protected] is installed into a global node_modules
505 verbose linkBins [
505 verbose linkBins   { 'js-yaml': 'bin/js-yaml.js' },
505 verbose linkBins   '/Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/.bin',
505 verbose linkBins   false
505 verbose linkBins ]
506 silly build [email protected]
507 info linkStuff [email protected]
508 silly linkStuff [email protected] has /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules as its parent node_modules
509 silly linkStuff [email protected] is part of a global install
510 silly linkStuff [email protected] is installed into a global node_modules
511 silly build [email protected]
512 info linkStuff [email protected]
513 silly linkStuff [email protected] has /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules as its parent node_modules
514 silly linkStuff [email protected] is part of a global install
515 silly linkStuff [email protected] is installed into a global node_modules
516 silly build [email protected]
517 info linkStuff [email protected]
518 silly linkStuff [email protected] has /usr/local/lib/node_modules as its parent node_modules
519 silly linkStuff [email protected] is part of a global install
520 silly linkStuff [email protected] is installed into a global node_modules
521 silly linkStuff [email protected] is installed into the top-level global node_modules
522 verbose linkBins [ { solsa: './dist/bin/solsa.js' }, '/usr/local/bin', true ]
523 timing action:build Completed in 129ms
524 verbose unlock done using /Users/macuser1/.npm/_locks/staging-3a08f0df5026584d.lock for /usr/local/lib/node_modules/.staging
525 warn rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/balanced-match is not a child of /usr/local/lib
526 warn rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/concat-map is not a child of /usr/local/lib
527 warn rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/brace-expansion is not a child of /usr/local/lib
528 warn rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/esprima is not a child of /usr/local/lib
529 warn rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/fs.realpath is not a child of /usr/local/lib
530 warn rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/inherits is not a child of /usr/local/lib
531 warn rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/minimatch is not a child of /usr/local/lib
532 warn rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/path-is-absolute is not a child of /usr/local/lib
533 warn rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/sprintf-js is not a child of /usr/local/lib
534 warn rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/argparse is not a child of /usr/local/lib
535 warn rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/wrappy is not a child of /usr/local/lib
536 warn rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/once is not a child of /usr/local/lib
537 warn rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/inflight is not a child of /usr/local/lib
538 warn rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/glob is not a child of /usr/local/lib
539 warn rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/rimraf is not a child of /usr/local/lib
540 warn rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/js-yaml is not a child of /usr/local/lib
541 warn rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/minimist is not a child of /usr/local/lib
542 warn rollback Rolling back [email protected] failed (this is probably harmless): /Users/macuser1/git_workspaces/github.com/IBM/solsa/node_modules/tmp is not a child of /usr/local/lib
543 timing stage:rollbackFailedOptional Completed in 6ms
544 timing stage:runTopLevelLifecycles Completed in 4370ms
545 verbose stack Error: ENOENT: no such file or directory, chmod '/usr/local/lib/node_modules/solsa/dist/bin/solsa.js'
546 verbose cwd /Users/macuser1/git_workspaces/github.com/IBM
547 verbose Darwin 17.7.0
548 verbose argv "/usr/local/Cellar/node/12.12.0/bin/node" "/usr/local/bin/npm" "install" "-g" "solsa"
549 verbose node v12.12.0
550 verbose npm  v6.11.3
551 error code ENOENT
552 error syscall chmod
553 error path /usr/local/lib/node_modules/solsa/dist/bin/solsa.js
554 error errno -2
555 error enoent ENOENT: no such file or directory, chmod '/usr/local/lib/node_modules/solsa/dist/bin/solsa.js'
556 error enoent This is related to npm not being able to find a file.
557 verbose exit [ -2, true ]

import: support for {{ .Values... }} when importing helm chart

Currently the strategy for importing a Helm chart into SolSA is to do a helm install ... followed by a helm get. A major drawback of this approach is that all variables are substituted with concrete values.

We could implement an alternative path where the importer reads the actual files from the templates directory of the Chart and processes the Helm template directives in two ways:

  1. Recognize {{ .Values.a.b.c }} and replace with the JavaScript expression config.values.a.b.c.
  2. Replace all other {{ ... }} blocks with /*UNPROCCESSED HELM: {{ ... }} */ in the generated files

Higher-level Pod construction idiom

Consider implementing a more abstract version of a Pod specification that could be provided as an input parameter to Deployment, StatefulSet, Job, etc. The idea would be to allow the nicer environment construction and other short-cut style idioms of ContainerizedService in more advanced use cases where the user still needs to define a core Resource.

The details would not be the same, but it should have a similar dev experience as the PodBuilder from pulumi's kubernetesx (https://github.com/pulumi/pulumi-kubernetesx).

Error: Identifier 'helloWorld' has already been declared

Issue

When I execute the command solsa yaml using this yaml definition,

const solsa = require('solsa')

const helloWorld = new solsa.ContainerizedService({})
const helloWorld = new solsa.ContainerizedService({ name: 'hello-world', image: 'docker.io/ibmcom/kn-helloworld', port: 8080 })
const ingress = helloWorld.getIngress()

module.exports = new solsa.Bundle({ helloWorld, ingress })

then I get this error

solsa yaml helloWorld.js
Error: Identifier 'helloWorld' has already been declared

Enhance codegened resources with higher-level SolSA patterns

Capturing morning discussion.

We want to provide the capability of using the solsa idiom of creating an instance of an inner class for outer classes that are code-generated. This would allow things like:

  1. Easy Ingress creation from a core.v1.Service or knative.Service
  2. Easy Service creation from a core Deployment, StatefulSet, etc.

The idea is to import the codegened files, add the augmentation, and then export a modified set of core resources.

Document how to configure solsa with external k8s cluster

It would be good to have example to what is needed to create context and switch between multiple clusters - to have it work together with multiple export KUBECONFIG used

It seems that warnings can be ignored?

(base) aslom@m tutorial (master) $ solsa yaml hello.js
Warning: Unable to load configuration file "/Users/aslom/.solsa.yaml"
Warning: Generating base yaml without kustomization layer
apiVersion: v1
kind: Service
metadata:
  name: hello-world
spec:
  ports:
  - port: 8080
    targetPort: 8080
  selector:
    solsa.ibm.com/pod: hello-world
  type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-world
spec:
  replicas: 1
  selector:
    matchLabels:
      solsa.ibm.com/pod: hello-world
  template:
    metadata:
      labels:
        solsa.ibm.com/pod: hello-world
    spec:
      containers:
      - env:
        - name: PORT
          value: "8080"
        image: docker.io/ibmcom/kn-helloworld
        livenessProbe:
          tcpSocket:
            port: 8080
        name: hello-world
        ports:
        - containerPort: 8080
        readinessProbe:
          tcpSocket:
            port: 8080
Warnings: 2
(base) aslom@m tutorial (master) $ solsa yaml hello.js | kubectl apply -f -
Warning: Unable to load configuration file "/Users/aslom/.solsa.yaml"
Warning: Generating base yaml without kustomization layer
Warnings: 2
service/hello-world unchanged
deployment.apps/hello-world unchanged
(base) aslom@m tutorial (master) $ kubectl logs -lsolsa.ibm.com/pod=hello-world
2019/08/25 17:27:23 Hello world sample started.

Installation Error: Failed to create the file tools/kustomize: Permission denied.

Got the following error during install ( install -g solsa) as root on Ubuntu 16.04:

Warning: Failed to create the file tools/kustomize: Permission denied
0 25.3M 0 16360 0 0 14690 0 0:30:10 0:00:01 0:30:09 61969
curl: (23) Failed writing body (0 != 16360)
npm ERR! code ELIFECYCLE . . .

More info:

root@deleteme-master-2# npm install -g solsa
/usr/bin/solsa -> /usr/lib/node_modules/solsa/dist/bin/solsa.js

> [email protected] postinstall /usr/lib/node_modules/solsa
> tools/install-kustomize.sh

Downloading kustomize for Linux.
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   618    0   618    0     0   1037      0 --:--:-- --:--:-- --:--:--  1038
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0Warning: Failed to create the file tools/kustomize: Permission denied
  0 25.3M    0 16360    0     0  14690      0  0:30:10  0:00:01  0:30:09 61969
curl: (23) Failed writing body (0 != 16360)
npm ERR! code ELIFECYCLE
npm ERR! errno 23
npm ERR! [email protected] postinstall: `tools/install-kustomize.sh`
npm ERR! Exit status 23
npm ERR! 
npm ERR! Failed at the [email protected] postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-10-22T14_40_42_453Z-debug.log
root@deleteme-master-2:~# pwd
/root
root@deleteme-master-2:~# solsa
solsa: command not found
root@deleteme-master-2:~# cat /root/.npm/_logs/2019-10-22T14_40_42_453Z-debug.log
0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'install', '-g', 'solsa' ]
2 info using [email protected]
3 info using [email protected]
4 verbose npm-session e8bff53ddd7fcb9a
5 silly install loadCurrentTree
6 silly install readGlobalPackageData
7 http fetch GET 200 https://registry.npmjs.org/solsa 471ms
8 silly pacote tag manifest for solsa@latest fetched in 487ms
9 timing stage:loadCurrentTree Completed in 505ms
10 silly install loadIdealTree
11 silly install cloneCurrentTreeToIdealTree
12 timing stage:loadIdealTree:cloneCurrentTree Completed in 0ms
13 silly install loadShrinkwrap
14 timing stage:loadIdealTree:loadShrinkwrap Completed in 1ms
15 silly install loadAllDepsIntoIdealTree
16 silly resolveWithNewModule [email protected] checking installable status
17 http fetch GET 200 https://registry.npmjs.org/js-yaml 31ms
18 silly pacote range manifest for js-yaml@^3.12.1 fetched in 35ms
19 silly resolveWithNewModule [email protected] checking installable status
20 http fetch GET 200 https://registry.npmjs.org/tmp 198ms
21 silly pacote range manifest for tmp@^0.1.0 fetched in 202ms
22 silly resolveWithNewModule [email protected] checking installable status
23 http fetch GET 200 https://registry.npmjs.org/minimist 241ms
24 http fetch GET 200 https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz 37ms
25 silly pacote range manifest for minimist@^1.2.0 fetched in 286ms
26 silly resolveWithNewModule [email protected] checking installable status
27 http fetch GET 200 https://registry.npmjs.org/argparse 28ms
28 http fetch GET 200 https://registry.npmjs.org/esprima 29ms
29 silly pacote range manifest for argparse@^1.0.7 fetched in 35ms
30 silly resolveWithNewModule [email protected] checking installable status
31 silly pacote range manifest for esprima@^4.0.0 fetched in 35ms
32 silly resolveWithNewModule [email protected] checking installable status
33 http fetch GET 200 https://registry.npmjs.org/sprintf-js 20ms
34 http fetch GET 200 https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz 21ms
35 silly pacote range manifest for sprintf-js@~1.0.2 fetched in 46ms
36 silly resolveWithNewModule [email protected] checking installable status
37 http fetch GET 200 https://registry.npmjs.org/rimraf 20ms
38 silly pacote range manifest for rimraf@^2.6.3 fetched in 24ms
39 silly resolveWithNewModule [email protected] checking installable status
40 http fetch GET 200 https://registry.npmjs.org/glob 27ms
41 silly pacote range manifest for glob@^7.1.3 fetched in 35ms
42 silly resolveWithNewModule [email protected] checking installable status
43 http fetch GET 200 https://registry.npmjs.org/inherits 25ms
44 http fetch GET 200 https://registry.npmjs.org/inflight 28ms
45 http fetch GET 200 https://registry.npmjs.org/fs.realpath 29ms
46 silly pacote range manifest for inherits@2 fetched in 33ms
47 silly resolveWithNewModule [email protected] checking installable status
48 silly pacote range manifest for fs.realpath@^1.0.0 fetched in 35ms
49 silly resolveWithNewModule [email protected] checking installable status
50 http fetch GET 200 https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz 29ms
51 silly pacote range manifest for inflight@^1.0.4 fetched in 61ms
52 silly resolveWithNewModule [email protected] checking installable status
53 http fetch GET 200 https://registry.npmjs.org/minimatch 198ms
54 http fetch GET 200 https://registry.npmjs.org/once 208ms
55 silly pacote range manifest for once@^1.3.0 fetched in 212ms
56 silly resolveWithNewModule [email protected] checking installable status
57 http fetch GET 200 https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz 20ms
58 silly pacote range manifest for minimatch@^3.0.4 fetched in 222ms
59 silly resolveWithNewModule [email protected] checking installable status
60 http fetch GET 200 https://registry.npmjs.org/path-is-absolute 357ms
61 http fetch GET 200 https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz 23ms
62 silly pacote range manifest for path-is-absolute@^1.0.0 fetched in 385ms
63 silly resolveWithNewModule [email protected] checking installable status
64 http fetch GET 200 https://registry.npmjs.org/wrappy 24ms
65 http fetch GET 200 https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz 16ms
66 silly pacote range manifest for wrappy@1 fetched in 44ms
67 silly resolveWithNewModule [email protected] checking installable status
68 http fetch GET 200 https://registry.npmjs.org/brace-expansion 19ms
69 silly pacote range manifest for brace-expansion@^1.1.7 fetched in 22ms
70 silly resolveWithNewModule [email protected] checking installable status
71 http fetch GET 200 https://registry.npmjs.org/concat-map 21ms
72 http fetch GET 200 https://registry.npmjs.org/balanced-match 23ms
73 silly pacote version manifest for [email protected] fetched in 26ms
74 silly resolveWithNewModule [email protected] checking installable status
75 silly pacote range manifest for balanced-match@^1.0.0 fetched in 27ms
76 silly resolveWithNewModule [email protected] checking installable status
77 timing stage:loadIdealTree:loadAllDepsIntoIdealTree Completed in 935ms
78 timing stage:loadIdealTree Completed in 943ms
79 silly currentTree lib
80 silly idealTree lib
80 silly idealTree └─┬ [email protected]
80 silly idealTree   ├── [email protected]
80 silly idealTree   ├── [email protected]
80 silly idealTree   ├── [email protected]
80 silly idealTree   ├── [email protected]
80 silly idealTree   ├── [email protected]
80 silly idealTree   ├── [email protected]
80 silly idealTree   ├── [email protected]
80 silly idealTree   ├── [email protected]
80 silly idealTree   ├── [email protected]
80 silly idealTree   ├── [email protected]
80 silly idealTree   ├── [email protected]
80 silly idealTree   ├── [email protected]
80 silly idealTree   ├── [email protected]
80 silly idealTree   ├── [email protected]
80 silly idealTree   ├── [email protected]
80 silly idealTree   ├── [email protected]
80 silly idealTree   ├── [email protected]
80 silly idealTree   └── [email protected]
81 silly install generateActionsToTake
82 timing stage:generateActionsToTake Completed in 7ms
83 silly diffTrees action count 19
84 silly diffTrees add [email protected]
85 silly diffTrees add [email protected]
86 silly diffTrees add [email protected]
87 silly diffTrees add [email protected]
88 silly diffTrees add [email protected]
89 silly diffTrees add [email protected]
90 silly diffTrees add [email protected]
91 silly diffTrees add [email protected]
92 silly diffTrees add [email protected]
93 silly diffTrees add [email protected]
94 silly diffTrees add [email protected]
95 silly diffTrees add [email protected]
96 silly diffTrees add [email protected]
97 silly diffTrees add [email protected]
98 silly diffTrees add [email protected]
99 silly diffTrees add [email protected]
100 silly diffTrees add [email protected]
101 silly diffTrees add [email protected]
102 silly diffTrees add [email protected]
103 silly decomposeActions action count 152
104 silly decomposeActions fetch [email protected]
105 silly decomposeActions extract [email protected]
106 silly decomposeActions preinstall [email protected]
107 silly decomposeActions build [email protected]
108 silly decomposeActions install [email protected]
109 silly decomposeActions postinstall [email protected]
110 silly decomposeActions finalize [email protected]
111 silly decomposeActions refresh-package-json [email protected]
112 silly decomposeActions fetch [email protected]
113 silly decomposeActions extract [email protected]
114 silly decomposeActions preinstall [email protected]
115 silly decomposeActions build [email protected]
116 silly decomposeActions install [email protected]
117 silly decomposeActions postinstall [email protected]
118 silly decomposeActions finalize [email protected]
119 silly decomposeActions refresh-package-json [email protected]
120 silly decomposeActions fetch [email protected]
121 silly decomposeActions extract [email protected]
122 silly decomposeActions preinstall [email protected]
123 silly decomposeActions build [email protected]
124 silly decomposeActions install [email protected]
125 silly decomposeActions postinstall [email protected]
126 silly decomposeActions finalize [email protected]
127 silly decomposeActions refresh-package-json [email protected]
128 silly decomposeActions fetch [email protected]
129 silly decomposeActions extract [email protected]
130 silly decomposeActions preinstall [email protected]
131 silly decomposeActions build [email protected]
132 silly decomposeActions install [email protected]
133 silly decomposeActions postinstall [email protected]
134 silly decomposeActions finalize [email protected]
135 silly decomposeActions refresh-package-json [email protected]
136 silly decomposeActions fetch [email protected]
137 silly decomposeActions extract [email protected]
138 silly decomposeActions preinstall [email protected]
139 silly decomposeActions build [email protected]
140 silly decomposeActions install [email protected]
141 silly decomposeActions postinstall [email protected]
142 silly decomposeActions finalize [email protected]
143 silly decomposeActions refresh-package-json [email protected]
144 silly decomposeActions fetch [email protected]
145 silly decomposeActions extract [email protected]
146 silly decomposeActions preinstall [email protected]
147 silly decomposeActions build [email protected]
148 silly decomposeActions install [email protected]
149 silly decomposeActions postinstall [email protected]
150 silly decomposeActions finalize [email protected]
151 silly decomposeActions refresh-package-json [email protected]
152 silly decomposeActions fetch [email protected]
153 silly decomposeActions extract [email protected]
154 silly decomposeActions preinstall [email protected]
155 silly decomposeActions build [email protected]
156 silly decomposeActions install [email protected]
157 silly decomposeActions postinstall [email protected]
158 silly decomposeActions finalize [email protected]
159 silly decomposeActions refresh-package-json [email protected]
160 silly decomposeActions fetch [email protected]
161 silly decomposeActions extract [email protected]
162 silly decomposeActions preinstall [email protected]
163 silly decomposeActions build [email protected]
164 silly decomposeActions install [email protected]
165 silly decomposeActions postinstall [email protected]
166 silly decomposeActions finalize [email protected]
167 silly decomposeActions refresh-package-json [email protected]
168 silly decomposeActions fetch [email protected]
169 silly decomposeActions extract [email protected]
170 silly decomposeActions preinstall [email protected]
171 silly decomposeActions build [email protected]
172 silly decomposeActions install [email protected]
173 silly decomposeActions postinstall [email protected]
174 silly decomposeActions finalize [email protected]
175 silly decomposeActions refresh-package-json [email protected]
176 silly decomposeActions fetch [email protected]
177 silly decomposeActions extract [email protected]
178 silly decomposeActions preinstall [email protected]
179 silly decomposeActions build [email protected]
180 silly decomposeActions install [email protected]
181 silly decomposeActions postinstall [email protected]
182 silly decomposeActions finalize [email protected]
183 silly decomposeActions refresh-package-json [email protected]
184 silly decomposeActions fetch [email protected]
185 silly decomposeActions extract [email protected]
186 silly decomposeActions preinstall [email protected]
187 silly decomposeActions build [email protected]
188 silly decomposeActions install [email protected]
189 silly decomposeActions postinstall [email protected]
190 silly decomposeActions finalize [email protected]
191 silly decomposeActions refresh-package-json [email protected]
192 silly decomposeActions fetch [email protected]
193 silly decomposeActions extract [email protected]
194 silly decomposeActions preinstall [email protected]
195 silly decomposeActions build [email protected]
196 silly decomposeActions install [email protected]
197 silly decomposeActions postinstall [email protected]
198 silly decomposeActions finalize [email protected]
199 silly decomposeActions refresh-package-json [email protected]
200 silly decomposeActions fetch [email protected]
201 silly decomposeActions extract [email protected]
202 silly decomposeActions preinstall [email protected]
203 silly decomposeActions build [email protected]
204 silly decomposeActions install [email protected]
205 silly decomposeActions postinstall [email protected]
206 silly decomposeActions finalize [email protected]
207 silly decomposeActions refresh-package-json [email protected]
208 silly decomposeActions fetch [email protected]
209 silly decomposeActions extract [email protected]
210 silly decomposeActions preinstall [email protected]
211 silly decomposeActions build [email protected]
212 silly decomposeActions install [email protected]
213 silly decomposeActions postinstall [email protected]
214 silly decomposeActions finalize [email protected]
215 silly decomposeActions refresh-package-json [email protected]
216 silly decomposeActions fetch [email protected]
217 silly decomposeActions extract [email protected]
218 silly decomposeActions preinstall [email protected]
219 silly decomposeActions build [email protected]
220 silly decomposeActions install [email protected]
221 silly decomposeActions postinstall [email protected]
222 silly decomposeActions finalize [email protected]
223 silly decomposeActions refresh-package-json [email protected]
224 silly decomposeActions fetch [email protected]
225 silly decomposeActions extract [email protected]
226 silly decomposeActions preinstall [email protected]
227 silly decomposeActions build [email protected]
228 silly decomposeActions install [email protected]
229 silly decomposeActions postinstall [email protected]
230 silly decomposeActions finalize [email protected]
231 silly decomposeActions refresh-package-json [email protected]
232 silly decomposeActions fetch [email protected]
233 silly decomposeActions extract [email protected]
234 silly decomposeActions preinstall [email protected]
235 silly decomposeActions build [email protected]
236 silly decomposeActions install [email protected]
237 silly decomposeActions postinstall [email protected]
238 silly decomposeActions finalize [email protected]
239 silly decomposeActions refresh-package-json [email protected]
240 silly decomposeActions fetch [email protected]
241 silly decomposeActions extract [email protected]
242 silly decomposeActions preinstall [email protected]
243 silly decomposeActions build [email protected]
244 silly decomposeActions install [email protected]
245 silly decomposeActions postinstall [email protected]
246 silly decomposeActions finalize [email protected]
247 silly decomposeActions refresh-package-json [email protected]
248 silly decomposeActions fetch [email protected]
249 silly decomposeActions extract [email protected]
250 silly decomposeActions preinstall [email protected]
251 silly decomposeActions build [email protected]
252 silly decomposeActions install [email protected]
253 silly decomposeActions postinstall [email protected]
254 silly decomposeActions finalize [email protected]
255 silly decomposeActions refresh-package-json [email protected]
256 silly install executeActions
257 silly doSerial global-install 152
258 verbose correctMkdir /root/.npm/_locks correctMkdir not in flight; initializing
259 verbose lock using /root/.npm/_locks/staging-a072192f34a17023.lock for /usr/lib/node_modules/.staging
260 silly doParallel extract 19
261 silly extract [email protected]
262 silly extract [email protected]
263 silly extract [email protected]
264 silly extract [email protected]
265 silly extract [email protected]
266 silly extract [email protected]
267 silly extract [email protected]
268 silly extract [email protected]
269 silly extract [email protected]
270 silly extract [email protected]
271 silly extract [email protected]
272 silly extract [email protected]
273 silly extract [email protected]
274 silly extract [email protected]
275 silly extract [email protected]
276 silly extract [email protected]
277 silly extract [email protected]
278 silly extract [email protected]
279 silly extract [email protected]
280 silly tarball trying balanced-match@^1.0.0 by hash: sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
281 silly tarball trying [email protected] by hash: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
282 silly tarball trying brace-expansion@^1.1.7 by hash: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
283 silly tarball trying esprima@^4.0.0 by hash: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
284 silly tarball trying fs.realpath@^1.0.0 by hash: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
285 silly tarball trying inherits@2 by hash: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
286 silly tarball trying minimatch@^3.0.4 by hash: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
287 silly tarball trying path-is-absolute@^1.0.0 by hash: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
288 silly tarball trying sprintf-js@~1.0.2 by hash: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
289 silly tarball trying argparse@^1.0.7 by hash: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
290 silly tarball trying wrappy@1 by hash: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
291 silly tarball trying once@^1.3.0 by hash: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
292 silly tarball trying inflight@^1.0.4 by hash: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
293 silly tarball trying glob@^7.1.3 by hash: sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==
294 silly tarball trying rimraf@^2.6.3 by hash: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
295 silly tarball trying js-yaml@^3.12.1 by hash: sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
296 silly tarball trying minimist@^1.2.0 by hash: sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
297 silly tarball trying tmp@^0.1.0 by hash: sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==
298 silly tarball trying solsa@latest by hash: sha512-H2xo2jctD8J5ZPItb+Hr4ZBwb7nE7e90fUc+W4HUk+RV3qftocwRdIumYfo60DxgDSjVGbhOa1/m841uNCmIBg==
299 silly tarball no local data for balanced-match@^1.0.0. Extracting by manifest.
300 silly tarball no local data for [email protected]. Extracting by manifest.
301 silly tarball no local data for brace-expansion@^1.1.7. Extracting by manifest.
302 silly tarball no local data for esprima@^4.0.0. Extracting by manifest.
303 silly tarball no local data for fs.realpath@^1.0.0. Extracting by manifest.
304 silly tarball no local data for inherits@2. Extracting by manifest.
305 silly tarball no local data for argparse@^1.0.7. Extracting by manifest.
306 silly tarball no local data for once@^1.3.0. Extracting by manifest.
307 silly tarball no local data for glob@^7.1.3. Extracting by manifest.
308 silly tarball no local data for rimraf@^2.6.3. Extracting by manifest.
309 silly tarball no local data for js-yaml@^3.12.1. Extracting by manifest.
310 silly tarball no local data for tmp@^0.1.0. Extracting by manifest.
311 silly tarball no local data for solsa@latest. Extracting by manifest.
312 silly extract path-is-absolute@^1.0.0 extracted to /usr/lib/node_modules/.staging/path-is-absolute-d81d24e9 (100ms)
313 silly extract wrappy@1 extracted to /usr/lib/node_modules/.staging/wrappy-7e3c2a96 (99ms)
314 silly extract inflight@^1.0.4 extracted to /usr/lib/node_modules/.staging/inflight-85d50ef5 (99ms)
315 silly extract minimatch@^3.0.4 extracted to /usr/lib/node_modules/.staging/minimatch-421e95dc (104ms)
316 http fetch GET 200 https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz 84ms
317 http fetch GET 200 https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz 86ms
318 http fetch GET 200 https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz 86ms
319 http fetch GET 200 https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz 86ms
320 silly extract inherits@2 extracted to /usr/lib/node_modules/.staging/inherits-92916be6 (112ms)
321 silly extract balanced-match@^1.0.0 extracted to /usr/lib/node_modules/.staging/balanced-match-e0ba4e75 (113ms)
322 http fetch GET 200 https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz 87ms
323 silly extract brace-expansion@^1.1.7 extracted to /usr/lib/node_modules/.staging/brace-expansion-3a449775 (114ms)
324 http fetch GET 200 https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz 87ms
325 silly extract [email protected] extracted to /usr/lib/node_modules/.staging/concat-map-4908582c (115ms)
326 silly extract fs.realpath@^1.0.0 extracted to /usr/lib/node_modules/.staging/fs.realpath-f9cf8084 (115ms)
327 silly extract sprintf-js@~1.0.2 extracted to /usr/lib/node_modules/.staging/sprintf-js-d4638d53 (118ms)
328 silly extract minimist@^1.2.0 extracted to /usr/lib/node_modules/.staging/minimist-4e793adc (118ms)
329 silly extract esprima@^4.0.0 extracted to /usr/lib/node_modules/.staging/esprima-05e9777b (124ms)
330 http fetch GET 200 https://registry.npmjs.org/once/-/once-1.4.0.tgz 204ms
331 silly extract once@^1.3.0 extracted to /usr/lib/node_modules/.staging/once-d9ffeccd (232ms)
332 http fetch GET 200 https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz 285ms
333 silly extract argparse@^1.0.7 extracted to /usr/lib/node_modules/.staging/argparse-3bfd7efc (318ms)
334 http fetch GET 200 https://registry.npmjs.org/glob/-/glob-7.1.5.tgz 364ms
335 silly extract glob@^7.1.3 extracted to /usr/lib/node_modules/.staging/glob-71a6262e (391ms)
336 http fetch GET 200 https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz 373ms
337 silly extract rimraf@^2.6.3 extracted to /usr/lib/node_modules/.staging/rimraf-dffc70b2 (399ms)
338 http fetch GET 200 https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz 539ms
339 silly extract tmp@^0.1.0 extracted to /usr/lib/node_modules/.staging/tmp-f5d8be37 (572ms)
340 http fetch GET 200 https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz 548ms
341 silly extract js-yaml@^3.12.1 extracted to /usr/lib/node_modules/.staging/js-yaml-f86e3481 (589ms)
342 http fetch GET 200 https://registry.npmjs.org/solsa/-/solsa-0.2.3.tgz 737ms
343 silly extract solsa@latest extracted to /usr/lib/node_modules/.staging/solsa-b78aaf12 (782ms)
344 timing action:extract Completed in 789ms
345 silly doReverseSerial unbuild 152
346 silly doSerial remove 152
347 silly doSerial move 152
348 silly doSerial finalize 152
349 silly finalize /usr/lib/node_modules/solsa/node_modules/balanced-match
350 silly finalize /usr/lib/node_modules/solsa/node_modules/concat-map
351 silly finalize /usr/lib/node_modules/solsa/node_modules/brace-expansion
352 silly finalize /usr/lib/node_modules/solsa/node_modules/esprima
353 silly finalize /usr/lib/node_modules/solsa/node_modules/fs.realpath
354 silly finalize /usr/lib/node_modules/solsa/node_modules/inherits
355 silly finalize /usr/lib/node_modules/solsa/node_modules/minimatch
356 silly finalize /usr/lib/node_modules/solsa/node_modules/path-is-absolute
357 silly finalize /usr/lib/node_modules/solsa/node_modules/sprintf-js
358 silly finalize /usr/lib/node_modules/solsa/node_modules/argparse
359 silly finalize /usr/lib/node_modules/solsa/node_modules/wrappy
360 silly finalize /usr/lib/node_modules/solsa/node_modules/once
361 silly finalize /usr/lib/node_modules/solsa/node_modules/inflight
362 silly finalize /usr/lib/node_modules/solsa/node_modules/glob
363 silly finalize /usr/lib/node_modules/solsa/node_modules/rimraf
364 silly finalize /usr/lib/node_modules/solsa/node_modules/js-yaml
365 silly finalize /usr/lib/node_modules/solsa/node_modules/minimist
366 silly finalize /usr/lib/node_modules/solsa/node_modules/tmp
367 silly finalize /usr/lib/node_modules/solsa
368 timing action:finalize Completed in 27ms
369 silly doParallel refresh-package-json 19
370 silly refresh-package-json /usr/lib/node_modules/solsa/node_modules/balanced-match
371 silly refresh-package-json /usr/lib/node_modules/solsa/node_modules/concat-map
372 silly refresh-package-json /usr/lib/node_modules/solsa/node_modules/brace-expansion
373 silly refresh-package-json /usr/lib/node_modules/solsa/node_modules/esprima
374 silly refresh-package-json /usr/lib/node_modules/solsa/node_modules/fs.realpath
375 silly refresh-package-json /usr/lib/node_modules/solsa/node_modules/inherits
376 silly refresh-package-json /usr/lib/node_modules/solsa/node_modules/minimatch
377 silly refresh-package-json /usr/lib/node_modules/solsa/node_modules/path-is-absolute
378 silly refresh-package-json /usr/lib/node_modules/solsa/node_modules/sprintf-js
379 silly refresh-package-json /usr/lib/node_modules/solsa/node_modules/argparse
380 silly refresh-package-json /usr/lib/node_modules/solsa/node_modules/wrappy
381 silly refresh-package-json /usr/lib/node_modules/solsa/node_modules/once
382 silly refresh-package-json /usr/lib/node_modules/solsa/node_modules/inflight
383 silly refresh-package-json /usr/lib/node_modules/solsa/node_modules/glob
384 silly refresh-package-json /usr/lib/node_modules/solsa/node_modules/rimraf
385 silly refresh-package-json /usr/lib/node_modules/solsa/node_modules/js-yaml
386 silly refresh-package-json /usr/lib/node_modules/solsa/node_modules/minimist
387 silly refresh-package-json /usr/lib/node_modules/solsa/node_modules/tmp
388 silly refresh-package-json /usr/lib/node_modules/solsa
389 timing action:refresh-package-json Completed in 49ms
390 silly doParallel preinstall 19
391 silly preinstall [email protected]
392 info lifecycle [email protected]~preinstall: [email protected]
393 silly preinstall [email protected]
394 info lifecycle [email protected]~preinstall: [email protected]
395 silly preinstall [email protected]
396 info lifecycle [email protected]~preinstall: [email protected]
397 silly preinstall [email protected]
398 info lifecycle [email protected]~preinstall: [email protected]
399 silly preinstall [email protected]
400 info lifecycle [email protected]~preinstall: [email protected]
401 silly preinstall [email protected]
402 info lifecycle [email protected]~preinstall: [email protected]
403 silly preinstall [email protected]
404 info lifecycle [email protected]~preinstall: [email protected]
405 silly preinstall [email protected]
406 info lifecycle [email protected]~preinstall: [email protected]
407 silly preinstall [email protected]
408 info lifecycle [email protected]~preinstall: [email protected]
409 silly preinstall [email protected]
410 info lifecycle [email protected]~preinstall: [email protected]
411 silly preinstall [email protected]
412 info lifecycle [email protected]~preinstall: [email protected]
413 silly preinstall [email protected]
414 info lifecycle [email protected]~preinstall: [email protected]
415 silly preinstall [email protected]
416 info lifecycle [email protected]~preinstall: [email protected]
417 silly preinstall [email protected]
418 info lifecycle [email protected]~preinstall: [email protected]
419 silly preinstall [email protected]
420 info lifecycle [email protected]~preinstall: [email protected]
421 silly preinstall [email protected]
422 info lifecycle [email protected]~preinstall: [email protected]
423 silly preinstall [email protected]
424 info lifecycle [email protected]~preinstall: [email protected]
425 silly preinstall [email protected]
426 info lifecycle [email protected]~preinstall: [email protected]
427 silly preinstall [email protected]
428 info lifecycle [email protected]~preinstall: [email protected]
429 timing action:preinstall Completed in 4ms
430 silly doSerial build 152
431 silly build [email protected]
432 info linkStuff [email protected]
433 silly linkStuff [email protected] has /usr/lib/node_modules/solsa/node_modules as its parent node_modules
434 silly linkStuff [email protected] is part of a global install
435 silly linkStuff [email protected] is installed into a global node_modules
436 silly build [email protected]
437 info linkStuff [email protected]
438 silly linkStuff [email protected] has /usr/lib/node_modules/solsa/node_modules as its parent node_modules
439 silly linkStuff [email protected] is part of a global install
440 silly linkStuff [email protected] is installed into a global node_modules
441 silly build [email protected]
442 info linkStuff [email protected]
443 silly linkStuff [email protected] has /usr/lib/node_modules/solsa/node_modules as its parent node_modules
444 silly linkStuff [email protected] is part of a global install
445 silly linkStuff [email protected] is installed into a global node_modules
446 silly build [email protected]
447 info linkStuff [email protected]
448 silly linkStuff [email protected] has /usr/lib/node_modules/solsa/node_modules as its parent node_modules
449 silly linkStuff [email protected] is part of a global install
450 silly linkStuff [email protected] is installed into a global node_modules
451 verbose linkBins [
451 verbose linkBins   { esparse: './bin/esparse.js', esvalidate: './bin/esvalidate.js' },
451 verbose linkBins   '/usr/lib/node_modules/solsa/node_modules/.bin',
451 verbose linkBins   false
451 verbose linkBins ]
452 silly build [email protected]
453 info linkStuff [email protected]
454 silly linkStuff [email protected] has /usr/lib/node_modules/solsa/node_modules as its parent node_modules
455 silly linkStuff [email protected] is part of a global install
456 silly linkStuff [email protected] is installed into a global node_modules
457 silly build [email protected]
458 info linkStuff [email protected]
459 silly linkStuff [email protected] has /usr/lib/node_modules/solsa/node_modules as its parent node_modules
460 silly linkStuff [email protected] is part of a global install
461 silly linkStuff [email protected] is installed into a global node_modules
462 silly build [email protected]
463 info linkStuff [email protected]
464 silly linkStuff [email protected] has /usr/lib/node_modules/solsa/node_modules as its parent node_modules
465 silly linkStuff [email protected] is part of a global install
466 silly linkStuff [email protected] is installed into a global node_modules
467 silly build [email protected]
468 info linkStuff [email protected]
469 silly linkStuff [email protected] has /usr/lib/node_modules/solsa/node_modules as its parent node_modules
470 silly linkStuff [email protected] is part of a global install
471 silly linkStuff [email protected] is installed into a global node_modules
472 silly build [email protected]
473 info linkStuff [email protected]
474 silly linkStuff [email protected] has /usr/lib/node_modules/solsa/node_modules as its parent node_modules
475 silly linkStuff [email protected] is part of a global install
476 silly linkStuff [email protected] is installed into a global node_modules
477 silly build [email protected]
478 info linkStuff [email protected]
479 silly linkStuff [email protected] has /usr/lib/node_modules/solsa/node_modules as its parent node_modules
480 silly linkStuff [email protected] is part of a global install
481 silly linkStuff [email protected] is installed into a global node_modules
482 silly build [email protected]
483 info linkStuff [email protected]
484 silly linkStuff [email protected] has /usr/lib/node_modules/solsa/node_modules as its parent node_modules
485 silly linkStuff [email protected] is part of a global install
486 silly linkStuff [email protected] is installed into a global node_modules
487 silly build [email protected]
488 info linkStuff [email protected]
489 silly linkStuff [email protected] has /usr/lib/node_modules/solsa/node_modules as its parent node_modules
490 silly linkStuff [email protected] is part of a global install
491 silly linkStuff [email protected] is installed into a global node_modules
492 silly build [email protected]
493 info linkStuff [email protected]
494 silly linkStuff [email protected] has /usr/lib/node_modules/solsa/node_modules as its parent node_modules
495 silly linkStuff [email protected] is part of a global install
496 silly linkStuff [email protected] is installed into a global node_modules
497 silly build [email protected]
498 info linkStuff [email protected]
499 silly linkStuff [email protected] has /usr/lib/node_modules/solsa/node_modules as its parent node_modules
500 silly linkStuff [email protected] is part of a global install
501 silly linkStuff [email protected] is installed into a global node_modules
502 silly build [email protected]
503 info linkStuff [email protected]
504 silly linkStuff [email protected] has /usr/lib/node_modules/solsa/node_modules as its parent node_modules
505 silly linkStuff [email protected] is part of a global install
506 silly linkStuff [email protected] is installed into a global node_modules
507 verbose linkBins [
507 verbose linkBins   { rimraf: './bin.js' },
507 verbose linkBins   '/usr/lib/node_modules/solsa/node_modules/.bin',
507 verbose linkBins   false
507 verbose linkBins ]
508 silly build [email protected]
509 info linkStuff [email protected]
510 silly linkStuff [email protected] has /usr/lib/node_modules/solsa/node_modules as its parent node_modules
511 silly linkStuff [email protected] is part of a global install
512 silly linkStuff [email protected] is installed into a global node_modules
513 verbose linkBins [
513 verbose linkBins   { 'js-yaml': 'bin/js-yaml.js' },
513 verbose linkBins   '/usr/lib/node_modules/solsa/node_modules/.bin',
513 verbose linkBins   false
513 verbose linkBins ]
514 silly build [email protected]
515 info linkStuff [email protected]
516 silly linkStuff [email protected] has /usr/lib/node_modules/solsa/node_modules as its parent node_modules
517 silly linkStuff [email protected] is part of a global install
518 silly linkStuff [email protected] is installed into a global node_modules
519 silly build [email protected]
520 info linkStuff [email protected]
521 silly linkStuff [email protected] has /usr/lib/node_modules/solsa/node_modules as its parent node_modules
522 silly linkStuff [email protected] is part of a global install
523 silly linkStuff [email protected] is installed into a global node_modules
524 silly build [email protected]
525 info linkStuff [email protected]
526 silly linkStuff [email protected] has /usr/lib/node_modules as its parent node_modules
527 silly linkStuff [email protected] is part of a global install
528 silly linkStuff [email protected] is installed into a global node_modules
529 silly linkStuff [email protected] is installed into the top-level global node_modules
530 verbose linkBins [ { solsa: './dist/bin/solsa.js' }, '/usr/bin', true ]
531 timing action:build Completed in 17ms
532 silly doSerial global-link 152
533 silly doParallel update-linked 0
534 silly doSerial install 152
535 silly install [email protected]
536 info lifecycle [email protected]~install: [email protected]
537 silly install [email protected]
538 info lifecycle [email protected]~install: [email protected]
539 silly install [email protected]
540 info lifecycle [email protected]~install: [email protected]
541 silly install [email protected]
542 info lifecycle [email protected]~install: [email protected]
543 silly install [email protected]
544 info lifecycle [email protected]~install: [email protected]
545 silly install [email protected]
546 info lifecycle [email protected]~install: [email protected]
547 silly install [email protected]
548 info lifecycle [email protected]~install: [email protected]
549 silly install [email protected]
550 info lifecycle [email protected]~install: [email protected]
551 silly install [email protected]
552 info lifecycle [email protected]~install: [email protected]
553 silly install [email protected]
554 info lifecycle [email protected]~install: [email protected]
555 silly install [email protected]
556 info lifecycle [email protected]~install: [email protected]
557 silly install [email protected]
558 info lifecycle [email protected]~install: [email protected]
559 silly install [email protected]
560 info lifecycle [email protected]~install: [email protected]
561 silly install [email protected]
562 info lifecycle [email protected]~install: [email protected]
563 silly install [email protected]
564 info lifecycle [email protected]~install: [email protected]
565 silly install [email protected]
566 info lifecycle [email protected]~install: [email protected]
567 silly install [email protected]
568 info lifecycle [email protected]~install: [email protected]
569 silly install [email protected]
570 info lifecycle [email protected]~install: [email protected]
571 silly install [email protected]
572 info lifecycle [email protected]~install: [email protected]
573 timing action:install Completed in 2ms
574 silly doSerial postinstall 152
575 silly postinstall [email protected]
576 info lifecycle [email protected]~postinstall: [email protected]
577 silly postinstall [email protected]
578 info lifecycle [email protected]~postinstall: [email protected]
579 silly postinstall [email protected]
580 info lifecycle [email protected]~postinstall: [email protected]
581 silly postinstall [email protected]
582 info lifecycle [email protected]~postinstall: [email protected]
583 silly postinstall [email protected]
584 info lifecycle [email protected]~postinstall: [email protected]
585 silly postinstall [email protected]
586 info lifecycle [email protected]~postinstall: [email protected]
587 silly postinstall [email protected]
588 info lifecycle [email protected]~postinstall: [email protected]
589 silly postinstall [email protected]
590 info lifecycle [email protected]~postinstall: [email protected]
591 silly postinstall [email protected]
592 info lifecycle [email protected]~postinstall: [email protected]
593 silly postinstall [email protected]
594 info lifecycle [email protected]~postinstall: [email protected]
595 silly postinstall [email protected]
596 info lifecycle [email protected]~postinstall: [email protected]
597 silly postinstall [email protected]
598 info lifecycle [email protected]~postinstall: [email protected]
599 silly postinstall [email protected]
600 info lifecycle [email protected]~postinstall: [email protected]
601 silly postinstall [email protected]
602 info lifecycle [email protected]~postinstall: [email protected]
603 silly postinstall [email protected]
604 info lifecycle [email protected]~postinstall: [email protected]
605 silly postinstall [email protected]
606 info lifecycle [email protected]~postinstall: [email protected]
607 silly postinstall [email protected]
608 info lifecycle [email protected]~postinstall: [email protected]
609 silly postinstall [email protected]
610 info lifecycle [email protected]~postinstall: [email protected]
611 silly postinstall [email protected]
612 info lifecycle [email protected]~postinstall: [email protected]
613 verbose lifecycle [email protected]~postinstall: unsafe-perm in lifecycle false
614 verbose lifecycle [email protected]~postinstall: PATH: /usr/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/usr/lib/node_modules/solsa/node_modules/.bin:/usr/lib/node_modules/.bin:/usr/lib/go-1.10/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
615 verbose lifecycle [email protected]~postinstall: CWD: /usr/lib/node_modules/solsa
616 silly lifecycle [email protected]~postinstall: Args: [ '-c', 'tools/install-kustomize.sh' ]
617 silly lifecycle [email protected]~postinstall: Returned: code: 23  signal: null
618 info lifecycle [email protected]~postinstall: Failed to exec postinstall script
619 timing action:postinstall Completed in 1209ms
620 verbose unlock done using /root/.npm/_locks/staging-a072192f34a17023.lock for /usr/lib/node_modules/.staging
621 timing stage:rollbackFailedOptional Completed in 38ms
622 timing stage:runTopLevelLifecycles Completed in 3609ms
623 verbose stack Error: [email protected] postinstall: `tools/install-kustomize.sh`
623 verbose stack Exit status 23
623 verbose stack     at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
623 verbose stack     at EventEmitter.emit (events.js:210:5)
623 verbose stack     at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
623 verbose stack     at ChildProcess.emit (events.js:210:5)
623 verbose stack     at maybeClose (internal/child_process.js:1021:16)
623 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
624 verbose pkgid [email protected]
625 verbose cwd /root
626 verbose Linux 4.4.0-112-generic
627 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "-g" "solsa"
628 verbose node v12.11.1
629 verbose npm  v6.11.3
630 error code ELIFECYCLE
631 error errno 23
632 error [email protected] postinstall: `tools/install-kustomize.sh`
632 error Exit status 23
633 error Failed at the [email protected] postinstall script.
633 error This is probably not a problem with npm. There is likely additional logging output above.
634 verbose exit [ 23, true ]

ContainerizedService: VolumeMounts

Need to be able to support mounting secrets and configmaps as volumes

volumeMounts:
     - mountPath: /keystores
       name: kafka-keystore-volume
       readOnly: true
volumes:
   - name: kafka-keystore-volume
      secret:
     secretName: kafka-keystore

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.