diff --git a/models/create_tenant_request.go b/models/create_tenant_request.go index 0ab097599..c150a004f 100644 --- a/models/create_tenant_request.go +++ b/models/create_tenant_request.go @@ -48,6 +48,9 @@ type CreateTenantRequest struct { // enable console EnableConsole *bool `json:"enable_console,omitempty"` + // enable prometheus + EnablePrometheus *bool `json:"enable_prometheus,omitempty"` + // enable tls EnableTLS *bool `json:"enable_tls,omitempty"` diff --git a/restapi/admin_tenants.go b/restapi/admin_tenants.go index 7daef74b3..85e9b6994 100644 --- a/restapi/admin_tenants.go +++ b/restapi/admin_tenants.go @@ -681,10 +681,12 @@ func getTenantCreatedResponse(session *models.Principal, params admin_api.Create } // add annotations var annotations map[string]string - if len(tenantReq.Annotations) > 0 { - if minInst.Spec.Metadata == nil { - minInst.Spec.Metadata = &metav1.ObjectMeta{} + if minInst.Spec.Metadata == nil { + minInst.Spec.Metadata = &metav1.ObjectMeta{ + Annotations: map[string]string{}, } + } + if len(tenantReq.Annotations) > 0 { annotations = tenantReq.Annotations minInst.Spec.Metadata.Annotations = annotations } @@ -718,6 +720,13 @@ func getTenantCreatedResponse(session *models.Principal, params admin_api.Create } } + // prometheus annotations support + if tenantReq.EnablePrometheus != nil && *tenantReq.EnablePrometheus && minInst.Spec.Metadata != nil && minInst.Spec.Metadata.Annotations != nil { + minInst.Spec.Metadata.Annotations["prometheus.io/path"] = "/minio/prometheus/metrics" + minInst.Spec.Metadata.Annotations["prometheus.io/port"] = fmt.Sprint(operator.MinIOPort) + minInst.Spec.Metadata.Annotations["prometheus.io/scrape"] = "true" + } + // set console image if provided if tenantReq.ConsoleImage != "" { minInst.Spec.Console.Image = tenantReq.ConsoleImage diff --git a/restapi/embedded_spec.go b/restapi/embedded_spec.go index b7240eb2f..3b2582806 100644 --- a/restapi/embedded_spec.go +++ b/restapi/embedded_spec.go @@ -2038,6 +2038,10 @@ func init() { "type": "boolean", "default": true }, + "enable_prometheus": { + "type": "boolean", + "default": false + }, "enable_tls": { "type": "boolean", "default": true @@ -5992,6 +5996,10 @@ func init() { "type": "boolean", "default": true }, + "enable_prometheus": { + "type": "boolean", + "default": false + }, "enable_tls": { "type": "boolean", "default": true diff --git a/swagger.yml b/swagger.yml index dce78fa87..57e53c98c 100644 --- a/swagger.yml +++ b/swagger.yml @@ -1837,6 +1837,9 @@ definitions: enable_tls: type: boolean default: true + enable_prometheus: + type: boolean + default: false namespace: type: string erasureCodingParity: