Skip to content

Kroki

With Kroki, users can generate amazing graphs with various syntax types. When the Ansible stack detects any number of Kroki nodes in your inventory, it will automatically enable Kroki in the GitLab application settings as well. The application settings are not removed when you remove the Kroki nodes, in case you want to manage Kroki externally.

When enabled, a custom rule is added to the load balancer to forward all traffic for the /-/kroki path to the correct nodes.

Enabled by default: Kroki uses the existing _gitlab_session cookie to check with GitLab if the user is logged in. This is to prevent public access and usage of the Kroki graph engine.

The following relevant Ansible variables are available. It's not recommended you change these, but you can:

Name Default Description
kroki_docker_image "yuzutech/kroki:0.21.3" The docker image to use when deploying Kroki.
kroki_require_auth true Have the Kroki daemons check for a valid _gitlab_session cookie.

The following relevant Terraform variables are available:

Name Default Description
kroki_node_count 0 Number of Kroki nodes to create
kroki_instance_type "" Instance type of the Kroki node(s)
kroki_disk_type gp3 Optional
kroki_disk_size 50 Optional
kroki_disk_encrypt true Optional
kroki_disk_delete_on_termination true Optional
kroki_disk_kms_key_arn null Optional
kroki_data_disks [] Optional
kroki_iam_instance_policy_arns [] Optional

Most of these settings are entirely optional, or can be configured through default variables. The following example is enough to get started:

module "gitlab_cluster" {
  # [...]

  kroki_node_count    = 2
  kroki_instance_type = "t3a.medium"
}