Library and CLI used to generate Infrastructure as Code installable components composed from a catalog of modules.
npm i -g @cloudnativetoolkit/iascable
iascable build [-u {CATALOG_URL}] [-i {BOM_INPUT}] [--name {COMPONENT_NAME}]
The Bill Of Material (BOM) yaml has been modeled after a Kubernetes Custom Resource Definition. A BOM can be provided as input to the CLI and will also be generated when using the CLI interactively.
apiVersion: cloud.ibm.com/v1alpha1
kind: BillOfMaterial
metadata:
name: common-services
spec:
modules:
- name: key-protect
- name: ibm-object-storage
- name: ibm-activity-tracker
- name: sysdig
- name: ibm-resource-group
- name: logdna
- name: ibm-access-group
- name: ibm-vpc
- name: scc-collector
dependencies:
- name: subnets
ref: scc-subnets
- name: hpcs
variables:
- name: provision
value: false
- name: ibm-vpc-subnets
alias: scc-subnets
variables:
- name: subnet_count
value: 1
- name: subnet_label
value: scc
variables:
- name: resource_group_name
value: test
npm t
: Run test suitenpm start
: Runnpm run build
in watch modenpm run test:watch
: Run test suite in interactive watch modenpm run test:prod
: Run linting and generate coveragenpm run build
: Generate bundles and typings, create docsnpm run lint
: Lints codenpm run commit
: Commit using conventional commit style (husky will tell you to use it if you haven't ๐)