Slide 22
Slide 22 text
envtestの使⽤例
_, file, _, _ := runtime.Caller(0
)
testEnv := envtest.Environment
{
BinaryAssetsDirectory: filepath.Join(path.Dir(file), "..", "..", "..", "_dev", "bin")
,
CRDDirectoryPaths: []string{filepath.Join(path.Dir(file), "..", "..", "..", "_kubernetes",
“kube-github-operator-api", "apis", "v1alpha1", "crd")}
,
ControlPlaneStartTimeout: 20 * time.Second
,
ErrorIfCRDPathMissing: true
,
AttachControlPlaneOutput: false
,
KubeAPIServerFlags: []string
{
"--advertise-address=127.0.0.1"
,
"--etcd-servers={{ if .EtcdURL }}{{ .EtcdURL.String }}{{ end }}"
,
"--cert-dir={{ .CertDir }}"
,
"--insecure-port={{ if .URL }}{{ .URL.Port }}{{else}}0{{ end }}"
,
"{{ if .URL }}--insecure-bind-address={{ .URL.Hostname }}{{ end }}"
,
"--secure-port={{ if .SecurePort }}{{ .SecurePort }}{{ end }}",
"--disable-admission-plugins=ServiceAccount"
,
"--service-cluster-ip-range=10.0.0.0/24"
,
"--allow-privileged=true"
,
}
,
}
cfg, err := testEnv.Start(
)
if err != nil
{
return nil, nil, fmt.Errorf("failed to start test env: %w", err
)
}
cli, err := client.New(cfg, client.Options
{
Scheme: s
,
})