summaryrefslogtreecommitdiff
path: root/cloudinit/config/cloud-init-schema.json
blob: afaed285ecec833d54590015e90136b92149b768 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "$defs": {
    "cc_apk_configure": {
      "type": "object",
      "properties": {
        "apk_repos": {
          "type": "object",
          "properties": {
            "preserve_repositories": {
              "type": "boolean",
              "default": false,
              "description": "By default, cloud-init will generate a new repositories file ``/etc/apk/repositories`` based on any valid configuration settings specified within a apk_repos section of cloud config. To disable this behavior and preserve the repositories file from the pristine image, set ``preserve_repositories`` to ``true``.\n\n The ``preserve_repositories`` option overrides all other config keys that would alter ``/etc/apk/repositories``."
            },
            "alpine_repo": {
              "type": ["object", "null"],
              "properties": {
                "base_url": {
                  "type": "string",
                  "default": "https://alpine.global.ssl.fastly.net/alpine",
                  "description": "The base URL of an Alpine repository, or mirror, to download official packages from. If not specified then it defaults to ``https://alpine.global.ssl.fastly.net/alpine``"
                },
                "community_enabled": {
                  "type": "boolean",
                  "default": false,
                  "description": "Whether to add the Community repo to the repositories file. By default the Community repo is not included."
                },
                "testing_enabled": {
                  "type": "boolean",
                  "default": false,
                  "description": "Whether to add the Testing repo to the repositories file. By default the Testing repo is not included. It is only recommended to use the Testing repo on a machine running the ``Edge`` version of Alpine as packages installed from Testing may have dependancies that conflict with those in non-Edge Main or Community repos."
                },
                "version": {
                  "type": "string",
                  "description": "The Alpine version to use (e.g. ``v3.12`` or ``edge``)"
                }
              },
              "required": ["version"],
              "minProperties": 1,
              "additionalProperties": false
            },
            "local_repo_base_url": {
              "type": "string",
                "description": "The base URL of an Alpine repository containing unofficial packages"
            }
          },
          "minProperties": 1,
          "additionalProperties": false
        }
      }
    },
    "cc_apt_pipelining": {
      "type": "object",
      "properties": {
        "apt_pipelining": {
          "oneOf": [
            {"type": "integer"},
            {"type": "boolean"},
            {"type": "string", "enum": ["none", "unchanged", "os"]}
          ]
        }
      }
    }
  },
  "allOf": [
    { "$ref": "#/$defs/cc_apk_configure" },
    { "$ref": "#/$defs/cc_apt_pipelining" }
  ]
}