Remove the last k8s import on restapi (#877)
* Remove the last k8s import on restapi Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
This commit is contained in:
@@ -40,8 +40,8 @@ var (
|
||||
errAccessDenied = errors.New("access denied")
|
||||
)
|
||||
|
||||
// PrepareError receives an error object and parse it against k8sErrors, returns the right error code paired with a generic error message
|
||||
func PrepareError(err ...error) *models.Error {
|
||||
// prepareError receives an error object and parse it against k8sErrors, returns the right error code paired with a generic error message
|
||||
func prepareError(err ...error) *models.Error {
|
||||
errorCode := int32(500)
|
||||
errorMessage := errorGeneric.Error()
|
||||
if len(err) > 0 {
|
||||
|
||||
@@ -22,8 +22,6 @@ import (
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
"github.com/minio/console/restapi"
|
||||
|
||||
"github.com/minio/console/operatorapi/operations/operator_api"
|
||||
|
||||
"github.com/minio/console/cluster"
|
||||
@@ -153,12 +151,12 @@ func getDirectCSIDrivesListResponse(session *models.Principal) (*models.GetDirec
|
||||
ctx := context.Background()
|
||||
client, err := cluster.DirectCSIClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
|
||||
drives, err := getDirectCSIDriveList(ctx, client.DirectV1beta1())
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
return drives, nil
|
||||
}
|
||||
@@ -207,12 +205,12 @@ func getDirectCSIVolumesListResponse(session *models.Principal) (*models.GetDire
|
||||
ctx := context.Background()
|
||||
client, err := cluster.DirectCSIClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
|
||||
volumes, err := getDirectCSIVolumesList(ctx, client.DirectV1beta1())
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
return volumes, nil
|
||||
}
|
||||
@@ -308,12 +306,12 @@ func formatVolumesResponse(session *models.Principal, params operator_api.Direct
|
||||
ctx := context.Background()
|
||||
client, err := cluster.DirectCSIClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
|
||||
formatResult, errFormat := formatDrives(ctx, client.DirectV1beta1(), params.Body.Drives, *params.Body.Force)
|
||||
if errFormat != nil {
|
||||
return nil, restapi.PrepareError(errFormat)
|
||||
return nil, prepareError(errFormat)
|
||||
}
|
||||
return formatResult, nil
|
||||
}
|
||||
|
||||
@@ -163,11 +163,11 @@ func getLoginResponse(lr *models.LoginRequest) (*models.LoginResponse, *models.E
|
||||
// prepare console credentials
|
||||
consolCreds, err := getConsoleCredentials(ctx, *lr.AccessKey, *lr.SecretKey)
|
||||
if err != nil {
|
||||
return nil, PrepareError(errInvalidCredentials, nil, err)
|
||||
return nil, prepareError(errInvalidCredentials, nil, err)
|
||||
}
|
||||
sessionID, err := login(consolCreds)
|
||||
if err != nil {
|
||||
return nil, PrepareError(errInvalidCredentials, nil, err)
|
||||
return nil, prepareError(errInvalidCredentials, nil, err)
|
||||
}
|
||||
// serialize output
|
||||
loginResponse := &models.LoginResponse{
|
||||
@@ -188,7 +188,7 @@ func getLoginDetailsResponse() (*models.LoginDetails, *models.Error) {
|
||||
// initialize new oauth2 client
|
||||
oauth2Client, err := oauth2.NewOauth2ProviderClient(ctx, nil, restapi.GetConsoleSTSClient())
|
||||
if err != nil {
|
||||
return nil, PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
// Validate user against IDP
|
||||
identityProvider := &auth.IdentityProvider{Client: oauth2Client}
|
||||
@@ -208,12 +208,12 @@ func getLoginOauth2AuthResponse() (*models.LoginResponse, *models.Error) {
|
||||
|
||||
creds, err := restapi.NewConsoleCredentials("", getK8sSAToken(), "")
|
||||
if err != nil {
|
||||
return nil, PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
credentials := restapi.ConsoleCredentials{ConsoleCredentials: creds, Actions: []string{}}
|
||||
token, err := login(credentials)
|
||||
if err != nil {
|
||||
return nil, PrepareError(errInvalidCredentials, nil, err)
|
||||
return nil, prepareError(errInvalidCredentials, nil, err)
|
||||
}
|
||||
// serialize output
|
||||
loginResponse := &models.LoginResponse{
|
||||
@@ -226,12 +226,12 @@ func getLoginOauth2AuthResponse() (*models.LoginResponse, *models.Error) {
|
||||
func getLoginOperatorResponse(lmr *models.LoginOperatorRequest) (*models.LoginResponse, *models.Error) {
|
||||
creds, err := restapi.NewConsoleCredentials("", *lmr.Jwt, "")
|
||||
if err != nil {
|
||||
return nil, PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
consoleCreds := restapi.ConsoleCredentials{ConsoleCredentials: creds, Actions: []string{}}
|
||||
token, err := login(consoleCreds)
|
||||
if err != nil {
|
||||
return nil, PrepareError(errInvalidCredentials, nil, err)
|
||||
return nil, prepareError(errInvalidCredentials, nil, err)
|
||||
}
|
||||
// serialize output
|
||||
loginResponse := &models.LoginResponse{
|
||||
|
||||
@@ -21,7 +21,6 @@ import (
|
||||
"errors"
|
||||
|
||||
"github.com/minio/console/operatorapi/operations/operator_api"
|
||||
"github.com/minio/console/restapi"
|
||||
|
||||
"github.com/go-openapi/runtime/middleware"
|
||||
"github.com/minio/console/cluster"
|
||||
@@ -50,7 +49,7 @@ func getNamespaceCreatedResponse(session *models.Principal, params operator_api.
|
||||
clientset, err := cluster.K8sClient(session.STSSessionToken)
|
||||
|
||||
if err != nil {
|
||||
return restapi.PrepareError(err)
|
||||
return prepareError(err)
|
||||
}
|
||||
|
||||
namespace := *params.Body.Name
|
||||
@@ -58,7 +57,7 @@ func getNamespaceCreatedResponse(session *models.Principal, params operator_api.
|
||||
errCreation := getNamespaceCreated(ctx, clientset.CoreV1(), namespace)
|
||||
|
||||
if errCreation != nil {
|
||||
return restapi.PrepareError(errCreation)
|
||||
return prepareError(errCreation)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
@@ -23,7 +23,6 @@ import (
|
||||
"github.com/minio/minio-go/v7/pkg/set"
|
||||
|
||||
"github.com/minio/console/operatorapi/operations/operator_api"
|
||||
"github.com/minio/console/restapi"
|
||||
|
||||
"github.com/minio/console/cluster"
|
||||
|
||||
@@ -136,12 +135,12 @@ func min(x, y int64) int64 {
|
||||
func getMaxAllocatableMemoryResponse(ctx context.Context, session *models.Principal, numNodes int32) (*models.MaxAllocatableMemResponse, *models.Error) {
|
||||
client, err := cluster.K8sClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
|
||||
clusterResources, err := getMaxAllocatableMemory(ctx, client.CoreV1(), numNodes)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
return clusterResources, nil
|
||||
}
|
||||
@@ -176,12 +175,12 @@ func getNodeLabels(ctx context.Context, clientset v1.CoreV1Interface) (*models.N
|
||||
func getNodeLabelsResponse(ctx context.Context, session *models.Principal) (*models.NodeLabels, *models.Error) {
|
||||
client, err := cluster.K8sClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
|
||||
clusterResources, err := getNodeLabels(ctx, client.CoreV1())
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
return clusterResources, nil
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ func getParityResponse(params operator_api.GetParityParams) (models.ParityRespon
|
||||
parityValues, err := GetParityInfo(nodes, disksPerNode)
|
||||
if err != nil {
|
||||
restapi.LogError("error getting parity info: %v", err)
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
|
||||
return parityValues, nil
|
||||
|
||||
@@ -39,7 +39,7 @@ func registerSessionHandlers(api *operations.OperatorAPI) {
|
||||
func getSessionResponse(session *models.Principal) (*models.SessionResponse, *models.Error) {
|
||||
// serialize output
|
||||
if session == nil {
|
||||
return nil, PrepareError(errorGenericInvalidSession)
|
||||
return nil, prepareError(errorGenericInvalidSession)
|
||||
}
|
||||
sessionResp := &models.SessionResponse{
|
||||
Pages: acl.GetAuthorizedEndpoints(session.Actions),
|
||||
|
||||
@@ -85,22 +85,22 @@ func getOperatorSubscriptionActivateResponse(session *models.Principal, namespac
|
||||
defer cancel()
|
||||
opClientClientSet, err := cluster.OperatorClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return restapi.PrepareError(restapi.ErrorGeneric, nil, err)
|
||||
return prepareError(restapi.ErrorGeneric, nil, err)
|
||||
}
|
||||
clientSet, err := cluster.K8sClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return restapi.PrepareError(restapi.ErrorGeneric, nil, err)
|
||||
return prepareError(restapi.ErrorGeneric, nil, err)
|
||||
}
|
||||
opClient := &operatorClient{
|
||||
client: opClientClientSet,
|
||||
}
|
||||
minTenant, err := getTenant(ctx, opClient, namespace, tenant)
|
||||
if err != nil {
|
||||
return restapi.PrepareError(err, restapi.ErrorGeneric)
|
||||
return prepareError(err, restapi.ErrorGeneric)
|
||||
}
|
||||
// If console is not deployed for this tenant return an error
|
||||
if minTenant.Spec.Console == nil {
|
||||
return restapi.PrepareError(restapi.ErrorGenericNotFound)
|
||||
return prepareError(restapi.ErrorGenericNotFound)
|
||||
}
|
||||
|
||||
// configure kubernetes client
|
||||
@@ -110,11 +110,11 @@ func getOperatorSubscriptionActivateResponse(session *models.Principal, namespac
|
||||
// Get cluster subscription license
|
||||
license, err := getSubscriptionLicense(ctx, &k8sClient, cluster.Namespace, restapi.OperatorSubnetLicenseSecretName)
|
||||
if err != nil {
|
||||
return restapi.PrepareError(errInvalidCredentials, nil, err)
|
||||
return prepareError(errInvalidCredentials, nil, err)
|
||||
}
|
||||
// add subscription license to existing console Tenant
|
||||
if err = addSubscriptionLicenseToTenant(ctx, &k8sClient, license, namespace, tenant, minTenant.Spec.Console.ConsoleSecret.Name); err != nil {
|
||||
return restapi.PrepareError(err, restapi.ErrorGeneric)
|
||||
return prepareError(err, restapi.ErrorGeneric)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -228,35 +228,35 @@ func getSubscriptionRefreshResponse(session *models.Principal) (*models.License,
|
||||
}
|
||||
licenseKey, err := retrieveLicense(context.Background(), session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, PrepareError(errLicenseNotFound, nil, err)
|
||||
return nil, prepareError(errLicenseNotFound, nil, err)
|
||||
}
|
||||
newLicenseInfo, licenseRaw, err := subscriptionRefresh(client, licenseKey)
|
||||
if err != nil {
|
||||
return nil, PrepareError(errLicenseNotFound, nil, err)
|
||||
return nil, prepareError(errLicenseNotFound, nil, err)
|
||||
}
|
||||
// configure kubernetes client
|
||||
clientSet, err := cluster.K8sClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, PrepareError(errLicenseNotFound, nil, err)
|
||||
return nil, prepareError(errLicenseNotFound, nil, err)
|
||||
}
|
||||
k8sClient := k8sClient{
|
||||
client: clientSet,
|
||||
}
|
||||
// save license key to k8s and restart all console pods
|
||||
if err = saveSubscriptionLicense(ctx, &k8sClient, licenseRaw); err != nil {
|
||||
return nil, PrepareError(restapi.ErrorGeneric, nil, err)
|
||||
return nil, prepareError(restapi.ErrorGeneric, nil, err)
|
||||
}
|
||||
// update license for all existing tenants
|
||||
opClientClientSet, err := cluster.OperatorClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
opClient := &operatorClient{
|
||||
client: opClientClientSet,
|
||||
}
|
||||
tenants, err := listTenants(ctx, opClient, "", nil)
|
||||
if err != nil {
|
||||
return nil, PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
// iterate over all tenants, update console configuration and restart console pods
|
||||
for _, tenant := range tenants.Tenants {
|
||||
|
||||
@@ -248,12 +248,12 @@ func registerTenantHandlers(api *operations.OperatorAPI) {
|
||||
func getDeleteTenantResponse(session *models.Principal, params operator_api.DeleteTenantParams) *models.Error {
|
||||
opClientClientSet, err := cluster.OperatorClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return restapi.PrepareError(err)
|
||||
return prepareError(err)
|
||||
}
|
||||
// get Kubernetes Client
|
||||
clientset, err := cluster.K8sClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return restapi.PrepareError(err)
|
||||
return prepareError(err)
|
||||
}
|
||||
opClient := &operatorClient{
|
||||
client: opClientClientSet,
|
||||
@@ -263,7 +263,7 @@ func getDeleteTenantResponse(session *models.Principal, params operator_api.Dele
|
||||
deleteTenantPVCs = params.Body.DeletePvcs
|
||||
}
|
||||
if err = deleteTenantAction(context.Background(), opClient, clientset.CoreV1(), params.Namespace, params.Tenant, deleteTenantPVCs); err != nil {
|
||||
return restapi.PrepareError(err)
|
||||
return prepareError(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -307,14 +307,14 @@ func getDeletePodResponse(session *models.Principal, params operator_api.DeleteP
|
||||
// get Kubernetes Client
|
||||
clientset, err := cluster.K8sClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return restapi.PrepareError(err)
|
||||
return prepareError(err)
|
||||
}
|
||||
listOpts := metav1.ListOptions{
|
||||
LabelSelector: fmt.Sprintf("v1.min.io/tenant=%s", params.Tenant),
|
||||
FieldSelector: fmt.Sprintf("metadata.name=%s%s", params.Tenant, params.PodName[len(params.Tenant):]),
|
||||
}
|
||||
if err = clientset.CoreV1().Pods(params.Namespace).DeleteCollection(ctx, metav1.DeleteOptions{}, listOpts); err != nil {
|
||||
return restapi.PrepareError(err)
|
||||
return prepareError(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -437,7 +437,7 @@ func getTenantDetailsResponse(session *models.Principal, params operator_api.Ten
|
||||
defer cancel()
|
||||
opClientClientSet, err := cluster.OperatorClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
|
||||
opClient := &operatorClient{
|
||||
@@ -446,7 +446,7 @@ func getTenantDetailsResponse(session *models.Principal, params operator_api.Ten
|
||||
|
||||
minTenant, err := getTenant(ctx, opClient, params.Namespace, params.Tenant)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
|
||||
info := getTenantInfo(minTenant)
|
||||
@@ -462,7 +462,7 @@ func getTenantDetailsResponse(session *models.Principal, params operator_api.Ten
|
||||
// get Kubernetes Client
|
||||
clientSet, err := cluster.K8sClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
|
||||
k8sClient := k8sClient{
|
||||
@@ -659,14 +659,14 @@ func getTenantSecurityResponse(session *models.Principal, params operator_api.Te
|
||||
//defer cancel()
|
||||
opClientClientSet, err := cluster.OperatorClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
opClient := &operatorClient{
|
||||
client: opClientClientSet,
|
||||
}
|
||||
minTenant, err := getTenant(ctx, opClient, params.Namespace, params.Tenant)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
// get Kubernetes Client
|
||||
clientSet, err := cluster.K8sClient(session.STSSessionToken)
|
||||
@@ -674,11 +674,11 @@ func getTenantSecurityResponse(session *models.Principal, params operator_api.Te
|
||||
client: clientSet,
|
||||
}
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
info, err := getTenantSecurity(ctx, &k8sClient, minTenant)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
return info, nil
|
||||
}
|
||||
@@ -689,12 +689,12 @@ func getUpdateTenantSecurityResponse(session *models.Principal, params operator_
|
||||
defer cancel()
|
||||
opClientClientSet, err := cluster.OperatorClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return restapi.PrepareError(err)
|
||||
return prepareError(err)
|
||||
}
|
||||
// get Kubernetes Client
|
||||
clientSet, err := cluster.K8sClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return restapi.PrepareError(err)
|
||||
return prepareError(err)
|
||||
}
|
||||
k8sClient := k8sClient{
|
||||
client: clientSet,
|
||||
@@ -703,7 +703,7 @@ func getUpdateTenantSecurityResponse(session *models.Principal, params operator_
|
||||
client: opClientClientSet,
|
||||
}
|
||||
if err := updateTenantSecurity(ctx, opClient, &k8sClient, params.Namespace, params); err != nil {
|
||||
return restapi.PrepareError(err, errors.New("unable to update tenant"))
|
||||
return prepareError(err, errors.New("unable to update tenant"))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -917,14 +917,14 @@ func getListAllTenantsResponse(session *models.Principal, params operator_api.Li
|
||||
ctx := context.Background()
|
||||
opClientClientSet, err := cluster.OperatorClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
opClient := &operatorClient{
|
||||
client: opClientClientSet,
|
||||
}
|
||||
listT, err := listTenants(ctx, opClient, "", params.Limit)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
return listT, nil
|
||||
}
|
||||
@@ -934,14 +934,14 @@ func getListTenantsResponse(session *models.Principal, params operator_api.ListT
|
||||
ctx := context.Background()
|
||||
opClientClientSet, err := cluster.OperatorClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
opClient := &operatorClient{
|
||||
client: opClientClientSet,
|
||||
}
|
||||
listT, err := listTenants(ctx, opClient, params.Namespace, params.Limit)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
return listT, nil
|
||||
}
|
||||
@@ -965,7 +965,7 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
|
||||
client: clientSet,
|
||||
}
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
|
||||
ns := *tenantReq.Namespace
|
||||
@@ -1004,7 +1004,7 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
|
||||
}
|
||||
_, err = clientSet.CoreV1().Secrets(ns).Create(ctx, &instanceSecret, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
|
||||
// delete secrets created if an error occurred during tenant creation,
|
||||
@@ -1025,7 +1025,7 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
|
||||
// Check the Erasure Coding Parity for validity and pass it to Tenant
|
||||
if tenantReq.ErasureCodingParity > 0 {
|
||||
if tenantReq.ErasureCodingParity < 2 || tenantReq.ErasureCodingParity > 8 {
|
||||
return nil, restapi.PrepareError(errorInvalidErasureCodingValue)
|
||||
return nil, prepareError(errorInvalidErasureCodingValue)
|
||||
}
|
||||
environmentVariables = append(environmentVariables, corev1.EnvVar{
|
||||
Name: "MINIO_STORAGE_CLASS_STANDARD",
|
||||
@@ -1121,7 +1121,7 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
|
||||
}
|
||||
_, err := clientSet.CoreV1().Secrets(ns).Create(ctx, &userSecret, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
}
|
||||
// attach the users to the tenant
|
||||
@@ -1147,7 +1147,7 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
|
||||
externalCertSecretName := fmt.Sprintf("%s-instance-external-certificates", secretName)
|
||||
externalCertSecret, err := createOrReplaceExternalCertSecrets(ctx, &k8sClient, ns, tenantReq.TLS.Minio, externalCertSecretName, tenantName)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
minInst.Spec.ExternalCertSecret = externalCertSecret
|
||||
}
|
||||
@@ -1159,7 +1159,7 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
|
||||
certificates := []*models.KeyPairConfiguration{tenantReq.Encryption.Client}
|
||||
certificateSecrets, err := createOrReplaceExternalCertSecrets(ctx, &k8sClient, ns, certificates, tenantExternalClientCertSecretName, tenantName)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(restapi.ErrorGeneric)
|
||||
return nil, prepareError(restapi.ErrorGeneric)
|
||||
}
|
||||
if len(certificateSecrets) > 0 {
|
||||
minInst.Spec.ExternalClientCertSecret = certificateSecrets[0]
|
||||
@@ -1169,7 +1169,7 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
|
||||
// KES configuration for Tenant instance
|
||||
minInst.Spec.KES, err = getKESConfiguration(ctx, &k8sClient, ns, tenantReq.Encryption, secretName, tenantName)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(restapi.ErrorGeneric)
|
||||
return nil, prepareError(restapi.ErrorGeneric)
|
||||
}
|
||||
// Set Labels, Annotations and Node Selector for KES
|
||||
minInst.Spec.KES.Labels = tenantReq.Encryption.Labels
|
||||
@@ -1182,7 +1182,7 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
|
||||
for i, caCertificate := range tenantReq.TLS.CaCertificates {
|
||||
certificateContent, err := base64.StdEncoding.DecodeString(caCertificate)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(restapi.ErrorGeneric, nil, err)
|
||||
return nil, prepareError(restapi.ErrorGeneric, nil, err)
|
||||
}
|
||||
caCertificates = append(caCertificates, tenantSecret{
|
||||
Name: fmt.Sprintf("ca-certificate-%d", i),
|
||||
@@ -1194,7 +1194,7 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
|
||||
if len(caCertificates) > 0 {
|
||||
certificateSecrets, err := createOrReplaceSecrets(ctx, &k8sClient, ns, caCertificates, tenantName)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(restapi.ErrorGeneric, nil, err)
|
||||
return nil, prepareError(restapi.ErrorGeneric, nil, err)
|
||||
}
|
||||
minInst.Spec.ExternalCaCertSecret = certificateSecrets
|
||||
}
|
||||
@@ -1251,7 +1251,7 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
|
||||
certificates := []*models.KeyPairConfiguration{tenantReq.TLS.Console}
|
||||
externalCertSecret, err := createOrReplaceExternalCertSecrets(ctx, &k8sClient, ns, certificates, externalCertSecretName, tenantName)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(restapi.ErrorGeneric)
|
||||
return nil, prepareError(restapi.ErrorGeneric)
|
||||
}
|
||||
if len(externalCertSecret) > 0 {
|
||||
minInst.Spec.Console.ExternalCertSecret = externalCertSecret[0]
|
||||
@@ -1283,7 +1283,7 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
|
||||
|
||||
_, err = clientSet.CoreV1().Secrets(ns).Create(ctx, &instanceSecret, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(restapi.ErrorGeneric)
|
||||
return nil, prepareError(restapi.ErrorGeneric)
|
||||
}
|
||||
|
||||
// Set Labels, Annotations and Node Selector for Console
|
||||
@@ -1299,7 +1299,7 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
|
||||
for i, caCertificate := range tenantReq.TLS.ConsoleCaCertificates {
|
||||
certificateContent, err := base64.StdEncoding.DecodeString(caCertificate)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(restapi.ErrorGeneric, nil, err)
|
||||
return nil, prepareError(restapi.ErrorGeneric, nil, err)
|
||||
}
|
||||
caCertificates = append(caCertificates, tenantSecret{
|
||||
Name: fmt.Sprintf("console-ca-certificate-%d", i),
|
||||
@@ -1311,7 +1311,7 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
|
||||
if len(caCertificates) > 0 {
|
||||
certificateSecrets, err := createOrReplaceSecrets(ctx, &k8sClient, ns, caCertificates, tenantName)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(restapi.ErrorGeneric, nil, err)
|
||||
return nil, prepareError(restapi.ErrorGeneric, nil, err)
|
||||
}
|
||||
minInst.Spec.Console.ExternalCaCertSecret = certificateSecrets
|
||||
}
|
||||
@@ -1330,7 +1330,7 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
|
||||
pool, err := parseTenantPoolRequest(pool)
|
||||
if err != nil {
|
||||
restapi.LogError("parseTenantPoolRequest failed: %v", err)
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
minInst.Spec.Pools = append(minInst.Spec.Pools, *pool)
|
||||
}
|
||||
@@ -1346,7 +1346,7 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
|
||||
if tenantReq.ImagePullSecret != "" {
|
||||
imagePullSecret = tenantReq.ImagePullSecret
|
||||
} else if imagePullSecret, err = setImageRegistry(ctx, tenantReq.ImageRegistry, clientSet.CoreV1(), ns, tenantName); err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
// pass the image pull secret to the Tenant
|
||||
if imagePullSecret != "" {
|
||||
@@ -1465,20 +1465,20 @@ func getTenantCreatedResponse(session *models.Principal, params operator_api.Cre
|
||||
|
||||
opClient, err := cluster.OperatorClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
|
||||
_, err = opClient.MinioV2().Tenants(ns).Create(context.Background(), &minInst, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
restapi.LogError("Creating new tenant failed with: %v", err)
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
|
||||
// Integrations
|
||||
if os.Getenv("GKE_INTEGRATION") != "" {
|
||||
err := gkeIntegration(clientSet, tenantName, ns, session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
}
|
||||
response = &models.CreateTenantResponse{}
|
||||
@@ -1660,12 +1660,12 @@ func getUpdateTenantResponse(session *models.Principal, params operator_api.Upda
|
||||
ctx := context.Background()
|
||||
opClientClientSet, err := cluster.OperatorClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return restapi.PrepareError(err)
|
||||
return prepareError(err)
|
||||
}
|
||||
// get Kubernetes Client
|
||||
clientSet, err := cluster.K8sClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return restapi.PrepareError(err)
|
||||
return prepareError(err)
|
||||
}
|
||||
opClient := &operatorClient{
|
||||
client: opClientClientSet,
|
||||
@@ -1676,7 +1676,7 @@ func getUpdateTenantResponse(session *models.Principal, params operator_api.Upda
|
||||
},
|
||||
}
|
||||
if err := updateTenantAction(ctx, opClient, clientSet.CoreV1(), httpC, params.Namespace, params); err != nil {
|
||||
return restapi.PrepareError(err, errors.New("unable to update tenant"))
|
||||
return prepareError(err, errors.New("unable to update tenant"))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -1710,13 +1710,13 @@ func getTenantAddPoolResponse(session *models.Principal, params operator_api.Ten
|
||||
ctx := context.Background()
|
||||
opClientClientSet, err := cluster.OperatorClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return restapi.PrepareError(err)
|
||||
return prepareError(err)
|
||||
}
|
||||
opClient := &operatorClient{
|
||||
client: opClientClientSet,
|
||||
}
|
||||
if err := addTenantPool(ctx, opClient, params); err != nil {
|
||||
return restapi.PrepareError(err, errors.New("unable to add pool"))
|
||||
return prepareError(err, errors.New("unable to add pool"))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -1729,11 +1729,11 @@ func getTenantUsageResponse(session *models.Principal, params operator_api.GetTe
|
||||
|
||||
opClientClientSet, err := cluster.OperatorClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err, errorUnableToGetTenantUsage)
|
||||
return nil, prepareError(err, errorUnableToGetTenantUsage)
|
||||
}
|
||||
clientSet, err := cluster.K8sClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err, errorUnableToGetTenantUsage)
|
||||
return nil, prepareError(err, errorUnableToGetTenantUsage)
|
||||
}
|
||||
|
||||
opClient := &operatorClient{
|
||||
@@ -1745,7 +1745,7 @@ func getTenantUsageResponse(session *models.Principal, params operator_api.GetTe
|
||||
|
||||
minTenant, err := getTenant(ctx, opClient, params.Namespace, params.Tenant)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err, errorUnableToGetTenantUsage)
|
||||
return nil, prepareError(err, errorUnableToGetTenantUsage)
|
||||
}
|
||||
minTenant.EnsureDefaults()
|
||||
|
||||
@@ -1758,7 +1758,7 @@ func getTenantUsageResponse(session *models.Principal, params operator_api.GetTe
|
||||
svcURL,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err, errorUnableToGetTenantUsage)
|
||||
return nil, prepareError(err, errorUnableToGetTenantUsage)
|
||||
}
|
||||
// create a minioClient interface implementation
|
||||
// defining the client to be used
|
||||
@@ -1766,7 +1766,7 @@ func getTenantUsageResponse(session *models.Principal, params operator_api.GetTe
|
||||
// serialize output
|
||||
adminInfo, err := restapi.GetAdminInfo(ctx, adminClient)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err, errorUnableToGetTenantUsage)
|
||||
return nil, prepareError(err, errorUnableToGetTenantUsage)
|
||||
}
|
||||
info := &models.TenantUsage{Used: adminInfo.Usage, DiskUsed: adminInfo.DisksUsage}
|
||||
return info, nil
|
||||
@@ -1776,14 +1776,14 @@ func getTenantPodsResponse(session *models.Principal, params operator_api.GetTen
|
||||
ctx := context.Background()
|
||||
clientset, err := cluster.K8sClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
listOpts := metav1.ListOptions{
|
||||
LabelSelector: fmt.Sprintf("%s=%s", miniov2.TenantLabel, params.Tenant),
|
||||
}
|
||||
pods, err := clientset.CoreV1().Pods(params.Namespace).List(ctx, listOpts)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
retval := []*models.TenantPod{}
|
||||
for _, pod := range pods.Items {
|
||||
@@ -1806,13 +1806,13 @@ func getPodLogsResponse(session *models.Principal, params operator_api.GetPodLog
|
||||
ctx := context.Background()
|
||||
clientset, err := cluster.K8sClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return "", restapi.PrepareError(err)
|
||||
return "", prepareError(err)
|
||||
}
|
||||
listOpts := &corev1.PodLogOptions{}
|
||||
logs := clientset.CoreV1().Pods(params.Namespace).GetLogs(params.PodName, listOpts)
|
||||
buff, err := logs.DoRaw(ctx)
|
||||
if err != nil {
|
||||
return "", restapi.PrepareError(err)
|
||||
return "", prepareError(err)
|
||||
}
|
||||
return string(buff), nil
|
||||
}
|
||||
@@ -1821,15 +1821,15 @@ func getPodEventsResponse(session *models.Principal, params operator_api.GetPodE
|
||||
ctx := context.Background()
|
||||
clientset, err := cluster.K8sClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
pod, err := clientset.CoreV1().Pods(params.Namespace).Get(ctx, params.PodName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
events, err := clientset.CoreV1().Events(params.Namespace).List(ctx, metav1.ListOptions{FieldSelector: fmt.Sprintf("involvedObject.uid=%s", pod.UID)})
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
retval := models.EventListWrapper{}
|
||||
for i := 0; i < len(events.Items); i++ {
|
||||
@@ -2264,7 +2264,7 @@ func getTenantUpdatePoolResponse(session *models.Principal, params operator_api.
|
||||
ctx := context.Background()
|
||||
opClientClientSet, err := cluster.OperatorClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
|
||||
opClient := &operatorClient{
|
||||
@@ -2274,7 +2274,7 @@ func getTenantUpdatePoolResponse(session *models.Principal, params operator_api.
|
||||
t, err := updateTenantPools(ctx, opClient, params.Namespace, params.Tenant, params.Body.Pools)
|
||||
if err != nil {
|
||||
restapi.LogError("error updating Tenant's pools: %v", err)
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
|
||||
// parse it to models.Tenant
|
||||
@@ -2329,12 +2329,12 @@ func getTenantYAML(session *models.Principal, params operator_api.GetTenantYAMLP
|
||||
|
||||
opClient, err := cluster.OperatorClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
|
||||
tenant, err := opClient.MinioV2().Tenants(params.Namespace).Get(params.HTTPRequest.Context(), params.Tenant, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
// remove managed fields
|
||||
tenant.ManagedFields = []metav1.ManagedFieldsEntry{}
|
||||
@@ -2352,7 +2352,7 @@ func getTenantYAML(session *models.Principal, params operator_api.GetTenantYAMLP
|
||||
|
||||
err = serializer.Encode(tenant, buf)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
|
||||
yb := buf.String()
|
||||
@@ -2378,12 +2378,12 @@ func getUpdateTenantYAML(session *models.Principal, params operator_api.PutTenan
|
||||
// get Kubernetes Client
|
||||
opClient, err := cluster.OperatorClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return restapi.PrepareError(err)
|
||||
return prepareError(err)
|
||||
}
|
||||
|
||||
tenant, err := opClient.MinioV2().Tenants(params.Namespace).Get(params.HTTPRequest.Context(), params.Tenant, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return restapi.PrepareError(err)
|
||||
return prepareError(err)
|
||||
}
|
||||
upTenant := tenant.DeepCopy()
|
||||
// only update safe fields: spec, metadata.finalizers, metadata.labels and metadata.annotations
|
||||
|
||||
@@ -25,8 +25,6 @@ import (
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/minio/console/restapi"
|
||||
|
||||
"github.com/minio/console/operatorapi/operations/operator_api"
|
||||
|
||||
"errors"
|
||||
@@ -90,20 +88,20 @@ func getTenantUpdateCertificatesResponse(session *models.Principal, params opera
|
||||
// get Kubernetes Client
|
||||
clientSet, err := cluster.K8sClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return restapi.PrepareError(err, errorUnableToUpdateTenantCertificates)
|
||||
return prepareError(err, errorUnableToUpdateTenantCertificates)
|
||||
}
|
||||
k8sClient := k8sClient{
|
||||
client: clientSet,
|
||||
}
|
||||
opClientClientSet, err := cluster.OperatorClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return restapi.PrepareError(err, errorUnableToUpdateTenantCertificates)
|
||||
return prepareError(err, errorUnableToUpdateTenantCertificates)
|
||||
}
|
||||
opClient := operatorClient{
|
||||
client: opClientClientSet,
|
||||
}
|
||||
if err := tenantUpdateCertificates(ctx, &opClient, &k8sClient, params.Namespace, params); err != nil {
|
||||
return restapi.PrepareError(err, errorUnableToUpdateTenantCertificates)
|
||||
return prepareError(err, errorUnableToUpdateTenantCertificates)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -168,20 +166,20 @@ func getTenantUpdateEncryptionResponse(session *models.Principal, params operato
|
||||
// get Kubernetes Client
|
||||
clientSet, err := cluster.K8sClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return restapi.PrepareError(err, errorUpdatingEncryptionConfig)
|
||||
return prepareError(err, errorUpdatingEncryptionConfig)
|
||||
}
|
||||
k8sClient := k8sClient{
|
||||
client: clientSet,
|
||||
}
|
||||
opClientClientSet, err := cluster.OperatorClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return restapi.PrepareError(err, errorUpdatingEncryptionConfig)
|
||||
return prepareError(err, errorUpdatingEncryptionConfig)
|
||||
}
|
||||
opClient := operatorClient{
|
||||
client: opClientClientSet,
|
||||
}
|
||||
if err := tenantUpdateEncryption(ctx, &opClient, &k8sClient, params.Namespace, params); err != nil {
|
||||
return restapi.PrepareError(err, errorUpdatingEncryptionConfig)
|
||||
return prepareError(err, errorUpdatingEncryptionConfig)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -26,7 +26,6 @@ import (
|
||||
"github.com/minio/console/models"
|
||||
"github.com/minio/console/operatorapi/operations"
|
||||
"github.com/minio/console/operatorapi/operations/operator_api"
|
||||
"github.com/minio/console/restapi"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
@@ -47,7 +46,7 @@ func getPVCsResponse(session *models.Principal) (*models.ListPVCsResponse, *mode
|
||||
clientset, err := cluster.K8sClient(session.STSSessionToken)
|
||||
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
|
||||
// Filter Tenant PVCs. They keep their v1 tenant annotation
|
||||
@@ -59,7 +58,7 @@ func getPVCsResponse(session *models.Principal) (*models.ListPVCsResponse, *mode
|
||||
listAllPvcs, err2 := clientset.CoreV1().PersistentVolumeClaims("").List(ctx, listOpts)
|
||||
|
||||
if err2 != nil {
|
||||
return nil, restapi.PrepareError(err2)
|
||||
return nil, prepareError(err2)
|
||||
}
|
||||
|
||||
var ListPVCs []*models.PvcsListResponse
|
||||
|
||||
@@ -20,8 +20,6 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/minio/console/restapi"
|
||||
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
|
||||
"github.com/minio/console/cluster"
|
||||
@@ -99,14 +97,14 @@ func getResourceQuotaResponse(session *models.Principal, params operator_api.Get
|
||||
ctx := context.Background()
|
||||
client, err := cluster.K8sClient(session.STSSessionToken)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
k8sClient := &k8sClient{
|
||||
client: client,
|
||||
}
|
||||
resourceQuota, err := getResourceQuota(ctx, k8sClient, params.Namespace, params.ResourceQuotaName)
|
||||
if err != nil {
|
||||
return nil, restapi.PrepareError(err)
|
||||
return nil, prepareError(err)
|
||||
}
|
||||
return resourceQuota, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user