mirror of
https://github.com/ysoftdevs/gardener-extension-shoot-fleet-agent.git
synced 2026-04-26 02:08:58 +02:00
Initial v1.0.0 commit
This commit is contained in:
58
pkg/apis/config/loader/loader.go
Normal file
58
pkg/apis/config/loader/loader.go
Normal file
@@ -0,0 +1,58 @@
|
||||
package loader
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
|
||||
"github.com/javamachr/gardener-extension-shoot-fleet-agent/pkg/apis/config"
|
||||
"github.com/javamachr/gardener-extension-shoot-fleet-agent/pkg/apis/config/install"
|
||||
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
"k8s.io/apimachinery/pkg/runtime/serializer/json"
|
||||
"k8s.io/apimachinery/pkg/runtime/serializer/versioning"
|
||||
)
|
||||
|
||||
var (
|
||||
Codec runtime.Codec
|
||||
Scheme *runtime.Scheme
|
||||
)
|
||||
|
||||
func init() {
|
||||
Scheme = runtime.NewScheme()
|
||||
install.Install(Scheme)
|
||||
yamlSerializer := json.NewYAMLSerializer(json.DefaultMetaFactory, Scheme, Scheme)
|
||||
Codec = versioning.NewDefaultingCodecForScheme(
|
||||
Scheme,
|
||||
yamlSerializer,
|
||||
yamlSerializer,
|
||||
schema.GroupVersion{Version: "v1alpha1"},
|
||||
runtime.InternalGroupVersioner,
|
||||
)
|
||||
}
|
||||
|
||||
// LoadFromFile takes a filename and de-serializes the contents into FleetAgentConfig object.
|
||||
func LoadFromFile(filename string) (*config.FleetAgentConfig, error) {
|
||||
bytes, err := ioutil.ReadFile(filename)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return Load(bytes)
|
||||
}
|
||||
|
||||
// Load takes a byte slice and de-serializes the contents into FleetAgentConfig object.
|
||||
// Encapsulates de-serialization without assuming the source is a file.
|
||||
func Load(data []byte) (*config.FleetAgentConfig, error) {
|
||||
cfg := &config.FleetAgentConfig{}
|
||||
|
||||
if len(data) == 0 {
|
||||
return cfg, nil
|
||||
}
|
||||
|
||||
decoded, _, err := Codec.Decode(data, &schema.GroupVersionKind{Version: "v1alpha1", Kind: "Config"}, cfg)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return decoded.(*config.FleetAgentConfig), nil
|
||||
}
|
||||
Reference in New Issue
Block a user