Get started with Walhall

In this tutorial, you will deploy your first containerized app on Walhall.

Before you start

GitHub organization account

You need a GitHub account that is part of a GitHub organization that has been linked to Walhall.

If you completed the beta registration process, then you already did this step. If someone else in your organization did this, then please double check to make sure that you are a part of the organization that they linked to Walhall.

Repository requirements

If you want to deploy your own repositories in your first app, then you must make sure that they meet the following requirements.

We offer a sample repository that you can use if you just want to get something simple up and running.

Drone file

Each repository must have a Drone file (.drone.yml) in its root. You can copy and paste the following template:

# .drone.yml - Sample file for connecting your module to Walhall's CI/CD pipeline. 
# Save this in the repository root. You don't have to change anything.
# All environment variables are created in Walhall as secrets.

pipeline:
# Walhall requires git tags to exactly match the image tags. 
# This step preserves the tags.
  preserve-git-tags:
    image: bash
    commands:
      # If the commit reference is a tag, then Drone will write the tag to the .tags file
      - bash -c "[[ \"${DRONE_COMMIT_REF}\" == \"refs/tags/\"* ]] && echo \"${DRONE_COMMIT_REF#refs/tags/}\" > .tags"
    when:
      event: [tag]

  # This step builds the image and pushes it to the registry when a tag is pushed.
  # Drone is configured to use the Walhall registry by default.
  build-docker-image-tag:
    image: plugins/docker
    registry:
      from_secret: DOCKER_REGISTRY
    repo:
      from_secret: DOCKER_REPO
    username:
      from_secret: DOCKER_USERNAME
    password:
      from_secret: DOCKER_PASSWORD
    insecure: true
    file: Dockerfile
    when:
      event: [tag]
      status: [success]

See the Drone page for more information.

Dockerfile

Each repository must include a Dockerfile that builds an image of the code.

Please note the port used to serve your code.

Git tag

Your repository must have a tagged commit that includes the Drone file and the Dockerfile.

In GitHub, you can create this by going to your repository, clicking on Releases, and then clicking on Draft new release.

Use our sample repository

Our Walhall 2048 repository comes pre-configured to be deployed on Walhall.

Go to the repository, fork it to your organization’s account, and then push a tag.

1. Build the app

  1. Log in to Walhall.
  2. Enter a name for your new app and click Create. Screenshot: First app in Walhall
  3. Now you will see a list of repositories that have been imported from your organization into Walhall. In Walhall, these are known as modules.
    Click the Refresh the list button. When the list has been refreshed, click the Add button next to each module you want to include in the app.
    Screenshot: List of modules while creating an app
    Can’t see your repositories? See the Troubleshooting page for more information.
  4. When you’re ready, click Review.

Now, Walhall will create your app and build the images of your modules.

The next screen that loads will display the development environment of your app. Each environment contains a set of configurations for the modules in the app, including module versions and configuration/environment variables.

Screenshot: Walhall modules ready to deploy

Click here to read more about modules and how to add them to your app.

2. Expose modules with public URLs

You will need to expose your modules in order to access them. To do so:

  1. Click on the module you want to expose.
  2. The Details view will load. Check the box labeled Expose with public URL.
    Screenshot: Expose public URL
  3. Enter the inbound port where your module exposes its content, and the outbound port where it listens for connections.
  4. Click Save.
  5. Click Close to return to the app overview screen.

3. Deploy the app

Click the Deploy to Development button in the top right.

When your app finishes deploying, the Development environment will be tagged as “Running” in the upper right corner. A public URL will show on your each of your modules:

Screenshot: 2048 URL

That’s it! Click the URL to access your module.

Click here to read more about the deployment process.

Further development

This tutorial showed you how to get a simple app up and running. Walhall offers a comprehensive set of configuration settings for each of your environments and modules.

We recommend reading our documentation on:

Beta limitations

Walhall is currently in closed beta. The following limitations to app and environment creation apply:

  • Both user access management and source code management are handled through GitHub. We will open this up to other version control systems (e.g., Gitlab, Bitbucket) in the future.
  • The number of applications is limited to 20, with a maximum of 3 environments each.
  • Walhall currently only offers the creation of development, staging, and demo environments; the option to create and manage production environments will be added later.
  • The role-based access model is not yet activated in Walhall. Each member of an organization in Walhall has full access to all applications for that organization and can delete and edit environments and applications.
  • Walhall works best in the latest version of Google Chrome.