puppet-prod/modules/libs/lib/facter/vault_cert_fingerprint.rb
Ben Vincent e55fd8fbd5
All checks were successful
Build / precommit (pull_request) Successful in 5m40s
feat: add incus auto-client certificate trust
- add fact to export vault public cert from agents
- add fact to export list of trusted incus client certs
- add method for incus clients to export their client cert to be trusted
2025-10-17 22:06:23 +11:00

24 lines
589 B
Ruby

# frozen_string_literal: true
# lib/facter/vault_cert_fingerprint.rb
Facter.add(:vault_cert_fingerprint) do
confine kernel: 'Linux'
setcode do
require 'openssl'
require 'digest'
cert_path = '/etc/pki/tls/vault/certificate.crt'
if File.exist?(cert_path) && File.readable?(cert_path)
begin
cert_content = File.read(cert_path)
cert = OpenSSL::X509::Certificate.new(cert_content)
# Calculate SHA256 fingerprint like incus does
Digest::SHA256.hexdigest(cert.to_der)
rescue StandardError
nil
end
end
end
end