Skip to content

Commit 1914979

Browse files
authored
Merge pull request #75 from qmhu/crane-release-v0.7.0
Crane release v0.7.0
2 parents 9ca16d2 + 40a5c97 commit 1914979

File tree

5 files changed

+392
-23
lines changed

5 files changed

+392
-23
lines changed

charts/crane/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ sources:
1616

1717
type: application
1818

19-
version: 0.6.0
19+
version: 0.7.0
2020

21-
appVersion: v0.6.0
21+
appVersion: v0.7.0

charts/crane/crds/analysis.crane.io_analytics.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,16 @@ spec:
262262
namespace:
263263
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
264264
type: string
265+
recommenderRef:
266+
description: RecommenderRef presents recommender info for recommendation
267+
mission.
268+
properties:
269+
name:
270+
description: Recommender's Name
271+
type: string
272+
required:
273+
- name
274+
type: object
265275
resourceVersion:
266276
description: 'Specific resourceVersion to which this reference
267277
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
Lines changed: 290 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,290 @@
1+
2+
---
3+
apiVersion: apiextensions.k8s.io/v1
4+
kind: CustomResourceDefinition
5+
metadata:
6+
annotations:
7+
controller-gen.kubebuilder.io/version: v0.7.0
8+
creationTimestamp: null
9+
name: recommendationrules.analysis.crane.io
10+
spec:
11+
group: analysis.crane.io
12+
names:
13+
kind: RecommendationRule
14+
listKind: RecommendationRuleList
15+
plural: recommendationrules
16+
shortNames:
17+
- rr
18+
singular: recommendationrule
19+
scope: Cluster
20+
versions:
21+
- additionalPrinterColumns:
22+
- jsonPath: .spec.runInterval
23+
name: RunInterval
24+
type: string
25+
- description: CreationTimestamp is a timestamp representing the server time when
26+
this object was created.
27+
jsonPath: .metadata.creationTimestamp
28+
name: AGE
29+
type: date
30+
name: v1alpha1
31+
schema:
32+
openAPIV3Schema:
33+
description: RecommendationRule represents the configuration of an RecommendationRule
34+
object.
35+
properties:
36+
apiVersion:
37+
description: 'APIVersion defines the versioned schema of this representation
38+
of an object. Servers should convert recognized schemas to the latest
39+
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
40+
type: string
41+
kind:
42+
description: 'Kind is a string value representing the REST resource this
43+
object represents. Servers may infer this from the endpoint the client
44+
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
45+
type: string
46+
metadata:
47+
type: object
48+
spec:
49+
description: RecommendationRuleSpec defines resources and runInterval
50+
to recommend
51+
properties:
52+
namespaceSelector:
53+
description: NamespaceSelector indicates resource namespaces to select
54+
from
55+
properties:
56+
any:
57+
description: Select all namespace if true
58+
type: boolean
59+
matchNames:
60+
description: List of namespace names to select from.
61+
items:
62+
type: string
63+
type: array
64+
type: object
65+
recommenders:
66+
description: List of recommender type to run
67+
items:
68+
description: Recommender referring to the Recommender in RecommendationConfiguration
69+
properties:
70+
name:
71+
description: Recommender's Name
72+
type: string
73+
required:
74+
- name
75+
type: object
76+
type: array
77+
resourceSelectors:
78+
description: ResourceSelector indicates how to select resources(e.g.
79+
a set of Deployments) for a Recommendation.
80+
items:
81+
description: ResourceSelector describes how the resources will be
82+
selected.
83+
properties:
84+
apiVersion:
85+
description: API version of the resource, e.g. "apps/v1"
86+
type: string
87+
kind:
88+
description: Kind of the resource, e.g. Deployment
89+
type: string
90+
labelSelector:
91+
description: A label selector is a label query over a set of
92+
resources. The result of matchLabels and matchExpressions
93+
are ANDed. An empty label selector matches all objects. A
94+
null label selector matches no objects.
95+
properties:
96+
matchExpressions:
97+
description: matchExpressions is a list of label selector
98+
requirements. The requirements are ANDed.
99+
items:
100+
description: A label selector requirement is a selector
101+
that contains values, a key, and an operator that relates
102+
the key and values.
103+
properties:
104+
key:
105+
description: key is the label key that the selector
106+
applies to.
107+
type: string
108+
operator:
109+
description: operator represents a key's relationship
110+
to a set of values. Valid operators are In, NotIn,
111+
Exists and DoesNotExist.
112+
type: string
113+
values:
114+
description: values is an array of string values.
115+
If the operator is In or NotIn, the values array
116+
must be non-empty. If the operator is Exists or
117+
DoesNotExist, the values array must be empty. This
118+
array is replaced during a strategic merge patch.
119+
items:
120+
type: string
121+
type: array
122+
required:
123+
- key
124+
- operator
125+
type: object
126+
type: array
127+
matchLabels:
128+
additionalProperties:
129+
type: string
130+
description: matchLabels is a map of {key,value} pairs.
131+
A single {key,value} in the matchLabels map is equivalent
132+
to an element of matchExpressions, whose key field is
133+
"key", the operator is "In", and the values array contains
134+
only "value". The requirements are ANDed.
135+
type: object
136+
type: object
137+
name:
138+
description: Name of the resource.
139+
type: string
140+
required:
141+
- kind
142+
type: object
143+
type: array
144+
runInterval:
145+
description: RunInterval between two recommendation
146+
type: string
147+
required:
148+
- namespaceSelector
149+
- recommenders
150+
- resourceSelectors
151+
type: object
152+
status:
153+
description: RecommendationRuleStatus represents the current state of
154+
an RecommendationRule item.
155+
properties:
156+
lastUpdateTime:
157+
description: LastUpdateTime is the last time the status updated.
158+
format: date-time
159+
type: string
160+
recommendations:
161+
description: Recommendations is a list of RecommendationMission that
162+
run parallel.
163+
items:
164+
properties:
165+
apiVersion:
166+
description: API version of the referent.
167+
type: string
168+
fieldPath:
169+
description: 'If referring to a piece of an object instead of
170+
an entire object, this string should contain a valid JSON/Go
171+
field access statement, such as desiredState.manifest.containers[2].
172+
For example, if the object reference is to a container within
173+
a pod, this would take on a value like: "spec.containers{name}"
174+
(where "name" refers to the name of the container that triggered
175+
the event) or if no container name is specified "spec.containers[2]"
176+
(container with index 2 in this pod). This syntax is chosen
177+
only to have some well-defined way of referencing a part of
178+
an object. TODO: this design is not final and this field is
179+
subject to change in the future.'
180+
type: string
181+
kind:
182+
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
183+
type: string
184+
lastStartTime:
185+
description: LastStartTime is last time we start a recommendation
186+
mission.
187+
format: date-time
188+
type: string
189+
message:
190+
description: Message presents the running message for this mission
191+
type: string
192+
name:
193+
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
194+
type: string
195+
namespace:
196+
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
197+
type: string
198+
recommenderRef:
199+
description: RecommenderRef presents recommender info for recommendation
200+
mission.
201+
properties:
202+
name:
203+
description: Recommender's Name
204+
type: string
205+
required:
206+
- name
207+
type: object
208+
resourceVersion:
209+
description: 'Specific resourceVersion to which this reference
210+
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
211+
type: string
212+
targetRef:
213+
description: 'ObjectReference contains enough information to
214+
let you inspect or modify the referred object. --- New uses
215+
of this type are discouraged because of difficulty describing
216+
its usage when embedded in APIs. 1. Ignored fields. It includes
217+
many fields which are not generally honored. For instance,
218+
ResourceVersion and FieldPath are both very rarely valid in
219+
actual usage. 2. Invalid usage help. It is impossible to
220+
add specific help for individual usage. In most embedded
221+
usages, there are particular restrictions like, "must
222+
refer only to types A and B" or "UID not honored" or "name
223+
must be restricted". Those cannot be well described when
224+
embedded. 3. Inconsistent validation. Because the usages
225+
are different, the validation rules are different by usage,
226+
which makes it hard for users to predict what will happen. 4.
227+
The fields are both imprecise and overly precise. Kind is
228+
not a precise mapping to a URL. This can produce ambiguity during
229+
interpretation and require a REST mapping. In most cases,
230+
the dependency is on the group,resource tuple and the
231+
version of the actual struct is irrelevant. 5. We cannot
232+
easily change it. Because this type is embedded in many locations,
233+
updates to this type will affect numerous schemas. Don''t
234+
make new APIs embed an underspecified API type they do not
235+
control. Instead of using this type, create a locally provided
236+
and used type that is well-focused on your reference. For
237+
example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
238+
.'
239+
properties:
240+
apiVersion:
241+
description: API version of the referent.
242+
type: string
243+
fieldPath:
244+
description: 'If referring to a piece of an object instead
245+
of an entire object, this string should contain a valid
246+
JSON/Go field access statement, such as desiredState.manifest.containers[2].
247+
For example, if the object reference is to a container
248+
within a pod, this would take on a value like: "spec.containers{name}"
249+
(where "name" refers to the name of the container that
250+
triggered the event) or if no container name is specified
251+
"spec.containers[2]" (container with index 2 in this pod).
252+
This syntax is chosen only to have some well-defined way
253+
of referencing a part of an object. TODO: this design
254+
is not final and this field is subject to change in the
255+
future.'
256+
type: string
257+
kind:
258+
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
259+
type: string
260+
name:
261+
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
262+
type: string
263+
namespace:
264+
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
265+
type: string
266+
resourceVersion:
267+
description: 'Specific resourceVersion to which this reference
268+
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
269+
type: string
270+
uid:
271+
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
272+
type: string
273+
type: object
274+
uid:
275+
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
276+
type: string
277+
type: object
278+
type: array
279+
x-kubernetes-list-type: atomic
280+
type: object
281+
type: object
282+
served: true
283+
storage: true
284+
subresources: {}
285+
status:
286+
acceptedNames:
287+
kind: ""
288+
plural: ""
289+
conditions: []
290+
storedVersions: []

0 commit comments

Comments
 (0)