Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Current »

These are notes from a meeting to discuss the PNDA Platform Components and the development work required to migrate to Kubernetes.

PNDA platform components dev discussion-20190806 0904-1.mp4

PNDA Health Framework

The PNDA health framework is used to monitor component health and report it back to the PNDA Console. Each backend service has a platform-testing module that runs health tests on the service and reports it back to the PNDA console. The console itself has three main components:

  • Console Backend Data Logger – provides an API for posting health messages to the console.
  • Console Backend Data Manager – provides an API and a SocketIO interface to the console frontend for querying component metrics and health.
  • Console Frontend – an AngularJS web UI served by Nginx.

PNDA Applications

Applications are managed on PNDA by two main components:

  • Package Repository – provides an API for uploading or deleting application packages from the system. The packages are stored in a Kubernetes persistent volume.
  • Deployment Manager – provides an API for deploying applications from the package repository to the cluster.

Information about PNDA application management in PNDA 5.0 can be found here:

Accessing the Package Repository

It is possible to temporarily expose the package repository API with kubectl port forwarding:

kubectl -n pnda port-forward service/pnda-package-repository 8888

Then you can use curl to post a package to the package repository:

curl -XPUT "http://localhost:8888/packages/app-0.0.1.tar.gz?" --data-binary "@app-0.0.1.tar.gz"

Then you can verify the upload by fetching the list of packages:

curl "localhost:8888/packages?" 
[{"name": "app", "latest_versions": [{"version": "0.0.1", "file": "app-0.0.1.tar.gz"}]}]

Deployment Manager

The deployment manager is responsible for deploying apps into the PNDA cluster and configuring all components of the cluster, using descriptor files in the application .tar file. The deployment manager currently was quickly ported to Kubernetes, with sufficient changes to allow the PNDA console to work. There is not yet any functionality to deploy applications into Kubernetes. 

Development Tips For Helm and Kubernetes

When developing Helm charts, run your in-development chart separately from the main PNDA Helm chart. This will let you iterate through the install/delete cycle much faster.

Use to proxy into a Kubernetes cluster. This lets you access the cluster services as if your laptop is part of the cluster. It lets you run a component locally in a debugger or try out development changes without having to build a new image and push it to the registry.

Here is a cheat sheet for kubectl –

  • No labels