diff --git a/.github/workflows/bootstrap.yaml b/.github/workflows/bootstrap.yaml index 66703f4b..211b567f 100644 --- a/.github/workflows/bootstrap.yaml +++ b/.github/workflows/bootstrap.yaml @@ -3,8 +3,7 @@ name: bootstrap on: push: branches: - - master - - refac + - '*' jobs: github: @@ -25,8 +24,6 @@ jobs: go-version: 1.14.x - name: Setup Kubernetes uses: engineerd/setup-kind@v0.4.0 - with: - image: kindest/node:v1.16.9 - name: Set outputs id: vars run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" @@ -40,6 +37,19 @@ jobs: --path=test-cluster env: GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }} + - name: uninstall + run: | + ./bin/gotk suspend kustomization gitops-system + ./bin/gotk uninstall --resources --crds -s + - name: delete repository + run: | + ./bin/gotk bootstrap github \ + --owner=fluxcd-testing \ + --repository=gotk-test-${{ steps.vars.outputs.sha_short }} \ + --path=test-cluster \ + --delete + env: + GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }} - name: Debug failure if: failure() run: | diff --git a/cmd/gotk/bootstrap_github.go b/cmd/gotk/bootstrap_github.go index bd8b83ee..c7d0a4ae 100644 --- a/cmd/gotk/bootstrap_github.go +++ b/cmd/gotk/bootstrap_github.go @@ -68,6 +68,7 @@ var ( ghHostname string ghPath string ghTeams []string + ghDelete bool ) const ( @@ -84,6 +85,9 @@ func init() { bootstrapGitHubCmd.Flags().StringVar(&ghHostname, "hostname", git.GitHubDefaultHostname, "GitHub hostname") bootstrapGitHubCmd.Flags().StringVar(&ghPath, "path", "", "repository path, when specified the cluster sync will be scoped to this path") + bootstrapGitHubCmd.Flags().BoolVar(&ghDelete, "delete", false, "delete repository (used for testing only)") + bootstrapGitHubCmd.Flags().MarkHidden("delete") + bootstrapCmd.AddCommand(bootstrapGitHubCmd) } @@ -107,11 +111,6 @@ func bootstrapGitHubCmdRun(cmd *cobra.Command, args []string) error { IsPersonal: ghPersonal, } - kubeClient, err := utils.kubeClient(kubeconfig) - if err != nil { - return err - } - tmpDir, err := ioutil.TempDir("", namespace) if err != nil { return err @@ -121,6 +120,14 @@ func bootstrapGitHubCmdRun(cmd *cobra.Command, args []string) error { ctx, cancel := context.WithTimeout(context.Background(), timeout) defer cancel() + if ghDelete { + if err := provider.DeleteRepository(ctx, repository); err != nil { + return err + } + logger.Successf("repository deleted") + return nil + } + // create GitHub repository if doesn't exists logger.Actionf("connecting to %s", ghHostname) changed, err := provider.CreateRepository(ctx, repository) @@ -173,6 +180,11 @@ func bootstrapGitHubCmdRun(cmd *cobra.Command, args []string) error { logger.Successf("components are up to date") } + kubeClient, err := utils.kubeClient(kubeconfig) + if err != nil { + return err + } + // determine if repo synchronization is working isInstall := shouldInstallManifests(ctx, kubeClient, namespace) diff --git a/go.mod b/go.mod index e691b41d..f11a5317 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/blang/semver v3.5.1+incompatible github.com/fluxcd/helm-controller/api v0.0.7 github.com/fluxcd/kustomize-controller/api v0.0.10 - github.com/fluxcd/pkg/git v0.0.6 + github.com/fluxcd/pkg/git v0.0.7 github.com/fluxcd/pkg/ssh v0.0.5 github.com/fluxcd/pkg/untar v0.0.5 github.com/fluxcd/source-controller/api v0.0.14 diff --git a/go.sum b/go.sum index 36ea8f41..c32b053a 100644 --- a/go.sum +++ b/go.sum @@ -115,8 +115,8 @@ github.com/fluxcd/helm-controller/api v0.0.7 h1:aidjXvcklClH8omhYqiKswZ+MS6t8knO github.com/fluxcd/helm-controller/api v0.0.7/go.mod h1:KlzwTkpphQxulgWBwCl/uxfBU0QxK/X+w4YcJqGy/1c= github.com/fluxcd/kustomize-controller/api v0.0.10 h1:dhkTOg3LzNQwRL+lO0YlzOP7AhdpZdghUQNXYhvfiYU= github.com/fluxcd/kustomize-controller/api v0.0.10/go.mod h1:88m3p6xY3J2pjh5OsL3ANy7PkyA93KiqAJE58JMQyoc= -github.com/fluxcd/pkg/git v0.0.6 h1:4qktw8M3zj98MAs4ny6qSi36sYvTiI1czif5FqlQl4o= -github.com/fluxcd/pkg/git v0.0.6/go.mod h1:9AI9yPkb2ruIcE70moVG3WhunA2/RAMJPc3rtoH8QFE= +github.com/fluxcd/pkg/git v0.0.7 h1:tFSYPy7tcIYfOt8H5EUERXIRz7fk0id302oQZde1NtU= +github.com/fluxcd/pkg/git v0.0.7/go.mod h1:5Vu92x6Q3CpxDUllmB69kAkVY5jAtPpXcY2TSZ/oCJI= github.com/fluxcd/pkg/ssh v0.0.5 h1:rnbFZ7voy2JBlUfMbfyqArX2FYaLNpDhccGFC3qW83A= github.com/fluxcd/pkg/ssh v0.0.5/go.mod h1:7jXPdXZpc0ttMNz2kD9QuMi3RNn/e0DOFbj0Tij/+Hs= github.com/fluxcd/pkg/untar v0.0.5 h1:UGI3Ch1UIEIaqQvMicmImL1s9npQa64DJ/ozqHKB7gk= @@ -265,8 +265,8 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-github/v32 v32.0.0 h1:q74KVb22spUq0U5HqZ9VCYqQz8YRuOtL/39ZnfwO+NM= -github.com/google/go-github/v32 v32.0.0/go.mod h1:rIEpZD9CTDQwDK9GDrtMTycQNA4JU3qBsCizh3q2WCI= +github.com/google/go-github/v32 v32.1.0 h1:GWkQOdXqviCPx7Q7Fj+KyPoGm4SwHRh8rheoPhd27II= +github.com/google/go-github/v32 v32.1.0/go.mod h1:rIEpZD9CTDQwDK9GDrtMTycQNA4JU3qBsCizh3q2WCI= github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=