Skip to content
Unified Defense StackUnified Defense Stack
You're viewing docs for v1.8. Go to the latest

Package Metadata

Packages published to UDS Registry and consumed by other UDS products support a set of standard metadata annotations that improve discoverability and user experience across UDS products.

These annotations are defined under metadata.annotations in your zarf.yaml package config:

zarf.yaml
kind: ZarfPackageConfig
metadata:
annotations:
dev.uds.title: "Example Package"
dev.uds.categories: "Development, Testing"

The following annotations are recommended for production packages and are used across UDS products:

AnnotationDescriptionExampleProducts
dev.uds.titleHuman-readable package title"GitLab Runner"UDS Registry, UDS Fleet, UDS Portal
dev.uds.categoriesDynamic category list"Software Dev, Kubernetes (K8s)"UDS Registry, UDS Fleet
dev.uds.keywordsSearch keywords"CI/CD Pipelines, Automation, GitLab"UDS Registry
dev.uds.taglineShort package tagline"Open Source CI/CD Job Execution Tool"UDS Registry
dev.uds.iconBase64 icon as data URI"data:image/png;base64,iVBORw0KGgo..."UDS Registry, UDS Fleet, UDS Portal

Title (dev.uds.title)

  • MUST be a human-readable title-case string that clearly identifies the package.
  • SHOULD match the official product name when packaging existing software.

Categories (dev.uds.categories)

  • MUST be a comma-with-space-separated string ("Category One, Category Two").
  • SHOULD include 1-3 categories from these standard options:
Standard categories
  • AI
  • Cloud Native
  • Collaboration
  • Command And Control
  • Cybersecurity
  • Data Engineering
  • Databases
  • Digital Engineering
  • IT Management
  • Infrastructure
  • Kubernetes (K8s)
  • Load Balancing
  • Networking
  • Observability
  • Operator
  • Pipelines
  • Productivity
  • Security
  • Software Dev
  • Web
  • MAY include new categories when existing categories do not adequately describe the package.

Keywords (dev.uds.keywords)

  • MUST be a comma-with-space-separated string of 3-7 relevant search terms.
  • SHOULD include alternative terms and abbreviations users might search for.

Tagline (dev.uds.tagline)

  • MUST be one concise sentence (recommended 5-10 words) describing package function.

Icon (dev.uds.icon)

  • MUST be encoded as a base64 data URI.
  • SHOULD use .png or .svg (.svg recommended), square aspect ratio, transparent background.
  • RECOMMENDED size: 200x200px.

These annotations are experimental and may evolve over time:

AnnotationDescriptionExampleProducts
dev.uds.systemWhether a package is system-level (OS/firmware) vs application-level"true"UDS Fleet
dev.uds.compat/[label-name]Hardware compatibility requirement for the target cluster; [label-name] is a placeholder for a capability label defined by your platform integratordev.uds.compat/databus: can,can-fdUDS Fleet

Hardware compatibility (dev.uds.compat/*)

The dev.uds.compat/* annotation scheme lets package authors declare hardware compatibility requirements that UDS Fleet enforces before making a package available for deployment to a cluster. Each annotation key targets a specific compatibility dimension; each value is the set of accepted identifiers for that dimension.

The label names and values available to you are defined by your platform integrator — the organization responsible for orchestrating the deployment ecosystem you are targeting (for example, a systems integrator coordinating a multi-vendor solution). That integrator provides an initialization process that stamps each cluster with its hardware capabilities as labels, and publishes a spec of what label names and values package authors can use.

  • [label-name] MUST match a label name from your platform integrator’s compatibility spec. Consult that spec for available label names and values before writing compat annotations.
  • Values MUST be a comma-separated list with no spaces (can,can-fd). Multiple values within one annotation use OR semantics: the cluster must match at least one.
  • Multiple dev.uds.compat/* annotations on the same package use AND semantics: the cluster must satisfy all of them.
  • A package with no dev.uds.compat/* annotations has no compatibility constraints and deploys to any cluster.
zarf.yaml
kind: ZarfPackageConfig
metadata:
annotations:
# Cluster must have CAN OR CAN-FD databus, AND obd2-extended telematics
dev.uds.compat/databus: can,can-fd
dev.uds.compat/telematics: obd2-extended