Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement get commands #11

Merged
merged 1 commit into from
Apr 29, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ jobs:
./bin/tk create source git podinfo \
--url https://github.com/stefanprodan/podinfo \
--tag-semver=">=3.2.3"
- name: tk get sources git
run: |
./bin/tk get sources git
- name: tk create kustomization
run: |
./bin/tk create kustomization podinfo \
Expand All @@ -68,6 +71,9 @@ jobs:
- name: tk sync kustomization --with-source
run: |
./bin/tk sync kustomization podinfo --with-source
- name: tk get kustomizations
run: |
./bin/tk get kustomizations
- name: tk check
run: |
./bin/tk check
Expand Down
14 changes: 14 additions & 0 deletions cmd/tk/get.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package main

import (
"github.com/spf13/cobra"
)

var getCmd = &cobra.Command{
Use: "get",
Short: "Get commands",
}

func init() {
rootCmd.AddCommand(getCmd)
}
63 changes: 63 additions & 0 deletions cmd/tk/get_kustomization.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package main

import (
"context"

kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1alpha1"
"github.com/spf13/cobra"
corev1 "k8s.io/api/core/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
)

var getKsCmd = &cobra.Command{
Use: "kustomizations",
Aliases: []string{"ks"},
Short: "Get kustomizations status",
Long: `
The get kustomizations command prints the status of the resources.`,
RunE: getKsCmdRun,
}

func init() {
getCmd.AddCommand(getKsCmd)
}

func getKsCmdRun(cmd *cobra.Command, args []string) error {
ctx, cancel := context.WithTimeout(context.Background(), timeout)
defer cancel()

kubeClient, err := utils.kubeClient(kubeconfig)
if err != nil {
return err
}

var list kustomizev1.KustomizationList
err = kubeClient.List(ctx, &list, client.InNamespace(namespace))
if err != nil {
return err
}

if len(list.Items) == 0 {
logFailure("no kustomizations found in %s namespace", namespace)
return nil
}

for _, kustomization := range list.Items {
isInitialized := false
for _, condition := range kustomization.Status.Conditions {
if condition.Type == kustomizev1.ReadyCondition {
if condition.Status != corev1.ConditionFalse {
logSuccess("%s last applied revision %s", kustomization.GetName(), kustomization.Status.LastAppliedRevision)
} else {
logFailure("%s %s", kustomization.GetName(), condition.Message)
}
isInitialized = true
break
}
}
if !isInitialized {
logFailure("%s is not ready", kustomization.GetName())
}
}
return nil
}
14 changes: 14 additions & 0 deletions cmd/tk/get_source.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package main

import (
"github.com/spf13/cobra"
)

var getSourceCmd = &cobra.Command{
Use: "sources",
Short: "Get sources commands",
}

func init() {
getCmd.AddCommand(getSourceCmd)
}
62 changes: 62 additions & 0 deletions cmd/tk/get_source_git.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package main

import (
"context"

sourcev1 "github.com/fluxcd/source-controller/api/v1alpha1"
"github.com/spf13/cobra"
corev1 "k8s.io/api/core/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
)

var getSourceGitCmd = &cobra.Command{
Use: "git",
Short: "Get git sources status",
Long: `
The get sources command prints the status of the git resources.`,
RunE: getSourceGitCmdRun,
}

func init() {
getSourceCmd.AddCommand(getSourceGitCmd)
}

func getSourceGitCmdRun(cmd *cobra.Command, args []string) error {
ctx, cancel := context.WithTimeout(context.Background(), timeout)
defer cancel()

kubeClient, err := utils.kubeClient(kubeconfig)
if err != nil {
return err
}

var list sourcev1.GitRepositoryList
err = kubeClient.List(ctx, &list, client.InNamespace(namespace))
if err != nil {
return err
}

if len(list.Items) == 0 {
logFailure("no sources found in %s namespace", namespace)
return nil
}

for _, source := range list.Items {
isInitialized := false
for _, condition := range source.Status.Conditions {
if condition.Type == sourcev1.ReadyCondition {
if condition.Status != corev1.ConditionFalse {
logSuccess("%s last fetched revision %s", source.GetName(), source.Status.Artifact.Revision)
} else {
logFailure("%s %s", source.GetName(), condition.Message)
}
isInitialized = true
break
}
}
if !isInitialized {
logFailure("%s is not ready", source.GetName())
}
}
return nil
}
5 changes: 0 additions & 5 deletions cmd/tk/sync_kustomization.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,11 +94,6 @@ func syncKsCmdRun(cmd *cobra.Command, args []string) error {
return err
}

err = kubeClient.Get(ctx, namespacedName, &kustomization)
if err != nil {
return err
}

if kustomization.Status.LastAppliedRevision != "" {
logSuccess("applied revision %s", kustomization.Status.LastAppliedRevision)
} else {
Expand Down