This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Jikkou CLI

Complete guide to the Jikkou command-line interface.

Hands-on: Try the Jikkou: Get Started tutorials.

The Jikkou CLI (jikkou) is the primary interface for managing infrastructure resources. This section covers everything you need to use the CLI effectively:

  • Overview — Global options, version check, and shell tab-completion
  • Configuration — Contexts, configuration files, and HOCON settings
  • Commands — Complete reference for every command
  • Automating — CI/CD integration with GitHub Actions

1 - Overview

Global options, version information, and shell tab-completion.

The command line interface to Jikkou is the jikkou command, which accepts a variety of subcommands such as jikkou apply or jikkou validate.

To view a list of the commands available in your current Jikkou version, run jikkou with no additional arguments:

Usage: 
jikkou [-hV] [--logger-level=<level>] [COMMAND]


Jikkou CLI:: A command-line client designed to provide an efficient and easy way to manage, automate, and provision resources.

Find more information at: https://www.jikkou.io/.

OPTIONS:

  -h, --help      Show this help message and exit.
      --logger-level=<level>
                  Specify the log level verbosity to be used while running a command.
                  Valid level values are: TRACE, DEBUG, INFO, WARN, ERROR.
                  For example, `--logger-level=INFO`
  -V, --version   Print version information and exit.

CORE COMMANDS:
  apply                     Update the resources as described by the resource definition files.
  create                    Create resources from the resource definition files (only non-existing resources will be created).
  delete                    Delete resources that are no longer described by the resource definition files.
  diff                      Show resource changes required by the current resource definitions.
  get                       Display one or many specific resources.
  patch                     Execute all changes for the specified reconciliation mode.
  prepare                   Prepare the resource definition files for validation.
  replace                   Replace all resources.
  update                    Create or update resources from the resource definition files
  validate                  Check whether the resources definitions meet all validation requirements.

SYSTEM MANAGEMENT COMMANDS:
  action                    List/execute actions.
  health                    Print or describe health indicators.

ADDITIONAL COMMANDS:
  api-extensions            Print the supported API extensions
  api-resources             Print the supported API resources
  config                    Sets or retrieves the configuration of this client
  generate-completion       Generate bash/zsh completion script for jikkou.
  help                      Display help information about the specified command.

See 'jikkou --help' for more information about a command.

(The output from your current Jikkou version may be different than the above example.)

For detailed options and usage examples for each command, see the Commands Reference.

Checking Jikkou Version

Run the jikkou --version to display your current installation version:

Jikkou version "0.37.0" 2026-02-17
JVM: 25.0.1 (GraalVM Community Substrate VM 25.0.1+8)

Shell Tab-completion

It is recommended to install the bash/zsh completion script jikkou_completion.

The completion script can be downloaded from the project Github repository:

wget https://raw.githubusercontent.com/streamthoughts/jikkou/main/jikkou_completion -O jikkou_completion

or alternatively, you can run the following command to generate it.

source <(jikkou generate-completion)

2 - Configuration

Contexts, configuration files, and HOCON settings.

Configuration

To set up the configuration settings used by Jikkou CLI, you will need create a jikkou config file, which is created automatically when you create a configuration context using:

jikkou config set-context <context-name> [--config-file=<config-file>] [--config-props=<config-value>]

By default, the configuration of jikkou is located under the path $HOME/.jikkou/config.

This jikkou config file defines all the contexts that can be used by jikkou CLI.

For example, below is the config file created during the Getting Started.

{
  "currentContext": "localhost",
  "localhost": {
    "configFile": null,
    "configProps": {
      "provider.kafka.client.bootstrap.servers": "localhost:9092"
    }
  }
}

Most of the time, a context does not directly contain the configuration properties to be used, but rather points to a specific HOCON (Human-Optimized Config Object Notation) through the configFile property.

Then, the configProps allows you to override some of the property define by this file.

In addition, if no configuration file path is specified, Jikkou will lookup for an application.conf to those following locations:

  • ./application.conf
  • $HOME/.jikkou/application.conf

Finally, Jikkou always fallback to a reference.conf file that you can use as a template to define your own configuration.

reference.conf:

