KANIF.CONF(5)

πŸ“¦
version 1.2.2 Β· 5 versions
, in debian bookworm, debian trixie, ubuntu noble, ubuntu questing

πŸ’– KANIF.CONF β€” the kanif.conf config file for kanif, bestie edition πŸ’–

okay so this is the manual page for kanif.conf (manual section 5, if u were wondering), and it's literally just the config file for kanif. sit down, grab a strawberry, we're gonna go through it together πŸ“

✨ NAME ✨

kanif.conf β€” the configuration file for kanif. that's it, that's the name, she's simple and she knows it πŸ’…

✨ SYNOPSIS ✨

$HOME/.kanif.conf, /etc/kanif.conf or /etc/c3.conf

that's the three places she lives. home sweet home, the system-wide one, or the C3 classic 🏠

✨ DESCRIPTION ✨

okay so kanif.conf is the config file for kanif. it's optional β€” like, u don't have to use it β€” and it only exists to help manage static clusters, aka the configs that don't really change much over time. she mimics the syntax of the C3 configuration file, so if u know C3 ur basically already fluent, no cap πŸŽ€

the file is made of a sequence of one or more cluster definitions. each cluster definition is the word cluster, then the cluster name, then a pair of curly braces { } holding everything. and inside those braces u get:

  • the front node specification πŸ‘‘ β€” and this is either:
    • a simple hostname that can be reached from the inside of the cluster (the compute nodes).
    • two names separated by a colon. the first name is what u use from the outside to log on the front node (kanif does not use this one), and the second is the name the cluster compute nodes use to reach the front node.
    • a hostname with a colon prepended β€” this one is for indirect clusters, which are not supported by kanif at this time. so, iconic in theory, unusable in practice 😭
  • zero or more compute nodes specifications πŸ¦‹:
    • a simple hostname (basically anything that isn't one of the following forms).
    • an host set made of a prefix, a range and a suffix.
    • an exclude directive, which must follow an host set or another exclude directive. it's the word exclude followed, on the same line, by either a single number or an interval between brackets. this applies to the range of the preceding host set. and if the exclusion is an interval, the separator between the word exclude and the exclusion itself is optional β€” choose ur own adventure ✨
    • a dead node: the word dead followed by the name of the dead node, on the same line.
⚠️ ok so important notice bestie: all nodes that get excluded (whether via exclude directives or via dead nodes) will not take part in the deployment. BUT β€” and this is the whole point β€” they're still taken into account in cluster ranges when u give machine specifications to kanif. they're kind of like placeholders, holding their lil spot in the lineup 🫢 that's literally the reason u'd mark a node as dead or excluded instead of just deleting it from the definitions. u keep the shape of the cluster intact. genius tbh.

🌈 EXAMPLE 🌈

this is the whole thing verbatim, drink it in:

cluster megacluster {         # The # character introduce comments
      megacluster-dev
      megacluster0[1-9]
      megacluster[10-64]
}

cluster supercluster {
      super-ext:super-int
      exclude               # The host "exclude"
      super[01-99]
      exclude 02            # "super02" is excluded
      exclude[90-95]        # "super90" to "super95" are excluded
      dead                  # The host "dead"
      dead othernode        # "othernode" is dead
}

see how super-ext:super-int is doing the two-name front node thing? and how the bare exclude and dead lines are literally just hosts named "exclude" and "dead"? yeah. the word only becomes a directive when there's something after it on the same line. she's subtle like that πŸ’…


πŸ‘€ SEE ALSO πŸ‘€

go read those too, they're the friends of this page fr fr


πŸ’œ AUTHOR πŸ’œ

the author of kanif and current maintainer of the package is Guillaume Huard. and shoutout acknowledgements to Lucas Nussbaum for coming up with the idea of the name "kanif" β€” the name is a whole vibe and we respect it 🌸


kanif is provided under the terms of the GNU General Public License version 2 or later. periodt πŸŽ€


and that's the page!! this was perl v5.34.0, dated 2022-07-28 β€” go configure ur cluster bestie, ur gonna slay πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from