Skip to content

Commit

Permalink
Fix tests (#52)
Browse files Browse the repository at this point in the history
  • Loading branch information
nabsul authored Mar 12, 2023
1 parent 907a3cb commit b9d0c48
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 19 deletions.
21 changes: 13 additions & 8 deletions test/cronjob.go
Original file line number Diff line number Diff line change
@@ -1,39 +1,43 @@
package test

import (
"context"
"errors"
"fmt"
"time"

batchV1 "k8s.io/api/batch/v1"
"k8s.io/api/batch/v1beta1"
coreV1 "k8s.io/api/core/v1"
metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
"time"
)

func initCronJob(c *kubernetes.Clientset, targetNamespace, awsRegion, awsId, awsSecret string) error {
ctx := context.Background()
job := createCronJob(targetNamespace, awsRegion, awsId, awsSecret)
_, err := c.BatchV1beta1().CronJobs(ConstSvcNamespace).Create(&job)
_, err := c.BatchV1beta1().CronJobs(ConstSvcNamespace).Create(ctx, &job, metaV1.CreateOptions{})
return err
}

func runCronJob(c *kubernetes.Clientset) (string, error) {
ctx := context.Background()
getOpt := metaV1.GetOptions{}
cron, err := c.BatchV1beta1().CronJobs(ConstSvcNamespace).Get(ConstCronJobName, getOpt)
cron, err := c.BatchV1().CronJobs(ConstSvcNamespace).Get(ctx, ConstCronJobName, getOpt)
if err != nil {
return "", err
}

job := createJob(*cron)
run, err := c.BatchV1().Jobs(ConstSvcNamespace).Create(&job)
run, err := c.BatchV1().Jobs(ConstSvcNamespace).Create(ctx, &job, metaV1.CreateOptions{})
if err != nil {
return "", err
}

checkCount := 0
for run.Status.CompletionTime == nil {
time.Sleep(5 * time.Second)
run, err = c.BatchV1().Jobs(ConstSvcNamespace).Get(job.Name, getOpt)
run, err = c.BatchV1().Jobs(ConstSvcNamespace).Get(ctx, job.Name, getOpt)
if err != nil {
return "", err
}
Expand All @@ -44,7 +48,8 @@ func runCronJob(c *kubernetes.Clientset) (string, error) {
}
}

list, err := c.CoreV1().Pods(ConstSvcNamespace).List(metaV1.ListOptions{LabelSelector: "job-name=test-ecr-renew-job"})
listOpt := metaV1.ListOptions{LabelSelector: "job-name=test-ecr-renew-job"}
list, err := c.CoreV1().Pods(ConstSvcNamespace).List(ctx, listOpt)
if err != nil {
return "", err
}
Expand All @@ -56,7 +61,7 @@ func runCronJob(c *kubernetes.Clientset) (string, error) {
pod := list.Items[0]

req := c.CoreV1().Pods(ConstSvcNamespace).GetLogs(pod.Name, &coreV1.PodLogOptions{})
res := req.Do()
res := req.Do(ctx)
bytes, err := res.Raw()
if err != nil {
return "", err
Expand All @@ -65,7 +70,7 @@ func runCronJob(c *kubernetes.Clientset) (string, error) {
return string(bytes), nil
}

func createJob(cron v1beta1.CronJob) batchV1.Job {
func createJob(cron batchV1.CronJob) batchV1.Job {
return batchV1.Job{
TypeMeta: metaV1.TypeMeta{
Kind: "Job",
Expand Down
8 changes: 6 additions & 2 deletions test/helpers.go
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
package test

import (
"context"
"errors"
"fmt"

coreV1 "k8s.io/api/core/v1"
metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
)

func checkNamespaces(c *kubernetes.Clientset, testNamespaces []string) error {
namespaces, err := c.CoreV1().Namespaces().List(metaV1.ListOptions{})
ctx := context.Background()
namespaces, err := c.CoreV1().Namespaces().List(ctx, metaV1.ListOptions{})
if nil != err {
return err
}
Expand All @@ -34,7 +37,8 @@ func checkNamespaces(c *kubernetes.Clientset, testNamespaces []string) error {
}

func createNamespace(c *kubernetes.Clientset, name string) (*coreV1.Namespace, error) {
ctx := context.Background()
ns := &coreV1.Namespace{}
ns.Name = name
return c.CoreV1().Namespaces().Create(ns)
return c.CoreV1().Namespaces().Create(ctx, ns, metaV1.CreateOptions{})
}
8 changes: 5 additions & 3 deletions test/runner.go
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package test

import (
"context"
"errors"
"fmt"
"github.com/nabsul/k8s-ecr-login-renew/src/k8s"
metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"strings"
"time"

"github.com/nabsul/k8s-ecr-login-renew/src/k8s"
metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

func runTest(cfg config) {
Expand Down Expand Up @@ -113,7 +115,7 @@ func cleanup(cfg config) {
}

for _, ns := range allNamespaces() {
err = c.CoreV1().Namespaces().Delete(ns, &metaV1.DeleteOptions{})
err = c.CoreV1().Namespaces().Delete(context.Background(), ns, metaV1.DeleteOptions{})
if err != nil {
fmt.Printf("failed to cleanup namespace [%s]: [%s}\n", ns, err)
}
Expand Down
4 changes: 3 additions & 1 deletion test/secrets.go
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package test

import (
"context"

metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
)

func getAwsParams(c *kubernetes.Clientset) (map[string]string, error) {
secret, err := c.CoreV1().Secrets("default").Get(ConstAwsSecretName, metaV1.GetOptions{})
secret, err := c.CoreV1().Secrets("default").Get(context.Background(), ConstAwsSecretName, metaV1.GetOptions{})
if err != nil {
return nil, err
}
Expand Down
15 changes: 10 additions & 5 deletions test/service-account.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
package test

import (
"context"

coreV1 "k8s.io/api/core/v1"
rbacV1 "k8s.io/api/rbac/v1"
metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
)

func createServiceAccount(c *kubernetes.Clientset, allowedNamespaces []string, canGetNamespaces bool) error {
ctx := context.Background()
account := &coreV1.ServiceAccount{
TypeMeta: metaV1.TypeMeta{
Kind: "ServiceAccount",
Expand All @@ -18,7 +21,7 @@ func createServiceAccount(c *kubernetes.Clientset, allowedNamespaces []string, c
},
}

svc, err := c.CoreV1().ServiceAccounts(ConstSvcNamespace).Create(account)
svc, err := c.CoreV1().ServiceAccounts(ConstSvcNamespace).Create(ctx, account, metaV1.CreateOptions{})
if err != nil {
return err
}
Expand All @@ -38,26 +41,28 @@ func createServiceAccount(c *kubernetes.Clientset, allowedNamespaces []string, c
}

func grantNamespaceAccess(c *kubernetes.Clientset, ns string, svc *coreV1.ServiceAccount) error {
ctx := context.Background()
role := createRole(ns)
_, err := c.RbacV1().Roles(ns).Create(role)
_, err := c.RbacV1().Roles(ns).Create(ctx, role, metaV1.CreateOptions{})
if err != nil {
return err
}

binding := createRoleBinding(role, svc)
_, err = c.RbacV1().RoleBindings(ns).Create(binding)
_, err = c.RbacV1().RoleBindings(ns).Create(ctx, binding, metaV1.CreateOptions{})
return err
}

func grantNamespaceList(c *kubernetes.Clientset) error {
ctx := context.Background()
role := createNamespaceRole()
_, err := c.RbacV1().ClusterRoles().Create(&role)
_, err := c.RbacV1().ClusterRoles().Create(ctx, &role, metaV1.CreateOptions{})
if err != nil {
return err
}

binding := createNamespaceRoleBinding()
_, err = c.RbacV1().ClusterRoleBindings().Create(&binding)
_, err = c.RbacV1().ClusterRoleBindings().Create(ctx, &binding, metaV1.CreateOptions{})
return err
}

Expand Down

0 comments on commit b9d0c48

Please sign in to comment.