Skip to main content

Package Manifest

Properties​

NameTypeRequired / DefaultDescription
scopestring"Namespaced"One of: Cluster, Namespaced
namestringrequiredName of the package
shortDescriptionstring
longDescriptionstring
defaultNamespacestringrequired
references[]PackageReference
iconUrlstring
helmHelmManifest
manifests[]PlainManifest
valueDefinitionsmap[string]ValueDefinition
transformations[]TransformationDefinition
transitiveResources[]TypedLocalObjectReference
entrypoints[]PackageEntrypoint
dependencies[]Dependency
components[]Component

Subresources​

PackageReference​

NameTypeRequired / DefaultDescription
labelstringrequired
urlstringrequired

HelmManifest​

NameTypeRequired / DefaultDescription
repositoryUrlstringrequired
chartNamestringrequired
chartVersionstringrequired
valuesany JSON

PlainManifest​

NameTypeRequired / DefaultDescription
urlstringrequired
defaultNamespacestringoverrides the package-level defaultNamespace

ValueDefinition​

NameTypeRequired / DefaultDescription
typestringrequiredOne of: boolean, text, number, options
metadataValueDefinitionMetadata
defaultValuestring
options[]string
constrainsValueDefinitionConstraints
targetsValueDefinitionTarget

TransformationDefinition​

NameTypeRequired / DefaultDescription
sourceTransformationSourcerequired
targets[]ValueDefinitionTargetrequired

ValueDefinitionMetadata​

NameTypeRequired / DefaultDescription
labelform label to show on the UI
descriptionlonger description to show along side the form
hints[]stringcurrently unused

ValueDefinitionConstraints​

NameTypeRequired / DefaultDescription
requiredboolrequiredwhether this value must be specified. It may still be empty
minintminimum value for values with type number
maxintmaximum number for values with type number
minLengthintminimum length for values with type text
maxLengthintmaximum lenght for values with type text
patternstringregex pattern for validation

ValueDefinitionTarget​

NameTypeRequired / DefaultDescription
resourceTypedObjectReferencereference of a resource owned by this package
chartNamestringname of a helm chart managed by this package
patchPartialJsonPatchrequired
valueTemplatestring

Either resource or chartName must be specified.

PartialJsonPatch​

NameTypeRequired / DefaultDescription
opstringrequired
pathstringrequired

The value to create a complete JSON Patch is supplied by the controller. See https://jsonpatch.com/ for a complete reference.

TransformationSource​

NameTypeRequired / DefaultDescription
resourceTypedLocalObjectReferenceleave empty to reference the current package
pathstringrequiredJSON path to a property of the resource (reference)

PackageEntrypoint​

NameTypeRequired / DefaultDescription
namestring
serviceNamestringrequired
portint32required
localPortint32
schemestring

Dependency​

NameTypeRequired / DefaultDescription
namestringrequired
versionstringa semver constraint for this dependency

Component​

NameTypeRequired / DefaultDescription
namestringrequired
installedNamestringname suffix for the created Package
versionstringa semver constraint for this component
valuesmap[string]InlineValueConfigurationspecify values for this component

InlineValueConfiguration​

A stripped down variant of a package's value configuration that only supports directly specified values and no reference values.

NameTypeRequired / DefaultDescription
valuestringrequired

Complete Example​

package.yaml
name: example
scope: Namespaced
defaultNamespace: default
iconUrl: https://example.com/logo.jpeg
shortDescription: An example package for this documentation
longDescription: |
An extended description of this package.

Markdown is **supported**.
references:
- label: GitHub
url: https://github.com/example/example
entrypoints:
- name: ui
serviceName: example-ui
port: 443
localPort: 8443
scheme: https
helm:
repositoryUrl: https://charts.example.com/
chartName: example
chartVersion: v1.0.0
values:
config:
database:
driver: postgresql
manifests:
- url: https://github.com/example/example/releases/v1.0.0/example.yaml
dependencies:
- name: cloudnative-pg
version: '1.x.x'
components:
- name: postgresql
installedName: db
version: '>=1.0.0'
values:
enableSuperuserAccess:
value: 'true'
transitiveResources:
- apiVersion: v1
kind: Secret
name: db-app
valueDefinitions:
someConfigAttribute:
type: text
metadata:
label: Some text
description: Longer text
constraints:
required: true
minLength: 5
maxLength: 24
targets:
- chartName: example
patch:
op: add
path: /config/database/dbName
- resource:
apiVersion: v1
kind: ConfigMap
name: example
patch:
op: add
path: /data/DB_NAME
transformations:
- source:
path: '{ $.metadata.name }'
targets:
- chartName: example
patch:
op: add
path: /config/database/dbHost
valueTemplate: '"{{.}}-db-rw"'

JSON Schema​

An up to date JSON schema file is available at https://glasskube.dev/schemas/v1/package-manifest.json.