Back to landing page
Tasks

Projects and Namespaces

Create the tenant structure an application needs before GitOps reconciles it.

Projects and namespaces are the first product objects most tenants touch.

  • A project groups related work in gh0stportal.
  • A namespace is the runtime target where Kubernetes resources reconcile.
  • Project selection is not RBAC. Tenant membership and gh0stplane capability checks remain the authority.

Portal workflow

  1. Open Applications.
  2. Create or select the project for the app.
  3. Create a namespace for each serious app or bounded workload.
  4. Wait until the namespace shows reconciled/live state.
  5. Use the namespace values in your GitOps manifests.

Do not deploy into a namespace before gh0stportal reports that the namespace and its access scaffolding are ready.

What the platform creates

After namespace intent is accepted, gh0stcloud reconciles runtime scaffolding:

ItemWhy it matters
Kubernetes namespaceRuntime placement for the workload.
Flux service accountUsed by Flux/HelmRelease to reconcile tenant manifests.
Workload service accountUsed by application pods where required.
SecretStore referencesAllows External Secrets to read tenant OpenBao paths.
Policy labels and annotationsConnects namespace to quota, network, exposure, billing, and observability.

GitOps reference

Compare your app structure with:

Use the example names only as placeholders. Tenant namespaces and hostnames come from gh0stportal.

RPC/function map

Portal actiongh0stplane surface
Load application workspaceGetTenantApplicationsWorkspace
Create projectCreateTenantProject
Update projectUpdateTenantProject
Delete projectDeleteTenantProject
Create namespaceCreateTenantNamespace
Update namespaceUpdateTenantNamespace
Delete namespaceDeleteTenantNamespace
Read GitOps and secret workflow contextGetTenantSecretWorkflow

Common mistakes

SymptomLikely causeFix
Flux cannot apply resourcesNamespace is not ready or service account is missing.Wait for Applications to show namespace readiness.
App manifests use the wrong namespaceCopied example placeholder was not replaced.Use the namespace shown in Applications.
Access expectations are confusingProject was treated as RBAC.Use projects for grouping only; tenant/org roles enforce access.

Questions or ready to get started?

Talk to us