Last reviewed: 2026-04-05

From code to deploy in 30 minutes 🚀

This guide helps you quickly deploy your first application to the developer platform.


By the end of this session, you will have:

  • Your code packaged as a container
  • Deployed via GitOps with visibility in Argo CD
  • Monitoring via Prometheus, logging via Loki, and visualization in Grafana
  • You comply with the platform’s security requirements
  • You are ready to use IDP in your daily work

⏱️ Prerequisites

Before you begin, make sure you have the following in place:

  • Access to your IDP onboarding channel on Slack #idp-TEAM-onboarding and #idp-announcements
  • Access to your IDP deployment repository on GitHub https://github.com/jppol-idp/apps-TEAM
  • Access to your IDP tools, Argo CD and Grafana. Check your links at https://github.com/jppol-idp/apps-TEAM/tree/main/apps/TEAM-dev
  • Access to your own code repository, e.g., https://github.com/TEAM
  • Docker or similar installed

Note: To get access to IDP make a request in your #idp-TEAM-onboarding channel.


🪛 Step-by-Step: Deploy Your First Workload

1. 📁 Create an app in your own code repository

See example https://github.com/jppol-idp/generic-service

Tip: Name the app after yourself to make it easy to identify.

mkdir app-name && cd app-name
echo 'print("Hello, IDP!")' > app-name.py

Add a Dockerfile:

FROM python:3.11-slim
WORKDIR /app-name
COPY app-name.py .
CMD ["python", "app-name.py"]

2. 🐳 Build and optionally test your image locally

docker build . -t app-name.py:0.1.0
docker run app-name.py:0.1.0

3. Upload your image to the IDP ECR repository

🚨 You typically don’t have permission to upload images directly — but your GitHub organization does.

This GitHub Action tags and pushes your image to ECR in our idp-shared account: 354918371398 https://github.com/jppol-idp/tag-and-push-ecr/blob/main/action.yaml

The ECR repository allows GitHub Actions from your organization to upload images to a namespaced registry. For instance, Actions from Politiken’s organization is allowed to push images to: arn:aws:ecr:eu-west-1:354918371398:repository/pol/*.

For an example on how to use it, view the generic-service.

To both build an image and to tag and push it you can use this GitHub Action. https://github.com/jppol-idp/build-and-push-ecr


4. Create deployment configuration

Prepare a Helm chart in the deploy repo: https://github.com/jppol-idp/apps-TEAM

git clone https://github.com/jppol-idp/apps-TEAM.git
cd apps-TEAM/apps/TEAM-dev
mkdir app-name

A deployment typically consists of two files:

application.yaml - describes the Helm chart:

apiVersion: v2
name: app-name
description: my first idp app
version: 0.1.0    # <-- version af deployment definition

helm:
  chart: helm/idp-advanced
  chartVersion: "3.6.0"    # <-- version af helm chart

The chart helm/idp-advanced refers to jppol-idp/helm-idp-advanced

values.yaml- defines deployment-specific variables:

image:
  repository: 354918371398.dkr.ecr.eu-west-1.amazonaws.com/pol/app 
  pullPolicy: IfNotPresent
  tag: "0.1.0"

Find a list of all configurable variables or see examples in our generic service that covers most common needs.

Automatic deployment

The ECR repository uses immutable tags, meaning you can’t use latest as a tag for your images.

But, the IDP cluster can update to the latest version of the images built, optionally limiting to tags matching certain SemVer or Regex patterns.

This feature is enabled in application.yaml with a set of annotations. Enabling this feature will limit the need to modify the deploy repository, as you only need to modify it in case of entirely new deployments or when tweaking the configuration. Read more about auto updating images.


5. 📦 Commit and push to your GitOps repo and see deployment in Argo CD

After committing your application.yaml and values.yaml files to your /jppol-idp/apps-TEAM github repository deployment will start.

Check in Argo CD if your app has been synchronised and deployed and a certificate been issued.

Go to Argo CD for deployment. Check your link at https://github.com/jppol-idp/apps-TEAM/tree/main/apps/TEAM-dev


6. Confirm log output in Grafana

Metrics are automatically exposed with Prometheus and Loki and are visible in Grafana.

Go to Grafana for monitoring. Check your link at https://github.com/jppol-idp/apps-TEAM/tree/main/apps/TEAM-dev

Go to drilldown to see your Prometheus stats image

Go and drilldown and filter your logs with Loki image


7. 🏁 Congratulations

You’re now up and running! 💪

You are always very welcome to ask questions in your onboarding channel on Slack - we’re happy to help!

Also, feel free to explore our How to section for further guidance.