Skip to content
This repository has been archived by the owner on Nov 27, 2024. It is now read-only.

split internal from rest-api workspace #93

Merged
merged 8 commits into from
May 8, 2024
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
E2E_FOLDER ?= e2e
OPERATOR_FOLDER ?= operator
SERVER_FOLDER ?= server

.PHONY: vet
vet:
-$(MAKE) -C $(E2E_FOLDER) vet
-$(MAKE) -C $(OPERATOR_FOLDER) vet
-$(MAKE) -C $(SERVER_FOLDER) vet
2 changes: 1 addition & 1 deletion e2e/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,4 @@ clean:
-$(KUBECLI) delete masteruserrecords --all --all-namespaces
-$(KUBECLI) delete spacebindings --all --all-namespaces
-$(KUBECLI) delete spaces --all --all-namespaces
-$(KUBECLI) delete workspaces.workspaces.io --all --all-namespaces
-$(KUBECLI) delete internalworkspaces.workspaces.konflux.io --all --all-namespaces
4 changes: 2 additions & 2 deletions e2e/hook/cleanup_resources.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import (

toolchainv1alpha1 "github.com/codeready-toolchain/api/api/v1alpha1"
tcontext "github.com/konflux-workspaces/workspaces/e2e/pkg/context"
workspacesiov1alpha1 "github.com/konflux-workspaces/workspaces/operator/api/v1alpha1"
workspacesv1alpha1 "github.com/konflux-workspaces/workspaces/operator/api/v1alpha1"
)

func deleteResources(ctx context.Context, sc *godog.Scenario, err error) (context.Context, error) {
Expand Down Expand Up @@ -125,7 +125,7 @@ func deleteResources(ctx context.Context, sc *godog.Scenario, err error) (contex
}
}
{
wl := &workspacesiov1alpha1.WorkspaceList{}
wl := &workspacesv1alpha1.InternalWorkspaceList{}
if err := cli.Client.List(ctx, wl, client.InNamespace(metav1.NamespaceAll)); err != nil {
errs = append(errs, err)
} else {
Expand Down
12 changes: 6 additions & 6 deletions e2e/pkg/context/host.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,12 @@ func RetrieveTestNamespace(ctx context.Context) string {
}

// Default Workspace
func InjectWorkspace(ctx context.Context, w workspacesv1alpha1.Workspace) context.Context {
func InjectWorkspace(ctx context.Context, w workspacesv1alpha1.InternalWorkspace) context.Context {
return context.WithValue(ctx, keyWorkspace, w)
}

func RetrieveWorkspace(ctx context.Context) workspacesv1alpha1.Workspace {
return get[workspacesv1alpha1.Workspace](ctx, keyWorkspace)
func RetrieveWorkspace(ctx context.Context) workspacesv1alpha1.InternalWorkspace {
return get[workspacesv1alpha1.InternalWorkspace](ctx, keyWorkspace)
}

// Default User
Expand All @@ -90,12 +90,12 @@ func RetrieveUser(ctx context.Context) toolchainv1alpha1.UserSignup {
}

// Workspaces
func InjectUserWorkspaces(ctx context.Context, ww workspacesv1alpha1.WorkspaceList) context.Context {
func InjectUserWorkspaces(ctx context.Context, ww workspacesv1alpha1.InternalWorkspaceList) context.Context {
return context.WithValue(ctx, keyUserWorkspaces, ww)
}

func RetrieveUserWorkspaces(ctx context.Context) workspacesv1alpha1.WorkspaceList {
return get[workspacesv1alpha1.WorkspaceList](ctx, keyUserWorkspaces)
func RetrieveUserWorkspaces(ctx context.Context) workspacesv1alpha1.InternalWorkspaceList {
return get[workspacesv1alpha1.InternalWorkspaceList](ctx, keyUserWorkspaces)
}

// Scenario Id
Expand Down
10 changes: 5 additions & 5 deletions e2e/step/user/user_when.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import (
tcontext "github.com/konflux-workspaces/workspaces/e2e/pkg/context"

toolchainv1alpha1 "github.com/codeready-toolchain/api/api/v1alpha1"
workspacesiov1alpha1 "github.com/konflux-workspaces/workspaces/operator/api/v1alpha1"
workspacesv1alpha1 "github.com/konflux-workspaces/workspaces/operator/api/v1alpha1"
)

func whenAnUserOnboards(ctx context.Context) (context.Context, error) {
Expand All @@ -38,7 +38,7 @@ func whenUserRequestsTheListOfWorkspaces(ctx context.Context) (context.Context,
if err != nil {
return ctx, err
}
ww := workspacesiov1alpha1.WorkspaceList{}
ww := workspacesv1alpha1.InternalWorkspaceList{}
if err := c.List(ctx, &ww, &client.ListOptions{}); err != nil {
u := tcontext.RetrieveUser(ctx)
k := tcontext.RetrieveUnauthKubeconfig(ctx)
Expand All @@ -55,7 +55,7 @@ func whenUserRequestsTheirDefaultWorkspace(ctx context.Context) (context.Context
}

u := tcontext.RetrieveUser(ctx)
w := workspacesiov1alpha1.Workspace{}
w := workspacesv1alpha1.InternalWorkspace{}
wk := types.NamespacedName{Namespace: u.Name, Name: u.Name}
if err := c.Get(ctx, wk, &w, &client.GetOptions{}); err != nil {
k := tcontext.RetrieveUnauthKubeconfig(ctx)
Expand All @@ -68,7 +68,7 @@ func whenUserRequestsTheirDefaultWorkspace(ctx context.Context) (context.Context
func buildWorkspacesClient(ctx context.Context) (client.Client, error) {
scheme := runtime.NewScheme()
utilruntime.Must(clientgoscheme.AddToScheme(scheme))
utilruntime.Must(workspacesiov1alpha1.AddToScheme(scheme))
utilruntime.Must(workspacesv1alpha1.AddToScheme(scheme))
utilruntime.Must(toolchainv1alpha1.AddToScheme(scheme))

u := tcontext.RetrieveUser(ctx)
Expand Down Expand Up @@ -129,7 +129,7 @@ func whenTheUserChangesWorkspaceVisibilityTo(ctx context.Context, visibility str
return ctx, err
}

w.Spec.Visibility = workspacesiov1alpha1.WorkspaceVisibility(visibility)
w.Spec.Visibility = workspacesv1alpha1.InternalWorkspaceVisibility(visibility)
if err := cli.Update(ctx, &w, &client.UpdateOptions{}); err != nil {
return ctx, err
}
Expand Down
10 changes: 5 additions & 5 deletions e2e/step/workspace/workspace_common.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ func createUserSignupAndWaitForWorkspace(
ctx context.Context,
cli cli.Cli,
namespace, name string,
) (*toolchainv1alpha1.UserSignup, *workspacesv1alpha1.Workspace, error) {
) (*toolchainv1alpha1.UserSignup, *workspacesv1alpha1.InternalWorkspace, error) {
u, err := user.OnboardUser(ctx, cli, namespace, user.DefaultUserName)
if err != nil {
return nil, nil, err
Expand All @@ -43,15 +43,15 @@ func createUserSignupAndWaitForWorkspace(
return u, w, nil
}

func getWorkspaceFromWorkspacesNamespace(ctx context.Context, name string) (*workspacesv1alpha1.Workspace, error) {
func getWorkspaceFromWorkspacesNamespace(ctx context.Context, name string) (*workspacesv1alpha1.InternalWorkspace, error) {
cli := tcontext.RetrieveHostClient(ctx)
ns := tcontext.RetrieveWorkspacesNamespace(ctx)

return getWorkspace(ctx, cli, ns, name)
}

func getWorkspace(ctx context.Context, cli cli.Cli, ns, name string) (*workspacesv1alpha1.Workspace, error) {
w := workspacesv1alpha1.Workspace{
func getWorkspace(ctx context.Context, cli cli.Cli, ns, name string) (*workspacesv1alpha1.InternalWorkspace, error) {
w := workspacesv1alpha1.InternalWorkspace{
ObjectMeta: metav1.ObjectMeta{
Name: name,
Namespace: ns,
Expand All @@ -68,7 +68,7 @@ func getWorkspace(ctx context.Context, cli cli.Cli, ns, name string) (*workspace
return &w, nil
}

func checkWorkspaceVisibility(ctx context.Context, name string, visibility workspacesv1alpha1.WorkspaceVisibility) error {
func checkWorkspaceVisibility(ctx context.Context, name string, visibility workspacesv1alpha1.InternalWorkspaceVisibility) error {
w, err := getWorkspaceFromWorkspacesNamespace(ctx, name)
if err != nil {
return err
Expand Down
4 changes: 2 additions & 2 deletions e2e/step/workspace/workspace_given.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (

tcontext "github.com/konflux-workspaces/workspaces/e2e/pkg/context"
"github.com/konflux-workspaces/workspaces/e2e/step/user"
workspacesiov1alpha1 "github.com/konflux-workspaces/workspaces/operator/api/v1alpha1"
workspacesv1alpha1 "github.com/konflux-workspaces/workspaces/operator/api/v1alpha1"
)

func givenDefaultWorkspaceIsCreatedForThem(ctx context.Context) (context.Context, error) {
Expand Down Expand Up @@ -35,7 +35,7 @@ func givenACommunityWorkspaceExists(ctx context.Context) (context.Context, error
return ctx, err
}

w, err := createWorkspace(ctx, cli, ns, "new-community", u.Status.CompliantUsername, workspacesiov1alpha1.WorkspaceVisibilityCommunity)
w, err := createWorkspace(ctx, cli, ns, "new-community", u.Status.CompliantUsername, workspacesv1alpha1.InternalWorkspaceVisibilityCommunity)
if err != nil {
return ctx, err
}
Expand Down
8 changes: 4 additions & 4 deletions e2e/step/workspace/workspace_then.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,12 @@ func thenTheWorkspaceIsReadableForEveryone(ctx context.Context) error {

func thenACommunityWorkspaceIsCreated(ctx context.Context) error {
w := tcontext.RetrieveWorkspace(ctx)
return checkWorkspaceVisibility(ctx, w.Name, workspacesv1alpha1.WorkspaceVisibilityCommunity)
return checkWorkspaceVisibility(ctx, w.Name, workspacesv1alpha1.InternalWorkspaceVisibilityCommunity)
}

func thenAPrivateWorkspaceIsCreated(ctx context.Context) error {
w := tcontext.RetrieveWorkspace(ctx)
return checkWorkspaceVisibility(ctx, w.Name, workspacesv1alpha1.WorkspaceVisibilityPrivate)
return checkWorkspaceVisibility(ctx, w.Name, workspacesv1alpha1.InternalWorkspaceVisibilityPrivate)
}

func thenTheOwnerIsGrantedAdminAccessToTheWorkspace(ctx context.Context) error {
Expand Down Expand Up @@ -103,7 +103,7 @@ func thenTheOwnerIsGrantedAdminAccessToTheWorkspace(ctx context.Context) error {
func thenTheWorkspaceVisibilityIsSetTo(ctx context.Context, visibility string) error {
w := tcontext.RetrieveWorkspace(ctx)

if w.Spec.Visibility != workspacesv1alpha1.WorkspaceVisibility(visibility) {
if w.Spec.Visibility != workspacesv1alpha1.InternalWorkspaceVisibility(visibility) {
return fmt.Errorf(`expected visibility "%s", found "%s"`, visibility, w.Spec.Visibility)
}
return nil
Expand Down Expand Up @@ -147,7 +147,7 @@ func thenTheWorkspaceVisibilityIsUpdatedTo(ctx context.Context, visibility strin
return false, err
}

if w.Spec.Visibility != workspacesv1alpha1.WorkspaceVisibility(visibility) {
if w.Spec.Visibility != workspacesv1alpha1.InternalWorkspaceVisibility(visibility) {
return false, nil
}

Expand Down
18 changes: 9 additions & 9 deletions e2e/step/workspace/workspace_when.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ import (
)

func whenUserRequestsANewPrivateWorkspace(ctx context.Context) (context.Context, error) {
return createNewWorkspace(ctx, "new-private", workspacesv1alpha1.WorkspaceVisibilityPrivate)
return createNewWorkspace(ctx, "new-private", workspacesv1alpha1.InternalWorkspaceVisibilityPrivate)
}

func whenUserRequestsANewCommunityWorkspace(ctx context.Context) (context.Context, error) {
return createNewWorkspace(ctx, "new-community", workspacesv1alpha1.WorkspaceVisibilityCommunity)
return createNewWorkspace(ctx, "new-community", workspacesv1alpha1.InternalWorkspaceVisibilityCommunity)
}

func createNewWorkspace(ctx context.Context, name string, visibility workspacesv1alpha1.WorkspaceVisibility) (context.Context, error) {
func createNewWorkspace(ctx context.Context, name string, visibility workspacesv1alpha1.InternalWorkspaceVisibility) (context.Context, error) {
u := tcontext.RetrieveUser(ctx)
cli := tcontext.RetrieveHostClient(ctx)
ns := tcontext.RetrieveWorkspacesNamespace(ctx)
Expand Down Expand Up @@ -54,14 +54,14 @@ func whenAWorkspaceIsCreatedForUser(ctx context.Context) (context.Context, error
}

func whenOwnerChangesVisibilityToCommunity(ctx context.Context) (context.Context, error) {
return ownerChangesVisibilityTo(ctx, workspacesv1alpha1.WorkspaceVisibilityCommunity)
return ownerChangesVisibilityTo(ctx, workspacesv1alpha1.InternalWorkspaceVisibilityCommunity)
}

func whenOwnerChangesVisibilityToPrivate(ctx context.Context) (context.Context, error) {
return ownerChangesVisibilityTo(ctx, workspacesv1alpha1.WorkspaceVisibilityPrivate)
return ownerChangesVisibilityTo(ctx, workspacesv1alpha1.InternalWorkspaceVisibilityPrivate)
}

func ownerChangesVisibilityTo(ctx context.Context, visibility workspacesv1alpha1.WorkspaceVisibility) (context.Context, error) {
func ownerChangesVisibilityTo(ctx context.Context, visibility workspacesv1alpha1.InternalWorkspaceVisibility) (context.Context, error) {
w := tcontext.RetrieveWorkspace(ctx)
cli := tcontext.RetrieveHostClient(ctx)

Expand All @@ -79,13 +79,13 @@ func ownerChangesVisibilityTo(ctx context.Context, visibility workspacesv1alpha1
return tcontext.InjectWorkspace(ctx, w), nil
}

func createWorkspace(ctx context.Context, cli cli.Cli, namespace, name, user string, visibility workspacesv1alpha1.WorkspaceVisibility) (*workspacesv1alpha1.Workspace, error) {
w := workspacesv1alpha1.Workspace{
func createWorkspace(ctx context.Context, cli cli.Cli, namespace, name, user string, visibility workspacesv1alpha1.InternalWorkspaceVisibility) (*workspacesv1alpha1.InternalWorkspace, error) {
w := workspacesv1alpha1.InternalWorkspace{
ObjectMeta: metav1.ObjectMeta{
Name: name,
Namespace: namespace,
},
Spec: workspacesv1alpha1.WorkspaceSpec{
Spec: workspacesv1alpha1.InternalWorkspaceSpec{
Visibility: visibility,
Owner: workspacesv1alpha1.Owner{Id: user},
},
Expand Down
4 changes: 2 additions & 2 deletions operator/api/v1alpha1/groupversion_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ limitations under the License.

// Package v1alpha1 contains API Schema definitions for the v1alpha1 API group
// +kubebuilder:object:generate=true
// +groupName=workspaces.io
// +groupName=workspaces.konflux.io
package v1alpha1

import (
Expand All @@ -26,7 +26,7 @@ import (

var (
// GroupVersion is group version used to register these objects
GroupVersion = schema.GroupVersion{Group: "workspaces.io", Version: "v1alpha1"}
GroupVersion = schema.GroupVersion{Group: "workspaces.konflux.io", Version: "v1alpha1"}

// SchemeBuilder is used to add go types to the GroupVersionKind scheme
SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}
Expand Down
28 changes: 14 additions & 14 deletions operator/api/v1alpha1/workspace_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

type WorkspaceVisibility string
type InternalWorkspaceVisibility string

const (
WorkspaceVisibilityCommunity WorkspaceVisibility = "community"
WorkspaceVisibilityPrivate WorkspaceVisibility = "private"
InternalWorkspaceVisibilityCommunity InternalWorkspaceVisibility = "community"
InternalWorkspaceVisibilityPrivate InternalWorkspaceVisibility = "private"
)

const (
Expand All @@ -43,10 +43,10 @@ type Owner struct {
Id string `json:"id"`
}

// WorkspaceSpec defines the desired state of Workspace
type WorkspaceSpec struct {
// InternalWorkspaceSpec defines the desired state of Workspace
type InternalWorkspaceSpec struct {
// +required
Visibility WorkspaceVisibility `json:"visibility"`
Visibility InternalWorkspaceVisibility `json:"visibility"`
// +required
Owner Owner `json:"owner"`
}
Expand All @@ -60,24 +60,24 @@ type WorkspaceStatus struct {
//+kubebuilder:subresource:status
// +kubebuilder:printcolumn:name="Visibility",type="string",JSONPath=`.spec.visibility`

// Workspace is the Schema for the workspaces API
type Workspace struct {
// InternalWorkspace is the Schema for the workspaces API
type InternalWorkspace struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`

Spec WorkspaceSpec `json:"spec,omitempty"`
Status WorkspaceStatus `json:"status,omitempty"`
Spec InternalWorkspaceSpec `json:"spec,omitempty"`
Status WorkspaceStatus `json:"status,omitempty"`
}

//+kubebuilder:object:root=true

// WorkspaceList contains a list of Workspace
type WorkspaceList struct {
// InternalWorkspaceList contains a list of Workspace
type InternalWorkspaceList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Workspace `json:"items"`
Items []InternalWorkspace `json:"items"`
}

func init() {
SchemeBuilder.Register(&Workspace{}, &WorkspaceList{})
SchemeBuilder.Register(&InternalWorkspace{}, &InternalWorkspaceList{})
}
Loading
Loading