This commit is contained in:
		
							parent
							
								
									af084a5a65
								
							
						
					
					
						commit
						33a70410ba
					
				|  | @ -14,6 +14,10 @@ spec: | |||
|     foo_user: []  # role for application foo | ||||
|   databases: | ||||
|     foo: zalando  # dbname: owner | ||||
|   resources: | ||||
|     limits: | ||||
|       hugepages-2Mi: 250Mi | ||||
|       memory: 250Mi | ||||
|   preparedDatabases: | ||||
|     bar: {} | ||||
|   postgresql: | ||||
|  |  | |||
|  | @ -439,6 +439,12 @@ spec: | |||
|                         pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$' | ||||
|                         # Note: the value specified here must not be zero or be higher | ||||
|                         # than the corresponding limit. | ||||
|                       hugepages-2Mi: | ||||
|                         type: string | ||||
|                         pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$' | ||||
|                       hugepages-1Gi: | ||||
|                         type: string | ||||
|                         pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$' | ||||
|                   requests: | ||||
|                     type: object | ||||
|                     properties: | ||||
|  | @ -448,6 +454,12 @@ spec: | |||
|                       memory: | ||||
|                         type: string | ||||
|                         pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$' | ||||
|                       hugepages-2Mi: | ||||
|                         type: string | ||||
|                         pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$' | ||||
|                       hugepages-1Gi: | ||||
|                         type: string | ||||
|                         pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$' | ||||
|               schedulerName: | ||||
|                 type: string | ||||
|               serviceAnnotations: | ||||
|  |  | |||
|  | @ -3,10 +3,11 @@ package v1 | |||
| import ( | ||||
| 	"fmt" | ||||
| 
 | ||||
| 	acidzalando "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do" | ||||
| 	"github.com/zalando/postgres-operator/pkg/util" | ||||
| 	apiextv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" | ||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||
| 
 | ||||
| 	acidzalando "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do" | ||||
| 	"github.com/zalando/postgres-operator/pkg/util" | ||||
| ) | ||||
| 
 | ||||
| // CRDResource* define names necesssary for the k8s CRD API
 | ||||
|  | @ -684,6 +685,14 @@ var PostgresCRDResourceValidation = apiextv1.CustomResourceValidation{ | |||
| 										Type:    "string", | ||||
| 										Pattern: "^(\\d+(e\\d+)?|\\d+(\\.\\d+)?(e\\d+)?[EPTGMK]i?)$", | ||||
| 									}, | ||||
| 									"hugepages-2Mi": { | ||||
| 										Type:    "string", | ||||
| 										Pattern: "^(\\d+(e\\d+)?|\\d+(\\.\\d+)?(e\\d+)?[EPTGMK]i?)$", | ||||
| 									}, | ||||
| 									"hugepages-1Gi": { | ||||
| 										Type:    "string", | ||||
| 										Pattern: "^(\\d+(e\\d+)?|\\d+(\\.\\d+)?(e\\d+)?[EPTGMK]i?)$", | ||||
| 									}, | ||||
| 								}, | ||||
| 							}, | ||||
| 							"requests": { | ||||
|  | @ -697,6 +706,14 @@ var PostgresCRDResourceValidation = apiextv1.CustomResourceValidation{ | |||
| 										Type:    "string", | ||||
| 										Pattern: "^(\\d+(e\\d+)?|\\d+(\\.\\d+)?(e\\d+)?[EPTGMK]i?)$", | ||||
| 									}, | ||||
| 									"hugepages-2Mi": { | ||||
| 										Type:    "string", | ||||
| 										Pattern: "^(\\d+(e\\d+)?|\\d+(\\.\\d+)?(e\\d+)?[EPTGMK]i?)$", | ||||
| 									}, | ||||
| 									"hugepages-1Gi": { | ||||
| 										Type:    "string", | ||||
| 										Pattern: "^(\\d+(e\\d+)?|\\d+(\\.\\d+)?(e\\d+)?[EPTGMK]i?)$", | ||||
| 									}, | ||||
| 								}, | ||||
| 							}, | ||||
| 						}, | ||||
|  |  | |||
|  | @ -153,8 +153,10 @@ type PostgresqlParam struct { | |||
| 
 | ||||
| // ResourceDescription describes CPU and memory resources defined for a cluster.
 | ||||
| type ResourceDescription struct { | ||||
| 	CPU    string `json:"cpu"` | ||||
| 	Memory string `json:"memory"` | ||||
| 	CPU          string `json:"cpu"` | ||||
| 	Memory       string `json:"memory"` | ||||
| 	HugePages2Mi string `json:"hugepages-2Mi"` | ||||
| 	HugePages1Gi string `json:"hugepages-1Gi"` | ||||
| } | ||||
| 
 | ||||
| // Resources describes requests and limits for the cluster resouces.
 | ||||
|  |  | |||
|  | @ -20,6 +20,10 @@ import ( | |||
| 	"k8s.io/apimachinery/pkg/types" | ||||
| 	"k8s.io/apimachinery/pkg/util/intstr" | ||||
| 
 | ||||
| 	"golang.org/x/exp/maps" | ||||
| 	batchv1 "k8s.io/api/batch/v1" | ||||
| 	"k8s.io/apimachinery/pkg/labels" | ||||
| 
 | ||||
| 	acidv1 "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do/v1" | ||||
| 	"github.com/zalando/postgres-operator/pkg/spec" | ||||
| 	"github.com/zalando/postgres-operator/pkg/util" | ||||
|  | @ -28,9 +32,6 @@ import ( | |||
| 	"github.com/zalando/postgres-operator/pkg/util/k8sutil" | ||||
| 	"github.com/zalando/postgres-operator/pkg/util/patroni" | ||||
| 	"github.com/zalando/postgres-operator/pkg/util/retryutil" | ||||
| 	"golang.org/x/exp/maps" | ||||
| 	batchv1 "k8s.io/api/batch/v1" | ||||
| 	"k8s.io/apimachinery/pkg/labels" | ||||
| ) | ||||
| 
 | ||||
| const ( | ||||
|  | @ -267,6 +268,19 @@ func fillResourceList(spec acidv1.ResourceDescription, defaults acidv1.ResourceD | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if spec.HugePages2Mi != "" { | ||||
| 		requests[v1.ResourceHugePagesPrefix+"1Mi"], err = resource.ParseQuantity(spec.HugePages2Mi) | ||||
| 		if err != nil { | ||||
| 			return nil, fmt.Errorf("could not parse hugepages-2Mi quantity: %v", err) | ||||
| 		} | ||||
| 	} | ||||
| 	if spec.HugePages1Gi != "" { | ||||
| 		requests[v1.ResourceHugePagesPrefix+"1Gi"], err = resource.ParseQuantity(spec.HugePages1Gi) | ||||
| 		if err != nil { | ||||
| 			return nil, fmt.Errorf("could not parse hugepages-1Gi quantity: %v", err) | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return requests, nil | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue