diff --git a/charts/kubernetes/Chart.yaml b/charts/kubernetes/Chart.yaml index d49e6fb1..355335ba 100644 --- a/charts/kubernetes/Chart.yaml +++ b/charts/kubernetes/Chart.yaml @@ -4,8 +4,8 @@ description: A Helm chart for deploying Unikorn Kubernetes Service type: application -version: v0.2.17 -appVersion: v0.2.17 +version: v0.2.18 +appVersion: v0.2.18 icon: https://raw.githubusercontent.com/unikorn-cloud/assets/main/images/logos/dark-on-light/icon.png diff --git a/pkg/apis/unikorn/v1alpha1/types.go b/pkg/apis/unikorn/v1alpha1/types.go index 7e8d4205..3c85c822 100644 --- a/pkg/apis/unikorn/v1alpha1/types.go +++ b/pkg/apis/unikorn/v1alpha1/types.go @@ -434,7 +434,7 @@ type KubernetesClusterSpec struct { // Region to provision the cluster in. RegionID string `json:"regionId"` // ClusterManager that provides lifecycle management for the cluster. - ClusterManager string `json:"clusterManager"` + ClusterManagerID string `json:"clusterManagerId"` // Version is the Kubernetes version to install. For performance // reasons this should match what is already pre-installed on the // provided image. diff --git a/pkg/openapi/schema.go b/pkg/openapi/schema.go index 88694a15..a07a3662 100644 --- a/pkg/openapi/schema.go +++ b/pkg/openapi/schema.go @@ -19,104 +19,105 @@ import ( // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", + "GM8SOTfuv9z/XwAAAP//ggwY/l5sAAA=", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/pkg/openapi/server.spec.yaml b/pkg/openapi/server.spec.yaml index 38d239c9..c3888dcc 100644 --- a/pkg/openapi/server.spec.yaml +++ b/pkg/openapi/server.spec.yaml @@ -449,7 +449,7 @@ components: regionId: description: The region to provision the cluster in. type: string - clusterManager: + clusterManagerId: description: |- The name of the cluster manager to use, if one is not specified the system will create one for you. @@ -616,7 +616,9 @@ components: id: c7568e2d-f9ab-453d-9a3a-51375f78426b name: default organizationId: d4600d6e-e965-4b44-a808-84fb2fa36702 + organizationName: acme-corp projectId: cae219d7-10e5-4601-8c2c-ee7e066b93ce + projectName: top-secret creationTime: 2023-07-31T10:45:45Z provisioningStatus: provisioned clusterManagersResponse: @@ -630,7 +632,9 @@ components: id: c7568e2d-f9ab-453d-9a3a-51375f78426b name: default organizationId: d4600d6e-e965-4b44-a808-84fb2fa36702 + organizationName: acme-corp projectId: cae219d7-10e5-4601-8c2c-ee7e066b93ce + projectName: top-secret creationTime: 2023-07-31T10:45:45Z provisioningStatus: provisioned kubernetesClusterKubeconfigResponse: @@ -654,7 +658,7 @@ components: spec: regionId: b059b3e6-9ae5-42b7-94b4-f42fb7a6baee version: v1.27.2 - clusterManager: b85525fc-40ca-482b-ac07-eca8b01b09c2 + clusterManagerId: b85525fc-40ca-482b-ac07-eca8b01b09c2 workloadPools: - name: default machine: diff --git a/pkg/openapi/types.go b/pkg/openapi/types.go index becb90aa..5ecb7b75 100644 --- a/pkg/openapi/types.go +++ b/pkg/openapi/types.go @@ -105,9 +105,9 @@ type KubernetesClusterRead struct { // KubernetesClusterSpec Kubernetes cluster creation parameters. type KubernetesClusterSpec struct { - // ClusterManager The name of the cluster manager to use, if one is not specified + // ClusterManagerId The name of the cluster manager to use, if one is not specified // the system will create one for you. - ClusterManager *string `json:"clusterManager,omitempty"` + ClusterManagerId *string `json:"clusterManagerId,omitempty"` // RegionId The region to provision the cluster in. RegionId string `json:"regionId"` diff --git a/pkg/provisioners/managers/cluster/provisioner.go b/pkg/provisioners/managers/cluster/provisioner.go index ba944ca3..d3febea1 100644 --- a/pkg/provisioners/managers/cluster/provisioner.go +++ b/pkg/provisioners/managers/cluster/provisioner.go @@ -149,7 +149,7 @@ func (p *Provisioner) getClusterManager(ctx context.Context) (*unikornv1.Cluster key := client.ObjectKey{ Namespace: projectNamespace.Name, - Name: p.cluster.Spec.ClusterManager, + Name: p.cluster.Spec.ClusterManagerID, } if err := coreclient.StaticClientFromContext(ctx).Get(ctx, key, &clusterManager); err != nil { diff --git a/pkg/provisioners/managers/clustermanager/provisioner.go b/pkg/provisioners/managers/clustermanager/provisioner.go index 27248682..ff1aed59 100644 --- a/pkg/provisioners/managers/clustermanager/provisioner.go +++ b/pkg/provisioners/managers/clustermanager/provisioner.go @@ -172,7 +172,7 @@ func (p *Provisioner) Deprovision(ctx context.Context) error { } clusters.Items = slices.DeleteFunc(clusters.Items, func(cluster unikornv1.KubernetesCluster) bool { - return cluster.Spec.ClusterManager != p.clusterManager.Name + return cluster.Spec.ClusterManagerID != p.clusterManager.Name }) if len(clusters.Items) != 0 { diff --git a/pkg/server/handler/cluster/client.go b/pkg/server/handler/cluster/client.go index 4330a25c..f75d899d 100644 --- a/pkg/server/handler/cluster/client.go +++ b/pkg/server/handler/cluster/client.go @@ -287,13 +287,13 @@ func (c *Client) Create(ctx context.Context, organizationID, projectID string, r } // Implicitly create the controller manager. - if request.Spec.ClusterManager == nil { + if request.Spec.ClusterManagerId == nil { clusterManager, err := clustermanager.NewClient(c.client).CreateImplicit(ctx, organizationID, projectID) if err != nil { return err } - request.Spec.ClusterManager = util.ToPointer(clusterManager.Name) + request.Spec.ClusterManagerId = util.ToPointer(clusterManager.Name) } cluster, err := c.generate(ctx, namespace, organizationID, projectID, request) diff --git a/pkg/server/handler/cluster/conversion.go b/pkg/server/handler/cluster/conversion.go index ed2384c9..4a67f115 100644 --- a/pkg/server/handler/cluster/conversion.go +++ b/pkg/server/handler/cluster/conversion.go @@ -99,10 +99,10 @@ func (c *Client) convert(in *unikornv1.KubernetesCluster) *openapi.KubernetesClu out := &openapi.KubernetesClusterRead{ Metadata: conversion.ProjectScopedResourceReadMetadata(in, provisioningStatus), Spec: openapi.KubernetesClusterSpec{ - RegionId: in.Spec.RegionID, - ClusterManager: &in.Spec.ClusterManager, - Version: string(*in.Spec.Version), - WorkloadPools: convertWorkloadPools(in), + RegionId: in.Spec.RegionID, + ClusterManagerId: &in.Spec.ClusterManagerID, + Version: string(*in.Spec.Version), + WorkloadPools: convertWorkloadPools(in), }, } @@ -401,7 +401,7 @@ func (c *Client) generate(ctx context.Context, namespace *corev1.Namespace, orga ObjectMeta: conversion.ProjectScopedObjectMetadata(&request.Metadata, namespace.Name, organizationID, projectID), Spec: unikornv1.KubernetesClusterSpec{ RegionID: request.Spec.RegionId, - ClusterManager: *request.Spec.ClusterManager, + ClusterManagerID: *request.Spec.ClusterManagerId, Version: util.ToPointer(unikornv1.SemanticVersion(request.Spec.Version)), ApplicationBundle: &applicationBundle.Name, ApplicationBundleAutoUpgrade: &unikornv1.ApplicationBundleAutoUpgradeSpec{}, diff --git a/pkg/server/handler/clustermanager/client.go b/pkg/server/handler/clustermanager/client.go index 4c096c1f..ceb215fb 100644 --- a/pkg/server/handler/clustermanager/client.go +++ b/pkg/server/handler/clustermanager/client.go @@ -23,6 +23,7 @@ import ( "slices" unikornv1core "github.com/unikorn-cloud/core/pkg/apis/unikorn/v1alpha1" + "github.com/unikorn-cloud/core/pkg/constants" coreopenapi "github.com/unikorn-cloud/core/pkg/openapi" "github.com/unikorn-cloud/core/pkg/server/conversion" "github.com/unikorn-cloud/core/pkg/server/errors" @@ -37,6 +38,7 @@ import ( corev1 "k8s.io/api/core/v1" kerrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/log" @@ -72,6 +74,26 @@ var ( func (c *Client) CreateImplicit(ctx context.Context, organizationID, projectID string) (*unikornv1.ClusterManager, error) { log := log.FromContext(ctx) + namespace, err := common.New(c.client).ProjectNamespace(ctx, organizationID, projectID) + if err != nil { + return nil, err + } + + var existing unikornv1.ClusterManagerList + + options := &client.ListOptions{ + Namespace: namespace.Name, + LabelSelector: labels.SelectorFromSet(labels.Set{constants.NameLabel: "default"}), + } + + if err := c.client.List(ctx, &existing, options); err != nil { + return nil, err + } + + if len(existing.Items) != 0 { + return &existing.Items[0], nil + } + log.Info("creating implicit control plane") request := &openapi.ClusterManagerWrite{