kaustubh.dhokte 3ffe8b7e1e Etcd service status: check for certs error
The script /etc/init.d/etcd is used by the service manager for
management of the etcd service. The call '/etc/init.d/etcd status'
uses etcdctl health API to determine if the service is running
fine or not. In an event if etcd certs are replaced with new ones
but the service has not yet been restarted to use new ones, the
status call will fail even though the service is running fine and
the service manager will treat that as service is failed.
'sm-audit' (which is run periodically) uses '/etc/init.d/etcd status'
call to determine and maintain the service health. Service manager
receiving false service status may introduce a lot bugs.

One such scenario is that 'sm' ignores the 'service restart' call
if it thinks service is disabled. This leads to etcd not being
restarted with new certs during upgrade activate and not being
reachable to the kube-apiserver (which may have started using new
client certs).

This change modifies '/etc/init.d/etcd status' call to not just
rely on etcd health api to determine if the etcd service is running
and checks for the existence of etcd runtime information in case
the health api fails with the 'bad certificate' error.

Test Plan:
PASS: Replace old certs with new certs at /etc/etcd/ and do not
      restart the service. Check that the '/etc/init.d/etcd status'
      is 'running'.
PASS: Replace old certs with new certs at /etc/etcd/ and restart
      the service. Check that the '/etc/init.d/etcd status' is
      'running'.

Closes-Bug: 2033942

Change-Id: Id30a262ca1bde6d8acb85de10882ca9bd4b59bdd
Signed-off-by: kaustubh.dhokte <kaustubh.dhokte@windriver.com>
2023-09-14 22:59:10 +00:00
2019-09-09 14:52:12 -05:00
2023-04-28 12:38:53 -04:00
2021-02-19 12:14:38 -06:00
2019-09-09 14:52:12 -05:00
2023-07-20 15:45:19 +00:00
2019-09-09 14:52:12 -05:00
2019-09-09 14:52:12 -05:00
2022-12-27 01:28:45 +00:00

stx-puppet

The starlingx/stx-puppet repository handles the Puppet service1.

The Puppet service runs during bootstrap, and at every reboot, to provide a consistent configuration across the StarlingX system nodes.

This repository is not intended to be developed standalone, but rather as part of the StarlingX Source System, which is defined by the StarlingX manifest2.

References


  1. https://www.puppet.com↩︎

  2. https://opendev.org/starlingx/manifest.git↩︎

Description
StarlingX Puppet modules and manifests
Readme 20 MiB
Languages
Puppet 58.6%
Python 21.6%
HTML 7.5%
Shell 7%
Ruby 4.7%
Other 0.6%