jikkou {

  # Configure Jikkou Proxy Mode
  # proxy {
  #  url = "http://localhost:8080"
  # }

  # Configure Extension Providers
  extension {
  }

  # Core
  provider.core {
    enabled = true
  }
  # Apache Kafka Provider
  provider.kafka {
    enabled = true
    type = io.streamthoughts.jikkou.kafka.KafkaExtensionProvider
    config = {
      # The default Kafka Client configuration
      client {
        bootstrap.servers = "localhost:9092"
        bootstrap.servers = ${?JIKKOU_DEFAULT_KAFKA_BOOTSTRAP_SERVERS}
      }

      brokers {
        # If 'True'
        waitForEnabled = true
        waitForEnabled = ${?JIKKOU_KAFKA_BROKERS_WAIT_FOR_ENABLED}
        # The minimal number of brokers that should be alive for the CLI stops waiting.
        waitForMinAvailable = 1
        waitForMinAvailable = ${?JIKKOU_KAFKA_BROKERS_WAIT_FOR_MIN_AVAILABLE}
        # The amount of time to wait before verifying that brokers are available.
        waitForRetryBackoffMs = 1000
        waitForRetryBackoffMs = ${?JIKKOU_KAFKA_BROKERS_WAIT_FOR_RETRY_BACKOFF_MS}
        # Wait until brokers are available or this timeout is reached.
        waitForTimeoutMs = 60000
        waitForTimeoutMs = ${?JIKKOU_KAFKA_BROKERS_WAIT_FOR_TIMEOUT_MS}
      }
    }
  }
  # Schema Registry Provider
  provider.schemaregistry {
    enabled = true
    type = io.streamthoughts.jikkou.schema.registry.SchemaRegistryExtensionProvider
    config = {
      url = "http://localhost:8081"
      url = ${?JIKKOU_DEFAULT_SCHEMA_REGISTRY_URL}
    }
  }

  # The default custom transformations to apply on any resources.
  transformations = []

  # The default custom validations to apply on any resources.
  validations = [
    {
      name = "topicMustHaveValidName"
      type = io.streamthoughts.jikkou.kafka.validation.TopicNameRegexValidation
      priority = 100
      config = {
        topicNameRegex = "[a-zA-Z0-9\\._\\-]+"
        topicNameRegex = ${?VALIDATION_DEFAULT_TOPIC_NAME_REGEX}
      }
    },
    {
      name = "topicMustHavePartitionsEqualsOrGreaterThanOne"
      type = io.streamthoughts.jikkou.kafka.validation.TopicMinNumPartitionsValidation
      priority = 100
      config = {
        topicMinNumPartitions = 1
        topicMinNumPartitions = ${?VALIDATION_DEFAULT_TOPIC_MIN_NUM_PARTITIONS}
      }
    },
    {
      name = "topicMustHaveReplicasEqualsOrGreaterThanOne"
      type = io.streamthoughts.jikkou.kafka.validation.TopicMinReplicationFactorValidation
      priority = 100
      config = {
        topicMinReplicationFactor = 1
        topicMinReplicationFactor = ${?VALIDATION_DEFAULT_TOPIC_MIN_REPLICATION_FACTOR}
      }
    }
  ]
  # The default custom reporters to report applied changes.
  reporters = [
    # Uncomment following lines to enable default kafka reporter
    #    {
    #     name = "default"
    #      type = io.streamthoughts.jikkou.kafka.reporter.KafkaChangeReporter
    #      config = {
    #        event.source = "jikkou/cli"
    #        kafka = {
    #          topic.creation.enabled = true
    #          topic.creation.defaultReplicationFactor = 1
    #          topic.name = "jikkou-resource-change-event"
    #          client = ${jikkou.kafka.client} {
    #            client.id = "jikkou-reporter-producer"
    #          }
    #        }
    #      }
    #    }
  ]

  jinja {
    enableRecursiveMacroCalls = false
  }
}

Managing Contexts

For detailed usage of all configuration commands, see the Commands Reference:

3 - Commands

Comprehensive reference for all Jikkou CLI commands.

This section contains the complete reference for every Jikkou CLI command, including synopsis, options, usage examples, and related commands.

You can also run jikkou <command> --help from the terminal to view built-in help for any command.

Global Options

The following options are available on all commands:

FlagDescription
--logger-level=<level>Specify the log level verbosity. Valid values: TRACE, DEBUG, INFO, WARN, ERROR
-h, --helpShow help message and exit
-V, --versionPrint version information and exit

Core Commands

Commands for reconciling and inspecting resources against your target platform.

Reconciliation

These commands apply changes to your target platform based on resource definition files. Each command corresponds to a specific reconciliation mode.

CommandModeDescription
jikkou applyFULLCreate, update, and delete resources to match the desired state
jikkou createCREATECreate only non-existing resources
jikkou updateUPDATECreate new and update existing resources (no deletions)
jikkou deleteDELETEDelete resources no longer described in definition files
jikkou patch(explicit)Reconcile with an explicitly specified mode
jikkou replaceDelete and recreate all resources from scratch

Inspect & Validate

CommandDescription
jikkou diffPreview resource changes without applying them
jikkou getDisplay one or many resources from the target platform
jikkou validateCheck resource definitions against all validation requirements
jikkou prepareRender templates and apply transformations without validating

System Management Commands

CommandDescription
jikkou actionList and execute provider actions
jikkou healthPrint or describe health indicators for target environments
jikkou server-infoDisplay Jikkou API server information (proxy mode only)

Configuration & Discovery Commands

CommandDescription
jikkou configManage CLI configuration contexts
jikkou api-resourcesList the supported API resource types and their verbs
jikkou api-extensionsList and inspect registered API extensions

3.1 - jikkou action

List and execute actions.

Synopsis

The action command manages Jikkou actions. Actions are named operations that can be executed on the target platform. Like the get command, action uses dynamic subcommands based on the actions available from your configured providers.

Each action is registered as a subcommand under jikkou action, and has an execute subcommand to run it.

jikkou action <action-name> execute [flags]

Examples

# List all available actions (shown as subcommands in help)
jikkou action --help

# Execute an action
jikkou action KafkaConsumerGroupsResetOffsets execute --options topic=my-topic --options group=my-group

# Execute an action with YAML output
jikkou action KafkaConsumerGroupsResetOffsets execute -o YAML

# Execute an action targeting a specific provider
jikkou action KafkaConsumerGroupsResetOffsets execute --provider kafka-prod --options topic=my-topic

Options (execute subcommand)

FlagShortDefaultDescription
--output-oYAMLOutput format. Valid values: JSON, YAML
--providerSelect a specific provider instance

Additional options may be available depending on the action. These are dynamically registered based on the action’s ApiOptionSpec definitions. Use jikkou api-extensions get <action-name> to view options for a specific action.

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.2 - jikkou api-extensions

Print the supported API extensions.

Synopsis

The api-extensions command lists and inspects the API extensions registered in Jikkou. Extensions include resource collectors, transformations, validations, actions, health indicators, and controllers.

This command has two subcommands:

  • api-extensions list - List all extensions
  • api-extensions get - Get details about a specific extension

Subcommands

jikkou api-extensions list

Print a summary table of all supported API extensions.

jikkou api-extensions list [flags]

Examples

# List all extensions
jikkou api-extensions list

# List extensions of a specific category
jikkou api-extensions list --category Transformation

# List extensions from a specific provider
jikkou api-extensions list --provider kafka

# List extensions that support a specific resource kind
jikkou api-extensions list --kind KafkaTopic

Options

FlagDefaultDescription
--categoryLimit to extensions of the specified category
--providerLimit to extensions of the specified provider
--kindLimit to extensions that support the specified resource kind

jikkou api-extensions get

Print detailed information about a specific API extension, including its title, description, configuration options, and usage examples.

jikkou api-extensions get <name> [flags]

Examples

# Get details about an extension in WIDE format (default)
jikkou api-extensions get KafkaTopicMaxRetentionMs

# Get details in JSON format
jikkou api-extensions get KafkaTopicMaxRetentionMs -o JSON

# Get details in YAML format
jikkou api-extensions get KafkaTopicMaxRetentionMs -o YAML

Options

FlagShortDefaultDescription
--output-oWIDEOutput format. Valid values: JSON, YAML, WIDE

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.3 - jikkou api-resources

Print the supported API resources.

Synopsis

List the API resources supported by the Jikkou CLI or Jikkou API Server (in proxy mode). This command shows the resource name, short names, API version, kind, and supported verbs for each resource type.

Use this command to discover which resource types are available with your current configuration and providers.

jikkou api-resources [flags]

Examples

# List all available API resources
jikkou api-resources

# List resources for a specific API group
jikkou api-resources --api-group kafka.jikkou.io

# List resources that support specific verbs
jikkou api-resources --verbs LIST,GET

# List resources that support CREATE
jikkou api-resources --verbs CREATE

# Combine filters
jikkou api-resources --api-group kafka.jikkou.io --verbs LIST

Sample output

NAME               SHORTNAMES   APIVERSION               KIND                  VERBS
kafkatopics        kt           kafka.jikkou.io/v1beta2  KafkaTopic            CREATE, DELETE, GET, LIST, UPDATE
kafkaconsumergroups              kafka.jikkou.io/v1beta2  KafkaConsumerGroup    DELETE, GET, LIST

Options

FlagDefaultDescription
--api-groupLimit to resources in the specified API group
--verbsLimit to resources that support the specified verbs (comma-separated)

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.4 - jikkou apply

Update the resources aand as described by the resource definition files.

Synopsis

Reconciles the target platform so that the resources match the resource definition files passed as arguments. This command uses the FULL reconciliation mode, meaning it will create, update, and delete resources as needed to match the desired state defined in your resource files.

jikkou apply [flags]

Examples

# Apply resources defined in a YAML file
jikkou apply -f my-resources.yaml

# Apply resources from a directory
jikkou apply -f ./resources/

# Apply resources with dry-run to preview changes
jikkou apply -f my-resources.yaml --dry-run

# Apply resources with specific selector
jikkou apply -f my-resources.yaml --selector 'metadata.name IN (my-topic)'

# Apply resources with template values
jikkou apply -f my-resources.yaml --values-files values.yaml

# Apply with inline template variable
jikkou apply -f my-resources.yaml -v topicName=my-topic

# Apply with custom labels
jikkou apply -f my-resources.yaml -l environment=production

# Apply with controller options
jikkou apply -f my-resources.yaml --options delete-orphans=true

