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.