Skip to content
Forecastle is a control panel which dynamically discovers and provides a launchpad to access applications deployed on Kubernetes – [✩Star] if you're using it!
Branch: master
Clone or download

README.md

Forecastle

Get started with Stakater

Problem(s)

  • We would like to have a central place where we can easily look for and access our applications running on Kubernetes.
  • We would like to have a tool which can dynamically discover and list the apps running on Kubernetes.
  • A launchpad to access developer tools e.g. Jenkins, Nexus, Kibana, Grafana, etc.

Solution

Forecastle gives you access to a control panel where you can see your running applications and access them on Kubernetes.

Screenshot

Deploying to Kubernetes

You can deploy Forecastle both using vanilla k8s manifests or helm charts.

Vanilla Manifests

Step 1: You can apply vanilla manifests by running the following command

kubectl apply -f https://raw.githubusercontent.com/stakater/Forecastle/master/deployments/kubernetes/forecastle.yaml

Step 2: Update configmap

In the Forecastle configmap modify the namespaces.conf key with a comma separated list of namespaces which you want Forecastle to watch.

And enjoy!

Helm Charts

If you configured helm on your cluster, you can deploy Forecastle via helm chart located under deployments/kubernetes/chart/Forecastle folder.

Configuration

Ingresses

Forecastle looks for a specific annotations on ingresses.

  • Add the following annotations to your ingresses in order to be discovered by forecastle:
Annotation Description
forecastle.stakater.com/expose [Required] Add this with value true to the ingress of the app you want to show in Forecastle
forecastle.stakater.com/icon [Optional] Icon/Image URL of the application; An icons/logos/images collection repo Icons
forecastle.stakater.com/appName [Optional] A custom name for your application. Use if you don't want to use name of the ingress
forecastle.stakater.com/group [Optional] A custom group name. Use if you want the application to show in a different group than the namespace it is running in
forecastle.stakater.com/instance

Forecastle

Forecastle supports the following configuration options that can be modified by either ConfigMap or values.yaml if you are using helm

Configuration Key Description Default
namespaces A list of namespaces that forecastle uses to look for ingresses ["stakater"]
headerBackground Background color of the header (Specified in the CSS way) ""
headerForeground Foreground color of the header (Specified in the CSS way) ""
title Title for the forecastle dashboard "Forecastle - Stakater"
instanceName Name of the forecastle instance ""

Features

  • List apps found in all namespaces listed in the configmap
  • Search apps
  • Grouped apps per namespace
  • Configurable header (Title and colors)
  • Multiple instance support

Running multiple instances of forecastle

Yuou can run multiple instances of forecastle by just deploying them in a different namespace and provided a list of namespaces to look for ingresses. However, if you want flexibility over which applications to show in a specific instance regardless of the namespace, then you need to first configure forecastle instances to be a named instances. You can do that by setting instanceName in forecastle configuration. Once you have the named instances, you can add forecastle.stakater.com/instance annotation to your ingresses to control which application will show in which instance of forecastle. You can also specify multiple instances of forecastle for the same ingress so that it shows up in multiple dashboards. For example, you have 2 instances running named dev-dashboard and prod-dashboard. You can add this in the ingress's instance annotation dev-dashboard,prod-dashboard and the ingress will come up in both dashboards.

Help

Got a question? File a GitHub issue, or send us an email.

Talk to us on Slack

Join and talk to us on the #tools-imc channel for discussing Forecastle

Join Slack Chat

Contributing

Bug Reports & Feature Requests

Please use the issue tracker to report any bugs or file feature requests.

Developing

PRs are welcome. In general, we follow the "fork-and-pull" Git workflow.

  1. Fork the repo on GitHub
  2. Clone the project to your own machine
  3. Commit changes to your own branch
  4. Push your work back up to your fork
  5. Submit a Pull request so that we can review your changes

NOTE: Be sure to merge the latest from "upstream" before making a pull request!

Changelog

View our closed Pull Requests.

License

Apache2 © Stakater

About

Why name Forecastle?

Forecastle is the section of the upper deck of a ship located at the bow forward of the foremast. This Forecastle will act as a control panel and show all your running applications on Kubernetes having a particular annotation.

Forecastle is maintained by Stakater. Like it? Please let us know at hello@stakater.com

See our other projects or contact us in case of professional services and queries on hello@stakater.com

You can’t perform that action at this time.