# Apply targeting a specific provider
jikkou apply -f my-resources.yaml --provider kafka-prod

# Apply with JSON output format
jikkou apply -f my-resources.yaml -o JSON --pretty

Options

FlagShortDefaultDescription
--files-fResource definition file or directory locations (one or more required)
--file-name-n**/*.{yaml,yml}Glob pattern to filter resource files when using directories
--values-filesTemplate values file locations (one or more)
--values-file-name**/*.{yaml,yml}Glob pattern to filter values files
--set-label-lSet labels on resources (key=value, repeatable)
--set-annotationSet annotations on resources (key=value, repeatable)
--set-value-vSet template variables for the built-in Values object (key=value, repeatable)
--selector-sSelector expression for including or excluding resources
--selector-matchALLSelector matching strategy. Valid values: ALL, ANY, NONE
--optionsController configuration options (key=value, repeatable)
--providerSelect a specific provider instance
--output-oTEXTOutput format. Valid values: TEXT, COMPACT, JSON, YAML
--prettyfalsePretty print JSON output
--dry-runfalseExecute command in dry-run mode (preview changes without applying)

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.5 - jikkou config

Sets or retrieves the configuration of this client.

Synopsis

The config command manages Jikkou CLI configuration contexts. A context defines the configuration settings (config file path, inline properties, provider bindings) used when running Jikkou commands.

Configuration is stored in the Jikkou config file, located by default at $HOME/.jikkou/config.

Subcommands

CommandDescription
jikkou config set-contextConfigure a context with the provided arguments
jikkou config get-contextsList all configured contexts
jikkou config current-contextDisplay the current context
jikkou config use-contextSwitch to a specified context
jikkou config viewShow merged configuration settings

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.6 - jikkou config current-context

Display the current context.

Synopsis

Displays the current context used by Jikkou CLI, including the configuration file path and inline configuration properties associated with it.

jikkou config current-context

Examples

# Show the current context
$ jikkou config current-context
Using context 'localhost'

 KEY          VALUE
 ConfigFile
 ConfigProps  {"provider.kafka.config.client.bootstrap.servers":"localhost:9092"}

Options

This command has no specific options.

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.7 - jikkou config get-contexts

List all configured contexts.

Synopsis

Get all contexts defined in the Jikkou config file. The current context is marked with an asterisk (*).

jikkou config get-contexts

Examples

# List all contexts
$ jikkou config get-contexts

 NAME
 localhost *
 development
 staging
 production

Options

This command has no specific options.

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.8 - jikkou config set-context

Configure a context with the provided arguments.

Synopsis

Configures the specified context with the provided arguments. A context stores a reference to a configuration file and/or inline configuration properties. If the context already exists, it will be updated.

After setting a context, use jikkou config use-context to switch to it.

jikkou config set-context <context-name> [flags]

Examples

# Create a context with inline Kafka bootstrap server
jikkou config set-context localhost \
  --config-props=provider.kafka.config.client.bootstrap.servers=localhost:9092

# Create a context pointing to a configuration file
jikkou config set-context production --config-file=/path/to/production.conf

# Create a context with a properties file
jikkou config set-context staging --config-props-file=/path/to/staging.properties

# Create a context with provider-scoped properties
jikkou config set-context dev \
  --provider kafka \
  --config-props=client.bootstrap.servers=kafka-dev:9092

# Create a context with a config prefix
jikkou config set-context dev \
  --config-prefix=provider.kafka.config \
  --config-props=client.bootstrap.servers=kafka-dev:9092

Options

FlagDefaultDescription
--config-filePath to a Jikkou configuration file
--config-propsInline configuration properties as key=value pairs (repeatable)
--config-props-filePath(s) to one or more configuration properties files (repeatable)
--providerName of the provider to which this configuration should be attached
--config-prefixPrefix to apply to all configuration property keys

Arguments

ArgumentDescription
context-name(required) The name of the context to configure

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.9 - jikkou config use-context

Switch to a specified context.

Synopsis

Configures Jikkou to use the specified context. All subsequent commands will use the configuration associated with this context.

jikkou config use-context <context-name>

Examples

# Switch to the production context
$ jikkou config use-context production
Using context 'production'

# If already using the specified context
$ jikkou config use-context production
Already using context production

Arguments

ArgumentDescription
context-name(required) The name of the context to switch to

Options

This command has no specific options.

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.10 - jikkou config view

Show merged configuration settings.

Synopsis

Show the merged Jikkou configuration settings for the current context (or a named context). The configuration is rendered in HOCON format, showing all resolved values from the config file, inline properties, and defaults.

Use --debug to see the origin of each setting, or --comments to include human-written comments from the configuration files.

jikkou config view [flags]

Examples

# View the current configuration
jikkou config view

# View configuration for a specific context
jikkou config view --name production

# View configuration with origin comments (useful for debugging)
jikkou config view --debug

