I’d like to create a section of advanced configuration that is hidden by default.
This is a simple config yaml that does that:
---
apiVersion: kots.io/v1beta1
kind: Config
metadata:
name: config-sample
spec:
groups:
- name: simple_settings
title: Simple Configuration
description: Additional configuration options for normal users.
items:
- name: app_name
title: Application Name
type: text
default: MyApp
required: true
description: "The name of your application."
- name: admin_email
title: Admin Email
type: text
default: admin@example.com
required: true
description: "The email of the administrator for notifications."
- name: advanced_settings
title: Advanced settings (Expert only)
items:
- name: show_advanced
title: Show Advanced Configuration
type: bool
default: "0"
help_text: "Check to enable advanced configuration options."
- name: cache_size
title: Cache Size (MB)
type: text
default: "512"
required: true
description: "Set the size of the cache in megabytes."
when: repl{{ ConfigOptionEquals "show_advanced" "1" }}
- name: max_connections
title: Maximum Connections
type: text
default: "100"
required: true
description: "Maximum number of connections to the service."
when: repl{{ ConfigOptionEquals "show_advanced" "1" }}
- name: debug_mode
title: Enable Debug Mode
type: bool
default: false
required: false
description: "Enable detailed debugging logs for troubleshooting."
when: repl{{ ConfigOptionEquals "show_advanced" "1" }}
- name: advanced_option_1
title: Advanced Option 1
type: text
default: "default_value"
required: false
description: "Custom advanced option 1."
when: repl{{ ConfigOptionEquals "show_advanced" "1" }}
- name: advanced_option_2
title: Advanced Option 2
type: text
default: "default_value"
required: false
description: "Custom advanced option 2."
when: repl{{ ConfigOptionEquals "show_advanced" "1" }}
And produces the following config screen:
And once selected/expanded: