<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>internal :: Chantico</title>
    <link>https://chantico-300062.ci.tno.nl/api/chantico/internal/index.html</link>
    <description>Directories controller datacenterresource images k8s measurementdevice patch physicalmeasurement postmortem statemachine volumes webapp</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <copyright>Copyright 2025-2026 TNO. Chantico is licensed under the &lt;a href=&#34;https://www.apache.org/licenses/LICENSE-2.0&#34;&gt;Apache License, Version 2.0&lt;/a&gt;. Published documentation is available under &lt;a href=&#34;https://creativecommons.org/licenses/by-sa/4.0/deed.en&#34;&gt;CC-BY-SA 4.0&lt;/a&gt;.</copyright>
    <atom:link href="https://chantico-300062.ci.tno.nl/api/chantico/internal/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>controller</title>
      <link>https://chantico-300062.ci.tno.nl/api/chantico/internal/controller/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://chantico-300062.ci.tno.nl/api/chantico/internal/controller/index.html</guid>
      <description>package controller import &#34;chantico/internal/controller&#34; Index func MergeUnique(lists ...[]chantico.DataCenterResource) []chantico.DataCenterResource type DataCenterResourceReconciler func (r *DataCenterResourceReconciler) ClearReferencedValidation(ctx context.Context, req ctrl.Request, ...) func (r *DataCenterResourceReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) func (r *DataCenterResourceReconciler) SetupWithManager(mgr ctrl.Manager) error type MeasurementDeviceReconciler func (r *MeasurementDeviceReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) func (r *MeasurementDeviceReconciler) SetupWithManager(mgr ctrl.Manager) error type PhysicalMeasurementReconciler func (r *PhysicalMeasurementReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) func (r *PhysicalMeasurementReconciler) SetupWithManager(mgr ctrl.Manager) error Functions func MergeUnique func MergeUnique( lists ...[]chantico.DataCenterResource, ) []chantico.DataCenterResource Types type DataCenterResourceReconciler type DataCenterResourceReconciler struct { client.Client Scheme *runtime.Scheme } DataCenterResourceReconciler reconciles a DataCenterResource object func (*DataCenterResourceReconciler) ClearReferencedValidation func (r *DataCenterResourceReconciler) ClearReferencedValidation( ctx context.Context, req ctrl.Request, dataCenterResource *chantico.DataCenterResource, referenced *chantico.DataCenterResource, ) func (*DataCenterResourceReconciler) Reconcile func (r *DataCenterResourceReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state. For more details, check Reconcile and its Result here: - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.22.4/pkg/reconcile func (*DataCenterResourceReconciler) SetupWithManager func (r *DataCenterResourceReconciler) SetupWithManager(mgr ctrl.Manager) error SetupWithManager sets up the controller with the Manager. type MeasurementDeviceReconciler type MeasurementDeviceReconciler struct { client.Client Scheme *runtime.Scheme } MeasurementDeviceReconciler reconciles a MeasurementDevice object func (*MeasurementDeviceReconciler) Reconcile func (r *MeasurementDeviceReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) func (*MeasurementDeviceReconciler) SetupWithManager func (r *MeasurementDeviceReconciler) SetupWithManager(mgr ctrl.Manager) error type PhysicalMeasurementReconciler type PhysicalMeasurementReconciler struct { client.Client Scheme *runtime.Scheme } PhysicalMeasurementReconciler reconciles a PhysicalMeasurement object func (*PhysicalMeasurementReconciler) Reconcile func (r *PhysicalMeasurementReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) func (*PhysicalMeasurementReconciler) SetupWithManager func (r *PhysicalMeasurementReconciler) SetupWithManager(mgr ctrl.Manager) error SetupWithManager sets up the controller with the Manager.</description>
    </item>
    <item>
      <title>controller</title>
      <link>https://chantico-300062.ci.tno.nl/api/chantico/internal/patch/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://chantico-300062.ci.tno.nl/api/chantico/internal/patch/index.html</guid>
      <description>package controller import controller &#34;chantico/internal/patch&#34; Index Constants type PatchHelper func Initialize(ctx context.Context, c client.Client, obj client.Object) *PatchHelper func (p *PatchHelper) Patch(patchType PatchType) error func (p *PatchHelper) PatchNone() error func (p *PatchHelper) PatchSpec() error func (p *PatchHelper) PatchStatus() error type PatchType type ResultToPatch Constants const ( PatchResource = iota PatchResourceStatus PatchResourceNone ) Types type PatchHelper type PatchHelper struct { // contains filtered or unexported fields } func Initialize func Initialize(ctx context.Context, c client.Client, obj client.Object) *PatchHelper func (*PatchHelper) Patch func (p *PatchHelper) Patch(patchType PatchType) error func (*PatchHelper) PatchNone func (p *PatchHelper) PatchNone() error func (*PatchHelper) PatchSpec func (p *PatchHelper) PatchSpec() error func (*PatchHelper) PatchStatus func (p *PatchHelper) PatchStatus() error type PatchType type PatchType int type ResultToPatch type ResultToPatch struct { Result *ctrl.Result PatchType PatchType }</description>
    </item>
    <item>
      <title>datacenterresource</title>
      <link>https://chantico-300062.ci.tno.nl/api/chantico/internal/datacenterresource/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://chantico-300062.ci.tno.nl/api/chantico/internal/datacenterresource/index.html</guid>
      <description>package datacenterresource import &#34;chantico/internal/datacenterresource&#34; Index ConstantsVariablesfunc ClearValidationError(dataCenterResource *chantico.DataCenterResource) func CoefficientMetricName(parentName, childName string) string func DeleteRuleFile(ctx context.Context, dataCenterResource *chantico.DataCenterResource) *sm.ActionResult func EnergyMetricName(resourceName string) string func FormatResources(resources []chantico.DataCenterResource) string func GetFromMap(resourcesMap map[string]chantico.DataCenterResource, nodes []string) []chantico.DataCenterResource func SetValidationError(dataCenterResource *chantico.DataCenterResource, err error, ...) func UpdateState(dataCenterResource *chantico.DataCenterResource) func Validate(dataCenterResource *chantico.DataCenterResource, ...) ([]chantico.DataCenterResource, error, string) func WriteRuleFile(ctx context.Context, dataCenterResource *chantico.DataCenterResource) *sm.ActionResult type ErrorCycleDetected func (e ErrorCycleDetected) Error() string type ErrorMissingEnergyMetric func (e ErrorMissingEnergyMetric) Error() string type ErrorResourceNotFound func (e ErrorResourceNotFound) Error() string type ErrorUnknownType func (e ErrorUnknownType) Error() string type RecordingRule func BuildRecordingRules(dataCenterResource *chantico.DataCenterResource) []RecordingRule type RuleFile func BuildRuleFile(dataCenterResource *chantico.DataCenterResource) *RuleFile type RuleGroup Constants const ( StateInit = &#34;Init&#34; StateEntry = &#34;Entry point&#34; StateValidationFailed = &#34;Validation Failed&#34; StateDelete = &#34;Delete&#34; StateEnd = &#34;End point&#34; ) const ( DataCenterResourceTypePDU = &#34;pdu&#34; DataCenterResourceTypeBaremetal = &#34;baremetal&#34; DataCenterResourceTypeVM = &#34;vm&#34; DataCenterResourceTypeKubernetes = &#34;kubernetes&#34; DataCenterResourceTypeHeat = &#34;heat&#34; ) Variables var StateMachine = sm.Machine[*chantico.DataCenterResource]{ Actions: map[string][]sm.ActionFunction[*chantico.DataCenterResource]{ StateInit: { {Type: sm.ActionFunctionPure, Pure: sm.InitializeFinalizer[*chantico.DataCenterResource]}, }, StateEntry: { {Type: sm.ActionFunctionPure, Pure: WriteRuleFile}, }, StateDelete: { {Type: sm.ActionFunctionPure, Pure: DeleteRuleFile}, {Type: sm.ActionFunctionPure, Pure: sm.RemoveFinalizer[*chantico.DataCenterResource]}, }, StateValidationFailed: {}, StateEnd: {}, }, FailState: StateValidationFailed, } Functions func ClearValidationError func ClearValidationError( dataCenterResource *chantico.DataCenterResource, ) func CoefficientMetricName func CoefficientMetricName(parentName, childName string) string CoefficientMetricName returns the deterministic Prometheus metric name for the coefficient from parent to child. func DeleteRuleFile func DeleteRuleFile( ctx context.Context, dataCenterResource *chantico.DataCenterResource, ) *sm.ActionResult DeleteRuleFile removes the Prometheus recording rule file for this DataCenterResource. After deleting, Prometheus is sent a reload request so it stops evaluating the removed rules. func EnergyMetricName func EnergyMetricName(resourceName string) string EnergyMetricName returns the deterministic Prometheus metric name for a DataCenterResource&#39;s energy timeseries. func FormatResources func FormatResources(resources []chantico.DataCenterResource) string func GetFromMap func GetFromMap( resourcesMap map[string]chantico.DataCenterResource, nodes []string, ) []chantico.DataCenterResource func SetValidationError func SetValidationError( dataCenterResource *chantico.DataCenterResource, err error, involvedResource string, ) func UpdateState func UpdateState( dataCenterResource *chantico.DataCenterResource, ) func Validate func Validate( dataCenterResource *chantico.DataCenterResource, dataCenterResources []chantico.DataCenterResource, physicalMeasurements []chantico.PhysicalMeasurement, ) ([]chantico.DataCenterResource, error, string) func WriteRuleFile func WriteRuleFile( ctx context.Context, dataCenterResource *chantico.DataCenterResource, ) *sm.ActionResult WriteRuleFile writes a Prometheus recording rule file for this DataCenterResource. The file is written to prometheus/rules/&lt;name&gt;.yml on the shared volume. After writing, Prometheus is sent a reload request so it picks up the new rules. Types type ErrorCycleDetected type ErrorCycleDetected struct { InvolvedResource string } func (ErrorCycleDetected) Error func (e ErrorCycleDetected) Error() string type ErrorMissingEnergyMetric type ErrorMissingEnergyMetric struct { InvolvedResource string } func (ErrorMissingEnergyMetric) Error func (e ErrorMissingEnergyMetric) Error() string type ErrorResourceNotFound type ErrorResourceNotFound struct { InvolvedResource string } func (ErrorResourceNotFound) Error func (e ErrorResourceNotFound) Error() string type ErrorUnknownType type ErrorUnknownType struct { Type string } func (ErrorUnknownType) Error func (e ErrorUnknownType) Error() string type RecordingRule type RecordingRule struct { Record string `yaml:&#34;record&#34;` Expr string `yaml:&#34;expr&#34;` } RecordingRule represents a single Prometheus recording rule. func BuildRecordingRules func BuildRecordingRules( dataCenterResource *chantico.DataCenterResource, ) []RecordingRule BuildRecordingRules generates the set of Prometheus recording rules for a DataCenterResource node, following the energy accounting design: For root nodes (spec.energyMetric is set), an alias rule mapping the raw energy metric to the canonical datacenter:&lt;name&gt;:energy_watts name. One coefficient recording rule per parent that has a coefficient set (from the ParentRef entries in spec.parents). One energy recording rule for non-root nodes (sum of coefficient * parent energy for each parent). Returns nil if no rules need to be written. type RuleFile type RuleFile struct { Groups []RuleGroup `yaml:&#34;groups&#34;` } RuleFile represents a complete Prometheus rule file. func BuildRuleFile func BuildRuleFile( dataCenterResource *chantico.DataCenterResource, ) *RuleFile BuildRuleFile wraps the recording rules into a complete Prometheus rule file structure with a single group named after the resource. type RuleGroup type RuleGroup struct { Name string `yaml:&#34;name&#34;` Rules []RecordingRule `yaml:&#34;rules&#34;` } RuleGroup represents a Prometheus rule group.</description>
    </item>
    <item>
      <title>images</title>
      <link>https://chantico-300062.ci.tno.nl/api/chantico/internal/images/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://chantico-300062.ci.tno.nl/api/chantico/internal/images/index.html</guid>
      <description>package images import &#34;chantico/internal/images&#34; Index ConstantsConstants const ( BusyBox = &#34;busybox:1.36.1-glibc&#34; SnmpGenerator = &#34;prom/snmp-generator:v0.29.0&#34; SnmpExporter = &#34;ricardbejarano/snmp_exporter:0.26.0&#34; Filebrowser = &#34;filebrowser/filebrowser:v2.32.2&#34; Prometheus = &#34;prom/prometheus:v3.7.3&#34; )</description>
    </item>
    <item>
      <title>k8s</title>
      <link>https://chantico-300062.ci.tno.nl/api/chantico/internal/k8s/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://chantico-300062.ci.tno.nl/api/chantico/internal/k8s/index.html</guid>
      <description>package k8s import &#34;chantico/internal/k8s&#34; Index Constantsfunc CheckDeploymentAvailability(deployment appsv1.Deployment) bool Constants const ( K8sGracePeriod = 10 * time.Second ) Functions func CheckDeploymentAvailability func CheckDeploymentAvailability(deployment appsv1.Deployment) bool</description>
    </item>
    <item>
      <title>log</title>
      <link>https://chantico-300062.ci.tno.nl/api/chantico/internal/postmortem/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://chantico-300062.ci.tno.nl/api/chantico/internal/postmortem/index.html</guid>
      <description>package log import log &#34;chantico/internal/postmortem&#34; Index type ChanticoState func (cs *ChanticoState) Markdown() string type ClusterState func (cs *ClusterState) Markdown() string type Markdown type PostMortem func NewPostMortem(err error, args ...any) *PostMortem func (pm *PostMortem) Markdown() string func (pm *PostMortem) SaveAndQuit() Types type ChanticoState type ChanticoState struct { Error error File string Line int FunctionName string Stack string LoggedVariables []any } func (*ChanticoState) Markdown func (cs *ChanticoState) Markdown() string type ClusterState type ClusterState struct { CRDStates []any } func (*ClusterState) Markdown func (cs *ClusterState) Markdown() string type Markdown type Markdown interface { Markdown() } type PostMortem type PostMortem struct { Timestamp time.Time ClusterState ClusterState ChanticoState ChanticoState } func NewPostMortem func NewPostMortem(err error, args ...any) *PostMortem func (*PostMortem) Markdown func (pm *PostMortem) Markdown() string func (*PostMortem) SaveAndQuit func (pm *PostMortem) SaveAndQuit()</description>
    </item>
    <item>
      <title>measurementdevice</title>
      <link>https://chantico-300062.ci.tno.nl/api/chantico/internal/measurementdevice/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://chantico-300062.ci.tno.nl/api/chantico/internal/measurementdevice/index.html</guid>
      <description>package measurementdevice import &#34;chantico/internal/measurementdevice&#34; Index ConstantsVariablesfunc CreateSNMPDeploymentConfig(ctx context.Context, measurementDevice *chantico.MeasurementDevice) *sm.ActionResult func CreateSNMPGenerator(ctx context.Context, measurementDevice *chantico.MeasurementDevice) *sm.ActionResult func DeleteSNMPConfig(ctx context.Context, measurementDevice *chantico.MeasurementDevice) *sm.ActionResult func GenerateSNMPGeneratorConfig(measurementDevice chantico.MeasurementDevice) (string, error) func MakeJob(measurementDevice chantico.MeasurementDevice) *batchv1.Job func MergeSNMPConfigs(fileContents [][]byte) (string, error) func ReloadSNMPService(ctx context.Context, kubernetesClient client.Client, ...) *sm.ActionResult func RequeueWithDelay(ctx context.Context, measurementDevice *chantico.MeasurementDevice) *sm.ActionResult func ScheduleSNMPGeneratorJob(ctx context.Context, kubernetesClient client.Client, ...) *sm.ActionResult func UpdateModification(measurementDevice *chantico.MeasurementDevice) *sm.ActionResult func UpdateState(measurementDevice *chantico.MeasurementDevice, snmpJob *batchv1.Job) type State Constants const ( StateInit = &#34;Init&#34; StateEntryPoint = &#34;Entry Point&#34; StatePendingSNMPConfigUpdate = &#34;Pending SNMP Config Update&#34; StateSucceededSNMPConfigUpdate = &#34;Succeeded SNMP Config Update&#34; StatePendingSNMPReload = &#34;Pending SNMP Config Reload&#34; StateDelete = &#34;Delete&#34; StateRemove = &#34;Remove&#34; StateFailed = &#34;Failed&#34; StateEndPoint = &#34;End Point&#34; ) Variables var StateMachine = sm.Machine[*chantico.MeasurementDevice]{ Actions: map[string][]sm.ActionFunction[*chantico.MeasurementDevice]{ StateInit: { {Type: sm.ActionFunctionPure, Pure: sm.InitializeFinalizer[*chantico.MeasurementDevice]}, }, StateEntryPoint: { {Type: sm.ActionFunctionPure, Pure: CreateSNMPGenerator}, {Type: sm.ActionFunctionPure, Pure: CreateSNMPDeploymentConfig}, {Type: sm.ActionFunctionIO, IO: ScheduleSNMPGeneratorJob}, }, StatePendingSNMPConfigUpdate: { {Type: sm.ActionFunctionPure, Pure: RequeueWithDelay}, }, StateSucceededSNMPConfigUpdate: { {Type: sm.ActionFunctionPure, Pure: CreateSNMPDeploymentConfig}, {Type: sm.ActionFunctionIO, IO: ReloadSNMPService}, }, StateDelete: { {Type: sm.ActionFunctionPure, Pure: DeleteSNMPConfig}, {Type: sm.ActionFunctionPure, Pure: CreateSNMPDeploymentConfig}, {Type: sm.ActionFunctionIO, IO: ReloadSNMPService}, {Type: sm.ActionFunctionPure, Pure: sm.RemoveFinalizer[*chantico.MeasurementDevice]}, }, StatePendingSNMPReload: {}, StateFailed: {}, StateEndPoint: {}, }, FailState: StateFailed, } Functions func CreateSNMPDeploymentConfig func CreateSNMPDeploymentConfig( ctx context.Context, measurementDevice *chantico.MeasurementDevice, ) *sm.ActionResult Combines config_*.yml into snmp.yml func CreateSNMPGenerator func CreateSNMPGenerator( ctx context.Context, measurementDevice *chantico.MeasurementDevice, ) *sm.ActionResult Creates generator_[id].yml file, and empty config_[id].yml file. func DeleteSNMPConfig func DeleteSNMPConfig( ctx context.Context, measurementDevice *chantico.MeasurementDevice, ) *sm.ActionResult func GenerateSNMPGeneratorConfig func GenerateSNMPGeneratorConfig(measurementDevice chantico.MeasurementDevice) (string, error) func MakeJob func MakeJob(measurementDevice chantico.MeasurementDevice) *batchv1.Job func MergeSNMPConfigs func MergeSNMPConfigs(fileContents [][]byte) (string, error) func ReloadSNMPService func ReloadSNMPService( ctx context.Context, kubernetesClient client.Client, measurementDevice *chantico.MeasurementDevice, ) *sm.ActionResult func RequeueWithDelay func RequeueWithDelay( ctx context.Context, measurementDevice *chantico.MeasurementDevice, ) *sm.ActionResult func ScheduleSNMPGeneratorJob func ScheduleSNMPGeneratorJob( ctx context.Context, kubernetesClient client.Client, measurementDevice *chantico.MeasurementDevice, ) *sm.ActionResult Creates Job. The Job uses the MIBs and generator_[id].yml file to give actual content to the empty config_[id].yml. func UpdateModification func UpdateModification( measurementDevice *chantico.MeasurementDevice, ) *sm.ActionResult func UpdateState func UpdateState( measurementDevice *chantico.MeasurementDevice, snmpJob *batchv1.Job, ) Types type State type State string</description>
    </item>
    <item>
      <title>physicalmeasurement</title>
      <link>https://chantico-300062.ci.tno.nl/api/chantico/internal/physicalmeasurement/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://chantico-300062.ci.tno.nl/api/chantico/internal/physicalmeasurement/index.html</guid>
      <description>package physicalmeasurement import &#34;chantico/internal/physicalmeasurement&#34; Index ConstantsVariablesfunc DeleteTargetFile(ctx context.Context, physicalMeasurement *chantico.PhysicalMeasurement) *sm.ActionResult func UpdateState(physicalMeasurement *chantico.PhysicalMeasurement) func WriteFileSDTargets(path string, targets []FileSDTarget) error func WriteTargetFile(ctx context.Context, physicalMeasurement *chantico.PhysicalMeasurement) *sm.ActionResult type FileSDTarget func CreateFileSDTarget(deviceId string, ip string) FileSDTarget func LoadFileSDTargets(path string) ([]FileSDTarget, error) type State Constants const ( StateInit = &#34;init&#34; StateRunning = &#34;Running&#34; StateRunningWithWarning = &#34;Running (with warning)&#34; StateDelete = &#34;Delete&#34; StateFailed = &#34;Failed&#34; ) Variables var StateMachine = sm.Machine[*chantico.PhysicalMeasurement]{ Actions: map[string][]sm.ActionFunction[*chantico.PhysicalMeasurement]{ StateInit: { {Type: sm.ActionFunctionPure, Pure: sm.InitializeFinalizer[*chantico.PhysicalMeasurement]}, {Type: sm.ActionFunctionPure, Pure: WriteTargetFile}, }, StateRunning: {}, StateDelete: { {Type: sm.ActionFunctionPure, Pure: DeleteTargetFile}, {Type: sm.ActionFunctionPure, Pure: sm.RemoveFinalizer[*chantico.PhysicalMeasurement]}, }, StateFailed: {}, }, FailState: StateFailed, } ActionMap defines the actions to execute for each state. With file_sd_configs, Prometheus automatically watches the target files for changes — no explicit reload or config merging is needed. Functions func DeleteTargetFile func DeleteTargetFile( ctx context.Context, physicalMeasurement *chantico.PhysicalMeasurement, ) *sm.ActionResult DeleteTargetFile removes the file_sd_configs target file for this PhysicalMeasurement. Prometheus will automatically stop scraping the removed targets. func UpdateState func UpdateState( physicalMeasurement *chantico.PhysicalMeasurement, ) func WriteFileSDTargets func WriteFileSDTargets(path string, targets []FileSDTarget) error WriteFileSDTargets marshals the targets to JSON and writes them to the given path. func WriteTargetFile func WriteTargetFile( ctx context.Context, physicalMeasurement *chantico.PhysicalMeasurement, ) *sm.ActionResult WriteTargetFile writes a file_sd_configs JSON target file for this PhysicalMeasurement. The file is written to prometheus/targets/&lt;name&gt;.json. Prometheus automatically detects changes to these files and updates its scrape targets. Types type FileSDTarget type FileSDTarget struct { Targets []string `json:&#34;targets&#34;` Labels map[string]string `json:&#34;labels&#34;` } FileSDTarget represents a single target group in Prometheus file_sd_configs format. Prometheus watches these JSON files and automatically picks up changes without needing a reload or restart. See: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#file_sd_config func CreateFileSDTarget func CreateFileSDTarget(deviceId string, ip string) FileSDTarget CreateFileSDTarget creates a file_sd_configs target entry for a PhysicalMeasurement. The labels __param_module and __param_auth are used by the SNMP exporter relabel configs in prometheus.yml to route scrapes through the correct SNMP module. func LoadFileSDTargets func LoadFileSDTargets(path string) ([]FileSDTarget, error) LoadFileSDTargets reads and parses a file_sd_configs JSON file. type State type State string</description>
    </item>
    <item>
      <title>statemachine</title>
      <link>https://chantico-300062.ci.tno.nl/api/chantico/internal/statemachine/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://chantico-300062.ci.tno.nl/api/chantico/internal/statemachine/index.html</guid>
      <description>package statemachine import &#34;chantico/internal/statemachine&#34; Index type ActionFunction type ActionFunctionType type ActionResult func InitializeFinalizer(ctx context.Context, resource T) *ActionResult func RemoveFinalizer(ctx context.Context, resource T) *ActionResult type Machine func (m *Machine[T]) ExecuteActions(ctx context.Context, kubernetesClient client.Client, resource T, ...) *ActionResult type Reconcilable Types type ActionFunction type ActionFunction[T Reconcilable] struct { Type ActionFunctionType Pure func(context.Context, T) *ActionResult IO func(context.Context, client.Client, T) *ActionResult } ActionFunction represents a single step in the action pipeline for a state. Either Pure or IO must be set (not both), matching the Type field. type ActionFunctionType type ActionFunctionType int ActionFunctionType distinguishes between Pure and IO action functions. const ( ActionFunctionIO ActionFunctionType = iota ActionFunctionPure ) In this context, &#34;Pure&#34; means &#34;does not modify kubernetes cluster resources&#34; type ActionResult type ActionResult struct { *ctrl.Result ph.PatchType } ActionResult carries the reconcile result and what kind of patch to apply. func InitializeFinalizer func InitializeFinalizer[T Reconcilable](ctx context.Context, resource T) *ActionResult InitializeFinalizer is a generic Pure action that adds the resource&#39;s finalizer if it is not already present. func RemoveFinalizer func RemoveFinalizer[T Reconcilable](ctx context.Context, resource T) *ActionResult RemoveFinalizer is a generic Pure action that removes the resource&#39;s finalizer when the resource is being deleted. type Machine type Machine[T Reconcilable] struct { Actions map[string][]ActionFunction[T] FailState string } Machine is a generic state-action machine parameterized over a Reconcilable resource type. It maps states to ordered slices of action functions and knows which state represents failure (to break out of the action loop). func (*Machine[T]) ExecuteActions func (m *Machine[T]) ExecuteActions( ctx context.Context, kubernetesClient client.Client, resource T, patch *ph.PatchHelper, ) *ActionResult ExecuteActions runs the action functions registered for the resource&#39;s current state. After each action that returns a non-nil result, it patches the resource. It breaks early if the resource enters the FailState or if an action returns a non-nil ctrl.Result (indicating requeue). type Reconcilable type Reconcilable interface { client.Object GetState() string SetState(string) GetUpdateGeneration() int64 SetUpdateGeneration(int64) GetFinalizerName() string GetErrorMessage() string SetErrorMessage(string) } Reconcilable is the interface that CRD types must satisfy to be used with the generic state-action machine.</description>
    </item>
    <item>
      <title>volumes</title>
      <link>https://chantico-300062.ci.tno.nl/api/chantico/internal/volumes/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://chantico-300062.ci.tno.nl/api/chantico/internal/volumes/index.html</guid>
      <description>package volumes import &#34;chantico/internal/volumes&#34; Index Constantsfunc GetChanticoVolume() (corev1.Volume, error) Constants const ( ChanticoVolumeMount = &#34;chantico-volume-mount&#34; ChanticoVolumeLocationEnv = &#34;CHANTICOVOLUMELOCATIONENV&#34; ChanticoVolumeClaimEnv = &#34;CHANTICOVOLUMECLAIMENV&#34; ) Functions func GetChanticoVolume func GetChanticoVolume() (corev1.Volume, error)</description>
    </item>
    <item>
      <title>webapp</title>
      <link>https://chantico-300062.ci.tno.nl/api/chantico/internal/webapp/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://chantico-300062.ci.tno.nl/api/chantico/internal/webapp/index.html</guid>
      <description>package webapp import &#34;chantico/internal/webapp&#34; Index func SignalHandling() (context.Context, context.CancelFunc) type App func New() (App, error) Functions func SignalHandling func SignalHandling() (context.Context, context.CancelFunc) Types type App type App interface { Run() error } func New func New() (App, error) Directories internal/graph internal/html internal/http internal/kubernetes</description>
    </item>
  </channel>
</rss>