# View configuration with human-written comments
jikkou config view --comments

Options

FlagDefaultDescription
--nameThe name of the context configuration to view (defaults to current context)
--debugfalsePrint configuration with the origin of each setting as comments
--commentsfalsePrint configuration with human-written comments

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.11 - jikkou create

Create resources from the resource definition files (only non-existing resources will be created).

Synopsis

Reconcile the target platform by creating all non-existing resources that are described by the resource definition files passed as arguments. This command uses the CREATE reconciliation mode, meaning only new resources will be created. Existing resources will not be updated or deleted.

jikkou create [flags]

Examples

# Create resources defined in a YAML file
jikkou create -f my-resources.yaml

# Preview what would be created
jikkou create -f my-resources.yaml --dry-run

# Create resources from a directory
jikkou create -f ./resources/

# Create resources with template values
jikkou create -f my-resources.yaml --values-files values.yaml

# Create resources targeting a specific provider
jikkou create -f my-resources.yaml --provider kafka-dev

Options

FlagShortDefaultDescription
--files-fResource definition file or directory locations (one or more required)
--file-name-n**/*.{yaml,yml}Glob pattern to filter resource files when using directories
--values-filesTemplate values file locations (one or more)
--values-file-name**/*.{yaml,yml}Glob pattern to filter values files
--set-label-lSet labels on resources (key=value, repeatable)
--set-annotationSet annotations on resources (key=value, repeatable)
--set-value-vSet template variables for the built-in Values object (key=value, repeatable)
--selector-sSelector expression for including or excluding resources
--selector-matchALLSelector matching strategy. Valid values: ALL, ANY, NONE
--optionsController configuration options (key=value, repeatable)
--providerSelect a specific provider instance
--output-oTEXTOutput format. Valid values: TEXT, COMPACT, JSON, YAML
--prettyfalsePretty print JSON output
--dry-runfalseExecute command in dry-run mode (preview changes without applying)

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.12 - jikkou delete

Delete resources that are no longer described by the resource definition files.

Synopsis

Reconcile the target platform by deleting all existing resources that are no longer described by the resource definition files passed as arguments. This command uses the DELETE reconciliation mode, meaning only deletions will be performed. No resources will be created or updated.

jikkou delete [flags]

Examples

# Delete resources no longer defined in a YAML file
jikkou delete -f my-resources.yaml

# Preview what would be deleted
jikkou delete -f my-resources.yaml --dry-run

# Delete resources from a directory
jikkou delete -f ./resources/

# Delete with selector to target specific resources
jikkou delete -f my-resources.yaml -s 'metadata.name IN (old-topic)'

# Delete resources targeting a specific provider
jikkou delete -f my-resources.yaml --provider kafka-dev

Options

FlagShortDefaultDescription
--files-fResource definition file or directory locations (one or more required)
--file-name-n**/*.{yaml,yml}Glob pattern to filter resource files when using directories
--values-filesTemplate values file locations (one or more)
--values-file-name**/*.{yaml,yml}Glob pattern to filter values files
--set-label-lSet labels on resources (key=value, repeatable)
--set-annotationSet annotations on resources (key=value, repeatable)
--set-value-vSet template variables for the built-in Values object (key=value, repeatable)
--selector-sSelector expression for including or excluding resources
--selector-matchALLSelector matching strategy. Valid values: ALL, ANY, NONE
--optionsController configuration options (key=value, repeatable)
--providerSelect a specific provider instance
--output-oTEXTOutput format. Valid values: TEXT, COMPACT, JSON, YAML
--prettyfalsePretty print JSON output
--dry-runfalseExecute command in dry-run mode (preview changes without applying)

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.13 - jikkou diff

Show resource changes required by the current resource definitions.

Synopsis

Generates a speculative reconciliation plan, showing the resource changes Jikkou would apply to reconcile the resource definitions. This command does not actually perform the reconciliation actions.

Use diff to preview what changes would be made before running apply, create, update, or delete.

jikkou diff [flags]

Examples

# Show changes required by a resource definition file
jikkou diff -f my-resources.yaml

# Show only resources that would be created
jikkou diff -f my-resources.yaml --filter-resource-op CREATE

# Show only resources that would be created or deleted
jikkou diff -f my-resources.yaml --filter-resource-op CREATE,DELETE

# Filter changes to show only update operations
jikkou diff -f my-resources.yaml --filter-change-op UPDATE

# Output as a resource list
jikkou diff -f my-resources.yaml --list

# Output in JSON format
jikkou diff -f my-resources.yaml -o JSON

# Diff with a specific provider
jikkou diff -f my-resources.yaml --provider kafka-prod

# Diff with selector
jikkou diff -f my-resources.yaml -s 'metadata.name MATCHES (my-topic-.*)'

Options

