mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-29 10:55:05 +00:00
add script to generate N number of resources/policies
This commit is contained in:
parent
912c99a88f
commit
92d69bdb2a
3 changed files with 48 additions and 8 deletions
|
@ -1,10 +1,10 @@
|
|||
apiVersion: kyverno.io/v1alpha1
|
||||
kind: Policy
|
||||
metadata:
|
||||
name: "default-networkPolicy"
|
||||
name: "default-networkpolicy"
|
||||
spec:
|
||||
rules:
|
||||
- name: "default-networkPolicy"
|
||||
- name: "default-networkpolicy"
|
||||
match:
|
||||
resources:
|
||||
kinds:
|
||||
|
@ -12,7 +12,7 @@ spec:
|
|||
name: "devtest"
|
||||
generate:
|
||||
kind: NetworkPolicy
|
||||
name: default-networkPolicy
|
||||
name: default-networkpolicy
|
||||
data:
|
||||
spec:
|
||||
# select all pods in the namespace
|
||||
|
|
41
test/generate-resource/generate.sh
Normal file
41
test/generate-resource/generate.sh
Normal file
|
@ -0,0 +1,41 @@
|
|||
#!/bin/bash
|
||||
|
||||
### To use this script to generate resource:
|
||||
### ./resource.sh --file=resource.yaml --replica=10
|
||||
|
||||
for i in "$@"
|
||||
do
|
||||
case $i in
|
||||
--file=*)
|
||||
file="${i#*=}"
|
||||
shift
|
||||
;;
|
||||
--replica=*)
|
||||
replica="${i#*=}"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "${file}" ]; then
|
||||
echo -e "Please specify '--file' where resource is located."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "${replica}" ]; then
|
||||
echo -e "Please specify '--replica' of the number of replicas you want to create."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "loading resource from ${file}"
|
||||
RESOURCE=$(cat ${file} | sed -n -e 's/^ name: //p')
|
||||
|
||||
echo "generating ${replica} replicas from resource $RESOURCE"
|
||||
|
||||
for i in $(seq 1 ${replica})
|
||||
do
|
||||
# echo `cat ${file} | sed "s/name: ${RESOURCE}/name: ${RESOURCE}-${i}/"`
|
||||
dstfile=`sed 's/.\{5\}$/-$i&/' <<< "${file}"`
|
||||
cat ${file} | sed "s/name: ${RESOURCE}/name: ${RESOURCE}-${i}/" > ${dstfile}
|
||||
done
|
||||
|
|
@ -14,7 +14,7 @@ import (
|
|||
yaml "k8s.io/apimachinery/pkg/util/yaml"
|
||||
)
|
||||
|
||||
var policyPath, resourcePath string
|
||||
var policyPath, replica string
|
||||
|
||||
func main() {
|
||||
generatePolicies()
|
||||
|
@ -22,7 +22,6 @@ func main() {
|
|||
|
||||
func generatePolicies() error {
|
||||
var policy *kubepolicy.Policy
|
||||
numbers := 10
|
||||
|
||||
file, err := ioutil.ReadFile(policyPath)
|
||||
if err != nil {
|
||||
|
@ -41,8 +40,8 @@ func generatePolicies() error {
|
|||
}
|
||||
|
||||
oldName := policy.Name
|
||||
|
||||
for i := 0; i < numbers; i++ {
|
||||
repl, _ := strconv.Atoi(replica)
|
||||
for i := 0; i < repl; i++ {
|
||||
newName := oldName + "-" + strconv.Itoa(i)
|
||||
data := bytes.Replace(file, []byte(oldName), []byte(newName), -1)
|
||||
|
||||
|
@ -68,7 +67,7 @@ func writeToFile(data []byte, filename string) {
|
|||
|
||||
func init() {
|
||||
flag.StringVar(&policyPath, "policyPath", "", "Path to a policy")
|
||||
flag.StringVar(&resourcePath, "resourcePath", "", "Path to a resource")
|
||||
flag.StringVar(&replica, "replica", "10", "the number of replicas to generate")
|
||||
|
||||
flag.Parse()
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue