-
Notifications
You must be signed in to change notification settings - Fork 230
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
Provide remote configuration API #357
Comments
Just wanting to sanity check that this functionality does not yet exist as it would help us out? |
@profsmallpine It does not exist and I'm focused on Sidekiq for the next month or two. You are welcome to spike or prototype it if you want to dive in. |
We are finally getting around to a move from ec2 to aws serverless. I went ahead and pushed this responsibility of configuration to the docker container. We will have to replace the image and restart our fargate task which isn't as clean as reloading the config, but keeps deployments and devops simpler. The dockerfile:
|
Looks good to me. If you want to publish something in the wiki, it is publicly editable. |
Where do you see this on the horizon? I wish I had the Go chops to give it a try myself, but unfortunately I don't. I'd like to deploy our Faktory server to Fargate, but none of the existing workarounds to its lack of HUPability seem desirable as they would require some Faktory server downtime as a new image is deployed to Fargate or the existing one is redeployed. Configuration changes seem far more common than upgrading the Faktory server itself, so I'm willing to live with running it on an EC2 instance so that we can easily tweak the config and HUP to reload. |
👋 I'm starting to take a look at implementing this. While I can't commit to actually finishing it yet, I do have some questions around the specs:
AFAIK there is currently no enforcement on how you split your This is unless we require you to upload the same file names that your
I assume that the plan is to use the filesystems "last modified" information to make this decision for the I also assume that we're ok with re-reading the As long as we don't either enforce a specific set of config files or enforce that you use the same set of config file in A few alternative thoughts: Option 2: Stick to the idea in the original description of this issue. But combine all Personally I like Option 1. But it depends on what we want to achieve. The way "Partial config update is not allowed" is described makes me believe that the mental model is one config file per feature/sub-system. So that one sub-system always gets the config from either I know this is a bit a 🧠 dump. If I misunderstood any of this let me know! If not, please let me know what you think is the best way forward. |
I'm not tied to the "spec" I wrote three years ago, you're welcome to suggest alternatives. The main thing that everyone is asking for is upgrading Faktory without downtime. I don't see a lot of requests for this remote config functionality. |
Faktory's
conf.d
filesystem configuration is looking increasingly dated as more users and customers use Docker and containers where the local filesystem is not easy to provide or change. Instead, provide a Web API where TOML files can be POST'd viacurl
by an application deployment. Something like:(Basic auth elided for readability)
That
curl
command will POST foo.toml to /config/update/foo.toml. After all of the TOML are loaded, we callreload
to have Faktory atomically reload its config.Configuration will be stored in Redis so it persists across Faktory boots. The config will track last modification time and SHAs for each config item in order to minimize unnecessary changes or reloads.
For sanity's sake, it is strongly recommended to use either
conf.d
or/config/upload
exclusively. Don't mix the two. The Web UI will not provide a manual upload page as this feature is intended for deployment automation.The text was updated successfully, but these errors were encountered: