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,
|
"serviceaccount": serviceAccountTmpl,
|
||||||
"networkpolicies": networkPolicyTmpl,
|
"networkpolicies": networkPolicyTmpl,
|
||||||
"networkpolicy": networkPolicyTmpl,
|
"networkpolicy": networkPolicyTmpl,
|
||||||
|
"resourcequota": resourceQuotaTmpl,
|
||||||
}
|
}
|
||||||
|
|
||||||
var deploymentTmpl = `
|
var deploymentTmpl = `
|
||||||
@@ -269,3 +270,45 @@ spec:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
{{- 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"`
|
MountPath string `json:"mountPath"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// NetworkPolicy is a Kubernetes Namespace
|
// NetworkPolicy defines label-based filtering for network ingress
|
||||||
type NetworkPolicy struct {
|
type NetworkPolicy struct {
|
||||||
AllowedLabels map[string]string `json:"allowedLabels,omitempty"`
|
AllowedLabels map[string]string `json:"allowedLabels,omitempty"`
|
||||||
Metadata *Metadata `json:"metadata,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