* The example will print all service in default namespace and create mongo `Project` (Read more about project below) * Obtain cluster credentials: * Run `export CURRENT_CONTEXT=$(kubectl config current-context) && export CURRENT_CLUSTER=$(kubectl conf
npm install @codefresh-io/kube-integrationProject (Read more about project below)export CURRENT_CONTEXT=$(kubectl config current-context) && export CURRENT_CLUSTER=$(kubectl config view -o go-template="{{\$curr_context := \"$CURRENT_CONTEXT\" }}{{range .contexts}}{{if eq .name \$curr_context}}{{.context.cluster}}{{end}}{{end}}") && export KUBE_HOST=$(kubectl config view -o go-template="{{\$cluster_context := \"$CURRENT_CLUSTER\"}}{{range .clusters}}{{if eq .name \$cluster_context}}{{.cluster.server}}{{end}}{{end}}")export KUBE_CA_CERT=$(kubectl get secret -o go-template='{{index .data "ca.crt" }}' $(kubectl get sa default -o go-template="{{range .secrets}}{{.name}}{{end}}"))export KUBE_ACCOUNT_TOKEN=$(kubectl get secret -o go-template='{{index .data "token" }}' $(kubectl get sa default -o go-template="{{range .secrets}}{{.name}}{{end}}"))example.js#### Definition
Project is an abstraction of set of resources that together have applicative purpose.
At the moment, project must have at service, one service
#### Structure
```
{
selector,
namespace,
stauts,
resources,
name,
metadata
}
* Selector - Cluster logical name as represented in Codefresh
* Namespace - Namespace where the project exist
* Status - Status of the project ({type: String("SUCCESS", "FAILED", "WARNING", "IN_PROGRESS" ,"UNKNOWN")}){labels: Object, projectSelectors: Object, containers: Object[{image: String, name: String, status: Object[]}]}
* Resources - Set of resources that defined the project
* Metadata - additional data analyzed and aggregated from resources and from Codefresh other service if possible ().
#### Project API (REST Calls)
* GET /projects - returns an array of all projects with minimal information about the project/projects/:name
* GET - return specific project with full description/projects
* POST - create a project/projects/:name
* DELETE - delete a project (deletion means, delete all the resources)/projects/:name
* PUT - update project resources
#### Project API (As object)
* Evenets:
* ['SERVICE.ADDED', 'DEPLOYMENT.ADDED', 'REPLICASET.SET.ADDED', 'POD.SET.ADDED']
* Functions:
* setName(name: String) - Set the project name, project automatically sets his name when adding service
* getName - return the projects name
* getNamespace - return the projects namespace
* analyzeStatus - traverse all the current resources and analyze the project status
* setService(svc: Service) - set the projects service
* setDeployment(deploy: Deployment) - set the projects deployment
* setPods(pods: Pod || Pod[]) - set the projects pods
* setReplicaSets(rss: Replicaset || Replicaset[]) - set the projects
* toMinifiedJson - return minified representation of project ({name, namespace, selector, metadata, status}`)
* toJson - return full representation of the project