https://github.com/cafjs/caf_deploy
CAF extra lib to deploy apps in a Kubernetes cluster
https://github.com/cafjs/caf_deploy
Last synced: 5 months ago
JSON representation
CAF extra lib to deploy apps in a Kubernetes cluster
- Host: GitHub
- URL: https://github.com/cafjs/caf_deploy
- Owner: cafjs
- Created: 2013-01-13T07:19:54.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2023-04-18T22:33:22.000Z (about 3 years ago)
- Last Synced: 2025-09-22T18:42:11.024Z (9 months ago)
- Language: JavaScript
- Homepage:
- Size: 192 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- Contributing: CONTRIBUTING.md
- License: LICENSE-2.0.txt
Awesome Lists containing this project
README
# Caf.js
Co-design cloud assistants with your web app and IoT devices.
See https://www.cafjs.com
## Library for Deploying Apps with Kubernetes
This repository contains a `Caf.js` lib to deploy applications using Kubernetes.
## Dependencies Warning
To eliminate expensive dependencies for apps in the workspace that do not need `caf_deploy`, the package `kubernetes-client@^8.3.6` has been declared as an optional dependency even though it is always needed.
Applications that depend on `caf_deploy` should also include `kubernetes-client@^8.3.6` in package.json as a normal dependence.
## API
See {@link module:caf_deploy/proxy_deploy}
See the `caf_turtles` application for an example.
## Configuration Example
See {@link module:caf_deploy/plug_deploy}
### framework.json
Default for Kubernetes deployment:
```
{
"module": "caf_deploy#plug",
"name": "deploy",
"description": "Shared plug to deploy apps in Kubernetes\n Properties: \n",
"env": {
"targetPaaS": "process.env.TARGET_PAAS||kubernetes",
"refreshInterval" : "process.env.REFRESH_INTERVAL||1000",
"useK8SConfig" : "process.env.USE_K8S_CONFIG||false",
"redis" : {
"k8SNamespace" : "process.env.REDIS_K8S_NAMESPACE||default",
"templateFile" : "process.env.REDIS_TEMPLATE_FILE||kubernetes.redis.mus",
"image" : "process.env.REDIS_IMAGE||redis:6",
"isUntrusted": "process.env.IS_UNTRUSTED||false",
"cpus" : "process.env.REDIS_CPUS||0.02",
"memory" : "process.env.REDIS_MEMORY||64.0",
"cpusLimit" : "process.env.REDIS_CPUS_LIMIT||0.1",
"memoryLimit" : "process.env.REDIS_MEMORY_LIMIT||128.0"
},
"app" : {
"k8SNamespace" : "process.env.APP_K8S_NAMESPACE||default",
"templateFile" : "process.env.APP_TEMPLATE_FILE||kubernetes.app.mus",
"cpus" : "process.env.APP_CPUS||0.02",
"cpusLimit" : "process.env.APP_CPUS_LIMIT||0.1",
"args": "process.env.APP_ARGS||[]",
"memory" : "process.env.APP_MEMORY||96.0",
"memoryLimit" : "process.env.APP_MEMORY_LIMIT||128.0",
"storage" : "process.env.APP_STORAGE||16",
"storageLimit" : "process.env.APP_STORAGE_LIMIT||32",
"instances": "process.env.APP_INSTANCES||1",
"isDeployer": "process.env.APP_IS_DEPLOYER||false",
"isAccounts": "process.env.APP_IS_ACCOUNTS||false",
"isPeople": "process.env.APP_IS_PEOPLE||false",
"isUntrusted": "process.env.IS_UNTRUSTED||false",
"appSuffix" : "$._.env.appSuffix",
"services" :["redis"]
}
}
}
```
### ca.json
```
{
"module": "caf_deploy#plug_ca",
"name": "deploy",
"description": "Manages deployments for this CA.",
"env" : {
"maxRetries" : "$._.env.maxRetries",
"retryDelay" : "$._.env.retryDelay"
},
"components" : [
{
"module": "caf_deploy#proxy",
"name": "proxy",
"description": "Provides deployment API.",
"env" : {
}
}
]
}
```