nyl 0.4.1

Kubernetes manifest generator with Helm integration
Documentation
{
  "$defs": {
    "ProfileSettings": {
      "additionalProperties": false,
      "description": "Profile configuration in `[profile]` section of `nyl.toml`.",
      "properties": {
        "values": {
          "additionalProperties": {
            "additionalProperties": true,
            "type": "object"
          },
          "default": {},
          "description": "Per-profile template values, keyed by profile name.\n\nExample:\n`[profile.values.dev]`\n`replicas = 2`",
          "type": "object"
        }
      },
      "type": "object"
    },
    "ProjectSettings": {
      "additionalProperties": false,
      "description": "Project settings in `[project]` section of `nyl.toml`.",
      "properties": {
        "aliases": {
          "additionalProperties": {
            "type": "string"
          },
          "default": {},
          "description": "Aliases for component-like resources keyed as `<apiVersion>/<kind>`.\nValues are component kind targets (local component path or remote shortcut URL).",
          "type": "object"
        },
        "components_search_paths": {
          "default": [
            "components"
          ],
          "description": "Search paths for local component charts.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "helm_chart_search_paths": {
          "default": [
            "."
          ],
          "description": "Search paths for Helm chart names.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "strip_empty_metadata_labels": {
          "$ref": "#/$defs/StripEmptyMetadataLabelsMode",
          "default": "always",
          "description": "Control when empty `metadata.labels` maps are stripped from emitted manifests."
        }
      },
      "type": "object"
    },
    "StripEmptyMetadataLabelsMode": {
      "description": "Controls when empty `metadata.labels` maps are stripped from emitted manifests.",
      "oneOf": [
        {
          "const": "always",
          "description": "Always strip empty `metadata.labels` maps from emitted manifests.",
          "type": "string"
        },
        {
          "const": "never",
          "description": "Never strip empty `metadata.labels` maps from emitted manifests.",
          "type": "string"
        },
        {
          "const": "argocd",
          "description": "Strip empty `metadata.labels` maps only when running in an ArgoCD environment.",
          "type": "string"
        }
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "Root structure of `nyl.toml`.",
  "properties": {
    "profile": {
      "$ref": "#/$defs/ProfileSettings",
      "default": {
        "values": {}
      }
    },
    "project": {
      "$ref": "#/$defs/ProjectSettings",
      "default": {
        "aliases": {},
        "components_search_paths": [
          "components"
        ],
        "helm_chart_search_paths": [
          "."
        ],
        "strip_empty_metadata_labels": "always"
      }
    }
  },
  "title": "ProjectFile",
  "type": "object"
}