Skip to main content

Quickstart

In about ten minutes you'll create a project, create a component from a platform-provided template, deploy it, reach its running endpoint on the public internet, and read its logs — all on the live Fedshi instance. No Kubernetes knowledge required.

note

DevsPortal is built on the Control Plane Operator engine. The occ CLI and openchoreo.dev/v1alpha1 resources you'll see here are unchanged engine internals.

Before you start

You need:

  • Access to the Fedshi console (https://console.idp.fedshi.com) and, for the CLI steps, a working occ install pointed at the control plane. If you don't have these yet, do Getting access first — it takes five minutes.
  • A role that lets you create projects and components in a namespace. The examples use the fedshi namespace; substitute your own if your team uses a different one.

We'll deploy a small prebuilt sample service so you don't need any source code of your own. You can swap it for your own image later.

Portal first, CLI second

Every step below leads with the portal UI — the recommended path, and the fastest way to learn the platform. The equivalent occ CLI commands follow each step for when you want to script or automate. Do whichever you prefer; they drive the same API.

Everything starts from Create… in the sidebar, which opens the self-service catalog of templates your platform engineers maintain — Projects, Components, and Resources for you, plus platform building blocks:

The Create… page — self-service templates for Projects, Components, Resources and more

Step 1 — Create a project

A Project groups related components and gives them an isolated runtime cell. Create one called quickstart.

In the portal: open https://console.idp.fedshi.com, click Create Project, set the name to quickstart, leave the deployment pipeline as default, and click Create. It appears in the catalog immediately.

Or with the occ CLI:

occ project list -n fedshi # see what already exists

Then create quickstart by applying a manifest:

# project.yaml
apiVersion: openchoreo.dev/v1alpha1
kind: Project
metadata:
name: quickstart
namespace: fedshi
annotations:
openchoreo.dev/display-name: "Quickstart"
openchoreo.dev/description: "My first DevsPortal project"
spec:
deploymentPipelineRef:
kind: DeploymentPipeline
name: default
occ apply -f project.yaml
occ project get quickstart -n fedshi

Step 2 — Pick a ComponentType

A ComponentType is a template your platform engineers maintain — it decides what Kubernetes shape your component takes (a Deployment, a CronJob, and so on) and what parameters you can set. List what's available:

occ clustercomponenttype list

You'll see the built-in types. For an HTTP service, use deployment/service. (Other common ones: deployment/web-application for frontends, deployment/worker for background workers with no endpoint, cronjob/scheduled-task for periodic jobs.)

Step 3 — Create a component from a prebuilt image

A Component is your deployable unit. We'll create one called greeter from a public sample image, expose an HTTP endpoint, and turn on auto-deploy so it ships to the first environment automatically.

In the portal: in your quickstart project, click Create Component, then in the 3-step wizard:

  1. Metadata — name it greeter.
  2. Build & Deploy — choose Container Image and enter ghcr.io/openchoreo/samples/greeter-service:latest. Turn Auto Deploy on.
  3. Service Details — add an endpoint of type HTTP on port 9090 with external visibility. Click Create.

Or with the occ CLI: apply the Component and its Workload together:

# greeter.yaml
apiVersion: openchoreo.dev/v1alpha1
kind: Component
metadata:
name: greeter
namespace: fedshi
spec:
owner:
projectName: quickstart
componentType:
kind: ClusterComponentType
name: deployment/service
autoDeploy: true
---
apiVersion: openchoreo.dev/v1alpha1
kind: Workload
metadata:
name: greeter
namespace: fedshi
spec:
owner:
projectName: quickstart
componentName: greeter
container:
image: ghcr.io/openchoreo/samples/greeter-service:latest
args: ["--port", "9090"]
endpoints:
http:
type: HTTP
port: 9090
visibility: [external]
occ apply -f greeter.yaml

Because autoDeploy: true is set, DevsPortal snapshots the component into a ComponentRelease and immediately deploys it to the first environment in the pipeline (development). You don't have to do anything else for the first stage.

Step 4 — Watch it deploy

In the portal: open the greeter component, go to the Deploy tab. The development environment card moves from Pending to Ready once the pods are up — it also shows the image, the release name, and the endpoint URL.

Or with the occ CLI:

occ component get greeter -n fedshi
occ releasebinding list -n fedshi -p quickstart --component greeter

Wait for the development binding to report Ready (usually under a minute).

Step 5 — Reach the running endpoint

Because you declared the endpoint as external, the platform created a public route for it on the Fedshi apps domain. External endpoints land on {fedshi.apps} — the exact host follows the pattern {component}-{environment}-{project}.apps.idp.fedshi.com. For this deployment that's:

curl https://greeter-development-quickstart.apps.idp.fedshi.com/greeter

The simplest way to find the exact URL is to read it off the Deploy tab's environment card, or from the endpoint shown in occ component get greeter. You should get a friendly greeting back. Your service is live, on a real hostname, with TLS, with no ticket filed.

tip

Endpoints you mark internal or project are not reachable from your laptop — only the external ones get a public route. That's deliberate: most backend services should be private. See Workloads and endpoints.

Step 6 — Read the logs

In the portal: on the greeter component, open the Logs tab. Filter by environment and time range, and search for keywords.

Or with the occ CLI:

occ component logs greeter -n fedshi -p quickstart --env development
occ component logs greeter --env development -f # follow live

That's the full loop — create, deploy, reach, observe — on real infrastructure.

Step 7 — Promote to staging (optional)

The same release you tested in development can be promoted up the pipeline unchanged:

occ component deploy greeter -n fedshi -p quickstart --to staging

In the console, click Promote on the development card. The byte-for-byte identical release now runs in staging too. Full details in Deploy and promote.

Clean up

When you're done experimenting:

occ component delete greeter -n fedshi
occ project delete quickstart -n fedshi # also removes any components left inside it

Where to go next

To learn how to…Read
Organize many components and projectsProjects and components
Define richer endpoints and visibilityWorkloads and endpoints
Build your own image from source on every pushBuilds and CI
Connect to a database or another serviceDependencies
Promote with per-environment configDeploy and promote

If you're bringing a whole team onto DevsPortal, hand them this quickstart after their admin completes Onboard a team.