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

ERROR: glibc-2.35-r0: trying to overwrite etc/nsswitch.conf owned by alpine-baselayout-data-3.3.0-r2. #185

Closed
andrewrothstein opened this issue Sep 12, 2022 · 24 comments · Fixed by #195
Labels

Comments

@andrewrothstein
Copy link

stopped working with alpine:3.16 and alpine:edge.

@NoCoker
Copy link

NoCoker commented Sep 13, 2022

Same here but works until last week with 3.16 without edge repository ! Now also:
ERROR: glibc-2.35-r0: trying to overwrite etc/nsswitch.conf owned by alpine-baselayout-data-3.2.0-r23

Maybe it helps to locate the error

@jaguwalapratik
Copy link

jaguwalapratik commented Sep 13, 2022

Started getting same error, however it's other way around.

ERROR: alpine-baselayout-data-3.2.0-r23: trying to overwrite etc/nsswitch.conf owned by glibc-2.32-r0.

@RaulBMG
Copy link

RaulBMG commented Sep 13, 2022

I am having a similar issue with these libraries, with different glibc versions [ 2.31, 2.35 ], and it seems related to this Commit:

https://git.alpinelinux.org/aports/commit/?h=3.16-stable&id=348653a9ba0701e8e968b3344e72313a9ef334e4

Update: I have managed to do a different Workaround, by forcing the previous version of alpine-baselayout, like this, before running apk -U upgrade:

+ apk add alpine-baselayout=3.2.0-r22
  apk -U upgrade

@strainovic
Copy link

