From 0432a8918850921537a608e939542d1154aa3ba1 Mon Sep 17 00:00:00 2001 From: Ahmad Karimi Date: Sun, 13 Aug 2023 10:02:39 +0330 Subject: [PATCH] release chart 0.2.1 --- deploy/charts/s3-operator/Chart.yaml | 4 +- .../s3-operator/templates/s3user-crd.yaml | 155 ++++++++++++++++++ .../templates/s3userclaim-crd.yaml | 10 ++ 3 files changed, 167 insertions(+), 2 deletions(-) create mode 100644 deploy/charts/s3-operator/templates/s3user-crd.yaml diff --git a/deploy/charts/s3-operator/Chart.yaml b/deploy/charts/s3-operator/Chart.yaml index 2b12f1c..4bb6788 100644 --- a/deploy/charts/s3-operator/Chart.yaml +++ b/deploy/charts/s3-operator/Chart.yaml @@ -13,9 +13,9 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.2.0 +version: 0.2.1 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "0.1.1" +appVersion: "0.1.2" diff --git a/deploy/charts/s3-operator/templates/s3user-crd.yaml b/deploy/charts/s3-operator/templates/s3user-crd.yaml new file mode 100644 index 0000000..623242c --- /dev/null +++ b/deploy/charts/s3-operator/templates/s3user-crd.yaml @@ -0,0 +1,155 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: s3users.s3.snappcloud.io + annotations: + controller-gen.kubebuilder.io/version: v0.11.1 + labels: + {{- include "s3-operator.labels" . | nindent 4 }} +spec: + group: s3.snappcloud.io + names: + kind: S3User + listKind: S3UserList + plural: s3users + singular: s3user + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .spec.s3UserClass + name: S3USERCLASS + type: string + - jsonPath: .spec.claimRef.namespace + name: CLAIM NS + type: string + - jsonPath: .spec.claimRef.name + name: CLAIM NAME + type: string + - jsonPath: .spec.quota.maxObjects + name: MAX OBJECTS + type: string + - jsonPath: .spec.quota.maxSize + name: MAX SIZE + type: string + - jsonPath: .spec.quota.maxBuckets + name: MAX BUCKETS + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + 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: S3UserSpec defines the desired state of S3User + properties: + claimRef: + 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. + \n 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 + x-kubernetes-map-type: atomic + quota: + description: UserQuota specifies the quota for a user in Ceph + properties: + maxBuckets: + description: max number of buckets the user can create + type: integer + maxObjects: + anyOf: + - type: integer + - type: string + description: max number of objects the user can store + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + maxSize: + anyOf: + - type: integer + - type: string + description: max number of bytes the user can store + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + s3UserClass: + type: string + type: object + status: + description: S3UserStatus defines the observed state of S3User + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] \ No newline at end of file diff --git a/deploy/charts/s3-operator/templates/s3userclaim-crd.yaml b/deploy/charts/s3-operator/templates/s3userclaim-crd.yaml index 5da0cf1..140df14 100644 --- a/deploy/charts/s3-operator/templates/s3userclaim-crd.yaml +++ b/deploy/charts/s3-operator/templates/s3userclaim-crd.yaml @@ -28,6 +28,9 @@ spec: - jsonPath: .status.quota.maxSize name: MAX SIZE type: string + - jsonPath: .status.quota.maxBuckets + name: MAX BUCKETS + type: string - jsonPath: .metadata.creationTimestamp name: AGE type: date @@ -54,10 +57,14 @@ spec: type: string quota: default: + maxBuckets: 2 maxObjects: "5368709120" maxSize: "1000" description: UserQuota specifies the quota for a user in Ceph properties: + maxBuckets: + description: max number of buckets the user can create + type: integer maxObjects: anyOf: - type: integer @@ -87,6 +94,9 @@ spec: quota: description: UserQuota specifies the quota for a user in Ceph properties: + maxBuckets: + description: max number of buckets the user can create + type: integer maxObjects: anyOf: - type: integer