1. 27 Jul, 2023 2 commits
  2. 20 Jul, 2023 1 commit
    • Andrew Walker's avatar
      Add validation for gluster volume creation (#11714) · ab109035
      Andrew Walker authored
      Add some basic validation of payloads delivered related to brick
      and volume type, and expand cluster tests to validate that
      volumes are created properly.
      
      Testing for validation and normalization of gluster config, and
      creating different volume configurations is achieved by using
      multiple bricks on the same server. This is a rough analogue to
      supported cluster configurations and something we can address
      later as the testing infrastructure for automation improves.
      ab109035
  3. 13 Jul, 2023 1 commit
    • Andrew Walker's avatar
      Improve CTDB private IPs handling (#11643) · 6bd31c65
      Andrew Walker authored
      This PR makes several critical changes to how the ctdb nodes
      file (private IPs) are managed in middleware. Some types of
      issues that are addressed by this PR are:
      
      * Inconsistencies in nodes configuration file on different
        cluster nodes
      * Duplicate nodes entries being added via ctdb.shared.volume.create
        (e.g. same node twice with different IPs)
      * Lack of clear mapping between ctdb nodes and gluster peers
      
      Originally there was easy mapping of entries in the ctdb nodes
      file back to the originating gluster peer. This PR changes the
      nodes files entry from form of
      ```
      <ipaddress>
      <ipaddress>
      <ipaddress>
      ```
      
      to
      ```
      <ipaddress>#{<peer information>}
      <ipaddress>#{<peer information>}
      ```
      
      Above required a change to nodes file parsing function in ctdbd,
      which means this PR may not be backported into stable/bluefin.
      
      Currently only peer UUID is stored in the file, but in future
      we can potentially expand to include additional information.
      Store gluster node UUID in ctdb nodes file. This allows us to
      more tightly couple gluster TSP configuration with our CTDB nodes
      configuration (e.g. include peer UUID in ctdb.private.ips.query
      return).
      
      Since this change requires that the backend maintain the mapping
      between nodes and peers, the ctdb private ips API was changed to
      require caller to provide a gluster peer UUID for the nodes entry.
      
      The ctdb.shared.volume.create method originally would automatically
      append nodes file entries for missing gluster peers based on DNS
      lookup results, but this has over time proven to be somewhat less
      than reliable (users may have DNS misconfigurations that result
      in multiple nodes files entries or incorrect interfaces being used).
      
      This PR allows caller of ctdb.shared.volume.create to optionally
      include a list of private address + gluster peer UUID mappings
      to be added (if necessary) to the nodes file. This method will now
      explicitly fail in the following situations:
      
      * gluster peers that are not present in resulting file
      * peer UUIDs in payload that do not exist
      * entries in nodes file that do not map back to gluster UUID
      
      This has somewhat wide-ranging impact for how our backend APIs are
      used. For instance, if a new gluster peer is added to an existing
      TSP, then a private IP for the nodes file must also be supplied.
      
      A new cluster management service is also being added via this
      pull request to enforce consistency in how SCALE clusters are
      configured (and ensure that proper validation takes place to prevent
      issue reports on drastically misconfigured clutsers). It also
      provides a stub of an API for adding new cluster nodes (expansion).
      
      The end-goal of this API is to force the caller to provide us with
      a payload containing gluster peer, brick, and private address (nodes
      file) information for each proposed cluster node.
      6bd31c65
  4. 06 Jul, 2023 1 commit
    • Andrew Walker's avatar
      NAS-122782 / 23.10 / Remove hard-coded ctdb_shared_vol for glusterfs (#11615) · 6b15b3a0
      Andrew Walker authored
      Ctdb and clustered middleware configuration relies on a small numbers of
      configuration files that are stored within a gluster volume. Originally,
      we used a hard-coded dedicated volume. This PR makes the location for
      these files configurable and provides a framework to shift volume
      location. This is a significantly disruptive operation cluster-wide and
      should only be performed in a maintenance window. Default volume will
      be first volume created.
      6b15b3a0
  5. 15 Feb, 2023 1 commit
  6. 10 Sep, 2022 1 commit
  7. 28 Jul, 2022 1 commit
  8. 12 Jul, 2022 1 commit
  9. 01 Nov, 2021 1 commit
  10. 27 Oct, 2021 1 commit
  11. 19 Oct, 2021 1 commit
    • Andrew's avatar
      Fix cluster tests (#7721) · 572cc579
      Andrew authored
      Address a couple of typos preventing tests from running.
      Remove SMB share directory after SMB test completes
      572cc579
  12. 04 Oct, 2021 1 commit
  13. 13 Sep, 2021 1 commit