|
12 | 12 | "metadata": { |
13 | 13 | "type": "object" |
14 | 14 | }, |
15 | | - "spec": { |
16 | | - "description": "Spec describes a Project.\n\nDeprecated: Create a ProjectConfig resource with the same name as the\nProject resource in the Project's namespace. The ProjectConfig resource\ncan be used to configure the Project.", |
17 | | - "properties": { |
18 | | - "promotionPolicies": { |
19 | | - "description": "PromotionPolicies defines policies governing the promotion of Freight to\nspecific Stages within the Project.", |
20 | | - "items": { |
21 | | - "description": "PromotionPolicy defines policies governing the promotion of Freight to a\nspecific Stage.", |
22 | | - "properties": { |
23 | | - "autoPromotionEnabled": { |
24 | | - "description": "AutoPromotionEnabled indicates whether new Freight can automatically be\npromoted into the Stage referenced by the Stage field. Note: There are may\nbe other conditions also required for an auto-promotion to occur. This\nfield defaults to false, but is commonly set to true for Stages that\nsubscribe to Warehouses instead of other, upstream Stages. This allows\nusers to define Stages that are automatically updated as soon as new\nartifacts are detected.", |
25 | | - "type": "boolean" |
26 | | - }, |
27 | | - "stage": { |
28 | | - "description": "Stage is the name of the Stage to which this policy applies.\n\nDeprecated: Use StageSelector instead.", |
29 | | - "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$", |
30 | | - "type": "string" |
31 | | - }, |
32 | | - "stageSelector": { |
33 | | - "description": "StageSelector is a selector that matches the Stage resource to which\nthis policy applies.", |
34 | | - "properties": { |
35 | | - "matchExpressions": { |
36 | | - "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", |
37 | | - "items": { |
38 | | - "description": "A label selector requirement is a selector that contains values, a key, and an operator that\nrelates the key and values.", |
39 | | - "properties": { |
40 | | - "key": { |
41 | | - "description": "key is the label key that the selector applies to.", |
42 | | - "type": "string" |
43 | | - }, |
44 | | - "operator": { |
45 | | - "description": "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.", |
46 | | - "type": "string" |
47 | | - }, |
48 | | - "values": { |
49 | | - "description": "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.", |
50 | | - "items": { |
51 | | - "type": "string" |
52 | | - }, |
53 | | - "type": "array", |
54 | | - "x-kubernetes-list-type": "atomic" |
55 | | - } |
56 | | - }, |
57 | | - "required": [ |
58 | | - "key", |
59 | | - "operator" |
60 | | - ], |
61 | | - "type": "object", |
62 | | - "additionalProperties": false |
63 | | - }, |
64 | | - "type": "array", |
65 | | - "x-kubernetes-list-type": "atomic" |
66 | | - }, |
67 | | - "matchLabels": { |
68 | | - "additionalProperties": { |
69 | | - "type": "string" |
70 | | - }, |
71 | | - "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.", |
72 | | - "type": "object" |
73 | | - }, |
74 | | - "name": { |
75 | | - "description": "Name is the name of the resource to which this policy applies.\n\nIt can be an exact name, a regex pattern (with prefix \"regex:\"), or a\nglob pattern (with prefix \"glob:\").\n\nWhen both Name and LabelSelector are specified, the Name is ANDed with\nthe LabelSelector. I.e., the resource must match both the Name and\nLabelSelector to be selected by this policy.\n\nNOTE: Using a specific exact name is the most secure option. Pattern\nmatching via regex or glob can be exploited by users with permissions to\nmatch promotion policies that weren't intended to apply to their\nresources. For example, a user could create a resource with a name\ndeliberately crafted to match the pattern, potentially bypassing intended\npromotion controls.", |
76 | | - "type": "string" |
77 | | - } |
78 | | - }, |
79 | | - "type": "object", |
80 | | - "x-kubernetes-map-type": "atomic", |
81 | | - "additionalProperties": false |
82 | | - } |
83 | | - }, |
84 | | - "type": "object", |
85 | | - "x-kubernetes-validations": [ |
86 | | - { |
87 | | - "message": "PromotionPolicy must have exactly one of stage or stageSelector set", |
88 | | - "rule": "has(self.stage) ? !has(self.stageSelector) : has(self.stageSelector)" |
89 | | - } |
90 | | - ], |
91 | | - "additionalProperties": false |
92 | | - }, |
93 | | - "type": "array" |
94 | | - } |
95 | | - }, |
96 | | - "type": "object", |
97 | | - "additionalProperties": false |
98 | | - }, |
99 | 15 | "status": { |
100 | 16 | "description": "Status describes the Project's current status.", |
101 | 17 | "properties": { |
|
0 commit comments