LATEST VERSION: 2.2 - RELEASE NOTES
PCF Tile Developers Guide v2.0

PCF Tile Developer Guide

Page last updated:

This guide exists to help Pivotal Cloud Foundry (PCF) Partners learn the high-level process of building and publishing a tile on Pivotal Network.

For advanced developers with previous experience building tiles, see Product Template Reference and Development Workflow Reference.

What is a Tile?

Tiles are packaged software that can be integrated into PCF. PCF operators can install tiles on PCF. PCF developers can use these services once they are installed.

Tile developers can publish tiles on Pivotal Network, where services and tiles are available for download.

Tile Structure

Tiles are packaged as compressed files with a .pivotal file extension. These compressed files require three subdirectories: metadata, migrations, and releases.

When you package your software with Tile Generator, it generates these subdirectories for you. You can perform different actions within each subdirectory:

Directory Description
metadata Configure settings for your software in a YAML file.
migrations Track changes across different releases in a .js file. Only tiles with multiple releases use this subdirectory. Do not modify the files in this subdirectory during your first tile release.
releases Deploy your service source code and other inputs for your build, such as a BOSH release.

Why Build a Tile?

There are multiple reasons to build and publish a tile on Pivotal Network. Tiles can help you:

  • Find the widest possible audience for your service.
  • Join a growing ecosystem that can easily integrate your service.
  • Enable operators and app developers to interact with your service in an accessible and standardized way.

Building Your First Tile

There are two options for building your first tile. You can either attend partner days or develop independently. However, Pivotal strongly recommends attending Partner Days for hands-on guidance.

Attending Partner Days

Partner Days are the single best resource to introduce you to PCF and tile development. During these three-day workshops, Pivotal and partner Independent Software Vendor (ISV) engineers collaborate to prototype and build a software integration with PCF.

These events streamline your development process by providing hands-on guidance, giving you a head start for publishing a tile on Pivotal Network. The workshop is free for all Pivotal partners.

Pivotal recommends any interested partner to register for Partner Days. If you are not a Pivotal partner yet, you can sign up for the partner program.

Developing Independently

If you want to build a tile without attending Partner Days, follow the procedure below to minimize the learning curve for tile development.

Creating a tile is a complex process and can be time consuming to complete on your own. You can message the Pivotal Partners Slack channel with questions if you register for the Pivotal Partner program.

1. Decide What to Build

If you use Tile Generator to package your software you also need to determine the inputs you need to build before development. Inputs for your tile also depend on the service you are providing.

Before starting tile development, see How PCF and PCF Services Work.

Depending on what you build, you may need to install the following tools:

  • Tile Generator: Used to package your software into a tile.

  • BOSH Command Line Interface (CLI): A command line interface for running BOSH commands. You need BOSH commands to run Tile Generator.

  • Cloud Foundry Command Line Interface (cf CLI): A command line interface for deploying and managing apps on Cloud Foundry. If you are developing on Cloud Foundry, you use cf CLI when building your tile.

  • Kubernetes Command Line Tool (kubectl): A command line interface for deploying and managing apps on Kubernetes. If you are developing on Kubernetes, you use kubectl when building your tile.

  • CF Dev (optional): A lightweight PCF installation for deploying and debugging apps locally. You can use CF Dev if you want to run PCF on your local workstation.

2. Generate a Tile

Tile Generator is a tool that simplifies the building process for tiles. To use Tile Generator, upload your software components, such as the service broker, buildpack, and Docker image, and the tool generates a base tile.

For information on setting up Tile Generator and building a base tile, see Tile Generator.

3. Test Your Tile

Before you publish your tile, you can test it manually using a Partner Integration Environment (PIE). In PIE you can see how the tile functions on an IaaS, such as Amazon Web Services or Google Cloud Platform. You can upload, configure, and install your tile in PIE just like an operator would.

To gain access to your PIE, reach out to your contact at Pivotal or register as a partner.

If you already have access to your PIE, for information on how to log in, see Shared PCF Development Environments.

4. Document Your Tile

When you are ready to publish your tile, you should write documentation. Documentation is valuable for operators who use your tile.

For more information on how to write and publish documentation for your tile, see Tile Documentation.

5. Publish Your Tile on Pivotal Network

Contact your Pivotal representative who can guide you through the process of uploading your tile to Pivotal Network. When you upload your tile to Pivotal Network, it becomes available for operators and developers to do the following:

Audience Benefits
Operators

  • Download and install your service as a tile.
  • Configure your service using a UI.
  • Update your service with a single click.
Developers

  • See your service on Pivotal Network.
  • Select service plans to which they would like to subscribe.
  • Create instances of your service and call them from their apps.
  • Support a continuous and fast development cycle.

For information on the release cycle for Partner tiles, see Partner Software Release Cycle.

Contact Us

If you want to learn more about the Pivotal ISV Partner Program or request assistance with your integration project, see Contact Us.

Create a pull request or raise an issue on the source for this page in GitHub