Skip to content

Instantly share code, notes, and snippets.

View makocchi-git's full-sized avatar
:octocat:
(^ω^)

makocchi makocchi-git

:octocat:
(^ω^)
View GitHub Profile
@makocchi-git
makocchi-git / devsumi2014-B1.md
Last active April 29, 2023 14:55
devsumi 2014 藤田 晋「やる気を引き出す組織風土のつくり方」のメモ
サイバーエージェントは今年で創業16年目を迎え、現在では連結役職員数2,700名を 超える規模に成長をしました。
めまぐるしく変わるインターネット市場において進化を続け、2013年度にはスマートフォン企業へと変貌をとげました。
グループ内では年間100以上のサービスを新たに立ち上げ、国内最大級の開発ラインを保有しています。
本セッションでは、こうした事業変換を経ても成果を出す組織風土のつくり方について、お話しします。

はじめに

            
                
                    
                    
                    
$ conftest test sample.yaml
FAIL - sample.yaml - sample in the Deployment makocchi/docker-nginx-hostname has an image, sample-deployment, using the latest tag
1 test, 0 passed, 0 warnings, 1 failure
@makocchi-git
makocchi-git / sample.rego
Last active June 8, 2020 05:21
Validate your Kubernetes manifests with Conftest in the GitHub Actions
package main
import data.lib.kubernetes
violation[msg] {
kubernetes.containers[container]
[image_name, "latest"] = kubernetes.split_image(container.image)
msg = kubernetes.format(sprintf("%s in the %s %s has an image, %s, using the latest tag", [container.name, kubernetes.kind, image_name, kubernetes.name]))
}
name: Pull Request Check
on: [pull_request]
jobs:
validation:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: validate manifests in dir1 and dir2
$ kubeval invalid-deployment2.yaml
PASS - invalid-deployment2.yaml contains a valid Deployment

# --strict を付けることで WARN になる
$ kubeval --strict invalid-deployment2.yaml
WARN - invalid-deployment2.yaml contains an invalid Deployment - location: Additional property location is not allowed
apiVersion: apps/v1
kind: Deployment
metadata:
name: invalid-deployment
spec:
replicas: 1
selector:
matchLabels:
app: example
template:
$ kubeval valid-deployment.yaml
PASS - valid-deployment.yaml contains a valid Deployment

$ echo $?
0
$ kubeval invalid-deployment.yaml
WARN - invalid-deployment.yaml contains an invalid Deployment - spec.replicas: Invalid type. Expected: [integer,null], given: string
WARN - invalid-deployment.yaml contains an invalid Deployment - port: Additional property port is not allowed

$ echo $?
1
apiVersion: apps/v1
kind: Deployment
metadata:
name: invalid-deployment
spec:
replicas: "1"
selector:
matchLabels:
app: example
template: