mirror of
https://github.com/stackrox/kube-linter-action.git
synced 2026-07-18 13:28:08 +00:00
Initial commit
This commit is contained in:
Executable
+35
@@ -0,0 +1,35 @@
|
|||||||
|
name: 'kube-linter'
|
||||||
|
description: 'Scan directory with kube-linter'
|
||||||
|
inputs:
|
||||||
|
directory:
|
||||||
|
description: 'Directory to scan '
|
||||||
|
required: true
|
||||||
|
config:
|
||||||
|
description: 'Path to config file'
|
||||||
|
required: false
|
||||||
|
outputs:
|
||||||
|
lint-txt:
|
||||||
|
description: 'Output from linting'
|
||||||
|
value: ${{ steps.lint.outputs.lint-txt }}
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: Download latest kube-linter
|
||||||
|
run: |
|
||||||
|
LOCATION=$(curl -s https://api.github.com/repos/stackrox/kube-linter/releases/latest \
|
||||||
|
| grep "tag_name" \
|
||||||
|
| awk '{print "https://github.com/stackrox/kube-linter/releases/download/" substr($2, 2, length($2)-3) "/kube-linter-linux.tar.gz"}')
|
||||||
|
curl -s -L -o kube-linter-linux.tar.gz $LOCATION
|
||||||
|
tar -xf kube-linter-linux.tar.gz -C "${GITHUB_WORKSPACE}/"
|
||||||
|
shell: bash
|
||||||
|
- id: lint
|
||||||
|
run: |
|
||||||
|
cd "${GITHUB_WORKSPACE}"
|
||||||
|
if [ -z ${{ inputs.config }} ]; then
|
||||||
|
export CONFIG=""
|
||||||
|
else
|
||||||
|
export CONFIG="--config ${{ inputs.config }}"
|
||||||
|
fi
|
||||||
|
./kube-linter $CONFIG lint ${{ inputs.directory }}
|
||||||
|
shell: bash
|
||||||
|
|
||||||
@@ -1 +1,25 @@
|
|||||||
# kube-linter-action
|
# kube-linter-action
|
||||||
|
|
||||||
|
# kube-linter-action GitHub action
|
||||||
|
|
||||||
|
This is a GitHub action for scanning Kubernetes deployment files with [kube-linter](https://github.com/stackrox/kube-linter). This includes both the action itself (.github/actions) and sample GitHub workflow (.github/workflows) and a test YAML.
|
||||||
|
|
||||||
|
Quick deployment:
|
||||||
|
|
||||||
|
1. Create a new GitHub repo.
|
||||||
|
2. Push all files from the `sample` directory into the repo.
|
||||||
|
3. The `kube-linter.yml` workflow will run as an action every time there's a new push to this repo.
|
||||||
|
|
||||||
|
The action takes two parameters.
|
||||||
|
|
||||||
|
```
|
||||||
|
- name: Scan repo
|
||||||
|
id: kube-lint-repo
|
||||||
|
uses: stackrox/kube-linter-action@v0.0.1
|
||||||
|
with:
|
||||||
|
directory: yamls
|
||||||
|
config: .kube-linter/config.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
* `directory` is mandatory -- this is the directory of deployment files to scan.
|
||||||
|
* `config` is optional -- this is the path to a [configuration file](https://github.com/stackrox/kube-linter/blob/main/config.yaml.example) if you wish to use a non-default configuration.
|
||||||
+20
@@ -0,0 +1,20 @@
|
|||||||
|
name: Check Kubernetes YAMLs
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ main ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ main ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
scan:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Scan repo
|
||||||
|
id: kube-lint-repo
|
||||||
|
uses: stackrox/kube-linter-action@v0.0.1
|
||||||
|
with:
|
||||||
|
directory: yamls
|
||||||
|
config: .kube-linter/config.yaml
|
||||||
|
|
||||||
Executable
+21
@@ -0,0 +1,21 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: nginx-deployment
|
||||||
|
labels:
|
||||||
|
app: nginx
|
||||||
|
spec:
|
||||||
|
replicas: 3
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: nginx
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nginx
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: nginx
|
||||||
|
image: nginx:1.14.2
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
Reference in New Issue
Block a user