FlagShortDefaultDescription
--files-fResource definition file or directory locations (one or more required)
--file-name-n**/*.{yaml,yml}Glob pattern to filter resource files when using directories
--values-filesTemplate values file locations (one or more)
--values-file-name**/*.{yaml,yml}Glob pattern to filter values files
--set-label-lSet labels on resources (key=value, repeatable)
--set-annotationSet annotations on resources (key=value, repeatable)
--set-value-vSet template variables for the built-in Values object (key=value, repeatable)
--selector-sSelector expression for including or excluding resources
--selector-matchALLSelector matching strategy. Valid values: ALL, ANY, NONE
--optionsController configuration options (key=value, repeatable)
--providerSelect a specific provider instance
--output-oYAMLOutput format. Valid values: JSON, YAML
--filter-resource-opFilter resources by operation (comma-separated). Valid values: NONE, CREATE, DELETE, REPLACE, UPDATE
--filter-change-opFilter state changes by operation (comma-separated). Valid values: NONE, CREATE, DELETE, REPLACE, UPDATE
--listfalseOutput resources as an ApiResourceChangeList

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.14 - jikkou get

Display one or many specific resources.

Synopsis

Display one or many resources of a given type from the target platform. The get command uses dynamic subcommands based on the resource types available from your configured providers. Use jikkou api-resources to discover the available resource types.

When a resource name is specified, it retrieves that specific resource. Otherwise, it lists all resources of the given type.

jikkou get <resource-type> [name] [flags]

Examples

# List all Kafka topics
jikkou get kafkatopics

# Get a specific Kafka topic by name
jikkou get kafkatopics my-topic

# List resources with a selector
jikkou get kafkatopics -s 'metadata.name MATCHES (my-.*)'

# List resources with JSON output
jikkou get kafkatopics -o JSON

# List resources as a ResourceListObject
jikkou get kafkatopics --list

# List resources with custom options
jikkou get kafkatopics --options describe-default-configs=true

# List resources targeting a specific provider
jikkou get kafkatopics --provider kafka-prod

# Discover available resource types
jikkou api-resources --verbs LIST,GET

Options

FlagShortDefaultDescription
--selector-sSelector expression for including or excluding resources
--selector-matchALLSelector matching strategy. Valid values: ALL, ANY, NONE
--output-oYAMLOutput format. Valid values: JSON, YAML
--listfalseOutput resources as a ResourceListObject
--providerSelect a specific provider instance

Additional options may be available depending on the resource type. These are dynamically registered based on the provider’s ApiOptionSpec definitions. Use jikkou api-extensions get <extension-name> to view options for a specific resource collector.

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.15 - jikkou health

Print or describe health indicators.

Synopsis

The health command provides information about the health of target environments. It has two subcommands:

  • health get - Retrieve health status for one or all indicators
  • health get-indicators - List all available health indicators

Subcommands

jikkou health get

Get health information for a specific indicator or all indicators.

jikkou health get <indicator|all> [flags]

Examples

# Get health for all indicators
jikkou health get all

# Get health for a specific indicator
jikkou health get kafka

# Get health with a custom timeout
jikkou health get all --timeout-ms 5000

# Get health in JSON format
jikkou health get all -o JSON

# Get health targeting a specific provider
jikkou health get kafka --provider kafka-prod

Options

FlagShortDefaultDescription
--output-oYAMLOutput format. Valid values: JSON, YAML
--timeout-ms2000Timeout in milliseconds for retrieving health indicators
--providerSelect a specific provider instance

The command exits with code 0 if the health status is UP, or a non-zero code otherwise.


jikkou health get-indicators

List all available health indicators. This command takes no options and displays the name and description of each registered health indicator.

jikkou health get-indicators

Examples

# List all health indicators
jikkou health get-indicators

Options

This subcommand has no specific options.

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.16 - jikkou patch

Execute all changes for the specified reconciliation mode.

Synopsis

Reconcile resources by applying all the changes as defined in the resource descriptor files passed through the arguments. Unlike the other reconciliation commands (apply, create, update, delete), patch requires you to explicitly specify the reconciliation mode using the --mode flag.

The patch command applies changes to existing resources on the platform by computing a diff between the current and desired states, then executing only the operations allowed by the selected mode.

jikkou patch --mode <mode> [flags]

Examples

# Patch resources using FULL reconciliation mode
jikkou patch --mode FULL -f my-resources.yaml

# Patch resources - create only
jikkou patch --mode CREATE -f my-resources.yaml

# Patch resources - update only
jikkou patch --mode UPDATE -f my-resources.yaml

# Preview patches without applying
jikkou patch --mode FULL -f my-resources.yaml --dry-run

# Patch with a specific provider
jikkou patch --mode UPDATE -f my-resources.yaml --provider kafka-prod

Options

