Skip to content

CLI Reference | kapitan inventory

kapitan inventory

Renders the resulting inventory values for a specific target.

For example, rendering the inventory for the mysql target:

kapitan inventory -t mysql
click to expand output
__reclass__:
  environment: base
  name: mysql
  node: mysql
  timestamp: Wed Nov 23 23:19:28 2022
  uri: yaml_fs:///src/inventory/targets/examples/mysql.yml
applications: []
classes:
  - kapitan.kube
  - kapitan.generators.kubernetes
  - kapitan.generators.argocd
  - kapitan.generators.terraform
  - kapitan.generators.rabbitmq
  - kapitan.common
  - common
  - components.mysql
environment: base
exports: {}
parameters:
  _reclass_:
    environment: base
    name:
      full: mysql
      short: mysql
  components:
    mysql:
      config_maps:
        config:
          data:
            mysql.cnf:
              value: ignore-db-dir=lost+found
            mytemplate.cnf:
              template: components/mysql/mytemplate.cnf.j2
              values:
                mysql:
                  client:
                    port: 3306
                    socket: /var/run/mysqld/mysqld.sock
                  mysqld:
                    bind-address: 127.0.0.1
                    max_allowed_packet: 64M
                    thread_concurrency: 8
          mount: /etc/mysql/conf.d/
      env:
        MYSQL_DATABASE: ''
        MYSQL_PASSWORD:
          secretKeyRef:
            key: mysql-password
        MYSQL_ROOT_PASSWORD:
          secretKeyRef:
            key: mysql-root-password
        MYSQL_USER: ''
      image: mysql:5.7.28
      ports:
        mysql:
          service_port: 3306
      secrets:
        secrets:
          data:
            mysql-password:
              value: ?{plain:targets/mysql/mysql-password||randomstr|base64}
            mysql-root-password:
              value: ?{plain:targets/mysql/mysql-root-password||randomstr:32|base64}
          versioned: true
      type: statefulset
      volume_claims:
        datadir:
          spec:
            accessModes:
              - ReadWriteOnce
            resources:
              requests:
                storage: 10Gi
            storageClassName: standard
      volume_mounts:
        datadir:
          mountPath: /var/lib/mysql
  docs:
    - templates/docs/README.md
  generators:
    manifest:
      default_config:
        annotations:
          manifests.kapicorp.com/generated: 'true'
        service_account:
          create: false
        type: deployment
  kapitan:
    compile:
      - input_paths:
          - components/generators/kubernetes
        input_type: kadet
        output_path: manifests
        output_type: yml
      - input_params:
          function: generate_docs
          template_path: templates/docs/service_component.md.j2
        input_paths:
          - components/generators/kubernetes
        input_type: kadet
        output_path: docs
        output_type: plain
      - input_params:
          function: generate_pre_deploy
        input_paths:
          - components/generators/kubernetes
        input_type: kadet
        output_path: pre-deploy
        output_type: yml
      - input_paths:
          - components/generators/argocd
        input_type: kadet
        output_path: argocd
        output_type: yml
      - input_params:
          generator_root: resources.tf
        input_paths:
          - components/generators/terraform
        input_type: kadet
        output_path: terraform
        output_type: json
      - ignore_missing: true
        input_paths:
          - resources/state/mysql/.terraform.lock.hcl
        input_type: copy
        output_path: terraform/
      - input_paths:
          - components/generators/rabbitmq
        input_type: kadet
        output_path: rabbitmq
        output_type: yml
      - input_paths:
          - templates/docs/README.md
        input_type: jinja2
        output_path: docs
      - input_paths: []
        input_type: jinja2
        output_path: scripts
      - input_paths: []
        input_type: jsonnet
        output_path: manifests
        output_type: yml
    dependencies:
      - output_path: lib/kube.libsonnet
        source: https://raw.githubusercontent.com/bitnami-labs/kube-libsonnet/master/kube.libsonnet
        type: https
      - output_path: lib/kube-platforms.libsonnet
        source: https://raw.githubusercontent.com/bitnami-labs/kube-libsonnet/master/kube-platforms.libsonnet
        type: https
      - output_path: components/generators/kubernetes
        ref: master
        source: https://github.com/kapicorp/kapitan-reference.git
        subdir: components/generators/kubernetes
        type: git
      - output_path: components/generators/terraform
        ref: master
        source: https://github.com/kapicorp/kapitan-reference.git
        subdir: components/generators/terraform
        type: git
    vars:
      target: mysql
  manifests: []
  mysql:
    settings:
      client:
        port: 3306
        socket: /var/run/mysqld/mysqld.sock
      mysqld:
        bind-address: 127.0.0.1
        max_allowed_packet: 64M
        thread_concurrency: 8
  namespace: mysql
  scripts: []
  target_name: mysql

Flags

The table below is generated from Kapitan's argument parser at docs-build time, so it always matches the installed version. See also the global flags accepted by every command, and the .kapitan dotfile to set any of these permanently.

Flag Default Choices Description
--inventory-backend reclass reclass, reclass-rs, omegaconf Select the inventory backend to use (default=reclass)
--migrate False Migrate your inventory to your selected inventory backend.
--compose-target-name False Create same subfolder structure from inventory/targets inside compiled folder
--enable-class-wildcards False Enable glob pattern expansion in classes: lists (default: off). Patterns such as clusters., dev- and * are expanded to all matching class names discovered under inventory/classes/. This flag is intentionally opt-in: inventories that contain literal glob metacharacters in class names (e.g. config[html]) or Reclass references that include ? would be incorrectly treated as patterns if expansion were always on.
--target-name, -t set target name, default is all targets
--inventory-path ./inventory set inventory path, default is "./inventory"
--flat, -F False flatten nested inventory variables
--pattern, -p filter pattern (e.g. parameters.mysql.storage_class, or storage_class, or storage_*), default is ""
--verbose, -v False set verbose mode
--indent, -i 2 Indentation spaces for inventory output, default is 2
--topics show aggregated topics instead of target inventory
--multiline-string-style, -L double-quotes literal, folded, double-quotes set multiline string style to STYLE, default is 'double-quotes'
Share this page