# Infrastructure as Code
Want to see results for all your IaC repos in one place? Check out Fairwinds Insights (opens new window)
Polaris can be used on the command line to audit local Kubernetes manifests stored in YAML files. This is particularly helpful for running Polaris against your infrastructure-as-code as part of a CI/CD pipeline. Use the available command line flags to cause CI/CD to fail if your Polaris score drops below a certain threshold, or if any danger-level issues arise.
# Install the CLI
To run Polaris against your YAML manifests, e.g. as part of a Continuous Integration process, you'll need to install the CLI.
Binary releases can be downloaded from the releases page (opens new window) or can be installed with Homebrew (opens new window):
brew tap FairwindsOps/tap
brew install FairwindsOps/tap/polaris
polaris version
# Checking Infrastructure as Code files
You can audit Kubernetes YAML files by running:
polaris audit --audit-path ./deploy/ --format=pretty
This will print out any issues Polaris finds in your manifests.
Polaris can only check raw YAML manifests. If you'd like to check a Helm template,
you can run helm template
to generate a manifest that Polaris can check.
# Fixing Issues
Polaris can automatically fix many of the issues it finds. For example, you can run
polaris fix --files-path ./deploy/ --checks=all
to fix any issues inside the deploy
directory. Polaris may leave
comments next to some changes (e.g. liveness and readiness probes) prompting
the user to set them to something more appropriate given the context of their
application.
Note that not all issues can be automatically fixed.
Currently only raw YAML manifests can be mutated. Helm charts etc. still need to be changed manually.
# Running in a CI pipeline
# Set minimum score for an exit code
You can tell the CLI to set an exit code if it detects certain issues with your YAML files. For example, to fail if polaris detects any danger-level issues, or if the score drops below 90%:
polaris audit --audit-path ./deploy/ \
--set-exit-code-on-danger \
--set-exit-code-below-score 90
# Pretty-print results
By default, results are output as JSON. You can get human-readable output with
the --format=pretty
flag:
polaris audit --audit-path ./deploy/ \
--format=pretty
You can also disable colors and emoji:
polaris audit --audit-path ./deploy/ \
--format=pretty \
--color=false
# Output only showing failed tests
The CLI to gives you ability to display results containing only failed tests. For example:
polaris audit --audit-path ./deploy/ \
--only-show-failed-tests true
# Audit Helm Charts
You can audit helm charts using the --helm-chart
and --helm-values
flags:
polaris audit \
--helm-chart ./deploy/chart \
--helm-values ./deploy/chart/values.yml
# As Github Action
# Setup polaris action
This action downloads a version of polaris (opens new window) and adds it to the path. It makes the polaris cli (opens new window) ready to use in following steps of the same job.
# Inputs
# version
The release version to fetch. This has to be in the form <tag_name>
.
# Outputs
# version
The version number of the release tag.
# Example usage
uses: fairwindsops/polaris/.github/actions/setup-polaris@master
with:
version: 5.0.0
Example inside a job:
steps:
- uses: actions/checkout@v2
- name: Setup polaris
uses: fairwindsops/polaris/.github/actions/setup-polaris@master
with:
version: 5.0.0
- name: Use command
run: polaris version