Adding policies to Base Template Repos
Overview
Base Template Repositories (BTRs) are an excellent way to systematise and enforce configuration standards for your application. You can add Skycap Validation Policy definitions to any BTR to ensure that configuration files (Stencils) generated from that BTR comply with your policies.
Learn about BTRs and Validation Policies
This guide assumes you have a working knowledge of both BTRs and Skycap Validation Policies. Please read our separate guides for both these topics if you're unsure about them.
How to add policies to a BTR
Policies are defined in a BTR via a central templates.json
file that sits in the root of the repo.
This is an excerpt from a templates.json
file that illustrates the structure of the policies
section:
"policies": [
{
"name": "No Port in Services",
"filename": "no-port-num.cop",
"description": "Block a port",
"selector": "kind: Service",
"tags": [],
"preferred_sequence": 0
},
],
The same templates.json
file is also used to define the Kubernetes templates (Stencils) and any transformations applied to those templates. For more info, please read our guides to these features.
Components of the JSON definition
The Policy section of the templates.json
has the following fields:
name
is the name of the Policy as it will appear in the Skycap UIfilename
is the name of the Copper policy file in the BTRdescription
is a short description of the policy to help you identify itselector
is the Kubernetes selector for the templates to which the policy will apply (e.g.kind: Service
)tags
is an array of default tags that will be added to policy files generated by this templatepreferred_sequence
determines the default sequence in which this policy will be run, relative to any other policies in the Formation.
Directory structure for policies in BTRs
BTRs must be organized as follows:
- The
templates.json
must be placed in the root directory - The (Copper) policy files for templates must be placed in a directory named
policies
Related guides
- Using validation policies with Skycap
- Creating your own Base Template Repository