Skip to content

Commit 1b538f0

Browse files
committed
Add WIP okratest
1 parent a1113de commit 1b538f0

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed

Diff for: pkg/okratest/exampleapp.go

+90
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
package okratest
2+
3+
import (
4+
"context"
5+
"io"
6+
7+
"github.com/mumoshu/okra/pkg/clclient"
8+
"github.com/mumoshu/okra/pkg/okraerror"
9+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
10+
11+
"k8s.io/apimachinery/pkg/runtime"
12+
"k8s.io/client-go/kubernetes"
13+
"sigs.k8s.io/controller-runtime/pkg/client"
14+
)
15+
16+
type ExampleApp struct {
17+
// Image is the "repo:tag" of the contaimer image
18+
Image string
19+
20+
ClientSet kubernetes.Interface
21+
Client client.Client
22+
23+
ClusterName, Namespace, ServiceName string
24+
}
25+
26+
func NewExampleApp(ctx context.Context, clusterName, ns, serviceName string) (*ExampleApp, error) {
27+
clientset, err := clclient.NewClientSet()
28+
if err != nil {
29+
return nil, okraerror.New(err)
30+
}
31+
32+
secret, err := clientset.CoreV1().Secrets(ns).Get(ctx, clusterName, metav1.GetOptions{})
33+
if err != nil {
34+
return nil, okraerror.New(err)
35+
}
36+
37+
// for k, v := range secret.Data {
38+
// fmt.Fprintf(os.Stderr, "%s=%s\n", k, v)
39+
// }
40+
41+
client, err := clclient.NewFromClusterSecret(*secret)
42+
if err != nil {
43+
return nil, err
44+
}
45+
46+
image := "mumoshu/okra-exampleapp:latest"
47+
48+
return &ExampleApp{
49+
Image: image,
50+
ClientSet: clientset,
51+
Client: client,
52+
ClusterName: clusterName,
53+
Namespace: ns,
54+
ServiceName: serviceName,
55+
}, nil
56+
}
57+
58+
func (a *ExampleApp) Start(ctx context.Context) error {
59+
for _, o := range a.ResourceObjects() {
60+
if err := a.Client.Create(ctx, o, client.FieldOwner("okratest")); err != nil {
61+
return err
62+
}
63+
}
64+
return nil
65+
}
66+
67+
func (a *ExampleApp) ResourceObjects() []runtime.Object {
68+
return nil
69+
}
70+
71+
func (a *ExampleApp) WriteManifests(out io.Writer) error {
72+
return nil
73+
}
74+
75+
func (a *ExampleApp) Get(path string) error {
76+
return nil
77+
}
78+
79+
func (a *ExampleApp) Wait() error {
80+
return nil
81+
}
82+
83+
func (a *ExampleApp) Stop(ctx context.Context) error {
84+
for _, o := range a.ResourceObjects() {
85+
if err := a.Client.Delete(ctx, o); err != nil {
86+
return err
87+
}
88+
}
89+
return nil
90+
}

0 commit comments

Comments
 (0)