@nbai/k10s v1.0.17
Project K10S
The Name
k10s works on top of k8s, to rollout/uninstall resources. More specifically it utilizes following software:
Note: you need all these binaries locatable in
PATHbefore you can use k10s
The Config
basePath: gs://<bucket-and-path-to-k10s>
cluster: <cluster-name>
namespaceVersion: <namespace-version>
globalSpecPlugins: []basePath
a gcs path that stores all assets and resources, see The Concepts section below.
cluster
name of the k8s cluster for resource identification purpose, see Resource section under The Concepts below.
namespaceVersion
verison of namespace asset, which will be used to create namespace if not exists.
The Concepts
Asset
Assets are proper named and versioned helm charts.
An Asset is stored in <base-path>/foreman/operator/assets/<asset-name>/releases/<asset-version>/
under the above path, there are always 2 files:
- chart.tgz
- schema.json
where schema.json is json schema of configurable values of chart.
Resource
Resources are combination of an asset and values.
asset:
type: gateway
release: 1.0.20
app:
...NOTE: object
apphas configurable values of the asset (helm chart with specific version) and will be validated against asset schema
resources are stored in <base-path>/foreman/operator/resources/<cluster-name>/<namespace>/<resource-name>.yaml
Install and Run
Install
yarn global add @nbai/k19s
Run
- make sure your
kubectlis configured to access the target clsuter - create a proper
~/.k10s.yamlconfig file.
k10s rollout <namespace>/<resource-name> -f resource.yaml
where resource.yaml contains the resource definition, if -f argument is not supplied, k10s will try to download and use from resource gcs path. k10s will always upload the resource to its path during rolling out.
k10s uninstall <namespace>/<resource-name>
k10s will uninstall all k8s objects installed perviously under the in the