Adding missing init container fields for Prometheus and Logsearch(Audit) UI (#2116)

Signed-off-by: Lenin Alevski <alevsk.8772@gmail.com>
This commit is contained in:
Lenin Alevski
2022-06-11 20:20:57 -07:00
committed by GitHub
parent 618d95b76e
commit 1dd9f7f363
9 changed files with 65 additions and 23 deletions

View File

@@ -45,6 +45,9 @@ type TenantLogs struct {
// db image
DbImage string `json:"dbImage,omitempty"`
// db init image
DbInitImage string `json:"dbInitImage,omitempty"`
// db labels
DbLabels []*Label `json:"dbLabels"`

View File

@@ -4237,6 +4237,9 @@ func init() {
"dbImage": {
"type": "string"
},
"dbInitImage": {
"type": "string"
},
"dbLabels": {
"type": "array",
"items": {
@@ -9642,6 +9645,9 @@ func init() {
"dbImage": {
"type": "string"
},
"dbInitImage": {
"type": "string"
},
"dbLabels": {
"type": "array",
"items": {

View File

@@ -1376,10 +1376,9 @@ func getTenantLogsResponse(session *models.Principal, params operator_api.GetTen
return nil, restapi.ErrorWithContext(ctx, err, restapi.ErrUnableToGetTenantLogs)
}
if minTenant.Spec.Log == nil {
retval := &models.TenantLogs{
return &models.TenantLogs{
Disabled: true,
}
return retval, nil
}, nil
}
annotations := []*models.Annotation{}
for k, v := range minTenant.Spec.Log.Annotations {
@@ -1415,7 +1414,7 @@ func getTenantLogsResponse(session *models.Principal, params operator_api.GetTen
minTenant.Spec.Log.Audit = &miniov2.AuditConfig{DiskCapacityGB: swag.Int(0)}
}
retval := &models.TenantLogs{
tenantLoggingConfiguration := &models.TenantLogs{
Image: minTenant.Spec.Log.Image,
DiskCapacityGB: fmt.Sprintf("%d", *minTenant.Spec.Log.Audit.DiskCapacityGB),
Annotations: annotations,
@@ -1423,6 +1422,7 @@ func getTenantLogsResponse(session *models.Principal, params operator_api.GetTen
NodeSelector: nodeSelector,
ServiceAccountName: minTenant.Spec.Log.ServiceAccountName,
DbImage: minTenant.Spec.Log.Db.Image,
DbInitImage: minTenant.Spec.Log.Db.InitImage,
DbAnnotations: dbAnnotations,
DbLabels: dbLabels,
DbNodeSelector: dbNodeSelector,
@@ -1434,6 +1434,7 @@ func getTenantLogsResponse(session *models.Principal, params operator_api.GetTen
var requestedMem string
var requestedDBCPU string
var requestedDBMem string
if minTenant.Spec.Log.Resources.Requests != nil {
requestedCPUQ := minTenant.Spec.Log.Resources.Requests["cpu"]
requestedCPU = strconv.FormatInt(requestedCPUQ.Value(), 10)
@@ -1445,12 +1446,12 @@ func getTenantLogsResponse(session *models.Principal, params operator_api.GetTen
requestedDBMemQ := minTenant.Spec.Log.Db.Resources.Requests["memory"]
requestedDBMem = strconv.FormatInt(requestedDBMemQ.Value(), 10)
retval.LogCPURequest = requestedCPU
retval.LogMemRequest = requestedMem
retval.LogDBCPURequest = requestedDBCPU
retval.LogDBMemRequest = requestedDBMem
tenantLoggingConfiguration.LogCPURequest = requestedCPU
tenantLoggingConfiguration.LogMemRequest = requestedMem
tenantLoggingConfiguration.LogDBCPURequest = requestedDBCPU
tenantLoggingConfiguration.LogDBMemRequest = requestedDBMem
}
return retval, nil
return tenantLoggingConfiguration, nil
}
// setTenantLogsResponse returns the logs of a tenant

View File

@@ -325,7 +325,7 @@ const Images = ({ classes }: IImagesProps) => {
label="MinIO"
value={imageName}
error={validationErrors["image"] || ""}
placeholder="E.g. minio/minio:RELEASE.2022-02-26T02-54-46Z"
placeholder="minio/minio:RELEASE.2022-02-26T02-54-46Z"
/>
</Grid>
@@ -340,7 +340,7 @@ const Images = ({ classes }: IImagesProps) => {
label="KES"
value={kesImage}
error={validationErrors["kesImage"] || ""}
placeholder="E.g. minio/kes:v0.17.6"
placeholder="minio/kes:v0.17.6"
/>
</Grid>
<Grid item xs={12} className={classes.formFieldRow}>
@@ -357,7 +357,7 @@ const Images = ({ classes }: IImagesProps) => {
label="API"
value={logSearchImage}
error={validationErrors["logSearchImage"] || ""}
placeholder="E.g. minio/operator:v4.4.10"
placeholder="minio/operator:v4.4.22"
/>
</Grid>
<Grid item xs={12} className={classes.formFieldRow}>
@@ -371,7 +371,7 @@ const Images = ({ classes }: IImagesProps) => {
label="PostgreSQL"
value={logSearchPostgresImage}
error={validationErrors["logSearchPostgresImage"] || ""}
placeholder="E.g. library/postgres:13"
placeholder="library/postgres:13"
/>
</Grid>
<Grid item xs={12} className={classes.formFieldRow}>
@@ -385,7 +385,7 @@ const Images = ({ classes }: IImagesProps) => {
label="PostgreSQL Init"
value={logSearchPostgresInitImage}
error={validationErrors["logSearchPostgresInitImage"] || ""}
placeholder="E.g. library/busybox:1.33.1"
placeholder="library/busybox:1.33.1"
/>
</Grid>
<Grid item xs={12} className={classes.formFieldRow}>
@@ -402,7 +402,7 @@ const Images = ({ classes }: IImagesProps) => {
label="Prometheus"
value={prometheusImage}
error={validationErrors["prometheusImage"] || ""}
placeholder="E.g. quay.io/prometheus/prometheus:latest"
placeholder="quay.io/prometheus/prometheus:latest"
/>
</Grid>
<Grid item xs={12} className={classes.formFieldRow}>
@@ -416,7 +416,7 @@ const Images = ({ classes }: IImagesProps) => {
label="Prometheus Sidecar"
value={prometheusSidecarImage}
error={validationErrors["prometheusSidecarImage"] || ""}
placeholder="E.g. quay.io/prometheus/prometheus:latest"
placeholder="library/alpine:latest"
/>
</Grid>
<Grid item xs={12} className={classes.formFieldRow}>
@@ -430,7 +430,7 @@ const Images = ({ classes }: IImagesProps) => {
label="Prometheus Init"
value={prometheusInitImage}
error={validationErrors["prometheusInitImage"] || ""}
placeholder="E.g. quay.io/prometheus/prometheus:latest"
placeholder="library/busybox:1.33.1"
/>
</Grid>
</Fragment>
@@ -469,7 +469,7 @@ const Images = ({ classes }: IImagesProps) => {
label="Endpoint"
value={imageRegistry}
error={validationErrors["registry"] || ""}
placeholder="E.g. https://index.docker.io/v1/"
placeholder="https://index.docker.io/v1/"
required
/>
</Grid>

View File

@@ -227,6 +227,7 @@ export interface ITenantLogsStruct {
diskCapacityGB: number;
serviceAccountName: string;
dbImage: string;
dbInitImage: string;
dbLabels: IKeyValue[];
dbAnnotations: IKeyValue[];
dbNodeSelector: IKeyValue[];

View File

@@ -53,6 +53,7 @@ interface IEditTenantLogsProps {
diskCapacityGB: number;
serviceAccountName: string;
dbImage: string;
dbInitImage: string;
dbLabels: IKeyValue[];
dbAnnotations: IKeyValue[];
dbNodeSelector: IKeyValue[];
@@ -97,6 +98,7 @@ const EditTenantLogsModal = ({
dbAnnotations,
dbNodeSelector,
dbImage,
dbInitImage,
dbServiceAccountName,
cpuRequest,
memRequest,
@@ -130,6 +132,7 @@ const EditTenantLogsModal = ({
dbNodeSelector.length > 0 ? [...dbNodeSelector] : [{ key: "", value: "" }]
);
const [newDbImage, setNewDbImage] = useState<string>(dbImage);
const [newDbInitImage, setNewDbInitImage] = useState<string>(dbInitImage);
const [newDbServiceAccountName, setNewDbServiceAccountName] =
useState<string>(dbServiceAccountName != null ? dbServiceAccountName : "");
const [labelsError, setLabelsError] = useState<any>({});
@@ -184,6 +187,14 @@ const EditTenantLogsModal = ({
/^([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9]?)+(\/(([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9])?)+)*:([a-zA-Z0-9])[a-zA-Z0-9-.]{0,127}$/,
customPatternMessage: "Invalid image",
});
tenantLogValidation.push({
fieldKey: `dbInitImage`,
required: false,
value: newDbInitImage,
pattern:
/^([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9]?)+(\/(([a-zA-Z0-9])([a-zA-Z0-9-._])*([a-zA-Z0-9])?)+)*:([a-zA-Z0-9])[a-zA-Z0-9-.]{0,127}$/,
customPatternMessage: "Invalid image",
});
tenantLogValidation.push({
fieldKey: `diskCapacityGB`,
required: true,
@@ -243,6 +254,7 @@ const EditTenantLogsModal = ({
}, [
newImage,
newDbImage,
newDbInitImage,
newDiskCapacityGB,
newServiceAccountName,
newDbServiceAccountName,
@@ -303,6 +315,7 @@ const EditTenantLogsModal = ({
dbAnnotations: trim(newDbAnnotations),
dbNodeSelector: trim(newDbNodeSelector),
dbImage: newDbImage,
dbInitImage: newDbInitImage,
dbServiceAccountName: newDbServiceAccountName,
logCPURequest: newCPURequest,
logMemRequest: newMemRequest + "Gi",
@@ -326,7 +339,7 @@ const EditTenantLogsModal = ({
<InputBoxWrapper
id={`image`}
label={"Image"}
placeholder={"Image"}
placeholder={"minio/operator:v4.4.22"}
name={`image`}
value={newImage}
onChange={(e) => {
@@ -454,7 +467,7 @@ const EditTenantLogsModal = ({
<InputBoxWrapper
id={`dbImage`}
label={"Postgres Image"}
placeholder={"Db Image"}
placeholder={"library/postgres:13"}
name={`dbImage`}
value={newDbImage}
onChange={(e) => {
@@ -465,6 +478,21 @@ const EditTenantLogsModal = ({
error={validationErrors[`dbImage`] || ""}
/>
</Grid>
<Grid item xs={12} className={classes.formFieldRow}>
<InputBoxWrapper
id={`dbInitImage`}
label={"Postgres Init Image"}
placeholder={"library/busybox:1.33.1"}
name={`dbInitImage`}
value={newDbInitImage}
onChange={(e) => {
setNewDbInitImage(e.target.value);
cleanValidation(`dbInitImage`);
}}
key={`dbInitImage`}
error={validationErrors[`dbInitImage`] || ""}
/>
</Grid>
<Grid item xs={12} className={classes.formFieldRow}>
<InputBoxWrapper
id={`dbServiceAccountName`}

View File

@@ -249,7 +249,7 @@ const EditTenantMonitoringModal = ({
<InputBoxWrapper
id={`image`}
label={"Image"}
placeholder={"Image"}
placeholder={"quay.io/prometheus/prometheus:latest"}
name={`image`}
value={newImage}
onChange={(event: React.ChangeEvent<HTMLInputElement>) => {
@@ -263,7 +263,7 @@ const EditTenantMonitoringModal = ({
<InputBoxWrapper
id={`sidecarImage`}
label={"Sidecar Image"}
placeholder={"Sidecar Image"}
placeholder={"library/alpine:latest"}
name={`sidecarImage`}
value={newSidecarImage}
onChange={(event: React.ChangeEvent<HTMLInputElement>) => {
@@ -277,7 +277,7 @@ const EditTenantMonitoringModal = ({
<InputBoxWrapper
id={`initImage`}
label={"Init Image"}
placeholder={"Init Image"}
placeholder={"library/busybox:1.33.1"}
name={`initImage`}
value={newInitImage}
onChange={(event: React.ChangeEvent<HTMLInputElement>) => {

View File

@@ -197,6 +197,7 @@ const TenantLogging = ({ classes }: ITenantLogs) => {
diskCapacityGB={logInfo.diskCapacityGB}
serviceAccountName={logInfo.serviceAccountName}
dbImage={logInfo.dbImage}
dbInitImage={logInfo.dbInitImage}
dbLabels={logInfo.dbLabels}
dbAnnotations={logInfo.dbAnnotations}
dbNodeSelector={logInfo.dbNodeSelector}

View File

@@ -2912,6 +2912,8 @@ definitions:
type: string
dbImage:
type: string
dbInitImage:
type: string
dbLabels:
type: array
items: