ApplicationConfig#

pydantic model phalanx.models.applications.ApplicationConfig#

Configuration for a Phalanx application.

Parameters:

data (Any) –

Show JSON schema
{
   "title": "ApplicationConfig",
   "description": "Configuration for a Phalanx application.",
   "type": "object",
   "properties": {
      "name": {
         "title": "Name",
         "type": "string"
      },
      "namespace": {
         "title": "Namespace",
         "type": "string"
      },
      "chart": {
         "title": "Chart",
         "type": "object"
      },
      "doc_links": {
         "items": {
            "$ref": "#/$defs/DocLink"
         },
         "title": "Doc Links",
         "type": "array"
      },
      "values": {
         "title": "Values",
         "type": "object"
      },
      "environment_values": {
         "additionalProperties": {
            "type": "object"
         },
         "title": "Environment Values",
         "type": "object"
      },
      "secrets": {
         "additionalProperties": {
            "$ref": "#/$defs/ConditionalSecretConfig"
         },
         "title": "Secrets",
         "type": "object"
      },
      "environment_secrets": {
         "additionalProperties": {
            "additionalProperties": {
               "$ref": "#/$defs/ConditionalSecretConfig"
            },
            "type": "object"
         },
         "title": "Environment Secrets",
         "type": "object"
      }
   },
   "$defs": {
      "ConditionalSecretConfig": {
         "additionalProperties": false,
         "description": "Possibly conditional specification for an application secret.",
         "properties": {
            "if": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Configuration only applies if this Helm chart setting is set to a true value",
               "title": "Condition"
            },
            "description": {
               "title": "Description",
               "type": "string"
            },
            "copy": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/ConditionalSecretCopyRules"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Rules for where the secret should be copied from"
            },
            "generate": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/ConditionalSimpleSecretGenerateRules"
                  },
                  {
                     "$ref": "#/$defs/ConditionalSourceSecretGenerateRules"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Generate"
            },
            "onepassword": {
               "allOf": [
                  {
                     "$ref": "#/$defs/SecretOnepasswordConfig"
                  }
               ],
               "default": {
                  "encoded": false
               }
            },
            "value": {
               "anyOf": [
                  {
                     "format": "password",
                     "type": "string",
                     "writeOnly": true
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Value"
            }
         },
         "required": [
            "description"
         ],
         "title": "ConditionalSecretConfig",
         "type": "object"
      },
      "ConditionalSecretCopyRules": {
         "additionalProperties": false,
         "description": "Possibly conditional rules for copying a secret value from another.",
         "properties": {
            "if": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Configuration only applies if this Helm chart setting is set to a true value",
               "title": "Condition"
            },
            "application": {
               "title": "Application",
               "type": "string"
            },
            "key": {
               "title": "Key",
               "type": "string"
            }
         },
         "required": [
            "application",
            "key"
         ],
         "title": "ConditionalSecretCopyRules",
         "type": "object"
      },
      "ConditionalSimpleSecretGenerateRules": {
         "additionalProperties": false,
         "description": "Conditional rules for generating a secret value with no source.",
         "properties": {
            "if": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Configuration only applies if this Helm chart setting is set to a true value",
               "title": "Condition"
            },
            "type": {
               "enum": [
                  "password",
                  "gafaelfawr-token",
                  "fernet-key",
                  "rsa-private-key"
               ],
               "title": "Type",
               "type": "string"
            }
         },
         "required": [
            "type"
         ],
         "title": "ConditionalSimpleSecretGenerateRules",
         "type": "object"
      },
      "ConditionalSourceSecretGenerateRules": {
         "description": "Conditional rules for generating a secret from another secret.",
         "properties": {
            "if": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Configuration only applies if this Helm chart setting is set to a true value",
               "title": "Condition"
            },
            "type": {
               "enum": [
                  "bcrypt-password-hash",
                  "mtime"
               ],
               "title": "Type",
               "type": "string"
            },
            "source": {
               "title": "Source",
               "type": "string"
            }
         },
         "required": [
            "type",
            "source"
         ],
         "title": "ConditionalSourceSecretGenerateRules",
         "type": "object"
      },
      "DocLink": {
         "description": "A documentation link for an application.\n\nThis represents an individual array item in the ``phalanx.lsst.io/docs``\nHelm chart annotation in :file:`Chart.yaml`.",
         "properties": {
            "url": {
               "title": "Url",
               "type": "string"
            },
            "title": {
               "title": "Title",
               "type": "string"
            },
            "id": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Id"
            }
         },
         "required": [
            "url",
            "title"
         ],
         "title": "DocLink",
         "type": "object"
      },
      "SecretOnepasswordConfig": {
         "description": "Configuration for how a static secret is stored in 1Password.",
         "properties": {
            "encoded": {
               "default": false,
               "title": "Encoded",
               "type": "boolean"
            }
         },
         "title": "SecretOnepasswordConfig",
         "type": "object"
      }
   },
   "required": [
      "name",
      "namespace",
      "chart",
      "doc_links",
      "values",
      "environment_values",
      "secrets",
      "environment_secrets"
   ]
}

Fields:
field chart: dict[str, Any] [Required]#

Parsed Helm Chart.yaml file.

List of links to documentation about this application.

field environment_secrets: dict[str, dict[str, ConditionalSecretConfig]] [Required]#

Per-environment secrets for the application, by secret key.

field environment_values: dict[str, dict[str, Any]] [Required]#

Per-environment Helm chart overrides by environment name.

field name: str [Required]#

Name of the application.

field namespace: str [Required]#

Namespace to which the application is deployed.

field secrets: dict[str, ConditionalSecretConfig] [Required]#

Secrets for the application, by secret key.

field values: dict[str, Any] [Required]#

Base Helm chart values.

property homepage: str | None#

The Helm home field, typically used for the application’s docs.

property source_urls: list[str]#

Application source URLs from the Helm sources field.