Same issue here :(

@GregGuiver
Copy link

+1

@alejandro-serrano
Copy link

We are facing the same issue.

@Trass3r
Copy link

Trass3r commented Sep 13, 2022

apk add --force-overwrite works around it.

@mattduguid
Copy link

mattduguid commented Sep 13, 2022

We havent changed our pipeline or glibc version we still set to,

ARG VERSION_GLIBC=2.34-r0

Our pipeline was working on monday 12/09 NZT,

(1/3) Installing glibc (2.34-r0)
(2/3) Installing glibc-bin (2.34-r0)
(3/3) Installing glibc-i18n (2.34-r0)

but failing on tuesday 13/09 NZT,

(1/3) Installing glibc (2.34-r0)
ERROR: glibc-2.34-r0: trying to overwrite etc/nsswitch.conf owned by alpine-baselayout-data-3.2.0-r23.
(2/3) Installing glibc-bin (2.34-r0)
(3/3) Installing glibc-i18n (2.34-r0)

Can confirm the workaround also unblocking us for now thanks @Trass3r

axelpavageau pushed a commit to ekino/docker-buildbox that referenced this issue Sep 14, 2022
@mikecurrancs
Copy link

I am having the same issue using an older version of glibc (2.23-r3)

@djq183u
Copy link

djq183u commented Sep 18, 2022

+1 on this issue with glibc-2.29

@0free
Copy link

0free commented Sep 29, 2022

Hi,
still the error exists with version 2.35-r0

ERROR: glibc-2.35-r0: trying to overwrite etc/nsswitch.conf owned by alpine-baselayout-data-3.3.0-r2

I think the only option is to force overwrite

sudo apk add --force-overwrite glibc-2.35-r0.apk
sudo apk fix --force-overwrite alpine-baselayout-data

@b01
Copy link

b01 commented Oct 30, 2022

apk add --force-overwrite works around it.

This works! Nicely it changes the ERROR to a WARNING so it doesn't hide the fact the issue is still there.

without --force-overwrite

 > [6/6] RUN apk add glibc-2.35-r0.apk:
#9 0.478 fetch https://dl-cdn.alpinelinux.org/alpine/v3.16/main/x86_64/APKINDEX.tar.gz
#9 0.782 fetch https://dl-cdn.alpinelinux.org/alpine/v3.16/community/x86_64/APKINDEX.tar.gz
#9 1.169 (1/1) Installing glibc (2.35-r0)
#9 1.170 ERROR: glibc-2.35-r0: trying to overwrite etc/nsswitch.conf owned by alpine-baselayout-data-3.2.0-r23.
#9 1.219 1 error; 27 MiB in 48 packages

with --force-overwrite:

#10 [6/6] RUN apk add --force-overwrite glibc-2.35-r0.apk
#10 0.501 fetch https://dl-cdn.alpinelinux.org/alpine/v3.16/main/x86_64/APKINDEX.tar.gz
#10 0.752 fetch https://dl-cdn.alpinelinux.org/alpine/v3.16/community/x86_64/APKINDEX.tar.gz
#10 1.112 (1/1) Installing glibc (2.35-r0)
#10 1.114 WARNING: glibc-2.35-r0: overwriting etc/nsswitch.conf owned by alpine-baselayout-data-3.2.0-r23.
#10 1.155 OK: 27 MiB in 48 packages
#10 DONE 1.3s

svasek added a commit to svasek/docker-calibre-web that referenced this issue Nov 10, 2022
@m1rm
Copy link

m1rm commented Nov 14, 2022

I seem to experience the same issue with the following versions:

ERROR: glibc-2.29-r0: trying to overwrite etc/nsswitch.conf owned by alpine-baselayout-data-3.2.0-r23.

willmcb pushed a commit to ministryofjustice/laa-review-criminal-legal-aid that referenced this issue Nov 14, 2022
willmcb pushed a commit to ministryofjustice/laa-review-criminal-legal-aid that referenced this issue Nov 14, 2022
willmcb pushed a commit to ministryofjustice/laa-review-criminal-legal-aid that referenced this issue Nov 14, 2022
We are getting the following build error:

`ERROR: glibc-2.34-r0: trying to overwrite etc/nsswitch.conf owned by alpine-baselayout-data-3.2.0-r23.`

See:

sgerrand/alpine-pkg-glibc#185 (comment)
frol added a commit to Docker-Hub-frolvlad/docker-alpine-glibc that referenced this issue Nov 15, 2022
Trinovantes added a commit to Trinovantes/MAL-Cover-CSS that referenced this issue Nov 16, 2022
bentolor added a commit to bentolor/docker-dind-awscli that referenced this issue Nov 18, 2022
ljfranklin added a commit to ljfranklin/terraform-resource that referenced this issue Nov 18, 2022
WebReflection added a commit to WebReflection/bun that referenced this issue Feb 22, 2023
There's an override error with latest alpine and various versions of glibc (including 2.35): sgerrand/alpine-pkg-glibc#185

This MR proposes a workaround (tested on fly.io - it works) so that it's possible to have bun usable with minimal linux dependencies.
Electroid pushed a commit to oven-sh/bun that referenced this issue Feb 22, 2023
There's an override error with latest alpine and various versions of glibc (including 2.35): sgerrand/alpine-pkg-glibc#185

This MR proposes a workaround (tested on fly.io - it works) so that it's possible to have bun usable with minimal linux dependencies.
@BlueFalconHD
Copy link

Weird. Using force-overwrite doesn't fix this issue for me at all:

blue:~# apk add --force-overwrite glibc-2.35-r0.apk
1 error; 111 MiB in 126 packages

ArnaudBes pushed a commit to ArnaudBes/docker-buildbox that referenced this issue Mar 28, 2023
ArnaudBes pushed a commit to ArnaudBes/docker-buildbox that referenced this issue Mar 28, 2023
omissis added a commit to sighupio/furyctl that referenced this issue 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* feat: added bin-path flag to commands that need it

Co-authored-by: Claudio Beatrice <[email protected]>

* 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 <[email protected]>

* fix: download deps error message

Co-authored-by: Claudio Beatrice <[email protected]>

* 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 <[email protected]>

* chore: change log level

Co-authored-by: Claudio Beatrice <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* chore: UX improvement on delete cluster missing kubeconfig

Co-authored-by: Ramiro Algozino <[email protected]>

* chore: improved missing kubeconfig msg + revert to warn

* chore: adjust delete cluster missing kubeconfig flag msg

Co-authored-by: Ramiro Algozino <[email protected]>

* 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 <[email protected]>
Co-authored-by: Luigi <[email protected]>
Co-authored-by: Luigi Barbato <[email protected]>
Co-authored-by: Ramiro Algozino <[email protected]>
@sgerrand sgerrand added the bug label Apr 12, 2023
@sgerrand
Copy link
Owner

Hi everyone and apologies for not having responded to all of your bug reports earlier. Forgive me. I've just released version 2.35-r1 of this package which resolves the cause of this issue. Please upgrade to it when you can.

@chadlwilson
Copy link

Thanks for looking at this @sgerrand .

If you're back in the "mood" for some alpine glibc, the 2.35 packages (including this 2.35-r1) still don't seem to install and work properly out-of-the-box due to #176, #175, #181 (and other duplicates) either without lib64 symlinking or other crude approaches like #175 (comment). 2.34-r0 doesn't seem to have this issue.

@sgerrand
Copy link
Owner

Thanks for highlighting those points. I'm continuing work on this package this week to resolve those issues, along with updating the version of the GNU C library to the current release.

@sgerrand
Copy link
Owner

back in the "mood"

For transparency, some other things had got in the way of spending time on this project. I appreciate that a lot of projects, commercial or otherwise, depend on this Alpine package but until somebody decides to sponsor my time I can only offer "best effort" as a commitment.

If you'd like to change this then please click the "Sponsor" button at the top of the page and complete the workflow to enable me to spend more time supporting this project!

@chadlwilson
Copy link

Totally understood, and totally fair enough. I for one, appreciate the effort you've put in to this project thus far. Aside from this package's historical use within AdoptOpenJDK which I was aware of, for some messy reasons this is still used as part of Alpine container images for https://github.com/gocd/gocd - for which I am in a similar maintainer position with respect to "best efforts" :-)

Have been incrementally trying to understand a bit more here to evaluate the various options for creating aarch64/arm64 variants which I can't easily do at the moment. Anyway, sorry for the off-topic messages, and thanks again 🙏

omissis added a commit to sighupio/furyctl that referenced this issue 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* feat: added bin-path flag to commands that need it

Co-authored-by: Claudio Beatrice <[email protected]>

* 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 <[email protected]>

* fix: download deps error message

Co-authored-by: Claudio Beatrice <[email protected]>

* 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 <[email protected]>

* chore: change log level

Co-authored-by: Claudio Beatrice <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* chore: UX improvement on delete cluster missing kubeconfig

Co-authored-by: Ramiro Algozino <[email protected]>

* chore: improved missing kubeconfig msg + revert to warn

* chore: adjust delete cluster missing kubeconfig flag msg

Co-authored-by: Ramiro Algozino <[email protected]>

* 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 <[email protected]>
Co-authored-by: Luigi <[email protected]>
Co-authored-by: Luigi Barbato <[email protected]>
Co-authored-by: Ramiro Algozino <[email protected]>
@andrewrothstein
Copy link
Author

@sgerrand the latest binaries you've offered work swimmingly for my use case. thank you for all of your efforts.

35c0b4r added a commit to xenworks/deploy-flutter-web that referenced this issue May 18, 2023
alessiodionisi pushed a commit to sighupio/furyctl that referenced this issue 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* feat: added bin-path flag to commands that need it

Co-authored-by: Claudio Beatrice <[email protected]>

* 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 <[email protected]>

* fix: download deps error message

Co-authored-by: Claudio Beatrice <[email protected]>

* 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 <[email protected]>

* chore: change log level

Co-authored-by: Claudio Beatrice <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* chore: UX improvement on delete cluster missing kubeconfig

Co-authored-by: Ramiro Algozino <[email protected]>

* chore: improved missing kubeconfig msg + revert to warn

* chore: adjust delete cluster missing kubeconfig flag msg

Co-authored-by: Ramiro Algozino <[email protected]>

* 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 <[email protected]>
Co-authored-by: Luigi <[email protected]>
Co-authored-by: Luigi Barbato <[email protected]>
Co-authored-by: Ramiro Algozino <[email protected]>
heurtematte added a commit to eclipse-cbi/dockerfiles that referenced this issue Sep 6, 2023
Trinovantes added a commit to Trinovantes/MAL-Cover-CSS that referenced this issue Oct 8, 2023
@huqingcn
Copy link

Installing glibc-bin-2.35-r1 still has the same problem, and it prevents me from installing other packages and updates.

sudo apk add glibc-bin-2.35-r1.apk glibc-dev-2.35-r1.apk glibc-i18n-2.
35-r1.apk glibc-2.35-r1.apk
1 error; 1672 MiB in 609 packages
peter-pc:~/Downloads/glibc$ sudo apk -U upgrade
fetch https://mirrors.ustc.edu.cn/alpine/latest-stable/main/x86_64/APKINDEX.tar.gz
fetch https://mirrors.ustc.edu.cn/alpine/latest-stable/community/x86_64/APKINDEX.tar.gz
1 error; 1672 MiB in 609 packages
peter-pc:~/Downloads/glibc$ sudo apk upgrade
1 error; 1672 MiB in 609 packages
peter-pc:~/Downloads/glibc$ sudo apk add nginx
(1/5) Installing hiredis (1.2.0-r0)
(2/5) Installing pcre (8.45-r3)
(3/5) Installing nginx (1.24.0-r14)
Executing nginx-1.24.0-r14.pre-install
Executing nginx-1.24.0-r14.post-install
(4/5) Installing nginx-openrc (1.24.0-r14)
(5/5) Installing nginx-vim (1.24.0-r14)
Executing busybox-1.36.1-r15.trigger
Executing glibc-bin-2.35-r1.trigger
1 error; 1674 MiB in 614 packages

@b01
Copy link

b01 commented Dec 16, 2023

@huqingcn Yea, the work-a-round is above. But here it is in practice, not ideal. But this glibc implementation is worth it: https://github.com/kohirens/docker-alpine-glibc/blob/059ea7f865953ca2c23fb6ea9b77845b7c86dbb2/Dockerfile#L19

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.