diff --git a/hack/update-crd.sh b/hack/update-crd.sh index 5c78292e..ab9a59b7 100755 --- a/hack/update-crd.sh +++ b/hack/update-crd.sh @@ -8,7 +8,7 @@ need yq; need jq; need base64 CHART_YAML="${CHART_YAML:-Chart.yaml}" VALUES_YAML="${VALUES_YAML:-values.yaml}" SCHEMA_JSON="${SCHEMA_JSON:-values.schema.json}" -CRD_DIR="../../system/cozystack-api/templates/cozystack-resource-definitions" +CRD_DIR="../../system/cozystack-api/cozyrds" [[ -f "$CHART_YAML" ]] || { echo "No $CHART_YAML found"; exit 1; } [[ -f "$SCHEMA_JSON" ]] || { echo "No $SCHEMA_JSON found"; exit 1; } diff --git a/packages/extra/etcd/README.md b/packages/extra/etcd/README.md index 8b2253ae..3bdb920b 100644 --- a/packages/extra/etcd/README.md +++ b/packages/extra/etcd/README.md @@ -4,12 +4,12 @@ ### Common parameters -| Name | Description | Type | Value | -| ------------------ | ----------------------------------- | ----------- | ------ | -| `size` | Persistent Volume size | `*quantity` | `4Gi` | -| `storageClass` | StorageClass used to store the data | `*string` | `""` | -| `replicas` | Number of etcd replicas | `*int` | `3` | -| `resources` | Resource configuration for etcd | `*object` | `null` | -| `resources.cpu` | The number of CPU cores allocated | `*quantity` | `4` | -| `resources.memory` | The amount of memory allocated | `*quantity` | `1Gi` | +| Name | Description | Type | Value | +| ------------------ | ----------------------------------- | ----------- | ------- | +| `size` | Persistent Volume size | `*quantity` | `4Gi` | +| `storageClass` | StorageClass used to store the data | `*string` | `""` | +| `replicas` | Number of etcd replicas | `*int` | `3` | +| `resources` | Resource configuration for etcd | `*object` | `null` | +| `resources.cpu` | The number of CPU cores allocated | `*quantity` | `1000m` | +| `resources.memory` | The amount of memory allocated | `*quantity` | `512Mi` | diff --git a/packages/extra/etcd/templates/vpa.yaml b/packages/extra/etcd/templates/vpa.yaml new file mode 100644 index 00000000..57055cbd --- /dev/null +++ b/packages/extra/etcd/templates/vpa.yaml @@ -0,0 +1,21 @@ +--- +apiVersion: autoscaling.k8s.io/v1 +kind: VerticalPodAutoscaler +metadata: + name: etcd +spec: + targetRef: + apiVersion: apps/v1 + kind: StatefulSet + name: etcd + updatePolicy: + updateMode: Auto + resourcePolicy: + containerPolicies: + - containerName: etcd + {{- with dict "cpu" "250m" "memory" "256Mi" }} + minAllowed: {{- get (include "cozy-lib.resources.sanitize" (list . $) | fromYaml) "requests" | toYaml | nindent 8 }} + {{- end }} + {{- with dict "cpu" "5000m" "memory" "8Gi" }} + maxAllowed: {{- get (include "cozy-lib.resources.sanitize" (list . $) | fromYaml) "requests" | toYaml | nindent 8 }} + {{- end }} diff --git a/packages/extra/etcd/values.schema.json b/packages/extra/etcd/values.schema.json index 57c5fee1..ee6960de 100644 --- a/packages/extra/etcd/values.schema.json +++ b/packages/extra/etcd/values.schema.json @@ -14,7 +14,7 @@ "properties": { "cpu": { "description": "The number of CPU cores allocated", - "default": 4, + "default": "1000m", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -28,7 +28,7 @@ }, "memory": { "description": "The amount of memory allocated", - "default": "1Gi", + "default": "512Mi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { diff --git a/packages/extra/etcd/values.yaml b/packages/extra/etcd/values.yaml index 816cd5a7..43214f6d 100644 --- a/packages/extra/etcd/values.yaml +++ b/packages/extra/etcd/values.yaml @@ -12,5 +12,5 @@ replicas: 3 ## @field resources.cpu {*quantity} The number of CPU cores allocated ## @field resources.memory {*quantity} The amount of memory allocated resources: - cpu: 4 - memory: 1Gi + cpu: 1000m + memory: 512Mi diff --git a/packages/system/cozystack-api/cozyrds/etcd.yaml b/packages/system/cozystack-api/cozyrds/etcd.yaml index 5f7d3fef..eeece147 100644 --- a/packages/system/cozystack-api/cozyrds/etcd.yaml +++ b/packages/system/cozystack-api/cozyrds/etcd.yaml @@ -8,7 +8,7 @@ spec: plural: etcds singular: etcd openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"replicas":{"description":"Number of etcd replicas","type":"integer","default":3},"resources":{"description":"Resource configuration for etcd","type":"object","default":{},"properties":{"cpu":{"description":"The number of CPU cores allocated","default":4,"pattern":"^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$","anyOf":[{"type":"integer"},{"type":"string"}],"x-kubernetes-int-or-string":true},"memory":{"description":"The amount of memory allocated","default":"1Gi","pattern":"^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$","anyOf":[{"type":"integer"},{"type":"string"}],"x-kubernetes-int-or-string":true}}},"size":{"description":"Persistent Volume size","default":"4Gi","pattern":"^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$","anyOf":[{"type":"integer"},{"type":"string"}],"x-kubernetes-int-or-string":true},"storageClass":{"description":"StorageClass used to store the data","type":"string"}}} + {"title":"Chart Values","type":"object","properties":{"replicas":{"description":"Number of etcd replicas","type":"integer","default":3},"resources":{"description":"Resource configuration for etcd","type":"object","default":{},"properties":{"cpu":{"description":"The number of CPU cores allocated","default":"1000m","pattern":"^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$","anyOf":[{"type":"integer"},{"type":"string"}],"x-kubernetes-int-or-string":true},"memory":{"description":"The amount of memory allocated","default":"512Mi","pattern":"^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$","anyOf":[{"type":"integer"},{"type":"string"}],"x-kubernetes-int-or-string":true}}},"size":{"description":"Persistent Volume size","default":"4Gi","pattern":"^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$","anyOf":[{"type":"integer"},{"type":"string"}],"x-kubernetes-int-or-string":true},"storageClass":{"description":"StorageClass used to store the data","type":"string"}}} release: prefix: "" labels: