Skip to content

Commit 5258ac3

Browse files
authored
Logging resources selector (#1402)
Added CPU and memory request selector to Log and Log DB
1 parent 27d1627 commit 5258ac3

File tree

7 files changed

+318
-13
lines changed

7 files changed

+318
-13
lines changed

models/tenant_logs.go

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

operatorapi/embedded_spec.go

Lines changed: 24 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

operatorapi/operator_tenants.go

Lines changed: 67 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
"net"
2929
"net/http"
3030
"os"
31+
"reflect"
3132
"sort"
3233
"strconv"
3334
"strings"
@@ -237,6 +238,7 @@ func registerTenantHandlers(api *operations.OperatorAPI) {
237238

238239
//Get tenant monitoring info
239240
api.OperatorAPIGetTenantMonitoringHandler = operator_api.GetTenantMonitoringHandlerFunc(func(params operator_api.GetTenantMonitoringParams, session *models.Principal) middleware.Responder {
241+
240242
payload, err := getTenantMonitoringResponse(session, params)
241243
if err != nil {
242244
return operator_api.NewGetTenantMonitoringDefault(int(err.Code)).WithPayload(err)
@@ -1789,14 +1791,6 @@ func getTenantLogsResponse(session *models.Principal, params operator_api.GetTen
17891791
minTenant.Spec.Log.Audit = &miniov2.AuditConfig{DiskCapacityGB: swag.Int(0)}
17901792
}
17911793

1792-
/*if minTenant.Spec.Log.Image == "" {
1793-
minTenant.Spec.Log.Image = miniov2.DefaultLogSearchAPIImage
1794-
}
1795-
1796-
if minTenant.Spec.Log.Db.Image == "" {
1797-
minTenant.Spec.Log.Db.Image = miniov2.LogPgImage
1798-
}*/
1799-
18001794
retval := &models.TenantLogs{
18011795
Image: minTenant.Spec.Log.Image,
18021796
DiskCapacityGB: fmt.Sprintf("%d", *minTenant.Spec.Log.Audit.DiskCapacityGB),
@@ -1811,11 +1805,33 @@ func getTenantLogsResponse(session *models.Principal, params operator_api.GetTen
18111805
DbServiceAccountName: minTenant.Spec.Log.Db.ServiceAccountName,
18121806
Disabled: false,
18131807
}
1808+
1809+
var requestedCPU string
1810+
var requestedMem string
1811+
var requestedDBCPU string
1812+
var requestedDBMem string
1813+
if minTenant.Spec.Log.Resources.Requests != nil {
1814+
requestedCPUQ := minTenant.Spec.Log.Resources.Requests["cpu"]
1815+
requestedCPU = strconv.FormatInt(requestedCPUQ.Value(), 10)
1816+
requestedMemQ := minTenant.Spec.Log.Resources.Requests["memory"]
1817+
requestedMem = strconv.FormatInt(requestedMemQ.Value(), 10)
1818+
1819+
requestedDBCPUQ := minTenant.Spec.Log.Db.Resources.Requests["cpu"]
1820+
requestedDBCPU = strconv.FormatInt(requestedDBCPUQ.Value(), 10)
1821+
requestedDBMemQ := minTenant.Spec.Log.Db.Resources.Requests["memory"]
1822+
requestedDBMem = strconv.FormatInt(requestedDBMemQ.Value(), 10)
1823+
1824+
retval.LogCPURequest = requestedCPU
1825+
retval.LogMemRequest = requestedMem
1826+
retval.LogDBCPURequest = requestedDBCPU
1827+
retval.LogDBMemRequest = requestedDBMem
1828+
}
18141829
return retval, nil
18151830
}
18161831

18171832
// setTenantLogsResponse returns the logs of a tenant
18181833
func setTenantLogsResponse(session *models.Principal, params operator_api.SetTenantLogsParams) (bool, *models.Error) {
1834+
18191835
// 30 seconds timeout
18201836
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
18211837
defer cancel()
@@ -1833,6 +1849,7 @@ func setTenantLogsResponse(session *models.Principal, params operator_api.SetTen
18331849
if err != nil {
18341850
return false, prepareError(err, errorUnableToGetTenantUsage)
18351851
}
1852+
18361853
var labels = make(map[string]string)
18371854
for i := 0; i < len(params.Data.Labels); i++ {
18381855
if params.Data.Labels[i] != nil {
@@ -1854,6 +1871,26 @@ func setTenantLogsResponse(session *models.Principal, params operator_api.SetTen
18541871
}
18551872
}
18561873
minTenant.Spec.Log.NodeSelector = nodeSelector
1874+
logResourceRequest := make(corev1.ResourceList)
1875+
1876+
if reflect.TypeOf(params.Data.LogCPURequest).Kind() == reflect.String && params.Data.LogCPURequest != "0Gi" && params.Data.LogCPURequest != "" {
1877+
cpuQuantity, err := resource.ParseQuantity(params.Data.LogCPURequest)
1878+
if err != nil {
1879+
return false, prepareError(err)
1880+
}
1881+
logResourceRequest["cpu"] = cpuQuantity
1882+
minTenant.Spec.Log.Resources.Requests = logResourceRequest
1883+
}
1884+
if reflect.TypeOf(params.Data.LogMemRequest).Kind() == reflect.String {
1885+
memQuantity, err := resource.ParseQuantity(params.Data.LogMemRequest)
1886+
if err != nil {
1887+
return false, prepareError(err)
1888+
}
1889+
1890+
logResourceRequest["memory"] = memQuantity
1891+
minTenant.Spec.Log.Resources.Requests = logResourceRequest
1892+
}
1893+
18571894
modified := false
18581895
if minTenant.Spec.Log.Db != nil {
18591896
modified = true
@@ -1879,6 +1916,24 @@ func setTenantLogsResponse(session *models.Principal, params operator_api.SetTen
18791916
}
18801917
modified = true
18811918
}
1919+
1920+
logDBResourceRequest := make(corev1.ResourceList)
1921+
if reflect.TypeOf(params.Data.LogDBCPURequest).Kind() == reflect.String && params.Data.LogDBCPURequest != "0Gi" && params.Data.LogDBCPURequest != "" {
1922+
dbCPUQuantity, err := resource.ParseQuantity(params.Data.LogDBCPURequest)
1923+
if err != nil {
1924+
return false, prepareError(err)
1925+
}
1926+
logDBResourceRequest["cpu"] = dbCPUQuantity
1927+
minTenant.Spec.Log.Db.Resources.Requests = logDBResourceRequest
1928+
}
1929+
if reflect.TypeOf(params.Data.LogDBMemRequest).Kind() == reflect.String {
1930+
dbMemQuantity, err := resource.ParseQuantity(params.Data.LogDBMemRequest)
1931+
if err != nil {
1932+
return false, prepareError(err)
1933+
}
1934+
logDBResourceRequest["memory"] = dbMemQuantity
1935+
minTenant.Spec.Log.Db.Resources.Requests = logDBResourceRequest
1936+
}
18821937
minTenant.Spec.Log.Image = params.Data.Image
18831938
diskCapacityGB, err := strconv.Atoi(params.Data.DiskCapacityGB)
18841939
if err == nil {
@@ -1922,6 +1977,9 @@ func setTenantLogsResponse(session *models.Principal, params operator_api.SetTen
19221977
NodeSelector: dbNodeSelector,
19231978
Image: params.Data.DbImage,
19241979
ServiceAccountName: params.Data.DbServiceAccountName,
1980+
Resources: corev1.ResourceRequirements{
1981+
Requests: minTenant.Spec.Log.Db.Resources.Requests,
1982+
},
19251983
}
19261984
} else {
19271985
minTenant.Spec.Log.Db.Labels = dbLabels
@@ -1931,6 +1989,7 @@ func setTenantLogsResponse(session *models.Principal, params operator_api.SetTen
19311989
minTenant.Spec.Log.Db.ServiceAccountName = params.Data.DbServiceAccountName
19321990
}
19331991
}
1992+
19341993
_, err = opClient.TenantUpdate(ctx, minTenant, metav1.UpdateOptions{})
19351994
if err != nil {
19361995
return false, prepareError(err)

portal-ui/src/screens/Console/Tenants/ListTenants/types.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,10 @@ export interface ITenantLogsStruct {
177177
dbNodeSelector: IKeyValue[];
178178
dbServiceAccountName: string;
179179
disabled: boolean;
180+
logCPURequest: string;
181+
logMemRequest: string;
182+
logDBCPURequest: string;
183+
logDBMemRequest: string;
180184
}
181185

182186
export interface ValueUnit {

0 commit comments

Comments
 (0)