This commit is contained in:
		
							parent
							
								
									af084a5a65
								
							
						
					
					
						commit
						33a70410ba
					
				|  | @ -14,6 +14,10 @@ spec: | ||||||
|     foo_user: []  # role for application foo |     foo_user: []  # role for application foo | ||||||
|   databases: |   databases: | ||||||
|     foo: zalando  # dbname: owner |     foo: zalando  # dbname: owner | ||||||
|  |   resources: | ||||||
|  |     limits: | ||||||
|  |       hugepages-2Mi: 250Mi | ||||||
|  |       memory: 250Mi | ||||||
|   preparedDatabases: |   preparedDatabases: | ||||||
|     bar: {} |     bar: {} | ||||||
|   postgresql: |   postgresql: | ||||||
|  |  | ||||||
|  | @ -439,6 +439,12 @@ spec: | ||||||
|                         pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$' |                         pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$' | ||||||
|                         # Note: the value specified here must not be zero or be higher |                         # Note: the value specified here must not be zero or be higher | ||||||
|                         # than the corresponding limit. |                         # 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: |                   requests: | ||||||
|                     type: object |                     type: object | ||||||
|                     properties: |                     properties: | ||||||
|  | @ -448,6 +454,12 @@ spec: | ||||||
|                       memory: |                       memory: | ||||||
|                         type: string |                         type: string | ||||||
|                         pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$' |                         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: |               schedulerName: | ||||||
|                 type: string |                 type: string | ||||||
|               serviceAnnotations: |               serviceAnnotations: | ||||||
|  |  | ||||||
|  | @ -3,10 +3,11 @@ package v1 | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"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" | 	apiextv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" | ||||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/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
 | // CRDResource* define names necesssary for the k8s CRD API
 | ||||||
|  | @ -684,6 +685,14 @@ var PostgresCRDResourceValidation = apiextv1.CustomResourceValidation{ | ||||||
| 										Type:    "string", | 										Type:    "string", | ||||||
| 										Pattern: "^(\\d+(e\\d+)?|\\d+(\\.\\d+)?(e\\d+)?[EPTGMK]i?)$", | 										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": { | 							"requests": { | ||||||
|  | @ -697,6 +706,14 @@ var PostgresCRDResourceValidation = apiextv1.CustomResourceValidation{ | ||||||
| 										Type:    "string", | 										Type:    "string", | ||||||
| 										Pattern: "^(\\d+(e\\d+)?|\\d+(\\.\\d+)?(e\\d+)?[EPTGMK]i?)$", | 										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.
 | // ResourceDescription describes CPU and memory resources defined for a cluster.
 | ||||||
| type ResourceDescription struct { | type ResourceDescription struct { | ||||||
| 	CPU    string `json:"cpu"` | 	CPU          string `json:"cpu"` | ||||||
| 	Memory string `json:"memory"` | 	Memory       string `json:"memory"` | ||||||
|  | 	HugePages2Mi string `json:"hugepages-2Mi"` | ||||||
|  | 	HugePages1Gi string `json:"hugepages-1Gi"` | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Resources describes requests and limits for the cluster resouces.
 | // Resources describes requests and limits for the cluster resouces.
 | ||||||
|  |  | ||||||
|  | @ -20,6 +20,10 @@ import ( | ||||||
| 	"k8s.io/apimachinery/pkg/types" | 	"k8s.io/apimachinery/pkg/types" | ||||||
| 	"k8s.io/apimachinery/pkg/util/intstr" | 	"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" | 	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/spec" | ||||||
| 	"github.com/zalando/postgres-operator/pkg/util" | 	"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/k8sutil" | ||||||
| 	"github.com/zalando/postgres-operator/pkg/util/patroni" | 	"github.com/zalando/postgres-operator/pkg/util/patroni" | ||||||
| 	"github.com/zalando/postgres-operator/pkg/util/retryutil" | 	"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 ( | 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 | 	return requests, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue