Cloud Foundry
Cloud Foundry is an open-source, multi-cloud application platform as a service (PaaS). It’s designed to help developers build, deploy, run, and scale applications without worrying too much about the underlying infrastructure. It provides a runtime environment so you can just push your code, and it handles provisioning servers, networking, and scaling. It works on top of different infrastructures (AWS, Azure, Google Cloud, VMware vSphere, OpenStack, etc.).
Architecture
The following paragraph describes Cloud Foundry nodes:
Organizations (AdminCollection) - An org is a development account that an individual or multiple collaborators can own and use. All collaborators access an org with user accounts. Collaborators in an org share a resource quota plan, applications, services availability, and custom domains.
Spaces (Namespace) - Every application and service is scoped to a space. Each org contains at least one space. A space provides users with access to a shared location for application development, deployment, and maintenance.
Apps (Deployment) - Apps are top-level objects that link together and contain configuration information for your packages, droplets, processes, tasks, and more.
Processes (SoftwareContainer) - Processes define the runnable units of an app. An app can have multiple process types, each with differing commands and scale.
Platforms supported by the pattern
The pattern discovers CloudFoundry instances on cloud and on-premises deployments via API scan.
Identification
To run a discovery of the product, the pattern must be triggered. This section describes conditions under which the pattern can be triggered.
Pattern triggers
The following table gives details about the pattern trigger:
Pattern | Trigger node | Attribute | Condition | Argument |
CloudFoundryAPI | DiscoveredAPIProviderResultList | discovery_method | = | "CloudFoundry.ListOrganizations" |
CloudFoundrySpacesAPI | Namespace | type | "Cloud Foundry Space" |
API Provider Discovery
CloudFoundry is discovered using executing REST API queries, and processing obtained data.
Adding API credentials and performing API scans:
API queries
REST API requests are executed by the following CloudFoundry.API module (https://v3-apidocs.cloudfoundry.org/):
- /v3/apps
- /v3/apps?space_guids={guid}
- /v3/info
- /v3/organizations
- /v3/organization_quotas/{guid}
- /v3/processes
- /v3/processes?space_guids={guid}
- /v3/processes/{guid}/stats
- /v3/routes
- /v3/routes?space_guids={guid}
- /v3/spaces
Trigger
CloudFoundryAPI pattern triggers on DiscoveredAPIProviderResultList where discovery_method = "CloudFoundry.ListOrganizations".
Discovery View
Examples below display nodes
An example of the Organizations (AdminCollection) modeling:
An example of the Spaces (Namespace) modeling:
An example of the Apps (Deployment) modeling:
An example of the Processes (SoftwareContainer) modeling:
Subject matter expertise
Inputs from subject matter experts are welcome on any other potential approaches not discussed in this topic.
Testing
The pattern has been tested against the available customer data.
Open issues
There are no known open issues with this pattern.