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:
Tips
To debug the configuration used by Jikkou, you can run the following command: jikkou config view --comments
or jikkou config view --debug3 - 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:
| Flag | Description |
|---|
--logger-level=<level> | Specify the log level verbosity. Valid values: TRACE, DEBUG, INFO, WARN, ERROR |
-h, --help | Show help message and exit |
-V, --version | Print 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.
| Command | Mode | Description |
|---|
| jikkou apply | FULL | Create, update, and delete resources to match the desired state |
| jikkou create | CREATE | Create only non-existing resources |
| jikkou update | UPDATE | Create new and update existing resources (no deletions) |
| jikkou delete | DELETE | Delete resources no longer described in definition files |
| jikkou patch | (explicit) | Reconcile with an explicitly specified mode |
| jikkou replace | | Delete and recreate all resources from scratch |
Inspect & Validate
| Command | Description |
|---|
| jikkou diff | Preview resource changes without applying them |
| jikkou get | Display one or many resources from the target platform |
| jikkou validate | Check resource definitions against all validation requirements |
| jikkou prepare | Render templates and apply transformations without validating |
System Management Commands
Configuration & Discovery Commands
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)
| Flag | Short | Default | Description |
|---|
--output | -o | YAML | Output format. Valid values: JSON, YAML |
--provider | | | Select 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
| Flag | Description |
|---|
--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 extensionsapi-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
| Flag | Default | Description |
|---|
--category | | Limit to extensions of the specified category |
--provider | | Limit to extensions of the specified provider |
--kind | | Limit 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
| Flag | Short | Default | Description |
|---|
--output | -o | WIDE | Output format. Valid values: JSON, YAML, WIDE |
Options inherited from parent commands
| Flag | Description |
|---|
--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
| Flag | Default | Description |
|---|
--api-group | | Limit to resources in the specified API group |
--verbs | | Limit to resources that support the specified verbs (comma-separated) |
Options inherited from parent commands
| Flag | Description |
|---|
--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.
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
| Flag | Short | Default | Description |
|---|
--files | -f | | Resource definition file or directory locations (one or more required) |
--file-name | -n | **/*.{yaml,yml} | Glob pattern to filter resource files when using directories |
--values-files | | | Template values file locations (one or more) |
--values-file-name | | **/*.{yaml,yml} | Glob pattern to filter values files |
--set-label | -l | | Set labels on resources (key=value, repeatable) |
--set-annotation | | | Set annotations on resources (key=value, repeatable) |
--set-value | -v | | Set template variables for the built-in Values object (key=value, repeatable) |
--selector | -s | | Selector expression for including or excluding resources |
--selector-match | | ALL | Selector matching strategy. Valid values: ALL, ANY, NONE |
--options | | | Controller configuration options (key=value, repeatable) |
--provider | | | Select a specific provider instance |
--output | -o | TEXT | Output format. Valid values: TEXT, COMPACT, JSON, YAML |
--pretty | | false | Pretty print JSON output |
--dry-run | | false | Execute command in dry-run mode (preview changes without applying) |
Options inherited from parent commands
| Flag | Description |
|---|
--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
Options inherited from parent commands
| Flag | Description |
|---|
--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
| Flag | Description |
|---|
--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
| Flag | Description |
|---|
--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
| Flag | Default | Description |
|---|
--config-file | | Path to a Jikkou configuration file |
--config-props | | Inline configuration properties as key=value pairs (repeatable) |
--config-props-file | | Path(s) to one or more configuration properties files (repeatable) |
--provider | | Name of the provider to which this configuration should be attached |
--config-prefix | | Prefix to apply to all configuration property keys |
Arguments
| Argument | Description |
|---|
context-name | (required) The name of the context to configure |
Options inherited from parent commands
| Flag | Description |
|---|
--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
| Argument | Description |
|---|
context-name | (required) The name of the context to switch to |
Options
This command has no specific options.
Options inherited from parent commands
| Flag | Description |
|---|
--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
| Flag | Default | Description |
|---|
--name | | The name of the context configuration to view (defaults to current context) |
--debug | false | Print configuration with the origin of each setting as comments |
--comments | false | Print configuration with human-written comments |
Options inherited from parent commands
| Flag | Description |
|---|
--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.
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
| Flag | Short | Default | Description |
|---|
--files | -f | | Resource definition file or directory locations (one or more required) |
--file-name | -n | **/*.{yaml,yml} | Glob pattern to filter resource files when using directories |
--values-files | | | Template values file locations (one or more) |
--values-file-name | | **/*.{yaml,yml} | Glob pattern to filter values files |
--set-label | -l | | Set labels on resources (key=value, repeatable) |
--set-annotation | | | Set annotations on resources (key=value, repeatable) |
--set-value | -v | | Set template variables for the built-in Values object (key=value, repeatable) |
--selector | -s | | Selector expression for including or excluding resources |
--selector-match | | ALL | Selector matching strategy. Valid values: ALL, ANY, NONE |
--options | | | Controller configuration options (key=value, repeatable) |
--provider | | | Select a specific provider instance |
--output | -o | TEXT | Output format. Valid values: TEXT, COMPACT, JSON, YAML |
--pretty | | false | Pretty print JSON output |
--dry-run | | false | Execute command in dry-run mode (preview changes without applying) |
Options inherited from parent commands
| Flag | Description |
|---|
--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.
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
| Flag | Short | Default | Description |
|---|
--files | -f | | Resource definition file or directory locations (one or more required) |
--file-name | -n | **/*.{yaml,yml} | Glob pattern to filter resource files when using directories |
--values-files | | | Template values file locations (one or more) |
--values-file-name | | **/*.{yaml,yml} | Glob pattern to filter values files |
--set-label | -l | | Set labels on resources (key=value, repeatable) |
--set-annotation | | | Set annotations on resources (key=value, repeatable) |
--set-value | -v | | Set template variables for the built-in Values object (key=value, repeatable) |
--selector | -s | | Selector expression for including or excluding resources |
--selector-match | | ALL | Selector matching strategy. Valid values: ALL, ANY, NONE |
--options | | | Controller configuration options (key=value, repeatable) |
--provider | | | Select a specific provider instance |
--output | -o | TEXT | Output format. Valid values: TEXT, COMPACT, JSON, YAML |
--pretty | | false | Pretty print JSON output |
--dry-run | | false | Execute command in dry-run mode (preview changes without applying) |
Options inherited from parent commands
| Flag | Description |
|---|
--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.
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
| Flag | Short | Default | Description |
|---|
--files | -f | | Resource definition file or directory locations (one or more required) |
--file-name | -n | **/*.{yaml,yml} | Glob pattern to filter resource files when using directories |
--values-files | | | Template values file locations (one or more) |
--values-file-name | | **/*.{yaml,yml} | Glob pattern to filter values files |
--set-label | -l | | Set labels on resources (key=value, repeatable) |
--set-annotation | | | Set annotations on resources (key=value, repeatable) |
--set-value | -v | | Set template variables for the built-in Values object (key=value, repeatable) |
--selector | -s | | Selector expression for including or excluding resources |
--selector-match | | ALL | Selector matching strategy. Valid values: ALL, ANY, NONE |
--options | | | Controller configuration options (key=value, repeatable) |
--provider | | | Select a specific provider instance |
--output | -o | YAML | Output format. Valid values: JSON, YAML |
--filter-resource-op | | | Filter resources by operation (comma-separated). Valid values: NONE, CREATE, DELETE, REPLACE, UPDATE |
--filter-change-op | | | Filter state changes by operation (comma-separated). Valid values: NONE, CREATE, DELETE, REPLACE, UPDATE |
--list | | false | Output resources as an ApiResourceChangeList |
Options inherited from parent commands
| Flag | Description |
|---|
--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
| Flag | Short | Default | Description |
|---|
--selector | -s | | Selector expression for including or excluding resources |
--selector-match | | ALL | Selector matching strategy. Valid values: ALL, ANY, NONE |
--output | -o | YAML | Output format. Valid values: JSON, YAML |
--list | | false | Output resources as a ResourceListObject |
--provider | | | Select 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
| Flag | Description |
|---|
--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 indicatorshealth 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
| Flag | Short | Default | Description |
|---|
--output | -o | YAML | Output format. Valid values: JSON, YAML |
--timeout-ms | | 2000 | Timeout in milliseconds for retrieving health indicators |
--provider | | | Select 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
| Flag | Description |
|---|
--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
| Flag | Short | Default | Description |
|---|
--mode | | | (required) The reconciliation mode. Valid values: CREATE, DELETE, UPDATE, FULL |
--files | -f | | Resource definition file or directory locations (one or more required) |
--file-name | -n | **/*.{yaml,yml} | Glob pattern to filter resource files when using directories |
--values-files | | | Template values file locations (one or more) |
--values-file-name | | **/*.{yaml,yml} | Glob pattern to filter values files |
--set-label | -l | | Set labels on resources (key=value, repeatable) |
--set-annotation | | | Set annotations on resources (key=value, repeatable) |
--set-value | -v | | Set template variables for the built-in Values object (key=value, repeatable) |
--selector | -s | | Selector expression for including or excluding resources |
--selector-match | | ALL | Selector matching strategy. Valid values: ALL, ANY, NONE |
--options | | | Controller configuration options (key=value, repeatable) |
--provider | | | Select a specific provider instance |
--output | -o | TEXT | Output format. Valid values: TEXT, COMPACT, JSON, YAML |
--pretty | | false | Pretty print JSON output |
--dry-run | | false | Execute command in dry-run mode (preview changes without applying) |
Options inherited from parent commands
| Flag | Description |
|---|
--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.
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
| Flag | Short | Default | Description |
|---|
--files | -f | | Resource definition file or directory locations (one or more required) |
--file-name | -n | **/*.{yaml,yml} | Glob pattern to filter resource files when using directories |
--values-files | | | Template values file locations (one or more) |
--values-file-name | | **/*.{yaml,yml} | Glob pattern to filter values files |
--set-label | -l | | Set labels on resources (key=value, repeatable) |
--set-annotation | | | Set annotations on resources (key=value, repeatable) |
--set-value | -v | | Set template variables for the built-in Values object (key=value, repeatable) |
--selector | -s | | Selector expression for including or excluding resources |
--selector-match | | ALL | Selector matching strategy. Valid values: ALL, ANY, NONE |
--options | | | Controller configuration options (key=value, repeatable) |
--provider | | | Select a specific provider instance |
--output | -o | YAML | Output format. Valid values: JSON, YAML |
Options inherited from parent commands
| Flag | Description |
|---|
--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.
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
| Flag | Short | Default | Description |
|---|
--files | -f | | Resource definition file or directory locations (one or more required) |
--file-name | -n | **/*.{yaml,yml} | Glob pattern to filter resource files when using directories |
--values-files | | | Template values file locations (one or more) |
--values-file-name | | **/*.{yaml,yml} | Glob pattern to filter values files |
--set-label | -l | | Set labels on resources (key=value, repeatable) |
--set-annotation | | | Set annotations on resources (key=value, repeatable) |
--set-value | -v | | Set template variables for the built-in Values object (key=value, repeatable) |
--selector | -s | | Selector expression for including or excluding resources |
--selector-match | | ALL | Selector matching strategy. Valid values: ALL, ANY, NONE |
--options | | | Controller configuration options (key=value, repeatable) |
--provider | | | Select a specific provider instance |
--output | -o | TEXT | Output format. Valid values: TEXT, COMPACT, JSON, YAML |
--pretty | | false | Pretty print JSON output |
--dry-run | | false | Execute command in dry-run mode (preview changes without applying) |
Options inherited from parent commands
| Flag | Description |
|---|
--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
| Flag | Short | Default | Description |
|---|
--output | -o | YAML | Output format. Valid values: JSON, YAML |
Options inherited from parent commands
| Flag | Description |
|---|
--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.
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
| Flag | Short | Default | Description |
|---|
--files | -f | | Resource definition file or directory locations (one or more required) |
--file-name | -n | **/*.{yaml,yml} | Glob pattern to filter resource files when using directories |
--values-files | | | Template values file locations (one or more) |
--values-file-name | | **/*.{yaml,yml} | Glob pattern to filter values files |
--set-label | -l | | Set labels on resources (key=value, repeatable) |
--set-annotation | | | Set annotations on resources (key=value, repeatable) |
--set-value | -v | | Set template variables for the built-in Values object (key=value, repeatable) |
--selector | -s | | Selector expression for including or excluding resources |
--selector-match | | ALL | Selector matching strategy. Valid values: ALL, ANY, NONE |
--options | | | Controller configuration options (key=value, repeatable) |
--provider | | | Select a specific provider instance |
--output | -o | TEXT | Output format. Valid values: TEXT, COMPACT, JSON, YAML |
--pretty | | false | Pretty print JSON output |
--dry-run | | false | Execute command in dry-run mode (preview changes without applying) |
Options inherited from parent commands
| Flag | Description |
|---|
--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.
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
| Flag | Short | Default | Description |
|---|
--files | -f | | Resource definition file or directory locations (one or more required) |
--file-name | -n | **/*.{yaml,yml} | Glob pattern to filter resource files when using directories |
--values-files | | | Template values file locations (one or more) |
--values-file-name | | **/*.{yaml,yml} | Glob pattern to filter values files |
--set-label | -l | | Set labels on resources (key=value, repeatable) |
--set-annotation | | | Set annotations on resources (key=value, repeatable) |
--set-value | -v | | Set template variables for the built-in Values object (key=value, repeatable) |
--selector | -s | | Selector expression for including or excluding resources |
--selector-match | | ALL | Selector matching strategy. Valid values: ALL, ANY, NONE |
--options | | | Controller configuration options (key=value, repeatable) |
--provider | | | Select a specific provider instance |
--output | -o | YAML | Output format. Valid values: JSON, YAML |
Options inherited from parent commands
| Flag | Description |
|---|
--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
This Action additionally supports the following inputs :
| Property | Default | Description |
|---|
jikkou_version | latest | The version of Jikkou CLI to install. A value of latest will install the latest version of Jikkou CLI. |
jikkou_config | | The path to the Jikkou CLI config file. If set, Jikkou CLI will be configured through the JIKKOUCONFIG environment variable. |