-
Notifications
You must be signed in to change notification settings - Fork 5
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
Feat: switch from current to home dir #117
Merged
Merged
+204
−65
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
a472fce
to
b1dac80
Compare
ee06925
to
5ba7cd9
Compare
omissis
approved these changes
Nov 28, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
ralgozino
approved these changes
Dec 2, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't forget to improve the last message saying that the kubeconfig is available at
Al-Pragliola
added a commit
that referenced
this pull request
Dec 12, 2022
* feat: switch to home dir in cmd * feat: changed dir from current workdir to homedir * fix: e2e tests * feat: copy kubeconfig to current workdir * feat: added copy ovpn file + changed phase dirs to not hidden
Merged
Al-Pragliola
added a commit
that referenced
this pull request
Dec 14, 2022
* feat: switch to home dir in cmd * feat: changed dir from current workdir to homedir * fix: e2e tests * feat: copy kubeconfig to current workdir * feat: added copy ovpn file + changed phase dirs to not hidden
Al-Pragliola
added a commit
that referenced
this pull request
Jan 17, 2023
* feat: infra code heavily WIP * feat: infra phase * fix: after rebase * chore: refactoring after rebase * fix: added license banner * chore: refactoring on eks cluster create cmd * fix: missing folder creation * fix: linting * feat: added dryrun * feat: moved furyfile inside struct in eks/clusters chore: removed deprecated func calls to ioutil Read/WriteFile * fix: post rebase * chore: changed order of download/validate * chore: first step of the distribution config rework * chore: update deps * feat: add config structs validation * fix: tests after introducing validation * chore: refactor pre-create cluster code * chore: refactor 'create cluster' logic to remove the need to use other app services * chore: rename variable * feat: first draft of kubernetes phase * fix: after rebase * fix: added experimental conf to terraform * feat: kubernetes phase is working * feat: taking vars from infra output * refactor: embed base into phase files * fix: go imports * fix: add missing license banners, temporarily deactivate some linting issues * chore: improve tools error messages * fix: bats integration test * chore: temporarily silenced a couple linting issues * feat: add create config command * feat: add short description for create config command * fix: rebase issue * fix: default distribution version * chore: add missing license banners * feat: replace bats tests with ginkgo ones, add workdir flag * feat: add test for download deps, refactor e2e tests * feat: tag all test files with build tag, separate integration test data from e2e's * feat: add test for create config command * chore: add missing license banners * chore: update deps * fix: validate deps test, refactor code to have cmds output for free * feat: bump golang in ci to 1.19.1 * feat: fix integration test data path * fix: restore netrc file in test pipeline steps * chore: fix create cluster command code style * chore: remove old code * chore: remove packr go library * chore: remove old deps from manifests * chore: bring back remaining logic from internal/app to cmd * chore: update deps * chore: refactor 'create cluster' logic to remove the need to use other app services * fix: unhandled nil on Walk function * chore: added provisioners dir to embed + refactor * chore: refactor eksCluster v1alpha2 to make the code more self-contained * chore: remove pointless use of generics * chore: further refactor of cluster creator factory * chore: refactor logic out of cluster creator phases to cmd runners * chore: refactor tools and ekscluster phases * chore: refactor 'x' packages within their own, dedicated folder * chore: refactor 'base' struct to 'phase' * feat: added expensive test on cluster create * fix: tests after rebase * feat: add local code coverage visualization * feat: refine test targets * feat: add manual confirmation in makefile before 'expensive' test targets * feat: add tools target to simplify development * chore: sort tools in makefile * chore: remove unused tools in makefile * fix: ansible bin not found * fix: e2e tests on CI * fix: wrong env var * feat: add tests * feat: add missing tool * chore: add more tests * fix: add semver's TesSameMinorStr and TestSamePatchStr * feat: merge furyctl and defaults in distribution phase * fix: linting * fix: bug on _helpers.tpl not found * fix: remove double code coverage report opening in makefile * chore: added test to NewDefaultModelFromStruct * chore: add metadata key to merged config * chore: upgrade to new schema * fix: test to reflect new furyctl file * feat: dostrobution terraform step wip * fix: distribution config file wrong paths * chore: removed technical debt * feat: added terraform step in phase distribution * feat: inject into terraform wip * chore: updated furyctl-defautls in tests * feat: WIP distro manifests * fix: post distro review * fix: updated from new distro * chore: refactoring + tests * fix: tests + bugs * chore: dump template updated * fix: e2e tests * Chore/enable linters (#105) * feat: first linters round * fix: linting after rebase * fix: unit tests * fix: nolint needed * fix: wrapcheck * chore: removed commented line from rules * fix: linting goerr113 * chore: added revive linter * fix: wrong args on kubectl Co-authored-by: Alessio Pragliola <alessio.pragliola@sighup.io> * feat: refactor to enable deletion (#112) * feat: refactor to enable deletion * feat: delete command * feat: phase in delete * feat: check pending resources / retry resource apply * fix: linting * chore: added log infos * feat: log to file and stdout * feat: delete ingresses * fix: tests + linting * feat: error thrown when cfg already exists (#116) * Feat: switch from current to home dir (#117) * feat: switch to home dir in cmd * feat: changed dir from current workdir to homedir * fix: e2e tests * feat: copy kubeconfig to current workdir * feat: added copy ovpn file + changed phase dirs to not hidden * feat: added --log flag (#119) * feat: added --log flag * fix: linting * fix: e2e testing * fix: wrong permission + improve flag description * Feature/download bin default path (#118) * feat: changed bin folder structure * fix: e2e testing * fix: unit tests * Apply suggestions from code review Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: removed misleading errors from cmds * fix: post change requests * fix: removed debug flag when not needed * Update internal/dependencies/tools/tool.go Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * feat: added bin-path flag to commands that need it Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * feat: add analytics tracker and events * chore: rename DistroDetails in ClusterDetails * chore: small refactor,remove vscode's config file * chore: improve command tracking * feat: add analytics enable/disable capability * fix: enable analytics flag * fix: rebase issues * chore: fix rebase issue * feat: huge refactor,add more analytics logic, add flush * chore: add suggested changes * fix: license banner * chore: optimize code * feat: add mixpanel token's secret * fix: rebase issues * fix: cluster's error message Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * fix: download deps error message Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: disable analytics in e2e tests, ignore any logs * chore: replace fatal with error's level * chore: replace error with panic to handle the error * chore: Missing NL Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: change log level Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: rename GuardEvent to StopEvent * chore: refactor * feat: add cmdutil, wrap internal errors * fix: license banner * feat: add parsing flags to the cluster deletion * fix: wrong flag name * chore: update json schema validator from v1 to v5 * chore: update deps * chore: update code after deps upgrade * feat: improve missing binary deps error message * chore: small refactor * fix: miss go build test unit tag * feat: change retry message and change to debug log level * feat: implement move from hard-coded furyctl.yaml template to downloading it from the distro (#125) * feat: implement move from hard-coded furyctl.yaml template to downloading it from the distro * chore: rework distribution.GetTemplatePath function, fix tests * feat: make ginkgo tests output more verbose * chore: remove useless test file * chore: add test file result to gitignore * fix: update var references in phase templates * fix: add random suffix to keyprefix used to store tf state in tests * chore: typo in missing flag Co-authored-by: Alessio Pragliola <alessio.pragliola@sighup.io> * feat: skip phase flag added * feat: removed orphaned resources * feat: added more expensive tests * fix: missing NL at end of files * chore: refactor create cluster command to reduce cyclomatic complexity * chore: refine e2e tests descriptions * chore: fix linting issues * feat: add awscli's tool and runner * chore: adapt tools validation with the new kfd schema * chore: update with the new kfd schema, fix auto-connect flag * feat: update gitignore * chore: add new line at the end of file * chore: update with the new kfd changes * fix: remove unused methods implementations * chore: improve the logic * chore: format and fix lint issues * fix: broken tests * chore: point fury-distribution dep to the latest fury-next branch of the distro * fix: add missing aws fake binary, avoid double channel closing. * fix: add missing create cluster e2e test fake binaries * fix: make create cluster e2e test fake binaries executable * chore: try fixing e2e test * chore: revert experiment with openvpn base path * feat: add flag to skip deps validation, rename skip-download flag * chore: fix linting issues * chore: update deps * chore: add ellipsis to a string * chore: debug e2e test * chore: debug e2e test * chore: remove e2e tests debug * chore: re-enable all e2e tests again * feat: add aws-cli to e2e-test image in CI * chore: replace deprecated go methods in tests * chore: update ginkgo and gomega deps * feat: improve ginkgo tests output * fix: add missing dollar escaping in drone CI manifest * fix: move openvpn tool version check after infra folder setup during cluster creation * feat: use a tmp file for the patched furyctl.yaml instead of the original one * chore: restore WorkDir for furyagent runner in infra phase of cluster creation * feat: moved source from fury-distribution to templates/distribution * chore: bump fury version, update template folders, replace panic with log+exit * chore: removed ApiServerEndpointAccess from phase kubernetes * chore: updated fields from new schema * fix: wrap logic in main to correctly handle defers and process exit codes * chore: remove unused code * chore: bump deps * chore: update tests to match the new schema * fix: handle dry-run of cluster creation kubernetes phase gracefully * chore: handle optional values * chore: reverted removal of .Spec.Kubernetes.ApiServerEndpointAccess * chore: update test schemas * fix: wrong cidr range * fix: linting * chore: better error msg vpcID * chore: reformat code * chore: update fury-distribution dep * chore: handle apiServerEndpointAccess as a pointer * chore: update distro schemas * chore: refine node templates parsing to better handle missing vars detection * chore: update furyctl.yaml files in e2e tests to match latest schema * fix: unique fields in template's nodes parser + skip variable nodes * fix: TestVariableNode unit test * chore: update fury-distribution dep * fix: make help text for version flag in config create command a bit more clear * feat: introduce support for distribution relative paths in distro downloader * chore(gomod): clean up go sum * feat: refine deps validation command * fix: set the right env var name in info message * fix: improve help text a bit * fix: improve help text a bit * fix: linting issues and tests * fix: improve help text * chore: improve OpenVPN connection messages * Feature/first wave adjustments (#131) * feat: improved log messages task list: - add debug message when waiting for cluster resources removal - append '...' to Deleting x phase messages - when deleting a cluster or deleting just phase infrastructure print a WARN telling the user to kill the openvpn process * feat: bump golang version to 1.19.4 * feat: added kubeconfig flag * fix: linting * chore: refactor phases * fix: e2e testing in CI following workaround found on: sgerrand/alpine-pkg-glibc#185 * fix: wrong order in apk add flags (?) * fix: e2e testing * feat: added mandatory condition to kubeconfig flag in create cmd * feat: added mandatory condition to kubeconfig flag in delete cmd * chore: moved up --kubeconfig validation * chore: better UX from Ramiro's review Co-authored-by: Ramiro Algozino <ramiro@sighup.io> * chore: UX improvement on delete cluster missing kubeconfig Co-authored-by: Ramiro Algozino <ramiro@sighup.io> * chore: improved missing kubeconfig msg + revert to warn * chore: adjust delete cluster missing kubeconfig flag msg Co-authored-by: Ramiro Algozino <ramiro@sighup.io> * feat: renamed bucket to bucketName (#146) * feat: removed furyctl binary version check (#147) * feat: handle unsupported phases (#149) * feat: add repo check * chore: add retries threshold, improve ux * chore: small refactor * fix: switch git prefix * fix: modules download not working on branches * fix: linting on deps download * feat: added dry run to cluster delete (#154) * feat: added dry run to infra/kube phase * feat: added dry run to distro phase * chore: added debug mode to exec in dry-run * feat: improved ux in log messages * chore: remove logrus timestamp format * chore: force debuglevel as workaround for now * fix: changed wrong url in help --distro-location * feat: added dry-run logic in phase distribution to create cluster cmd (#157) * feat: added dry-run logic to distribution phase in create cluster * chore: removed log message * chore: removed kubectl apply --dry-run * feat: store furyctl.yaml in a cluster's secret * feat: add missing license banner and an info message * chore: use creator kubeconfig path * chore: replace kube client with kubectl runner * chore: small refactor * fix: wrong config path * chore: refactor * fix: don't store secret if dryrun is enabled * chore: refactor dryRun injection * fix: problem with kubeconfig / secret file * chore: added unit tests + refactoring to kubex Co-authored-by: omissis <claudi0.beatric3@gmail.com> Co-authored-by: Luigi <50343470+luigibarbato@users.noreply.github.com> Co-authored-by: Luigi Barbato <luigi.barbato@sighup.io> Co-authored-by: Ramiro Algozino <ramiro@sighup.io>
Al-Pragliola
added a commit
that referenced
this pull request
Jan 25, 2023
* feat: infra code heavily WIP * feat: infra phase * fix: after rebase * chore: refactoring after rebase * fix: added license banner * chore: refactoring on eks cluster create cmd * fix: missing folder creation * fix: linting * feat: added dryrun * feat: moved furyfile inside struct in eks/clusters chore: removed deprecated func calls to ioutil Read/WriteFile * fix: post rebase * chore: changed order of download/validate * chore: first step of the distribution config rework * chore: update deps * feat: add config structs validation * fix: tests after introducing validation * chore: refactor pre-create cluster code * chore: refactor 'create cluster' logic to remove the need to use other app services * chore: rename variable * feat: first draft of kubernetes phase * fix: after rebase * fix: added experimental conf to terraform * feat: kubernetes phase is working * feat: taking vars from infra output * refactor: embed base into phase files * fix: go imports * fix: add missing license banners, temporarily deactivate some linting issues * chore: improve tools error messages * fix: bats integration test * chore: temporarily silenced a couple linting issues * feat: add create config command * feat: add short description for create config command * fix: rebase issue * fix: default distribution version * chore: add missing license banners * feat: replace bats tests with ginkgo ones, add workdir flag * feat: add test for download deps, refactor e2e tests * feat: tag all test files with build tag, separate integration test data from e2e's * feat: add test for create config command * chore: add missing license banners * chore: update deps * fix: validate deps test, refactor code to have cmds output for free * feat: bump golang in ci to 1.19.1 * feat: fix integration test data path * fix: restore netrc file in test pipeline steps * chore: fix create cluster command code style * chore: remove old code * chore: remove packr go library * chore: remove old deps from manifests * chore: bring back remaining logic from internal/app to cmd * chore: update deps * chore: refactor 'create cluster' logic to remove the need to use other app services * fix: unhandled nil on Walk function * chore: added provisioners dir to embed + refactor * chore: refactor eksCluster v1alpha2 to make the code more self-contained * chore: remove pointless use of generics * chore: further refactor of cluster creator factory * chore: refactor logic out of cluster creator phases to cmd runners * chore: refactor tools and ekscluster phases * chore: refactor 'x' packages within their own, dedicated folder * chore: refactor 'base' struct to 'phase' * feat: added expensive test on cluster create * fix: tests after rebase * feat: add local code coverage visualization * feat: refine test targets * feat: add manual confirmation in makefile before 'expensive' test targets * feat: add tools target to simplify development * chore: sort tools in makefile * chore: remove unused tools in makefile * fix: ansible bin not found * fix: e2e tests on CI * fix: wrong env var * feat: add tests * feat: add missing tool * chore: add more tests * fix: add semver's TesSameMinorStr and TestSamePatchStr * feat: merge furyctl and defaults in distribution phase * fix: linting * fix: bug on _helpers.tpl not found * fix: remove double code coverage report opening in makefile * chore: added test to NewDefaultModelFromStruct * chore: add metadata key to merged config * chore: upgrade to new schema * fix: test to reflect new furyctl file * feat: dostrobution terraform step wip * fix: distribution config file wrong paths * chore: removed technical debt * feat: added terraform step in phase distribution * feat: inject into terraform wip * chore: updated furyctl-defautls in tests * feat: WIP distro manifests * fix: post distro review * fix: updated from new distro * chore: refactoring + tests * fix: tests + bugs * chore: dump template updated * fix: e2e tests * Chore/enable linters (#105) * feat: first linters round * fix: linting after rebase * fix: unit tests * fix: nolint needed * fix: wrapcheck * chore: removed commented line from rules * fix: linting goerr113 * chore: added revive linter * fix: wrong args on kubectl Co-authored-by: Alessio Pragliola <alessio.pragliola@sighup.io> * feat: refactor to enable deletion (#112) * feat: refactor to enable deletion * feat: delete command * feat: phase in delete * feat: check pending resources / retry resource apply * fix: linting * chore: added log infos * feat: log to file and stdout * feat: delete ingresses * fix: tests + linting * feat: error thrown when cfg already exists (#116) * Feat: switch from current to home dir (#117) * feat: switch to home dir in cmd * feat: changed dir from current workdir to homedir * fix: e2e tests * feat: copy kubeconfig to current workdir * feat: added copy ovpn file + changed phase dirs to not hidden * feat: added --log flag (#119) * feat: added --log flag * fix: linting * fix: e2e testing * fix: wrong permission + improve flag description * Feature/download bin default path (#118) * feat: changed bin folder structure * fix: e2e testing * fix: unit tests * Apply suggestions from code review Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: removed misleading errors from cmds * fix: post change requests * fix: removed debug flag when not needed * Update internal/dependencies/tools/tool.go Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * feat: added bin-path flag to commands that need it Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * feat: add analytics tracker and events * chore: rename DistroDetails in ClusterDetails * chore: small refactor,remove vscode's config file * chore: improve command tracking * feat: add analytics enable/disable capability * fix: enable analytics flag * fix: rebase issues * chore: fix rebase issue * feat: huge refactor,add more analytics logic, add flush * chore: add suggested changes * fix: license banner * chore: optimize code * feat: add mixpanel token's secret * fix: rebase issues * fix: cluster's error message Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * fix: download deps error message Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: disable analytics in e2e tests, ignore any logs * chore: replace fatal with error's level * chore: replace error with panic to handle the error * chore: Missing NL Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: change log level Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: rename GuardEvent to StopEvent * chore: refactor * feat: add cmdutil, wrap internal errors * fix: license banner * feat: add parsing flags to the cluster deletion * fix: wrong flag name * chore: update json schema validator from v1 to v5 * chore: update deps * chore: update code after deps upgrade * feat: improve missing binary deps error message * chore: small refactor * fix: miss go build test unit tag * feat: change retry message and change to debug log level * feat: implement move from hard-coded furyctl.yaml template to downloading it from the distro (#125) * feat: implement move from hard-coded furyctl.yaml template to downloading it from the distro * chore: rework distribution.GetTemplatePath function, fix tests * feat: make ginkgo tests output more verbose * chore: remove useless test file * chore: add test file result to gitignore * fix: update var references in phase templates * fix: add random suffix to keyprefix used to store tf state in tests * chore: typo in missing flag Co-authored-by: Alessio Pragliola <alessio.pragliola@sighup.io> * feat: skip phase flag added * feat: removed orphaned resources * feat: added more expensive tests * fix: missing NL at end of files * chore: refactor create cluster command to reduce cyclomatic complexity * chore: refine e2e tests descriptions * chore: fix linting issues * feat: add awscli's tool and runner * chore: adapt tools validation with the new kfd schema * chore: update with the new kfd schema, fix auto-connect flag * feat: update gitignore * chore: add new line at the end of file * chore: update with the new kfd changes * fix: remove unused methods implementations * chore: improve the logic * chore: format and fix lint issues * fix: broken tests * chore: point fury-distribution dep to the latest fury-next branch of the distro * fix: add missing aws fake binary, avoid double channel closing. * fix: add missing create cluster e2e test fake binaries * fix: make create cluster e2e test fake binaries executable * chore: try fixing e2e test * chore: revert experiment with openvpn base path * feat: add flag to skip deps validation, rename skip-download flag * chore: fix linting issues * chore: update deps * chore: add ellipsis to a string * chore: debug e2e test * chore: debug e2e test * chore: remove e2e tests debug * chore: re-enable all e2e tests again * feat: add aws-cli to e2e-test image in CI * chore: replace deprecated go methods in tests * chore: update ginkgo and gomega deps * feat: improve ginkgo tests output * fix: add missing dollar escaping in drone CI manifest * fix: move openvpn tool version check after infra folder setup during cluster creation * feat: use a tmp file for the patched furyctl.yaml instead of the original one * chore: restore WorkDir for furyagent runner in infra phase of cluster creation * feat: moved source from fury-distribution to templates/distribution * chore: bump fury version, update template folders, replace panic with log+exit * chore: removed ApiServerEndpointAccess from phase kubernetes * chore: updated fields from new schema * fix: wrap logic in main to correctly handle defers and process exit codes * chore: remove unused code * chore: bump deps * chore: update tests to match the new schema * fix: handle dry-run of cluster creation kubernetes phase gracefully * chore: handle optional values * chore: reverted removal of .Spec.Kubernetes.ApiServerEndpointAccess * chore: update test schemas * fix: wrong cidr range * fix: linting * chore: better error msg vpcID * chore: reformat code * chore: update fury-distribution dep * chore: handle apiServerEndpointAccess as a pointer * chore: update distro schemas * chore: refine node templates parsing to better handle missing vars detection * chore: update furyctl.yaml files in e2e tests to match latest schema * fix: unique fields in template's nodes parser + skip variable nodes * fix: TestVariableNode unit test * chore: update fury-distribution dep * fix: make help text for version flag in config create command a bit more clear * feat: introduce support for distribution relative paths in distro downloader * chore(gomod): clean up go sum * feat: refine deps validation command * fix: set the right env var name in info message * fix: improve help text a bit * fix: improve help text a bit * fix: linting issues and tests * fix: improve help text * chore: improve OpenVPN connection messages * Feature/first wave adjustments (#131) * feat: improved log messages task list: - add debug message when waiting for cluster resources removal - append '...' to Deleting x phase messages - when deleting a cluster or deleting just phase infrastructure print a WARN telling the user to kill the openvpn process * feat: bump golang version to 1.19.4 * feat: added kubeconfig flag * fix: linting * chore: refactor phases * fix: e2e testing in CI following workaround found on: sgerrand/alpine-pkg-glibc#185 * fix: wrong order in apk add flags (?) * fix: e2e testing * feat: added mandatory condition to kubeconfig flag in create cmd * feat: added mandatory condition to kubeconfig flag in delete cmd * chore: moved up --kubeconfig validation * chore: better UX from Ramiro's review Co-authored-by: Ramiro Algozino <ramiro@sighup.io> * chore: UX improvement on delete cluster missing kubeconfig Co-authored-by: Ramiro Algozino <ramiro@sighup.io> * chore: improved missing kubeconfig msg + revert to warn * chore: adjust delete cluster missing kubeconfig flag msg Co-authored-by: Ramiro Algozino <ramiro@sighup.io> * feat: renamed bucket to bucketName (#146) * feat: removed furyctl binary version check (#147) * feat: handle unsupported phases (#149) * feat: add repo check * chore: add retries threshold, improve ux * chore: small refactor * fix: switch git prefix * fix: modules download not working on branches * fix: linting on deps download * feat: added dry run to cluster delete (#154) * feat: added dry run to infra/kube phase * feat: added dry run to distro phase * chore: added debug mode to exec in dry-run * feat: improved ux in log messages * chore: remove logrus timestamp format * chore: force debuglevel as workaround for now * fix: changed wrong url in help --distro-location * feat: added dry-run logic in phase distribution to create cluster cmd (#157) * feat: added dry-run logic to distribution phase in create cluster * chore: removed log message * chore: removed kubectl apply --dry-run * feat: store furyctl.yaml in a cluster's secret * feat: add missing license banner and an info message * chore: use creator kubeconfig path * chore: replace kube client with kubectl runner * chore: small refactor * fix: wrong config path * chore: refactor * fix: don't store secret if dryrun is enabled * chore: refactor dryRun injection * fix: problem with kubeconfig / secret file * chore: added unit tests + refactoring to kubex Co-authored-by: omissis <claudi0.beatric3@gmail.com> Co-authored-by: Luigi <50343470+luigibarbato@users.noreply.github.com> Co-authored-by: Luigi Barbato <luigi.barbato@sighup.io> Co-authored-by: Ramiro Algozino <ramiro@sighup.io>
omissis
added a commit
that referenced
this pull request
Mar 29, 2023
* feat: infra code heavily WIP * feat: infra phase * fix: after rebase * chore: refactoring after rebase * fix: added license banner * chore: refactoring on eks cluster create cmd * fix: missing folder creation * fix: linting * feat: added dryrun * feat: moved furyfile inside struct in eks/clusters chore: removed deprecated func calls to ioutil Read/WriteFile * fix: post rebase * chore: changed order of download/validate * chore: first step of the distribution config rework * chore: update deps * feat: add config structs validation * fix: tests after introducing validation * chore: refactor pre-create cluster code * chore: refactor 'create cluster' logic to remove the need to use other app services * chore: rename variable * feat: first draft of kubernetes phase * fix: after rebase * fix: added experimental conf to terraform * feat: kubernetes phase is working * feat: taking vars from infra output * refactor: embed base into phase files * fix: go imports * fix: add missing license banners, temporarily deactivate some linting issues * chore: improve tools error messages * fix: bats integration test * chore: temporarily silenced a couple linting issues * feat: add create config command * feat: add short description for create config command * fix: rebase issue * fix: default distribution version * chore: add missing license banners * feat: replace bats tests with ginkgo ones, add workdir flag * feat: add test for download deps, refactor e2e tests * feat: tag all test files with build tag, separate integration test data from e2e's * feat: add test for create config command * chore: add missing license banners * chore: update deps * fix: validate deps test, refactor code to have cmds output for free * feat: bump golang in ci to 1.19.1 * feat: fix integration test data path * fix: restore netrc file in test pipeline steps * chore: fix create cluster command code style * chore: remove old code * chore: remove packr go library * chore: remove old deps from manifests * chore: bring back remaining logic from internal/app to cmd * chore: update deps * chore: refactor 'create cluster' logic to remove the need to use other app services * fix: unhandled nil on Walk function * chore: added provisioners dir to embed + refactor * chore: refactor eksCluster v1alpha2 to make the code more self-contained * chore: remove pointless use of generics * chore: further refactor of cluster creator factory * chore: refactor logic out of cluster creator phases to cmd runners * chore: refactor tools and ekscluster phases * chore: refactor 'x' packages within their own, dedicated folder * chore: refactor 'base' struct to 'phase' * feat: added expensive test on cluster create * fix: tests after rebase * feat: add local code coverage visualization * feat: refine test targets * feat: add manual confirmation in makefile before 'expensive' test targets * feat: add tools target to simplify development * chore: sort tools in makefile * chore: remove unused tools in makefile * fix: ansible bin not found * fix: e2e tests on CI * fix: wrong env var * feat: add tests * feat: add missing tool * chore: add more tests * fix: add semver's TesSameMinorStr and TestSamePatchStr * feat: merge furyctl and defaults in distribution phase * fix: linting * fix: bug on _helpers.tpl not found * fix: remove double code coverage report opening in makefile * chore: added test to NewDefaultModelFromStruct * chore: add metadata key to merged config * chore: upgrade to new schema * fix: test to reflect new furyctl file * feat: dostrobution terraform step wip * fix: distribution config file wrong paths * chore: removed technical debt * feat: added terraform step in phase distribution * feat: inject into terraform wip * chore: updated furyctl-defautls in tests * feat: WIP distro manifests * fix: post distro review * fix: updated from new distro * chore: refactoring + tests * fix: tests + bugs * chore: dump template updated * fix: e2e tests * Chore/enable linters (#105) * feat: first linters round * fix: linting after rebase * fix: unit tests * fix: nolint needed * fix: wrapcheck * chore: removed commented line from rules * fix: linting goerr113 * chore: added revive linter * fix: wrong args on kubectl Co-authored-by: Alessio Pragliola <alessio.pragliola@sighup.io> * feat: refactor to enable deletion (#112) * feat: refactor to enable deletion * feat: delete command * feat: phase in delete * feat: check pending resources / retry resource apply * fix: linting * chore: added log infos * feat: log to file and stdout * feat: delete ingresses * fix: tests + linting * feat: error thrown when cfg already exists (#116) * Feat: switch from current to home dir (#117) * feat: switch to home dir in cmd * feat: changed dir from current workdir to homedir * fix: e2e tests * feat: copy kubeconfig to current workdir * feat: added copy ovpn file + changed phase dirs to not hidden * feat: added --log flag (#119) * feat: added --log flag * fix: linting * fix: e2e testing * fix: wrong permission + improve flag description * Feature/download bin default path (#118) * feat: changed bin folder structure * fix: e2e testing * fix: unit tests * Apply suggestions from code review Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: removed misleading errors from cmds * fix: post change requests * fix: removed debug flag when not needed * Update internal/dependencies/tools/tool.go Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * feat: added bin-path flag to commands that need it Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * feat: add analytics tracker and events * chore: rename DistroDetails in ClusterDetails * chore: small refactor,remove vscode's config file * chore: improve command tracking * feat: add analytics enable/disable capability * fix: enable analytics flag * fix: rebase issues * chore: fix rebase issue * feat: huge refactor,add more analytics logic, add flush * chore: add suggested changes * fix: license banner * chore: optimize code * feat: add mixpanel token's secret * fix: rebase issues * fix: cluster's error message Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * fix: download deps error message Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: disable analytics in e2e tests, ignore any logs * chore: replace fatal with error's level * chore: replace error with panic to handle the error * chore: Missing NL Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: change log level Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: rename GuardEvent to StopEvent * chore: refactor * feat: add cmdutil, wrap internal errors * fix: license banner * feat: add parsing flags to the cluster deletion * fix: wrong flag name * chore: update json schema validator from v1 to v5 * chore: update deps * chore: update code after deps upgrade * feat: improve missing binary deps error message * chore: small refactor * fix: miss go build test unit tag * feat: change retry message and change to debug log level * feat: implement move from hard-coded furyctl.yaml template to downloading it from the distro (#125) * feat: implement move from hard-coded furyctl.yaml template to downloading it from the distro * chore: rework distribution.GetTemplatePath function, fix tests * feat: make ginkgo tests output more verbose * chore: remove useless test file * chore: add test file result to gitignore * fix: update var references in phase templates * fix: add random suffix to keyprefix used to store tf state in tests * chore: typo in missing flag Co-authored-by: Alessio Pragliola <alessio.pragliola@sighup.io> * feat: skip phase flag added * feat: removed orphaned resources * feat: added more expensive tests * fix: missing NL at end of files * chore: refactor create cluster command to reduce cyclomatic complexity * chore: refine e2e tests descriptions * chore: fix linting issues * feat: add awscli's tool and runner * chore: adapt tools validation with the new kfd schema * chore: update with the new kfd schema, fix auto-connect flag * feat: update gitignore * chore: add new line at the end of file * chore: update with the new kfd changes * fix: remove unused methods implementations * chore: improve the logic * chore: format and fix lint issues * fix: broken tests * chore: point fury-distribution dep to the latest fury-next branch of the distro * fix: add missing aws fake binary, avoid double channel closing. * fix: add missing create cluster e2e test fake binaries * fix: make create cluster e2e test fake binaries executable * chore: try fixing e2e test * chore: revert experiment with openvpn base path * feat: add flag to skip deps validation, rename skip-download flag * chore: fix linting issues * chore: update deps * chore: add ellipsis to a string * chore: debug e2e test * chore: debug e2e test * chore: remove e2e tests debug * chore: re-enable all e2e tests again * feat: add aws-cli to e2e-test image in CI * chore: replace deprecated go methods in tests * chore: update ginkgo and gomega deps * feat: improve ginkgo tests output * fix: add missing dollar escaping in drone CI manifest * fix: move openvpn tool version check after infra folder setup during cluster creation * feat: use a tmp file for the patched furyctl.yaml instead of the original one * chore: restore WorkDir for furyagent runner in infra phase of cluster creation * feat: moved source from fury-distribution to templates/distribution * chore: bump fury version, update template folders, replace panic with log+exit * chore: removed ApiServerEndpointAccess from phase kubernetes * chore: updated fields from new schema * fix: wrap logic in main to correctly handle defers and process exit codes * chore: remove unused code * chore: bump deps * chore: update tests to match the new schema * fix: handle dry-run of cluster creation kubernetes phase gracefully * chore: handle optional values * chore: reverted removal of .Spec.Kubernetes.ApiServerEndpointAccess * chore: update test schemas * fix: wrong cidr range * fix: linting * chore: better error msg vpcID * chore: reformat code * chore: update fury-distribution dep * chore: handle apiServerEndpointAccess as a pointer * chore: update distro schemas * chore: refine node templates parsing to better handle missing vars detection * chore: update furyctl.yaml files in e2e tests to match latest schema * fix: unique fields in template's nodes parser + skip variable nodes * fix: TestVariableNode unit test * chore: update fury-distribution dep * fix: make help text for version flag in config create command a bit more clear * feat: introduce support for distribution relative paths in distro downloader * chore(gomod): clean up go sum * feat: refine deps validation command * fix: set the right env var name in info message * fix: improve help text a bit * fix: improve help text a bit * fix: linting issues and tests * fix: improve help text * chore: improve OpenVPN connection messages * Feature/first wave adjustments (#131) * feat: improved log messages task list: - add debug message when waiting for cluster resources removal - append '...' to Deleting x phase messages - when deleting a cluster or deleting just phase infrastructure print a WARN telling the user to kill the openvpn process * feat: bump golang version to 1.19.4 * feat: added kubeconfig flag * fix: linting * chore: refactor phases * fix: e2e testing in CI following workaround found on: sgerrand/alpine-pkg-glibc#185 * fix: wrong order in apk add flags (?) * fix: e2e testing * feat: added mandatory condition to kubeconfig flag in create cmd * feat: added mandatory condition to kubeconfig flag in delete cmd * chore: moved up --kubeconfig validation * chore: better UX from Ramiro's review Co-authored-by: Ramiro Algozino <ramiro@sighup.io> * chore: UX improvement on delete cluster missing kubeconfig Co-authored-by: Ramiro Algozino <ramiro@sighup.io> * chore: improved missing kubeconfig msg + revert to warn * chore: adjust delete cluster missing kubeconfig flag msg Co-authored-by: Ramiro Algozino <ramiro@sighup.io> * feat: renamed bucket to bucketName (#146) * feat: removed furyctl binary version check (#147) * feat: handle unsupported phases (#149) * feat: add repo check * chore: add retries threshold, improve ux * chore: small refactor * fix: switch git prefix * fix: modules download not working on branches * fix: linting on deps download * feat: added dry run to cluster delete (#154) * feat: added dry run to infra/kube phase * feat: added dry run to distro phase * chore: added debug mode to exec in dry-run * feat: improved ux in log messages * chore: remove logrus timestamp format * chore: force debuglevel as workaround for now * fix: changed wrong url in help --distro-location * feat: added dry-run logic in phase distribution to create cluster cmd (#157) * feat: added dry-run logic to distribution phase in create cluster * chore: removed log message * chore: removed kubectl apply --dry-run * feat: store furyctl.yaml in a cluster's secret * feat: add missing license banner and an info message * chore: use creator kubeconfig path * chore: replace kube client with kubectl runner * chore: small refactor * fix: wrong config path * chore: refactor * fix: don't store secret if dryrun is enabled * chore: refactor dryRun injection * fix: problem with kubeconfig / secret file * chore: added unit tests + refactoring to kubex Co-authored-by: omissis <claudi0.beatric3@gmail.com> Co-authored-by: Luigi <50343470+luigibarbato@users.noreply.github.com> Co-authored-by: Luigi Barbato <luigi.barbato@sighup.io> Co-authored-by: Ramiro Algozino <ramiro@sighup.io>
omissis
added a commit
that referenced
this pull request
Apr 19, 2023
* feat: infra code heavily WIP * feat: infra phase * fix: after rebase * chore: refactoring after rebase * fix: added license banner * chore: refactoring on eks cluster create cmd * fix: missing folder creation * fix: linting * feat: added dryrun * feat: moved furyfile inside struct in eks/clusters chore: removed deprecated func calls to ioutil Read/WriteFile * fix: post rebase * chore: changed order of download/validate * chore: first step of the distribution config rework * chore: update deps * feat: add config structs validation * fix: tests after introducing validation * chore: refactor pre-create cluster code * chore: refactor 'create cluster' logic to remove the need to use other app services * chore: rename variable * feat: first draft of kubernetes phase * fix: after rebase * fix: added experimental conf to terraform * feat: kubernetes phase is working * feat: taking vars from infra output * refactor: embed base into phase files * fix: go imports * fix: add missing license banners, temporarily deactivate some linting issues * chore: improve tools error messages * fix: bats integration test * chore: temporarily silenced a couple linting issues * feat: add create config command * feat: add short description for create config command * fix: rebase issue * fix: default distribution version * chore: add missing license banners * feat: replace bats tests with ginkgo ones, add workdir flag * feat: add test for download deps, refactor e2e tests * feat: tag all test files with build tag, separate integration test data from e2e's * feat: add test for create config command * chore: add missing license banners * chore: update deps * fix: validate deps test, refactor code to have cmds output for free * feat: bump golang in ci to 1.19.1 * feat: fix integration test data path * fix: restore netrc file in test pipeline steps * chore: fix create cluster command code style * chore: remove old code * chore: remove packr go library * chore: remove old deps from manifests * chore: bring back remaining logic from internal/app to cmd * chore: update deps * chore: refactor 'create cluster' logic to remove the need to use other app services * fix: unhandled nil on Walk function * chore: added provisioners dir to embed + refactor * chore: refactor eksCluster v1alpha2 to make the code more self-contained * chore: remove pointless use of generics * chore: further refactor of cluster creator factory * chore: refactor logic out of cluster creator phases to cmd runners * chore: refactor tools and ekscluster phases * chore: refactor 'x' packages within their own, dedicated folder * chore: refactor 'base' struct to 'phase' * feat: added expensive test on cluster create * fix: tests after rebase * feat: add local code coverage visualization * feat: refine test targets * feat: add manual confirmation in makefile before 'expensive' test targets * feat: add tools target to simplify development * chore: sort tools in makefile * chore: remove unused tools in makefile * fix: ansible bin not found * fix: e2e tests on CI * fix: wrong env var * feat: add tests * feat: add missing tool * chore: add more tests * fix: add semver's TesSameMinorStr and TestSamePatchStr * feat: merge furyctl and defaults in distribution phase * fix: linting * fix: bug on _helpers.tpl not found * fix: remove double code coverage report opening in makefile * chore: added test to NewDefaultModelFromStruct * chore: add metadata key to merged config * chore: upgrade to new schema * fix: test to reflect new furyctl file * feat: dostrobution terraform step wip * fix: distribution config file wrong paths * chore: removed technical debt * feat: added terraform step in phase distribution * feat: inject into terraform wip * chore: updated furyctl-defautls in tests * feat: WIP distro manifests * fix: post distro review * fix: updated from new distro * chore: refactoring + tests * fix: tests + bugs * chore: dump template updated * fix: e2e tests * Chore/enable linters (#105) * feat: first linters round * fix: linting after rebase * fix: unit tests * fix: nolint needed * fix: wrapcheck * chore: removed commented line from rules * fix: linting goerr113 * chore: added revive linter * fix: wrong args on kubectl Co-authored-by: Alessio Pragliola <alessio.pragliola@sighup.io> * feat: refactor to enable deletion (#112) * feat: refactor to enable deletion * feat: delete command * feat: phase in delete * feat: check pending resources / retry resource apply * fix: linting * chore: added log infos * feat: log to file and stdout * feat: delete ingresses * fix: tests + linting * feat: error thrown when cfg already exists (#116) * Feat: switch from current to home dir (#117) * feat: switch to home dir in cmd * feat: changed dir from current workdir to homedir * fix: e2e tests * feat: copy kubeconfig to current workdir * feat: added copy ovpn file + changed phase dirs to not hidden * feat: added --log flag (#119) * feat: added --log flag * fix: linting * fix: e2e testing * fix: wrong permission + improve flag description * Feature/download bin default path (#118) * feat: changed bin folder structure * fix: e2e testing * fix: unit tests * Apply suggestions from code review Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: removed misleading errors from cmds * fix: post change requests * fix: removed debug flag when not needed * Update internal/dependencies/tools/tool.go Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * feat: added bin-path flag to commands that need it Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * feat: add analytics tracker and events * chore: rename DistroDetails in ClusterDetails * chore: small refactor,remove vscode's config file * chore: improve command tracking * feat: add analytics enable/disable capability * fix: enable analytics flag * fix: rebase issues * chore: fix rebase issue * feat: huge refactor,add more analytics logic, add flush * chore: add suggested changes * fix: license banner * chore: optimize code * feat: add mixpanel token's secret * fix: rebase issues * fix: cluster's error message Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * fix: download deps error message Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: disable analytics in e2e tests, ignore any logs * chore: replace fatal with error's level * chore: replace error with panic to handle the error * chore: Missing NL Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: change log level Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: rename GuardEvent to StopEvent * chore: refactor * feat: add cmdutil, wrap internal errors * fix: license banner * feat: add parsing flags to the cluster deletion * fix: wrong flag name * chore: update json schema validator from v1 to v5 * chore: update deps * chore: update code after deps upgrade * feat: improve missing binary deps error message * chore: small refactor * fix: miss go build test unit tag * feat: change retry message and change to debug log level * feat: implement move from hard-coded furyctl.yaml template to downloading it from the distro (#125) * feat: implement move from hard-coded furyctl.yaml template to downloading it from the distro * chore: rework distribution.GetTemplatePath function, fix tests * feat: make ginkgo tests output more verbose * chore: remove useless test file * chore: add test file result to gitignore * fix: update var references in phase templates * fix: add random suffix to keyprefix used to store tf state in tests * chore: typo in missing flag Co-authored-by: Alessio Pragliola <alessio.pragliola@sighup.io> * feat: skip phase flag added * feat: removed orphaned resources * feat: added more expensive tests * fix: missing NL at end of files * chore: refactor create cluster command to reduce cyclomatic complexity * chore: refine e2e tests descriptions * chore: fix linting issues * feat: add awscli's tool and runner * chore: adapt tools validation with the new kfd schema * chore: update with the new kfd schema, fix auto-connect flag * feat: update gitignore * chore: add new line at the end of file * chore: update with the new kfd changes * fix: remove unused methods implementations * chore: improve the logic * chore: format and fix lint issues * fix: broken tests * chore: point fury-distribution dep to the latest fury-next branch of the distro * fix: add missing aws fake binary, avoid double channel closing. * fix: add missing create cluster e2e test fake binaries * fix: make create cluster e2e test fake binaries executable * chore: try fixing e2e test * chore: revert experiment with openvpn base path * feat: add flag to skip deps validation, rename skip-download flag * chore: fix linting issues * chore: update deps * chore: add ellipsis to a string * chore: debug e2e test * chore: debug e2e test * chore: remove e2e tests debug * chore: re-enable all e2e tests again * feat: add aws-cli to e2e-test image in CI * chore: replace deprecated go methods in tests * chore: update ginkgo and gomega deps * feat: improve ginkgo tests output * fix: add missing dollar escaping in drone CI manifest * fix: move openvpn tool version check after infra folder setup during cluster creation * feat: use a tmp file for the patched furyctl.yaml instead of the original one * chore: restore WorkDir for furyagent runner in infra phase of cluster creation * feat: moved source from fury-distribution to templates/distribution * chore: bump fury version, update template folders, replace panic with log+exit * chore: removed ApiServerEndpointAccess from phase kubernetes * chore: updated fields from new schema * fix: wrap logic in main to correctly handle defers and process exit codes * chore: remove unused code * chore: bump deps * chore: update tests to match the new schema * fix: handle dry-run of cluster creation kubernetes phase gracefully * chore: handle optional values * chore: reverted removal of .Spec.Kubernetes.ApiServerEndpointAccess * chore: update test schemas * fix: wrong cidr range * fix: linting * chore: better error msg vpcID * chore: reformat code * chore: update fury-distribution dep * chore: handle apiServerEndpointAccess as a pointer * chore: update distro schemas * chore: refine node templates parsing to better handle missing vars detection * chore: update furyctl.yaml files in e2e tests to match latest schema * fix: unique fields in template's nodes parser + skip variable nodes * fix: TestVariableNode unit test * chore: update fury-distribution dep * fix: make help text for version flag in config create command a bit more clear * feat: introduce support for distribution relative paths in distro downloader * chore(gomod): clean up go sum * feat: refine deps validation command * fix: set the right env var name in info message * fix: improve help text a bit * fix: improve help text a bit * fix: linting issues and tests * fix: improve help text * chore: improve OpenVPN connection messages * Feature/first wave adjustments (#131) * feat: improved log messages task list: - add debug message when waiting for cluster resources removal - append '...' to Deleting x phase messages - when deleting a cluster or deleting just phase infrastructure print a WARN telling the user to kill the openvpn process * feat: bump golang version to 1.19.4 * feat: added kubeconfig flag * fix: linting * chore: refactor phases * fix: e2e testing in CI following workaround found on: sgerrand/alpine-pkg-glibc#185 * fix: wrong order in apk add flags (?) * fix: e2e testing * feat: added mandatory condition to kubeconfig flag in create cmd * feat: added mandatory condition to kubeconfig flag in delete cmd * chore: moved up --kubeconfig validation * chore: better UX from Ramiro's review Co-authored-by: Ramiro Algozino <ramiro@sighup.io> * chore: UX improvement on delete cluster missing kubeconfig Co-authored-by: Ramiro Algozino <ramiro@sighup.io> * chore: improved missing kubeconfig msg + revert to warn * chore: adjust delete cluster missing kubeconfig flag msg Co-authored-by: Ramiro Algozino <ramiro@sighup.io> * feat: renamed bucket to bucketName (#146) * feat: removed furyctl binary version check (#147) * feat: handle unsupported phases (#149) * feat: add repo check * chore: add retries threshold, improve ux * chore: small refactor * fix: switch git prefix * fix: modules download not working on branches * fix: linting on deps download * feat: added dry run to cluster delete (#154) * feat: added dry run to infra/kube phase * feat: added dry run to distro phase * chore: added debug mode to exec in dry-run * feat: improved ux in log messages * chore: remove logrus timestamp format * chore: force debuglevel as workaround for now * fix: changed wrong url in help --distro-location * feat: added dry-run logic in phase distribution to create cluster cmd (#157) * feat: added dry-run logic to distribution phase in create cluster * chore: removed log message * chore: removed kubectl apply --dry-run * feat: store furyctl.yaml in a cluster's secret * feat: add missing license banner and an info message * chore: use creator kubeconfig path * chore: replace kube client with kubectl runner * chore: small refactor * fix: wrong config path * chore: refactor * fix: don't store secret if dryrun is enabled * chore: refactor dryRun injection * fix: problem with kubeconfig / secret file * chore: added unit tests + refactoring to kubex Co-authored-by: omissis <claudi0.beatric3@gmail.com> Co-authored-by: Luigi <50343470+luigibarbato@users.noreply.github.com> Co-authored-by: Luigi Barbato <luigi.barbato@sighup.io> Co-authored-by: Ramiro Algozino <ramiro@sighup.io>
alessiodionisi
pushed a commit
that referenced
this pull request
Jul 5, 2023
* feat: infra code heavily WIP * feat: infra phase * fix: after rebase * chore: refactoring after rebase * fix: added license banner * chore: refactoring on eks cluster create cmd * fix: missing folder creation * fix: linting * feat: added dryrun * feat: moved furyfile inside struct in eks/clusters chore: removed deprecated func calls to ioutil Read/WriteFile * fix: post rebase * chore: changed order of download/validate * chore: first step of the distribution config rework * chore: update deps * feat: add config structs validation * fix: tests after introducing validation * chore: refactor pre-create cluster code * chore: refactor 'create cluster' logic to remove the need to use other app services * chore: rename variable * feat: first draft of kubernetes phase * fix: after rebase * fix: added experimental conf to terraform * feat: kubernetes phase is working * feat: taking vars from infra output * refactor: embed base into phase files * fix: go imports * fix: add missing license banners, temporarily deactivate some linting issues * chore: improve tools error messages * fix: bats integration test * chore: temporarily silenced a couple linting issues * feat: add create config command * feat: add short description for create config command * fix: rebase issue * fix: default distribution version * chore: add missing license banners * feat: replace bats tests with ginkgo ones, add workdir flag * feat: add test for download deps, refactor e2e tests * feat: tag all test files with build tag, separate integration test data from e2e's * feat: add test for create config command * chore: add missing license banners * chore: update deps * fix: validate deps test, refactor code to have cmds output for free * feat: bump golang in ci to 1.19.1 * feat: fix integration test data path * fix: restore netrc file in test pipeline steps * chore: fix create cluster command code style * chore: remove old code * chore: remove packr go library * chore: remove old deps from manifests * chore: bring back remaining logic from internal/app to cmd * chore: update deps * chore: refactor 'create cluster' logic to remove the need to use other app services * fix: unhandled nil on Walk function * chore: added provisioners dir to embed + refactor * chore: refactor eksCluster v1alpha2 to make the code more self-contained * chore: remove pointless use of generics * chore: further refactor of cluster creator factory * chore: refactor logic out of cluster creator phases to cmd runners * chore: refactor tools and ekscluster phases * chore: refactor 'x' packages within their own, dedicated folder * chore: refactor 'base' struct to 'phase' * feat: added expensive test on cluster create * fix: tests after rebase * feat: add local code coverage visualization * feat: refine test targets * feat: add manual confirmation in makefile before 'expensive' test targets * feat: add tools target to simplify development * chore: sort tools in makefile * chore: remove unused tools in makefile * fix: ansible bin not found * fix: e2e tests on CI * fix: wrong env var * feat: add tests * feat: add missing tool * chore: add more tests * fix: add semver's TesSameMinorStr and TestSamePatchStr * feat: merge furyctl and defaults in distribution phase * fix: linting * fix: bug on _helpers.tpl not found * fix: remove double code coverage report opening in makefile * chore: added test to NewDefaultModelFromStruct * chore: add metadata key to merged config * chore: upgrade to new schema * fix: test to reflect new furyctl file * feat: dostrobution terraform step wip * fix: distribution config file wrong paths * chore: removed technical debt * feat: added terraform step in phase distribution * feat: inject into terraform wip * chore: updated furyctl-defautls in tests * feat: WIP distro manifests * fix: post distro review * fix: updated from new distro * chore: refactoring + tests * fix: tests + bugs * chore: dump template updated * fix: e2e tests * Chore/enable linters (#105) * feat: first linters round * fix: linting after rebase * fix: unit tests * fix: nolint needed * fix: wrapcheck * chore: removed commented line from rules * fix: linting goerr113 * chore: added revive linter * fix: wrong args on kubectl Co-authored-by: Alessio Pragliola <alessio.pragliola@sighup.io> * feat: refactor to enable deletion (#112) * feat: refactor to enable deletion * feat: delete command * feat: phase in delete * feat: check pending resources / retry resource apply * fix: linting * chore: added log infos * feat: log to file and stdout * feat: delete ingresses * fix: tests + linting * feat: error thrown when cfg already exists (#116) * Feat: switch from current to home dir (#117) * feat: switch to home dir in cmd * feat: changed dir from current workdir to homedir * fix: e2e tests * feat: copy kubeconfig to current workdir * feat: added copy ovpn file + changed phase dirs to not hidden * feat: added --log flag (#119) * feat: added --log flag * fix: linting * fix: e2e testing * fix: wrong permission + improve flag description * Feature/download bin default path (#118) * feat: changed bin folder structure * fix: e2e testing * fix: unit tests * Apply suggestions from code review Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: removed misleading errors from cmds * fix: post change requests * fix: removed debug flag when not needed * Update internal/dependencies/tools/tool.go Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * feat: added bin-path flag to commands that need it Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * feat: add analytics tracker and events * chore: rename DistroDetails in ClusterDetails * chore: small refactor,remove vscode's config file * chore: improve command tracking * feat: add analytics enable/disable capability * fix: enable analytics flag * fix: rebase issues * chore: fix rebase issue * feat: huge refactor,add more analytics logic, add flush * chore: add suggested changes * fix: license banner * chore: optimize code * feat: add mixpanel token's secret * fix: rebase issues * fix: cluster's error message Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * fix: download deps error message Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: disable analytics in e2e tests, ignore any logs * chore: replace fatal with error's level * chore: replace error with panic to handle the error * chore: Missing NL Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: change log level Co-authored-by: Claudio Beatrice <claudi0.beatric3@gmail.com> * chore: rename GuardEvent to StopEvent * chore: refactor * feat: add cmdutil, wrap internal errors * fix: license banner * feat: add parsing flags to the cluster deletion * fix: wrong flag name * chore: update json schema validator from v1 to v5 * chore: update deps * chore: update code after deps upgrade * feat: improve missing binary deps error message * chore: small refactor * fix: miss go build test unit tag * feat: change retry message and change to debug log level * feat: implement move from hard-coded furyctl.yaml template to downloading it from the distro (#125) * feat: implement move from hard-coded furyctl.yaml template to downloading it from the distro * chore: rework distribution.GetTemplatePath function, fix tests * feat: make ginkgo tests output more verbose * chore: remove useless test file * chore: add test file result to gitignore * fix: update var references in phase templates * fix: add random suffix to keyprefix used to store tf state in tests * chore: typo in missing flag Co-authored-by: Alessio Pragliola <alessio.pragliola@sighup.io> * feat: skip phase flag added * feat: removed orphaned resources * feat: added more expensive tests * fix: missing NL at end of files * chore: refactor create cluster command to reduce cyclomatic complexity * chore: refine e2e tests descriptions * chore: fix linting issues * feat: add awscli's tool and runner * chore: adapt tools validation with the new kfd schema * chore: update with the new kfd schema, fix auto-connect flag * feat: update gitignore * chore: add new line at the end of file * chore: update with the new kfd changes * fix: remove unused methods implementations * chore: improve the logic * chore: format and fix lint issues * fix: broken tests * chore: point fury-distribution dep to the latest fury-next branch of the distro * fix: add missing aws fake binary, avoid double channel closing. * fix: add missing create cluster e2e test fake binaries * fix: make create cluster e2e test fake binaries executable * chore: try fixing e2e test * chore: revert experiment with openvpn base path * feat: add flag to skip deps validation, rename skip-download flag * chore: fix linting issues * chore: update deps * chore: add ellipsis to a string * chore: debug e2e test * chore: debug e2e test * chore: remove e2e tests debug * chore: re-enable all e2e tests again * feat: add aws-cli to e2e-test image in CI * chore: replace deprecated go methods in tests * chore: update ginkgo and gomega deps * feat: improve ginkgo tests output * fix: add missing dollar escaping in drone CI manifest * fix: move openvpn tool version check after infra folder setup during cluster creation * feat: use a tmp file for the patched furyctl.yaml instead of the original one * chore: restore WorkDir for furyagent runner in infra phase of cluster creation * feat: moved source from fury-distribution to templates/distribution * chore: bump fury version, update template folders, replace panic with log+exit * chore: removed ApiServerEndpointAccess from phase kubernetes * chore: updated fields from new schema * fix: wrap logic in main to correctly handle defers and process exit codes * chore: remove unused code * chore: bump deps * chore: update tests to match the new schema * fix: handle dry-run of cluster creation kubernetes phase gracefully * chore: handle optional values * chore: reverted removal of .Spec.Kubernetes.ApiServerEndpointAccess * chore: update test schemas * fix: wrong cidr range * fix: linting * chore: better error msg vpcID * chore: reformat code * chore: update fury-distribution dep * chore: handle apiServerEndpointAccess as a pointer * chore: update distro schemas * chore: refine node templates parsing to better handle missing vars detection * chore: update furyctl.yaml files in e2e tests to match latest schema * fix: unique fields in template's nodes parser + skip variable nodes * fix: TestVariableNode unit test * chore: update fury-distribution dep * fix: make help text for version flag in config create command a bit more clear * feat: introduce support for distribution relative paths in distro downloader * chore(gomod): clean up go sum * feat: refine deps validation command * fix: set the right env var name in info message * fix: improve help text a bit * fix: improve help text a bit * fix: linting issues and tests * fix: improve help text * chore: improve OpenVPN connection messages * Feature/first wave adjustments (#131) * feat: improved log messages task list: - add debug message when waiting for cluster resources removal - append '...' to Deleting x phase messages - when deleting a cluster or deleting just phase infrastructure print a WARN telling the user to kill the openvpn process * feat: bump golang version to 1.19.4 * feat: added kubeconfig flag * fix: linting * chore: refactor phases * fix: e2e testing in CI following workaround found on: sgerrand/alpine-pkg-glibc#185 * fix: wrong order in apk add flags (?) * fix: e2e testing * feat: added mandatory condition to kubeconfig flag in create cmd * feat: added mandatory condition to kubeconfig flag in delete cmd * chore: moved up --kubeconfig validation * chore: better UX from Ramiro's review Co-authored-by: Ramiro Algozino <ramiro@sighup.io> * chore: UX improvement on delete cluster missing kubeconfig Co-authored-by: Ramiro Algozino <ramiro@sighup.io> * chore: improved missing kubeconfig msg + revert to warn * chore: adjust delete cluster missing kubeconfig flag msg Co-authored-by: Ramiro Algozino <ramiro@sighup.io> * feat: renamed bucket to bucketName (#146) * feat: removed furyctl binary version check (#147) * feat: handle unsupported phases (#149) * feat: add repo check * chore: add retries threshold, improve ux * chore: small refactor * fix: switch git prefix * fix: modules download not working on branches * fix: linting on deps download * feat: added dry run to cluster delete (#154) * feat: added dry run to infra/kube phase * feat: added dry run to distro phase * chore: added debug mode to exec in dry-run * feat: improved ux in log messages * chore: remove logrus timestamp format * chore: force debuglevel as workaround for now * fix: changed wrong url in help --distro-location * feat: added dry-run logic in phase distribution to create cluster cmd (#157) * feat: added dry-run logic to distribution phase in create cluster * chore: removed log message * chore: removed kubectl apply --dry-run * feat: store furyctl.yaml in a cluster's secret * feat: add missing license banner and an info message * chore: use creator kubeconfig path * chore: replace kube client with kubectl runner * chore: small refactor * fix: wrong config path * chore: refactor * fix: don't store secret if dryrun is enabled * chore: refactor dryRun injection * fix: problem with kubeconfig / secret file * chore: added unit tests + refactoring to kubex Co-authored-by: omissis <claudi0.beatric3@gmail.com> Co-authored-by: Luigi <50343470+luigibarbato@users.noreply.github.com> Co-authored-by: Luigi Barbato <luigi.barbato@sighup.io> Co-authored-by: Ramiro Algozino <ramiro@sighup.io>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.