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

Create linux packages #215

Closed
richardcase opened this issue Sep 17, 2018 · 36 comments
Closed

Create linux packages #215

richardcase opened this issue Sep 17, 2018 · 36 comments
Labels
help wanted Extra attention is needed kind/feature New feature or request priority/backlog Not staffed at the moment. Help wanted. stale

Comments

@richardcase
Copy link
Contributor

Why do you want this feature?
I would like to be able to install eksctl easily on Linux. Currently we have a homebrew package but we should have .deb and .rpm packages as well to cover somew of the main linux distros.

What feature/behavior/change do you want?
I expect to be able to do apt-get install eksctl and it install eksctl and its dependencies (i.e. kubectl, aws-iam-authenticator).

Gorealeaser should be able to help here:
https://goreleaser.com/nfpm/
https://github.com/goreleaser/nfpm

@richardcase richardcase added kind/feature New feature or request help wanted Extra attention is needed labels Sep 17, 2018
@dholbach
Copy link
Contributor

For .deb packages, I'm happy to help figure this out. We could set up a PPA for Weaveworks and publish bits like eksctl, fluxctl and potentially more in there. Unfortunately this would require quite a few things to be set up in CI to publish automatically (GPG signing keys, etc.)

Another route would be snaps. They'd be easier to set up (one yaml file, simple Github build/publish integration) and would work on many different Linux distributions. A potential blocker could be access to dot files. It's what I encountered when building eksctl.

@dholbach
Copy link
Contributor

As a follow-up, the discussion regarding Snaps moved on to here, and I passed on YAMLs as test-cases for this extension of snaps for both eksctl and fluxctl.

@jglick
Copy link

jglick commented Oct 30, 2019

There is a snap but it is terribly outdated.

@dholbach
Copy link
Contributor

Yes, we're aware of that. It'd be good if we could look into merging #969 soon and then take over the snap in the store.

@dholbach
Copy link
Contributor

dholbach commented Jan 14, 2020

#969 is ready to go. Here's what I suggest we do:

@dholbach
Copy link
Contributor

Following up on the last item in the TODO above: our options for publishing (once we take over maintenance of the unmaintained eksctl snap in the store):

@dholbach
Copy link
Contributor

Maintenance of the eksctl snap was transferred to us: https://snapcraft.io/eksctl

I pushed the last release to stable. Unfortunately git checkout 0.12.0 && snapcraft produced 0.12.0-rc.0 as version number. Not sure why this is the case.

In any case, I'd love to get feedback on how well the snap works.

Installing on Ubuntu et al (if you have snapd installed) is just a matter of running:

sudo snap install eksctl

If you have eksctl somewhere else in your $PATH, you might want to run which eksctl to figure out which one is being used.

@dholbach
Copy link
Contributor

Ah, and I pushed the most recent master to edge:

Track    Arch    Channel    Version               Revision
latest   amd64   stable     0.12.0-rc.0           3
                 candidate  ^                     ^
                 beta       ^                     ^
                 edge       0.12.0-rc.0+ca1a6f73  4

@dholbach
Copy link
Contributor

I just disabled the snap in the store. We'll need to figure out #1721 and some other issues first.

@dholbach
Copy link
Contributor

fluxcd/flux#3072 will likely be of interest too.

@martina-if martina-if added the priority/important-longterm Important over the long term, but may not be currently staffed and/or may require multiple releases label Sep 11, 2020
@iainelder
Copy link

iainelder commented Feb 11, 2021

I expect to be able to do apt-get install eksctl and it install eksctl

Yes, so much yes.

and its dependencies (i.e. kubectl, aws-iam-authenticator).

But kubectl isn't actually a dependency of eksctl, is it? I wouldn't expect installing eksctl to also install kubectl.

As I understand it. the version of kubectl I need to be installed depends on the version of the cluster I'm interacting with, so I would want these packages completely decoupled.

kubectl, all its versions, are available in Kubernetes' own repo.

See "Ubuntu, Debian or HypriotOS" instructions in the Install and Set Up kubectl documentation.

@nikimanoledaki
Copy link
Contributor

nikimanoledaki commented Jul 7, 2021

Closing this given the following comment in a related issue and due to lack of activity:
#3436 (comment)

Hi @toabctl, we used to have a snap on snapcraft, but the team decided to stop releasing snaps about a year ago as it was too much work to maintain.

Happy to reopen it if there is more interest!

@BloodyIron
Copy link

Okay so yeah this needs to be re-opened, because frankly, AWS' "recommended" method of installing eksctl by downloading a tar and moving the binary into place, is absolutely the worst way to do this.

  1. It means the package will NEVER be updated, because the environmental package manager is not aware of it.
  2. It will NEVER be updated because the human user will likely forget that it needs updating.
  3. Because it never gets updated over time this is likely to result in security issues, just like any other piece of software that never gets update
  4. This is the least convenient and efficient way to do it, like package managers have plenty of good reasons to exist, this includes convenience and reduced administrative overhead.

I for one prefer that a ppa/repo for debs be established for eksctl, since snaps have their own problems (such as init time), and making them debs means that Debian, Ubuntu and other derivatives (that may not even have snapd or whatever) can just use it.

I am in AWE that this has not become a thing. Original request was Sep 2018, it is now Mar 2022. The need for packages in repos hasn't gone away.

Can we please re-open this and get this sorted already? I mean, I'm sure even the Red Hat enjoyers probably also want rpm versions with their own repos too... for exactly the same reasons... (BTW, I use Ubuntu, not Arch, lol)

@BloodyIron
Copy link

@BloodyIron
Copy link

Okay so I went to look at the release frequency for this github project and holly balls are releases coming out frequently. That's literally so much more reason for this to be served via a repository instead of a tarball a human manually downloads!

@Skarlso
Copy link
Contributor

Skarlso commented Mar 17, 2022

There were several problems with credentials when dealing with the release cycle not in github which is why this didn't go forward in the end.

As for your comment:

Regarding updates:

As with anything installed from not a package, you can add a small script that keeps it updated and run a systemd process in the background and forget about it basically. It's relatively simple to achieve.

method of installing eksctl by downloading a tar and moving the binary into place, is absolutely the worst way to do this.

I would argue that having to run ./configure && make would be a lot worse. ;)

I for one prefer that a ppa/repo for debs be established for eksctl, since snaps have their own problems (such as init time), and making them debs means that Debian, Ubuntu and other derivatives (that may not even have snapd or whatever) can just use it.

I see no reason why not to also add deb packages. That's true. But we will not host it, because it creates a lot of overhead for an already stretched thin team to take care of. But we can publish them as artifacts I believe.

@Skarlso Skarlso reopened this Mar 17, 2022
@Skarlso
Copy link
Contributor

Skarlso commented Mar 17, 2022

To summarise, this ticket is now about just creating and publish a .deb and potentially an .rpm file.

@jglick
Copy link

jglick commented Mar 17, 2022

FWIW I would still like to see a snap (given #1721 (comment)). Would match how I keep other K8s-related tools like kubectl, helm, and gcloud up to date. (Sadly, not aws-cli, which also has a ridiculously outdated snap.)

@BloodyIron
Copy link

There were several problems with credentials when dealing with the release cycle not in github which is why this didn't go forward in the end.

As for your comment:

Regarding updates:

As with anything installed from not a package, you can add a small script that keeps it updated and run a systemd process in the background and forget about it basically. It's relatively simple to achieve.

method of installing eksctl by downloading a tar and moving the binary into place, is absolutely the worst way to do this.

I would argue that having to run ./configure && make would be a lot worse. ;)

I for one prefer that a ppa/repo for debs be established for eksctl, since snaps have their own problems (such as init time), and making them debs means that Debian, Ubuntu and other derivatives (that may not even have snapd or whatever) can just use it.

I see no reason why not to also add deb packages. That's true. But we will not host it, because it creates a lot of overhead for an already stretched thin team to take care of. But we can publish them as artifacts I believe.

So you're proposing I write a script to emulate a package manager without any of the GPG key signage, or other good practices found in mature package managers? I'm sorry but that's really not an okay recommendation.

I understand that this adds overhead to the team, but this can be automated, I'm sure. Isn't that what DevOps is about? :^)

Also saying this is better than compiling from source does not detract the value of what is being sought here.

@BloodyIron
Copy link

To summarise, this ticket is now about just creating and publish a .deb and potentially an .rpm file.

It has been about that this whole time, as per the original request (not by me) including "Currently we have a homebrew package but we should have .deb and .rpm packages as well to cover somew of the main linux distros"

@BloodyIron
Copy link

FWIW I would still like to see a snap (given #1721 (comment)). Would match how I keep other K8s-related tools like kubectl, helm, and gcloud up to date. (Sadly, not aws-cli, which also has a ridiculously outdated snap.)

I would like to point out that kubectl and awscli can be installed via package managers. That's literally how I do it already. Perhaps consider that method instead?

@Skarlso
Copy link
Contributor

Skarlso commented Mar 17, 2022

So you're proposing I write a script to emulate a package manager without any of the GPG key signage, or other good practices found in mature package managers? I'm sorry but that's really not an okay recommendation.

How does it help with updates to have a downloadable deb package? You still would have to update that by hand.

I understand that this adds overhead to the team, but this can be automated, I'm sure. Isn't that what DevOps is about? :^)

We accept community contributions. :^)

It has been about that this whole time, as per the original request

No it has not:

What feature/behavior/change do you want?
I expect to be able to do apt-get install eksctl and it install eksctl and its dependencies (i.e. kubectl, aws-iam-authenticator).

I would like to point out that kubectl and awscli can be installed via package managers. That's literally how I do it already. Perhaps consider that method instead?

Done.

@jglick
Copy link

jglick commented Mar 17, 2022

awscli can be installed via package managers

At least on Ubuntu, yes but an obsolete 1.x version, and https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html does not suggest a package. Frankly using a Docker wrapper script as in https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-docker.html#cliv2-docker-share-files feels like a more attractive option, at least on Linux where Docker containers require no VM.

@Himangini Himangini added priority/backlog Not staffed at the moment. Help wanted. and removed priority/important-longterm Important over the long term, but may not be currently staffed and/or may require multiple releases labels Apr 12, 2022
@Himangini
Copy link
Collaborator

Closing this as this is not our immediate priority and lack of interest from the community, if this issue gets a lot of 👍🏻 s then we will consider making this our priority. Meanwhile, we are happy to accept contributions from the community 🎉

@BloodyIron
Copy link

Still desired!

@Skarlso
Copy link
Contributor

Skarlso commented Apr 14, 2022

Still desired!

Sadly, we just simply don't have the capacity to do this on our own. Help would be much appreciated. :)

@BloodyIron
Copy link

Sure but can we at least keep the issue open?

@Skarlso Skarlso reopened this Apr 16, 2022
@Skarlso
Copy link
Contributor

Skarlso commented Apr 16, 2022

Sure

@BloodyIron
Copy link

Yay! Thanks :D

@github-actions
Copy link
Contributor

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.

@github-actions github-actions bot added the stale label May 18, 2022
@Skarlso Skarlso removed the stale label May 18, 2022
torredil pushed a commit to torredil/eksctl that referenced this issue May 20, 2022
Implement raw block volume support
@github-actions
Copy link
Contributor

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.

@github-actions github-actions bot added the stale label Jun 18, 2022
@Skarlso Skarlso added priority/important-longterm Important over the long term, but may not be currently staffed and/or may require multiple releases and removed stale labels Jun 18, 2022
@BloodyIron
Copy link

@Skarlso can we get this bot to stop please?

@Skarlso
Copy link
Contributor

Skarlso commented Jun 24, 2022

I added priority long term which will stop the stale checker.

@BloodyIron
Copy link

Thanks @Skarlso !

@Himangini Himangini removed the priority/important-longterm Important over the long term, but may not be currently staffed and/or may require multiple releases label Sep 2, 2022
@github-actions
Copy link
Contributor

github-actions bot commented Oct 3, 2022

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.

@github-actions github-actions bot added the stale label Oct 3, 2022
@github-actions
Copy link
Contributor

github-actions bot commented Oct 8, 2022

This issue was closed because it has been stalled for 5 days with no activity.

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Oct 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed kind/feature New feature or request priority/backlog Not staffed at the moment. Help wanted. stale
Projects
None yet
Development

No branches or pull requests

10 participants