Feature: Add a persistent backend to the cloud-init server which uses duckdb via quack/quack #68
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces a new storage backend,
quackstore
, and includes various updates to support this addition. The most significant changes involve modifying the main application logic to handle the new backend, adding the necessary dependencies, and implementing and testing thequackstore
functionality.Main Application Updates:
quackstore
import and new flags for selecting the storage backend and database path incmd/cloud-init-server/main.go
. [1] [2] [3]memstore
orquackstore
).New
quackstore
Implementation:quackstore
package with methods for managing groups, instances, and cluster defaults, including initialization and schema setup.Testing Enhancements:
memstore
to ensure it adheres to the standard test suite.quackstore
to ensure proper functionality and integration.Model Serialization:
CloudConfigFile
struct to implement custom JSON marshaling and unmarshaling, handling different encoding types (base64
andplain
).