Skip to content

Commit

Permalink
Merge pull request #75 from qmhu/crane-release-v0.7.0
Browse files Browse the repository at this point in the history
Crane release v0.7.0
  • Loading branch information
qmhu authored Aug 19, 2022
2 parents 9ca16d2 + 40a5c97 commit 1914979
Show file tree
Hide file tree
Showing 5 changed files with 392 additions and 23 deletions.
4 changes: 2 additions & 2 deletions charts/crane/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ sources:

type: application

version: 0.6.0
version: 0.7.0

appVersion: v0.6.0
appVersion: v0.7.0
10 changes: 10 additions & 0 deletions charts/crane/crds/analysis.crane.io_analytics.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,16 @@ spec:
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
recommenderRef:
description: RecommenderRef presents recommender info for recommendation
mission.
properties:
name:
description: Recommender's Name
type: string
required:
- name
type: object
resourceVersion:
description: 'Specific resourceVersion to which this reference
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
Expand Down
290 changes: 290 additions & 0 deletions charts/crane/crds/analysis.crane.io_recommendationrules.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,290 @@

---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.7.0
creationTimestamp: null
name: recommendationrules.analysis.crane.io
spec:
group: analysis.crane.io
names:
kind: RecommendationRule
listKind: RecommendationRuleList
plural: recommendationrules
shortNames:
- rr
singular: recommendationrule
scope: Cluster
versions:
- additionalPrinterColumns:
- jsonPath: .spec.runInterval
name: RunInterval
type: string
- description: CreationTimestamp is a timestamp representing the server time when
this object was created.
jsonPath: .metadata.creationTimestamp
name: AGE
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: RecommendationRule represents the configuration of an RecommendationRule
object.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: RecommendationRuleSpec defines resources and runInterval
to recommend
properties:
namespaceSelector:
description: NamespaceSelector indicates resource namespaces to select
from
properties:
any:
description: Select all namespace if true
type: boolean
matchNames:
description: List of namespace names to select from.
items:
type: string
type: array
type: object
recommenders:
description: List of recommender type to run
items:
description: Recommender referring to the Recommender in RecommendationConfiguration
properties:
name:
description: Recommender's Name
type: string
required:
- name
type: object
type: array
resourceSelectors:
description: ResourceSelector indicates how to select resources(e.g.
a set of Deployments) for a Recommendation.
items:
description: ResourceSelector describes how the resources will be
selected.
properties:
apiVersion:
description: API version of the resource, e.g. "apps/v1"
type: string
kind:
description: Kind of the resource, e.g. Deployment
type: string
labelSelector:
description: A label selector is a label query over a set of
resources. The result of matchLabels and matchExpressions
are ANDed. An empty label selector matches all objects. A
null label selector matches no objects.
properties:
matchExpressions:
description: matchExpressions is a list of label selector
requirements. The requirements are ANDed.
items:
description: A label selector requirement is a selector
that contains values, a key, and an operator that relates
the key and values.
properties:
key:
description: key is the label key that the selector
applies to.
type: string
operator:
description: operator represents a key's relationship
to a set of values. Valid operators are In, NotIn,
Exists and DoesNotExist.
type: string
values:
description: values is an array of string values.
If the operator is In or NotIn, the values array
must be non-empty. If the operator is Exists or
DoesNotExist, the values array must be empty. This
array is replaced during a strategic merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value} pairs.
A single {key,value} in the matchLabels map is equivalent
to an element of matchExpressions, whose key field is
"key", the operator is "In", and the values array contains
only "value". The requirements are ANDed.
type: object
type: object
name:
description: Name of the resource.
type: string
required:
- kind
type: object
type: array
runInterval:
description: RunInterval between two recommendation
type: string
required:
- namespaceSelector
- recommenders
- resourceSelectors
type: object
status:
description: RecommendationRuleStatus represents the current state of
an RecommendationRule item.
properties:
lastUpdateTime:
description: LastUpdateTime is the last time the status updated.
format: date-time
type: string
recommendations:
description: Recommendations is a list of RecommendationMission that
run parallel.
items:
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: 'If referring to a piece of an object instead of
an entire object, this string should contain a valid JSON/Go
field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container within
a pod, this would take on a value like: "spec.containers{name}"
(where "name" refers to the name of the container that triggered
the event) or if no container name is specified "spec.containers[2]"
(container with index 2 in this pod). This syntax is chosen
only to have some well-defined way of referencing a part of
an object. TODO: this design is not final and this field is
subject to change in the future.'
type: string
kind:
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
lastStartTime:
description: LastStartTime is last time we start a recommendation
mission.
format: date-time
type: string
message:
description: Message presents the running message for this mission
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
recommenderRef:
description: RecommenderRef presents recommender info for recommendation
mission.
properties:
name:
description: Recommender's Name
type: string
required:
- name
type: object
resourceVersion:
description: 'Specific resourceVersion to which this reference
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
type: string
targetRef:
description: 'ObjectReference contains enough information to
let you inspect or modify the referred object. --- New uses
of this type are discouraged because of difficulty describing
its usage when embedded in APIs. 1. Ignored fields. It includes
many fields which are not generally honored. For instance,
ResourceVersion and FieldPath are both very rarely valid in
actual usage. 2. Invalid usage help. It is impossible to
add specific help for individual usage. In most embedded
usages, there are particular restrictions like, "must
refer only to types A and B" or "UID not honored" or "name
must be restricted". Those cannot be well described when
embedded. 3. Inconsistent validation. Because the usages
are different, the validation rules are different by usage,
which makes it hard for users to predict what will happen. 4.
The fields are both imprecise and overly precise. Kind is
not a precise mapping to a URL. This can produce ambiguity during
interpretation and require a REST mapping. In most cases,
the dependency is on the group,resource tuple and the
version of the actual struct is irrelevant. 5. We cannot
easily change it. Because this type is embedded in many locations,
updates to this type will affect numerous schemas. Don''t
make new APIs embed an underspecified API type they do not
control. Instead of using this type, create a locally provided
and used type that is well-focused on your reference. For
example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
.'
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: 'If referring to a piece of an object instead
of an entire object, this string should contain a valid
JSON/Go field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container
within a pod, this would take on a value like: "spec.containers{name}"
(where "name" refers to the name of the container that
triggered the event) or if no container name is specified
"spec.containers[2]" (container with index 2 in this pod).
This syntax is chosen only to have some well-defined way
of referencing a part of an object. TODO: this design
is not final and this field is subject to change in the
future.'
type: string
kind:
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
resourceVersion:
description: 'Specific resourceVersion to which this reference
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
type: string
uid:
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
type: string
type: object
uid:
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
type: string
type: object
type: array
x-kubernetes-list-type: atomic
type: object
type: object
served: true
storage: true
subresources: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
Loading

0 comments on commit 1914979

Please sign in to comment.