Skip to content

Deploy abcdesktop on AWS with Amazon Elastic Kubernetes Service

Requirements

  • aws command line interface aws-cli
  • Create an Amazon Elastic Kubernetes Service (EKS) cluster and a VPC with a NAT gateway

    A NAT gateway is required so your nodes can pull images from the ghcr.io public registry. If your Kubernetes nodes cannot reach ghcr.io, pods will remain in ImagePullBackOff state.

  • Define the environment variables AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_SESSION_TOKEN. You can retrieve credentials as needed from your AWS access portal.

EKS console overview

This screenshot describes the Amazon Elastic Kubernetes Service console. It shows the Cluster and Networking information.

aws eks console overview

Check your caller-identity

aws sts get-caller-identity

This example uses SandboxAdministratorAccess, but you can use any role with sufficient permissions.

$ aws sts get-caller-identity
{
    "UserId": "XXXXXXXXXXXXXXXXXXX:user.namee@domain.org",
    "Account": "YYYYYYYYYYYYYYYY",
    "Arn": "arn:aws:ZZZ::ZZZZZZZZZZZZZ:assumed-role/AWSReservedSSO_SandboxAdministratorAccess_ZZZZZZZZZZZZZZZ/user.namee@domain.org"
}

Find your cluster's name

This example uses eu-north-1 as the region value.

aws eks list-clusters --region eu-north-1
{
    "clusters": [
        "scrumptious-dance-potato"
    ]
}

Create your Kubernetes config file

Create your kubernetes config file using the aws eks update-kubeconfig command line

aws eks update-kubeconfig --region region-code --name my-cluster

In this example

aws eks update-kubeconfig --region eu-north-1 --name scrumptious-dance-potato

Run a command such as kubectl cluster-info to verify that your kubeconfig is correctly configured.

kubectl cluster-info 

Run the abcdesktop install script

Download and extract the latest release automatically

curl -sL https://raw.githubusercontent.com/abcdesktopio/conf/main/kubernetes/install-4.4.sh | bash

To get more details about the install process, please read the Setup guide

Connect to your abcdesktop service

By default, the install script exposes the service on a free TCP port :30443 using a kubectl port-forward command to forward traffic to the HTTP service on port :80.

Open your web browser and navigate to http://localhost:30443.

abcdesktop login

Log in as user Philip J. Fry with the password fry

abcdesktop login as fry

After the image-pulling process completes, your first abcdesktop session is ready.

abcdesktop for fry

Add applications to your desktop

Using the same terminal session, run the application install script:

curl -sL https://raw.githubusercontent.com/abcdesktopio/conf/main/kubernetes/pullapps-4.4.sh | bash

To get more details about the install applications process, please read the Setup applications guide

Then reload the web page with the desktop of Philip J. Fry. New applications are now listed in the plasmashell dock.

abcdesktop for fry with applications

Start Firefox application

The first run may require waiting for the image-pulling process to complete.

Navigate to https://mylocation.org to check where your pod is running.

abcdesktop for fry with applications

For the eu-north-1 region, the desktop is located near Stockholm, Sweden.

Looking for an older version? Previous documentation (old.abcdesktop.com)