-
Notifications
You must be signed in to change notification settings - Fork 2
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
Reload Configuration Endpoint #5
Comments
Would like to clarify that if we decided node will have the /reload-config endpoint, how to perfom differently between exceute reload and read reload status, by just using the POST request? Is that what you think of the usage? |
If we wish to have a 'read' mechanism I'd suggest we just implement a GET in addition. |
I think the confusion here is how to check that the certificate has been renewed. Simon's interpretation of the proposal was that the same endpoint was to be used to initiate renewal AND check whether the renewal was successful. In this case a POST and GET on the same endpoint for renewal and status? Or a separate endpoint for status? |
Hi Everyone! I think the approach we use will need to accomodate multiple scenarios (systems which have a control system and systems which don't). One such approach would be for the nodes to host a /scheduled_cert_renewal endpoint where it returns the time when it desires to perform the renewal. If a client/control system POSTs a new timestamp/time then it will schedule the renewal at that time. If no client/control system is present then the node will continue to perform its renewal and the initial proposed time. |
Discussion on today's call: |
Discussed on call. The advice is already in progress and any possible longer-term solution needn't hold up v1.0. |
This issue should be added to the v1.1 milestone, as it not going going to included in v1.0 and mitigations for low power devices has been added to the BCP in #11 to prevent performance issue. |
Consolidating discussion about the reasons for a reload configuration endpoint and its API design from (https://basecamp.com/1791706/projects/15357148/messages/92126983) so they can be discussed on the call.
The primary reason for this endpoint at the moment is to trigger the renewal of a devices' TLS certificate at a defined point in time when the device is not in use, but this API could also be used; to trigger software updates, other configuration changes or support for monitoring data export eg. Prometheus.
Issue
Ultimately if a certificate expires, the device should perform the renew, regardless of if this will affect the primary operation of the device.
Practical Examples
Proposal
The proposal is to add a new endpoint to the NMOS Specs
/reload-config
.The
/reload-config
endpoint will cause the device to trigger the certificate renewal process of all its certificates, during this time the primary operation of the device maybe affected.The
/reload-config
endpoint must have authentication, as the effect of calling it is disruptive to the operation of the device.Prometheus has a similar feature for triggering the reload of new configurations using an API: sending a HTTP POST request to the /-/reload endpoint https://prometheus.io/docs/prometheus/latest/configuration/configuration/
If the certificate renewal operation is unsuccessful, the device should carry on using the original certificate if still valid and the operation should be re-tried again at an appropriate time.
An automatic or manual check should be perform after issuing the command to check the certificate has been renewed.
Outstanding Questions:
If it is decided that the endpoint is required, further design decision are required
On the next call I would like to come to a decision as to whether this API is required.
Could anyone with practical examples of why this API is required please get in contact and I can anonymously add it to the list of practical examples
The text was updated successfully, but these errors were encountered: