louislam / uptime-kuma

A fancy self-hosted monitoring tool
https://uptime.kuma.pet
MIT License
60.15k stars 5.38k forks source link

Terraform Provider #210

Open pete-leese opened 3 years ago

pete-leese commented 3 years ago

Hello,

Not really a feature request per-say, but I intend on building a terraform provider for those who wish to manage uptime kuma using terraform (IaC) which some may know is a popular tool when it comes to automation in the cloud / DevOps space.

This is of course dependant on an API is available - #118 and I hope that the terraform provider will closely follow any new feature added to the uptime kuma API.

I just wanted to let it be known my intentions and also to get an idea on if this will be of interest to others so I can priorise accordingly, please feel free to discuss / give a thumbs up if of interest to you !

Many thanks for a great product!

mikenabhan commented 3 years ago

Hi Pete, this is something that I would be very interested in seeing.

ondrejsika commented 2 years ago

I’ve created many Terraform providers, so I can help with it.

pete-leese commented 2 years ago

Sounds great. Don’t think API support has been added yet until sometime in the 2.x.x lifecycle. Ready to rock when that does happen though.

Spritekin commented 2 years ago

Any news on this one? It would be fantastic to be able to install services in kubernetes and register them in uptime kuma for monitoring.

anthosz commented 2 years ago

Any news on this one? It would be fantastic to be able to install services in kubernetes and register them in uptime kuma for monitoring.

Without API available, it's tricky :)

Dragonatorul commented 1 year ago

There appears to be an unofficial API now as per https://github.com/louislam/uptime-kuma/issues/118#issuecomment-1205502024 and https://github.com/louislam/uptime-kuma/issues/118#issuecomment-1351710068

The relevant repos are:

While these are not official APIs in the app itself, it doesn't seem likely that an official API will become available any time soon. A lot of people would love to use CI/CD friendly tools like terraform to maintain and control uptime-kuma. Until an official API becomes available, if ever, I believe these wrappers should be used instead.

@pete-leese and @ondrejsika What do you think?

vanhoutenbos commented 1 year ago

@ondrejsika maybe we can make one with the un-official API as metnioned above: https://github.com/MedAziz11/Uptime-Kuma-Web-API

Potentially we need a little confirmation for @MedAziz11 that he wants to keep it up to that if kuma revisits his structures or introduces breaking changes

ondrejsika commented 1 year ago

I'll try to create a PoC with that

MedAziz11 commented 1 year ago

@ondrejsika maybe we can make one with the un-official API as metnioned above: https://github.com/MedAziz11/Uptime-Kuma-Web-API

Potentially we need a little confirmation for @MedAziz11 that he wants to keep it up to that if kuma revisits his structures or introduces breaking changes

Indeed, I am amenable to accommodating changes and fostering the project's ongoing development. However, I must express that I cannot commit to a high level of active engagement at this juncture due to my current constraints on available time. @vanhoutenbos

sachasmart commented 11 months ago

I’ve created many Terraform providers, so I can help with it.

Happy to help with this!

johntdyer commented 6 months ago

I'm game to help as well, I've made a provider before as well

CommanderStorm commented 6 months ago

See #3854 for the PR that the official REST API (which people above have said is a requirement for this instead of the semi-official python wrapper for the socket.io API)

We are currently working on #4500 which is a requirement befor this can happen. (If people want to get there quicker, please see this issue)

Maybe this can help: https://github.com/BigBoot/AutoKuma

AurimasNav commented 3 months ago

First thing when evaluating should I start using uptime Kuma was finding out if it has tf provider. Very interested in this.

jacksonporter commented 3 weeks ago

Any updates on this? I am possibly available to help with this as well, written go before (what is recommended for TF providers). Love uptime kuma!

pete-leese commented 1 week ago

I believe we are getting closer to an official API - I think this is penned 2.1.0 following the 2.0.0 beta release recently.

I have started to do some early work with a Terraform Provider based upon the following until official API lands: - https://github.com/MedAziz11/Uptime-Kuma-Web-API

TheodoreHerzfeld commented 1 week ago

Hello all! I'd love to lend a hand on developing the provider as a long-time user. Is the re a repo setup that I can contribute to?

TheodoreHerzfeld commented 6 days ago

i've created one here with some working code: https://github.com/TheodoreHerzfeld/kuma-provider

lots of work to do, but it's a start. It's based on the API mentioned above, but it should be reasonably easy to port it to the official one when it comes out)

TheodoreHerzfeld commented 5 days ago

ok - i've got a few data sources working. Should be a good place to start at least. I'll keep plugging away at this when I have time

pete-leese commented 3 days ago

I am taking a different approach with this and using speakeasy to generate the provider based on the openAPI spec available from Uptime-Kuma-Web-API.

This should do a lot of the leg work and also uses the terraform provider plugin framework.

pete-leese commented 3 days ago

I've made some progress on using easyspeak to generate a provider based on the aforementioned API

https://github.com/pete-leese/terraform-provider-uptime-kuma-wapi

Now I am getting a little more familiar with the concepts, hopefully will be able to addmore functionality

TheodoreHerzfeld commented 2 days ago

did some experimentation with speakeasy and i think I'm going to go a different direction - it's being quite wonky and buggy, and the documentation is less than stellar. HC provides some code-generation tools that will do most of that work for us: https://developer.hashicorp.com/terraform/plugin/code-generation

@pete-leese Thoughts on joining forces on this?