Skip to content

Commit

Permalink
Use New Region API
Browse files Browse the repository at this point in the history
Switches to a more metadata/spec type affair.
  • Loading branch information
spjmurray committed Jul 1, 2024
1 parent cad56d2 commit d25a7a9
Show file tree
Hide file tree
Showing 7 changed files with 25 additions and 26 deletions.
4 changes: 2 additions & 2 deletions charts/kubernetes/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ description: A Helm chart for deploying Unikorn Kubernetes Service

type: application

version: v0.2.24
appVersion: v0.2.24
version: v0.2.25
appVersion: v0.2.25

icon: https://raw.githubusercontent.com/unikorn-cloud/assets/main/images/logos/dark-on-light/icon.png

Expand Down
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ require (
github.com/prometheus/client_golang v1.19.0
github.com/spdx/tools-golang v0.5.3
github.com/spf13/pflag v1.0.5
github.com/unikorn-cloud/core v0.1.54
github.com/unikorn-cloud/core v0.1.55
github.com/unikorn-cloud/identity v0.2.11
github.com/unikorn-cloud/rbac v0.1.1
github.com/unikorn-cloud/region v0.1.9
github.com/unikorn-cloud/region v0.1.18
go.opentelemetry.io/otel v1.27.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0
go.opentelemetry.io/otel/sdk v1.27.0
Expand Down
10 changes: 4 additions & 6 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -175,16 +175,14 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE=
github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
github.com/unikorn-cloud/core v0.1.53 h1:TqhG0WRG0/eE+jR1N+tIlbvX2gqmrYB5VkPUMS5STN0=
github.com/unikorn-cloud/core v0.1.53/go.mod h1:cP39UQN7aSmsfjQuSMsworI4oBIwx4oA4u20CbPpfZw=
github.com/unikorn-cloud/core v0.1.54 h1:e9LYpESifNsQUibem6zqyZP0SIn0zSFaSUwghYx3PeY=
github.com/unikorn-cloud/core v0.1.54/go.mod h1:cP39UQN7aSmsfjQuSMsworI4oBIwx4oA4u20CbPpfZw=
github.com/unikorn-cloud/core v0.1.55 h1:Oy5r3UBTNWb0qFDcmehLrgBwMx9xCo9x2nOEzNZoYUU=
github.com/unikorn-cloud/core v0.1.55/go.mod h1:cP39UQN7aSmsfjQuSMsworI4oBIwx4oA4u20CbPpfZw=
github.com/unikorn-cloud/identity v0.2.11 h1:q6mkJ3qTRjwhlvLS9Jv0I4wlJhnsbJZHu2rbNdnXBYk=
github.com/unikorn-cloud/identity v0.2.11/go.mod h1:4KHNdHiIKpKERD0slunDDXhdC59M7eiN+Y1wSfHbQwQ=
github.com/unikorn-cloud/rbac v0.1.1 h1:5QB3YzwG0FaH80FirdwZLm8hwsxLN0iPCY9i1VVZjXY=
github.com/unikorn-cloud/rbac v0.1.1/go.mod h1:+5x6sLtPYdfvM1PmiRHM5GZ2uHWOY3uQ+jdNR9iI42Q=
github.com/unikorn-cloud/region v0.1.9 h1:yAJ4jlvrav1lwMFuiNY8E1ShXlXmSXhD1qMovjqfC3I=
github.com/unikorn-cloud/region v0.1.9/go.mod h1:73+MWmFReHe7EN9i00RmAL4GuMFc1Dq+c9c0aDxhnlU=
github.com/unikorn-cloud/region v0.1.18 h1:6UPCSeK8poPZnvIXHhi+9Hw7gQlj1m7QXXF8h0rZYnc=
github.com/unikorn-cloud/region v0.1.18/go.mod h1:vwZX38BzuHELy5uNyzHyB2ZfY+8WY4UEHC1ALWYT/AE=
github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ=
github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
Expand Down
7 changes: 0 additions & 7 deletions pkg/constants/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,3 @@ var (
func VersionString() string {
return fmt.Sprintf("%s/%s (revision/%s)", Application, Version, Revision)
}

const (
// CloudIdentityAnnotation is used to remember a cluster's identity created
// by the region service.
// TODO: most likely this should be shared in core.
CloudIdentityAnnotation = "unikorn-cloud.org/identity-id"
)
16 changes: 15 additions & 1 deletion pkg/server/handler/cluster/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import (

coreclient "github.com/unikorn-cloud/core/pkg/client"
"github.com/unikorn-cloud/core/pkg/constants"
coreapi "github.com/unikorn-cloud/core/pkg/openapi"
"github.com/unikorn-cloud/core/pkg/server/errors"
"github.com/unikorn-cloud/core/pkg/util"
unikornv1 "github.com/unikorn-cloud/kubernetes/pkg/apis/unikorn/v1alpha1"
Expand Down Expand Up @@ -207,8 +208,21 @@ func (c *Client) createServerGroup(ctx context.Context, provider *openstack.Open
*/

func (c *Client) createIdentity(ctx context.Context, organizationID, projectID, regionID, clusterID string) (*regionapi.IdentityRead, error) {
tags := regionapi.TagList{
{
Name: constants.KubernetesClusterLabel,
Value: clusterID,
},
}

request := regionapi.PostApiV1OrganizationsOrganizationIDProjectsProjectIDRegionsRegionIDIdentitiesJSONRequestBody{
ClusterId: clusterID,
Metadata: coreapi.ResourceWriteMetadata{
Name: "kubernetes-cluster-" + clusterID,
Description: util.ToPointer("Identity for Kubernetes cluster " + clusterID),
},
Spec: regionapi.IdentityWriteSpec{
Tags: &tags,
},
}

resp, err := c.region.PostApiV1OrganizationsOrganizationIDProjectsProjectIDRegionsRegionIDIdentitiesWithResponse(ctx, organizationID, projectID, regionID, request)
Expand Down
5 changes: 1 addition & 4 deletions pkg/server/handler/cluster/conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import (
"slices"

unikornv1core "github.com/unikorn-cloud/core/pkg/apis/unikorn/v1alpha1"
"github.com/unikorn-cloud/core/pkg/authorization/userinfo"
coreopenapi "github.com/unikorn-cloud/core/pkg/openapi"
"github.com/unikorn-cloud/core/pkg/server/conversion"
"github.com/unikorn-cloud/core/pkg/server/errors"
Expand Down Expand Up @@ -384,8 +383,6 @@ func installClusterAutoscaler(cluster *unikornv1.KubernetesCluster) {
// TODO: there are a lot of parameters being passed about, we should make this
// a struct and pass them as a single blob.
func (c *Client) generate(ctx context.Context, namespace *corev1.Namespace, organizationID, projectID string, request *openapi.KubernetesClusterWrite) (*unikornv1.KubernetesCluster, error) {
userinfo := userinfo.FromContext(ctx)

kubernetesControlPlane, err := c.generateControlPlane(ctx, organizationID, projectID, &request.Spec)
if err != nil {
return nil, err
Expand All @@ -402,7 +399,7 @@ func (c *Client) generate(ctx context.Context, namespace *corev1.Namespace, orga
}

cluster := &unikornv1.KubernetesCluster{
ObjectMeta: conversion.NewObjectMetadata(&request.Metadata, namespace.Name).WithOrganization(organizationID).WithProject(projectID).WithUser(userinfo.Subject).Get(),
ObjectMeta: conversion.NewObjectMetadata(&request.Metadata, namespace.Name).WithOrganization(organizationID).WithProject(projectID).Get(ctx),
Spec: unikornv1.KubernetesClusterSpec{
RegionID: request.Spec.RegionId,
ClusterManagerID: *request.Spec.ClusterManagerId,
Expand Down
5 changes: 1 addition & 4 deletions pkg/server/handler/clustermanager/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import (
"slices"

unikornv1core "github.com/unikorn-cloud/core/pkg/apis/unikorn/v1alpha1"
"github.com/unikorn-cloud/core/pkg/authorization/userinfo"
"github.com/unikorn-cloud/core/pkg/constants"
coreopenapi "github.com/unikorn-cloud/core/pkg/openapi"
"github.com/unikorn-cloud/core/pkg/server/conversion"
Expand Down Expand Up @@ -195,15 +194,13 @@ func (c *Client) defaultApplicationBundle(ctx context.Context) (*unikornv1.Clust

// generate is a common function to create a Kubernetes type from an API one.
func (c *Client) generate(ctx context.Context, namespace *corev1.Namespace, organizationID, projectID string, request *openapi.ClusterManagerWrite) (*unikornv1.ClusterManager, error) {
userinfo := userinfo.FromContext(ctx)

applicationBundle, err := c.defaultApplicationBundle(ctx)
if err != nil {
return nil, err
}

out := &unikornv1.ClusterManager{
ObjectMeta: conversion.NewObjectMetadata(&request.Metadata, namespace.Name).WithOrganization(organizationID).WithProject(projectID).WithUser(userinfo.Subject).Get(),
ObjectMeta: conversion.NewObjectMetadata(&request.Metadata, namespace.Name).WithOrganization(organizationID).WithProject(projectID).Get(ctx),
Spec: unikornv1.ClusterManagerSpec{
ApplicationBundle: &applicationBundle.Name,
ApplicationBundleAutoUpgrade: &unikornv1.ApplicationBundleAutoUpgradeSpec{},
Expand Down

0 comments on commit d25a7a9

Please sign in to comment.