ResourceQuota support for utils/kubernetes (#2040)
Co-authored-by: chris <chris@Profanity.local> Co-authored-by: Asim Aslam <asim@aslam.me>
This commit is contained in:
		| @@ -8,6 +8,7 @@ var templates = map[string]string{ | ||||
| 	"serviceaccount":  serviceAccountTmpl, | ||||
| 	"networkpolicies": networkPolicyTmpl, | ||||
| 	"networkpolicy":   networkPolicyTmpl, | ||||
| 	"resourcequota":   resourceQuotaTmpl, | ||||
| } | ||||
|  | ||||
| var deploymentTmpl = ` | ||||
| @@ -269,3 +270,45 @@ spec: | ||||
|           {{- end }} | ||||
|           {{- end }} | ||||
| ` | ||||
|  | ||||
| var resourceQuotaTmpl = ` | ||||
| apiVersion: v1 | ||||
| kind: ResourceQuota | ||||
| metadata: | ||||
|   name: "{{ .Metadata.Name }}" | ||||
|   namespace: "{{ .Metadata.Namespace }}" | ||||
|   labels: | ||||
|     {{- with .Metadata.Labels }} | ||||
|     {{- range $key, $value := . }} | ||||
|     {{ $key }}: "{{ $value }}" | ||||
|     {{- end }} | ||||
|     {{- end }} | ||||
| spec: | ||||
|   hard: | ||||
|   {{- if .Limits }} | ||||
|   {{- with .Limits }} | ||||
|     {{- if .Memory }} | ||||
|     limits.memory: {{ .Memory }} | ||||
|     {{- end }} | ||||
|     {{- if .CPU }} | ||||
|     limits.cpu: {{ .CPU }} | ||||
|     {{- end }} | ||||
|     {{- if .EphemeralStorage }} | ||||
|     limits.ephemeral-storage: {{ .EphemeralStorage }} | ||||
|     {{- end }} | ||||
|   {{- end }} | ||||
|   {{- end }} | ||||
|   {{- if .Requests }} | ||||
|   {{- with .Requests }} | ||||
|     {{- if .Memory }} | ||||
|     requests.memory: {{ .Memory }} | ||||
|     {{- end }} | ||||
|     {{- if .CPU }} | ||||
|     requests.cpu: {{ .CPU }} | ||||
|     {{- end }} | ||||
|     {{- if .EphemeralStorage }} | ||||
|     requests.ephemeral-storage: {{ .EphemeralStorage }} | ||||
|     {{- end }} | ||||
|   {{- end }} | ||||
|   {{- end }} | ||||
| ` | ||||
|   | ||||
| @@ -268,8 +268,15 @@ type VolumeMount struct { | ||||
| 	MountPath string `json:"mountPath"` | ||||
| } | ||||
|  | ||||
| // NetworkPolicy is a Kubernetes Namespace | ||||
| // NetworkPolicy defines label-based filtering for network ingress | ||||
| type NetworkPolicy struct { | ||||
| 	AllowedLabels map[string]string `json:"allowedLabels,omitempty"` | ||||
| 	Metadata      *Metadata         `json:"metadata,omitempty"` | ||||
| } | ||||
|  | ||||
| // ResourceQuota defines resource limits for a namespace | ||||
| type ResourceQuota struct { | ||||
| 	Requests *ResourceLimits `json:"requests,omitempty"` | ||||
| 	Limits   *ResourceLimits `json:"limits,omitempty"` | ||||
| 	Metadata *Metadata       `json:"metadata,omitempty"` | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user