- A BuildConfig that builds the application image.
- An ImageStream to tag and track builds.
- A DeploymentConfig to run the application.
- A DeploymentConfig (or StatefulSet/Deployment where appropriate) to run PostgreSQL.
- A Service exposing the database to the application on port 5432.
- A Secret to store database credentials and inject them into pods.
- A Service exposing the application on port 80.
- A Route to expose the application outside the cluster.
- A set of parameters presented in the creation wizard (application name, Git repo, namespace, etc).

Creating and adding a Template to the catalog
- Author a Template YAML (or JSON) that defines:
- The Template metadata (
metadata.name, labels, annotations). - A
parametersarray for values to collect from users. - An
objectsarray containing the resource manifests that will be created when the template is instantiated.
- The Template metadata (
- Remove cluster-specific fields (status, resourceVersion, uid, creationTimestamp) from exported resource manifests before adding them.
- Replace hard-coded values with template parameters (e.g.,
${APP_NAME},${NAMESPACE},${GIT_URI}). - Create the Template in the cluster with
oc create -f.
objects (illustrative — sensitive fields omitted):
If you need YAML for resources to include in a Template, export an existing resource and parameterize it. For example:Then remove cluster-specific fields (
status, resourceVersion, uid, creationTimestamp) and replace hard-coded values with template parameters before adding the manifest to the objects array.- Parameterize as much as possible (names, ports, secrets) so the Template is reusable across projects.
- Use descriptive
displayNameanddescriptionfields for parameters so the Catalog creation wizard is clear to end users. - Keep Secrets out of source control. Consider generating Secrets at instantiation time or prompting users to supply credentials.
- Test instantiation in a non-production project before adding to a shared Catalog.
- OpenShift Templates documentation: https://docs.openshift.com/
- Kubernetes Concepts (Objects & Manifests): https://kubernetes.io/docs/concepts/
- oc CLI reference: https://docs.openshift.com/en/cli_reference/index.html