Carvel Logo

Schema Validations Cheat Sheet

Use CaseSyntax
Required string

#@schema/validation min_len=1
username: ""

Required integer

#@schema/validation min=1
replicas: 0

Required array

#@schema/validation min_len=1 
responseTypes:
- ""

Required map

#@schema/nullable
#@schema/validation not_null=True
credential:
  name: ""
  cloud: ""

Ensure string minimum length

#@schema/validation min_len=8
password: ""

Ensure string exact length

#@schema/validation min_len=8, max_len=8
password: ""

Ensure a min value

#@schema/validation min=3
replicas: 5

Ensure a max value

#@schema/validation max=5
replicas: 3

Ensure a value between min and max

#@schema/validation min=1, max=65535
port: 1024

Enumeration

#@schema/validation one_of=["aws", "azure", "vsphere"]
provider: ""

Exactly one is specified
(mutually exclusive config)

#@schema/validation one_not_null=["oidc", "ldap"]
config:
  #@schema/nullable
  oidc:
    client_id: “”
  #@schema/nullable
  ldap:
    host: “”

Conditionally run validations

#@ load("@ytt:assert", "assert")

#@ isLoadBalancer = lambda v: v["type"] == "LoadBalancer"
#@ assertNameGiven = ("be given", lambda v: assert.min_len(1).check(v["name"]))

#@data/values-schema
---
#@schema/validation assertNameGiven, when=isLoadBalancer
service:
  type: LoadBalancer
  name: ""

Custom description of valid value

#@ load("@ytt:assert", "assert")

#@schema/validation ("a non-blank name", assert.min_len(1))
username: ""

Disable validations flag

$ ytt ... --dangerous-data-values-disable-validation


(Help improve our docs: edit this page on GitHub)