Releases: OpenCHAMI/coresmd
v0.6.1
Updates
CoreDHCP/CoreSMD
Add netmask/cidr action to set DHCP option 1 (network mask) per-rule. (Also add more unit tests, fixes, and docs updates.)
Rule documentation is now at examples/coredhcp/rules.md.
What's Changed
Full Changelog: v0.6.0...v0.6.1
v0.6.0
Updates
CoreDHCP/CoreSMD
New Rich Rules
Specify DHCP settings to set for specific nodes based on matching specifiers using rule= setting. Logging levels can be specified with rule_log=. See examples/coredhcp/hostnames.md for more details as well as examples/coredhcp/coredhcp*.yaml for examples.
node_pattern and bmc_pattern are deprecated, and are automatically converted to rules if specified in the config file. See here for steps on how to migrate.
What's Changed
- Add Configurable Hostname Policy Feature based on Component Type for DHCPv4 by @davidallendj in #47
- chore: add Makefile; REUSE v3.3 compliance, update README by @synackd in #48
- feat(coredhcp): support config comments by @synackd in #49
- refactor(coredhcp/coresmd): separate functionality into separate packages by @synackd in #51
- build(deps): bump github.com/coredns/coredns from 1.13.1 to 1.14.2 by @dependabot[bot] in #54
- build(deps): bump google.golang.org/grpc from 1.79.1 to 1.79.3 by @dependabot[bot] in #55
- feat(coredhcp/coresmd): implement flexible hostname policy by @synackd in #52
New Contributors
- @davidallendj made their first contribution in #47
Full Changelog: v0.5.7...v0.6.0
v0.5.7
v0.5.6
What's Changed
- feat: add DHCPv6 support and enhance documentation for dual-stack configuration by @alexlovelltroy in #41
- feat(coredns): add header plugin by @synackd in #42
Full Changelog: v0.5.0...v0.5.6
v0.5.0
Updates
CoreDHCP:
bootloop and coresmd Plugins
- BREAKING CHANGE: New key-value format replaces positional arguments for CoreDHCP plugins.
coresmd Plugin
- Custom hostname patterns introduced via optional
node_pattern,bmc_pattern, anddomainkeys.- Configure custom hostnames for nodes and BMCs using optional placeholders in format strings.
- See here for detailed documentation on pattern format.
- See coredhcp.yaml example config for full example.
What's Changed
- ci: clean and add testing by @synackd in #39
- feat(coredhcp/coresmd)!: introduce key value config by @synackd in #37
- feat(coredhcp/coresmd): introduce hostname patterns by @synackd in #38
Full Changelog: v0.4.2...v0.5.0
v0.4.2
What's Changed
- fix: use fully-qualified container name in Dockerfile; bump CoreDNS to v1.13.1 by @synackd in #31
- ci: add container builds for PRs by @synackd in #32
- refactor: reorganize repo and fix auto-building PR containers by @synackd in #35
- hotfix: remove coredns go.mod and fix repo go.mod by @synackd in #36
- feat(coredns): add ipv6 support by @alexlovelltroy in #33
Full Changelog: v0.4.1...v0.4.2
v0.4.1
What's Changed
Full Changelog: v0.4.0...v0.4.1
v0.4.0
Updates
Container Name Change
Instead of the container's path being ghcr.io/openchami/coredhcp, it is now ghcr.io/openchami/coresmd. Pull this version via:
podman pull ghcr.io/openchami/coresmd:v0.4.0
This name change is because CoreSMD now supports CoreDNS in addition to CoreDHCP and uses the same image for both.
New CoreDNS Plugin
CoreDNS functionality is now here!
This can be hooked into an existing OpenCHAMI installation. For instance, use the following quadlet:
[Unit]
Description=The coredns container
Wants=haproxy.service
After=haproxy.service
PartOf=openchami.target
[Container]
ContainerName=coredns
HostName=coresmd
Image=ghcr.io/openchami/coresmd:v0.4.0
Exec=/coredns
#Capabilities
AddCapability=NET_ADMIN
AddCapability=NET_RAW
# Volumes
Volume=/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem:/root_ca/root_ca.crt:ro,Z
Volume=/opt/shared/coresmd/Corefile:/Corefile
# Networks for the Container to use
Network=host
# Unsupported by generator options
# Proxy settings
PodmanArgs=--http-proxy=false
[Service]
Restart=alwaysExample Corefile (/opt/shared/coresmd/Corefile in quadlet above):
# Basic CoreSMD CoreDNS Configuration
# This configuration provides DNS resolution for OpenCHAMI cluster components
.:53 {
ready
bind 172.16.0.254
coresmd {
smd_url https://demo.openchami.cluster:8443
ca_cert /root_ca/root_ca.crt
cache_duration 30s
zone openchami.cluster {
nodes de{03d}
}
}
prometheus 0.0.0.0:9153
forward . 8.8.8.8
}
With the above:
- Resolve nodes using NID:
$ dig @172.16.0.254 re002.openchami.cluster de002.openchami.cluster. 60 IN A 172.16.0.2 - Resolve nodes via xname:
$ dig @172.16.0.254 x3000c0s0b1n0.openchami.cluster x3000c0s0b1n0.openchami.cluster. 60 IN A 172.16.0.2 - Reverse lookup a node's IP:
$ dig @172.16.0.254 -x 172.16.0.2 2.0.16.172.in-addr.arpa. 60 IN PTR x3000c0s0b1n0.openchami.cluster. - Resolve BMCs via xname:
$ dig @172.16.0.254 x3000c0s0b1.openchami.cluster x3000c0s0b1.openchami.cluster. 60 IN A 172.16.0.102 - Reverse lookup a BMC's IP:
$ dig @172.16.0.254 -x 172.16.0.102 102.0.16.172.in-addr.arpa. 60 IN PTR x3000c0s0b1.openchami.cluster.
What's Changed
- Include coredns plugin that reuses the smd client by @alexlovelltroy in #26
Full Changelog: v0.3.1...v0.4.0