FlagShortDefaultDescription
--mode(required) The reconciliation mode. Valid values: CREATE, DELETE, UPDATE, FULL
--files-fResource definition file or directory locations (one or more required)
--file-name-n**/*.{yaml,yml}Glob pattern to filter resource files when using directories
--values-filesTemplate values file locations (one or more)
--values-file-name**/*.{yaml,yml}Glob pattern to filter values files
--set-label-lSet labels on resources (key=value, repeatable)
--set-annotationSet annotations on resources (key=value, repeatable)
--set-value-vSet template variables for the built-in Values object (key=value, repeatable)
--selector-sSelector expression for including or excluding resources
--selector-matchALLSelector matching strategy. Valid values: ALL, ANY, NONE
--optionsController configuration options (key=value, repeatable)
--providerSelect a specific provider instance
--output-oTEXTOutput format. Valid values: TEXT, COMPACT, JSON, YAML
--prettyfalsePretty print JSON output
--dry-runfalseExecute command in dry-run mode (preview changes without applying)

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.17 - jikkou prepare

Prepare the resource definition files for validation.

Synopsis

Prepare the resource definition files specified through the command line arguments for validation. This command applies all configured transformations to the resource definitions and outputs the result, without running validation rules or performing reconciliation.

Use prepare to inspect how your resources look after template rendering and transformations, before validation and reconciliation happen.

jikkou prepare [flags]

Examples

# Prepare resources from a YAML file
jikkou prepare -f my-resources.yaml

# Prepare resources from a directory
jikkou prepare -f ./resources/

# Prepare with template values
jikkou prepare -f my-resources.yaml --values-files values.yaml

# Prepare with JSON output
jikkou prepare -f my-resources.yaml -o JSON

# Prepare with selector
jikkou prepare -f my-resources.yaml -s 'metadata.name IN (my-topic)'

# Prepare targeting a specific provider
jikkou prepare -f my-resources.yaml --provider kafka-prod

Options

FlagShortDefaultDescription
--files-fResource definition file or directory locations (one or more required)
--file-name-n**/*.{yaml,yml}Glob pattern to filter resource files when using directories
--values-filesTemplate values file locations (one or more)
--values-file-name**/*.{yaml,yml}Glob pattern to filter values files
--set-label-lSet labels on resources (key=value, repeatable)
--set-annotationSet annotations on resources (key=value, repeatable)
--set-value-vSet template variables for the built-in Values object (key=value, repeatable)
--selector-sSelector expression for including or excluding resources
--selector-matchALLSelector matching strategy. Valid values: ALL, ANY, NONE
--optionsController configuration options (key=value, repeatable)
--providerSelect a specific provider instance
--output-oYAMLOutput format. Valid values: JSON, YAML

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.18 - jikkou replace

Replace all resources.

Synopsis

Replaces resources by deleting and (re)creating all the resources as defined in the resource descriptor files passed through the arguments. Unlike apply, which performs incremental updates, replace performs a full replacement of resources: existing resources are deleted first and then recreated from scratch.

Use replace when you need to ensure resources exactly match the desired state without any leftover configuration from previous versions.

jikkou replace [flags]

Examples

# Replace resources defined in a YAML file
jikkou replace -f my-resources.yaml

# Preview what would be replaced
jikkou replace -f my-resources.yaml --dry-run

# Replace resources from a directory
jikkou replace -f ./resources/

# Replace resources targeting a specific provider
jikkou replace -f my-resources.yaml --provider kafka-prod

# Replace with JSON output
jikkou replace -f my-resources.yaml -o JSON --pretty

Options

FlagShortDefaultDescription
--files-fResource definition file or directory locations (one or more required)
--file-name-n**/*.{yaml,yml}Glob pattern to filter resource files when using directories
--values-filesTemplate values file locations (one or more)
--values-file-name**/*.{yaml,yml}Glob pattern to filter values files
--set-label-lSet labels on resources (key=value, repeatable)
--set-annotationSet annotations on resources (key=value, repeatable)
--set-value-vSet template variables for the built-in Values object (key=value, repeatable)
--selector-sSelector expression for including or excluding resources
--selector-matchALLSelector matching strategy. Valid values: ALL, ANY, NONE
--optionsController configuration options (key=value, repeatable)
--providerSelect a specific provider instance
--output-oTEXTOutput format. Valid values: TEXT, COMPACT, JSON, YAML
--prettyfalsePretty print JSON output
--dry-runfalseExecute command in dry-run mode (preview changes without applying)

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.19 - jikkou server-info

Display Jikkou API server information.

Synopsis

Print information about the Jikkou API server. This command is only available when Jikkou is configured in proxy mode (i.e., when jikkou.proxy.url is set in your configuration).

jikkou server-info [flags]

Examples

# Get server information in YAML format (default)
jikkou server-info

# Get server information in JSON format
jikkou server-info -o JSON

Options

FlagShortDefaultDescription
--output-oYAMLOutput format. Valid values: JSON, YAML

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.20 - jikkou update

Create or update resources from the resource definition files.

Synopsis

Reconcile the target platform by creating or updating resources that are described by the resource definition files passed as arguments. This command uses the UPDATE reconciliation mode, meaning new resources will be created and existing resources will be updated. Resources that exist on the platform but are not described in the resource files will not be deleted.

jikkou update [flags]

Examples

# Update resources defined in a YAML file
jikkou update -f my-resources.yaml

# Preview what would be created or updated
jikkou update -f my-resources.yaml --dry-run

# Update resources from a directory
jikkou update -f ./resources/

# Update resources with selector to filter specific resources
jikkou update -f my-resources.yaml -s 'metadata.name MATCHES (my-topic-.*)'

# Update resources targeting a specific provider
jikkou update -f my-resources.yaml --provider kafka-prod

Options

FlagShortDefaultDescription
--files-fResource definition file or directory locations (one or more required)
--file-name-n**/*.{yaml,yml}Glob pattern to filter resource files when using directories
--values-filesTemplate values file locations (one or more)
--values-file-name**/*.{yaml,yml}Glob pattern to filter values files
--set-label-lSet labels on resources (key=value, repeatable)
--set-annotationSet annotations on resources (key=value, repeatable)
--set-value-vSet template variables for the built-in Values object (key=value, repeatable)
--selector-sSelector expression for including or excluding resources
--selector-matchALLSelector matching strategy. Valid values: ALL, ANY, NONE
--optionsController configuration options (key=value, repeatable)
--providerSelect a specific provider instance
--output-oTEXTOutput format. Valid values: TEXT, COMPACT, JSON, YAML
--prettyfalsePretty print JSON output
--dry-runfalseExecute command in dry-run mode (preview changes without applying)

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

3.21 - jikkou validate

Check whether the resources definitions meet all validation requirements.

Synopsis

Validate the resource definition files specified through the command line arguments.

Validate runs all the user-defined validation requirements after performing any relevant resource transformations. Validation rules are applied only to resources matching the selectors passed through the command line arguments.

If validation passes, the command outputs the validated resources. If validation fails, the command prints the validation errors and exits with a non-zero status code.

jikkou validate [flags]

Examples

# Validate resources defined in a YAML file
jikkou validate -f my-resources.yaml

# Validate resources from a directory
jikkou validate -f ./resources/

# Validate with a selector to filter specific resources
jikkou validate -f my-resources.yaml -s 'metadata.name MATCHES (my-topic-.*)'

# Validate with template values
jikkou validate -f my-resources.yaml --values-files values.yaml

# Validate with JSON output
jikkou validate -f my-resources.yaml -o JSON

# Validate targeting a specific provider
jikkou validate -f my-resources.yaml --provider kafka-prod

Options

FlagShortDefaultDescription
--files-fResource definition file or directory locations (one or more required)
--file-name-n**/*.{yaml,yml}Glob pattern to filter resource files when using directories
--values-filesTemplate values file locations (one or more)
--values-file-name**/*.{yaml,yml}Glob pattern to filter values files
--set-label-lSet labels on resources (key=value, repeatable)
--set-annotationSet annotations on resources (key=value, repeatable)
--set-value-vSet template variables for the built-in Values object (key=value, repeatable)
--selector-sSelector expression for including or excluding resources
--selector-matchALLSelector matching strategy. Valid values: ALL, ANY, NONE
--optionsController configuration options (key=value, repeatable)
--providerSelect a specific provider instance
--output-oYAMLOutput format. Valid values: JSON, YAML

Options inherited from parent commands

FlagDescription
--logger-level=<level>Log level: TRACE, DEBUG, INFO, WARN, ERROR

SEE ALSO

4 - Automating

Integrate Jikkou into CI/CD pipelines.

4.1 - Automate Jikkou with GitHub Actions

Learn Jikkou Setup Github Action in your CI/CD Workflows

Setup Jikkou

The streamthoughts/setup-jikkou action is a JavaScript action that sets up Jikkou in your GitHub Actions workflow by:

  • Downloading a specific version of Jikkou CLI and adding it to the PATH.
  • Configuring JIKKOU CLI with a custom configuration file.

After you’ve used the action, subsequent steps in the same job can run arbitrary Jikkou commands using the GitHub Actions run syntax. This allows most Jikkou commands to work exactly like they do on your local command line.

Usage

steps:
  - uses: streamthoughts/setup-jikkou@v1

A specific version of Jikkou CLI can be installed:

steps:
  - uses: streamthoughts/setup-jikkou@v0.1.0
    with:
      jikkou_version: 0.37.0

A custom configuration file can be specified:

steps:
  - uses: streamthoughts/setup-jikkou@v0.1.0
    with:
      jikkou_config: ./config/jikkouconfig.json

Inputs

This Action additionally supports the following inputs :

PropertyDefaultDescription
jikkou_versionlatestThe version of Jikkou CLI to install. A value of latest will install the latest version of Jikkou CLI.
jikkou_configThe path to the Jikkou CLI config file. If set, Jikkou CLI will be configured through the JIKKOUCONFIG environment variable.