100 lines
1.7 KiB
Go
100 lines
1.7 KiB
Go
package testing
|
|
|
|
import (
|
|
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
|
)
|
|
|
|
const (
|
|
FakeArgoCDNamespace = "fake-argocd-ns"
|
|
)
|
|
|
|
func HelmHook(obj *unstructured.Unstructured, hookType string) *unstructured.Unstructured {
|
|
return Annotate(obj, "helm.sh/hook", hookType)
|
|
}
|
|
|
|
func Annotate(obj *unstructured.Unstructured, key, val string) *unstructured.Unstructured {
|
|
annotations := obj.GetAnnotations()
|
|
if annotations == nil {
|
|
annotations = map[string]string{}
|
|
}
|
|
annotations[key] = val
|
|
obj.SetAnnotations(annotations)
|
|
return obj
|
|
}
|
|
|
|
var PodManifest = `
|
|
{
|
|
"apiVersion": "v1",
|
|
"kind": "Pod",
|
|
"metadata": {
|
|
"name": "my-pod"
|
|
},
|
|
"spec": {
|
|
"containers": [
|
|
{
|
|
"image": "nginx:1.7.9",
|
|
"name": "nginx",
|
|
"resources": {
|
|
"requests": {
|
|
"cpu": 0.2
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
`
|
|
|
|
func NewPod() *unstructured.Unstructured {
|
|
return Unstructured(PodManifest)
|
|
}
|
|
|
|
var ServiceManifest = `
|
|
{
|
|
"apiVersion": "v1",
|
|
"kind": "Service",
|
|
"metadata": {
|
|
"name": "my-service"
|
|
},
|
|
"spec": {
|
|
"ports": [
|
|
{
|
|
"name": "http",
|
|
"protocol": "TCP",
|
|
"port": 80,
|
|
"targetPort": 8080
|
|
}
|
|
],
|
|
"selector": {
|
|
"app": "my-service"
|
|
}
|
|
}
|
|
}
|
|
`
|
|
|
|
func NewService() *unstructured.Unstructured {
|
|
return Unstructured(ServiceManifest)
|
|
}
|
|
|
|
func NewCRD() *unstructured.Unstructured {
|
|
return Unstructured(`apiVersion: apiextensions.k8s.io/v1beta1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
name: testcrds.argoproj.io
|
|
spec:
|
|
group: argoproj.io
|
|
version: v1
|
|
scope: Namespaced
|
|
names:
|
|
plural: testcrds
|
|
kind: TestCrd`)
|
|
}
|
|
|
|
func NewNamespace() *unstructured.Unstructured {
|
|
return Unstructured(`apiVersion: v1
|
|
kind: Namespace
|
|
metadata:
|
|
name: testnamespace
|
|
spec:`)
|
|
}
|