diff --git a/pkg/apis/ark/v1/config.go b/pkg/apis/ark/v1/config.go deleted file mode 100644 index 90115fa487..0000000000 --- a/pkg/apis/ark/v1/config.go +++ /dev/null @@ -1,51 +0,0 @@ -/* -Copyright 2017 the Heptio Ark contributors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1 - -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ConfigList is a list of Configs. -type ConfigList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - - Items []Config `json:"items"` -} - -// +genclient -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Config is an Ark resource that captures configuration information to be -// used for running the Ark server. -type Config struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata"` - - // PersistentVolumeProvider is the configuration information for the cloud where - // the cluster is running and has PersistentVolumes to snapshot or restore. Optional. - PersistentVolumeProvider *CloudProviderConfig `json:"persistentVolumeProvider"` -} - -// CloudProviderConfig is configuration information about how to connect -// to a particular cloud. -type CloudProviderConfig struct { - Name string `json:"name"` - - Config map[string]string `json:"config"` -} diff --git a/pkg/apis/ark/v1/register.go b/pkg/apis/ark/v1/register.go index 5ce3bab1e0..9629cdd7df 100644 --- a/pkg/apis/ark/v1/register.go +++ b/pkg/apis/ark/v1/register.go @@ -62,7 +62,6 @@ func CustomResources() map[string]typeInfo { "Backup": newTypeInfo("backups", &Backup{}, &BackupList{}), "Restore": newTypeInfo("restores", &Restore{}, &RestoreList{}), "Schedule": newTypeInfo("schedules", &Schedule{}, &ScheduleList{}), - "Config": newTypeInfo("configs", &Config{}, &ConfigList{}), "DownloadRequest": newTypeInfo("downloadrequests", &DownloadRequest{}, &DownloadRequestList{}), "DeleteBackupRequest": newTypeInfo("deletebackuprequests", &DeleteBackupRequest{}, &DeleteBackupRequestList{}), "PodVolumeBackup": newTypeInfo("podvolumebackups", &PodVolumeBackup{}, &PodVolumeBackupList{}), diff --git a/pkg/apis/ark/v1/zz_generated.deepcopy.go b/pkg/apis/ark/v1/zz_generated.deepcopy.go index cbc3b4b7e3..74ef2e6b76 100644 --- a/pkg/apis/ark/v1/zz_generated.deepcopy.go +++ b/pkg/apis/ark/v1/zz_generated.deepcopy.go @@ -408,97 +408,6 @@ func (in *BackupStorageLocationStatus) DeepCopy() *BackupStorageLocationStatus { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CloudProviderConfig) DeepCopyInto(out *CloudProviderConfig) { - *out = *in - if in.Config != nil { - in, out := &in.Config, &out.Config - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudProviderConfig. -func (in *CloudProviderConfig) DeepCopy() *CloudProviderConfig { - if in == nil { - return nil - } - out := new(CloudProviderConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Config) DeepCopyInto(out *Config) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.PersistentVolumeProvider != nil { - in, out := &in.PersistentVolumeProvider, &out.PersistentVolumeProvider - if *in == nil { - *out = nil - } else { - *out = new(CloudProviderConfig) - (*in).DeepCopyInto(*out) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Config. -func (in *Config) DeepCopy() *Config { - if in == nil { - return nil - } - out := new(Config) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Config) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConfigList) DeepCopyInto(out *ConfigList) { - *out = *in - out.TypeMeta = in.TypeMeta - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Config, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigList. -func (in *ConfigList) DeepCopy() *ConfigList { - if in == nil { - return nil - } - out := new(ConfigList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ConfigList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DeleteBackupRequest) DeepCopyInto(out *DeleteBackupRequest) { *out = *in diff --git a/pkg/cmd/server/server.go b/pkg/cmd/server/server.go index b886d5c4b4..809bd2ad81 100644 --- a/pkg/cmd/server/server.go +++ b/pkg/cmd/server/server.go @@ -24,7 +24,6 @@ import ( "log" "net/http" "os" - "reflect" "strings" "sync" "time" @@ -74,6 +73,9 @@ import ( const ( // the port where prometheus metrics are exposed defaultMetricsAddress = ":8085" + + defaultBackupSyncPeriod = time.Minute + defaultPodVolumeOperationTimeout = 60 * time.Minute ) type serverConfig struct { @@ -267,19 +269,7 @@ func (s *server) run() error { return err } - originalConfig, err := s.loadConfig() - if err != nil { - return err - } - - // watchConfig needs to examine the unmodified original config, so we keep that around as a - // separate object, and instead apply defaults to a clone. - config := originalConfig.DeepCopy() - s.applyConfigDefaults(config) - - s.watchConfig(originalConfig) - - if _, err = s.arkClient.ArkV1().BackupStorageLocations(s.namespace).Get(s.config.defaultBackupLocation, metav1.GetOptions{}); err != nil { + if _, err := s.arkClient.ArkV1().BackupStorageLocations(s.namespace).Get(s.config.defaultBackupLocation, metav1.GetOptions{}); err != nil { s.logger.WithError(errors.WithStack(err)). Warnf("Default backup storage location %q not found; backups must explicitly specify a location", s.config.defaultBackupLocation) } @@ -293,7 +283,7 @@ func (s *server) run() error { return err } - if err := s.runControllers(config, defaultVolumeSnapshotLocations); err != nil { + if err := s.runControllers(defaultVolumeSnapshotLocations); err != nil { return err } @@ -338,23 +328,6 @@ func getDefaultVolumeSnapshotLocations(arkClient clientset.Interface, namespace return providerDefaults, nil } -func (s *server) applyConfigDefaults(c *api.Config) { - if s.config.backupSyncPeriod == 0 { - s.config.backupSyncPeriod = defaultBackupSyncPeriod - } - - if s.config.podVolumeOperationTimeout == 0 { - s.config.podVolumeOperationTimeout = defaultPodVolumeOperationTimeout - } - - if len(s.config.restoreResourcePriorities) == 0 { - s.config.restoreResourcePriorities = defaultRestorePriorities - s.logger.WithField("priorities", s.config.restoreResourcePriorities).Info("Using default resource priorities") - } else { - s.logger.WithField("priorities", s.config.restoreResourcePriorities).Info("Using given resource priorities") - } -} - // namespaceExists returns nil if namespace can be successfully // gotten from the kubernetes API, or an error otherwise. func (s *server) namespaceExists(namespace string) error { @@ -464,34 +437,6 @@ func (s *server) validateBackupStorageLocations() error { return nil } -func (s *server) loadConfig() (*api.Config, error) { - s.logger.Info("Retrieving Ark configuration") - var ( - config *api.Config - err error - ) - for { - config, err = s.arkClient.ArkV1().Configs(s.namespace).Get("default", metav1.GetOptions{}) - if err == nil { - break - } - if !apierrors.IsNotFound(err) { - s.logger.WithError(err).Error("Error retrieving configuration") - } else { - s.logger.Info("Configuration not found") - } - s.logger.Info("Will attempt to retrieve configuration again in 5 seconds") - time.Sleep(5 * time.Second) - } - s.logger.Info("Successfully retrieved Ark configuration") - return config, nil -} - -const ( - defaultBackupSyncPeriod = time.Minute - defaultPodVolumeOperationTimeout = 60 * time.Minute -) - // - Namespaces go first because all namespaced resources depend on them. // - PVs go before PVCs because PVCs depend on them. // - PVCs go before pods or controllers so they can be mounted as volumes. @@ -513,39 +458,6 @@ var defaultRestorePriorities = []string{ "replicaset", } -// watchConfig adds an update event handler to the Config shared informer, invoking s.cancelFunc -// when it sees a change. -func (s *server) watchConfig(config *api.Config) { - s.sharedInformerFactory.Ark().V1().Configs().Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ - UpdateFunc: func(oldObj, newObj interface{}) { - updated := newObj.(*api.Config) - s.logger.WithField("name", kube.NamespaceAndName(updated)).Debug("received updated config") - - if updated.Name != config.Name { - s.logger.WithField("name", updated.Name).Debug("Config watch channel received other config") - return - } - - // Objects retrieved via Get() don't have their Kind or APIVersion set. Objects retrieved via - // Watch(), including those from shared informer event handlers, DO have their Kind and - // APIVersion set. To prevent the DeepEqual() call below from considering Kind or APIVersion - // as the source of a change, set config.Kind and config.APIVersion to match the values from - // the updated Config. - if config.Kind != updated.Kind { - config.Kind = updated.Kind - } - if config.APIVersion != updated.APIVersion { - config.APIVersion = updated.APIVersion - } - - if !reflect.DeepEqual(config, updated) { - s.logger.Info("Detected a config change. Gracefully shutting down") - s.cancelFunc() - } - }, - }) -} - func (s *server) initRestic() error { // warn if restic daemonset does not exist if _, err := s.kubeClient.AppsV1().DaemonSets(s.namespace).Get(restic.DaemonSet, metav1.GetOptions{}); apierrors.IsNotFound(err) { @@ -594,7 +506,7 @@ func (s *server) initRestic() error { return nil } -func (s *server) runControllers(config *api.Config, defaultVolumeSnapshotLocations map[string]*api.VolumeSnapshotLocation) error { +func (s *server) runControllers(defaultVolumeSnapshotLocations map[string]*api.VolumeSnapshotLocation) error { s.logger.Info("Starting controllers") ctx := s.ctx diff --git a/pkg/cmd/server/server_test.go b/pkg/cmd/server/server_test.go index 0128485430..4ad7654920 100644 --- a/pkg/cmd/server/server_test.go +++ b/pkg/cmd/server/server_test.go @@ -18,7 +18,6 @@ package server import ( "testing" - "time" "github.com/stretchr/testify/assert" @@ -29,32 +28,6 @@ import ( arktest "github.com/heptio/ark/pkg/util/test" ) -func TestApplyConfigDefaults(t *testing.T) { - var ( - c = &v1.Config{} - server = &server{ - logger: arktest.NewLogger(), - config: serverConfig{}, - } - ) - - // test defaulting - server.applyConfigDefaults(c) - assert.Equal(t, defaultBackupSyncPeriod, server.config.backupSyncPeriod) - assert.Equal(t, defaultPodVolumeOperationTimeout, server.config.podVolumeOperationTimeout) - assert.Equal(t, defaultRestorePriorities, server.config.restoreResourcePriorities) - - // // make sure defaulting doesn't overwrite real values - server.config.backupSyncPeriod = 4 * time.Minute - server.config.podVolumeOperationTimeout = 5 * time.Second - server.config.restoreResourcePriorities = []string{"a", "b"} - - server.applyConfigDefaults(c) - assert.Equal(t, 4*time.Minute, server.config.backupSyncPeriod) - assert.Equal(t, 5*time.Second, server.config.podVolumeOperationTimeout) - assert.Equal(t, []string{"a", "b"}, server.config.restoreResourcePriorities) -} - func TestArkResourcesExist(t *testing.T) { var ( fakeDiscoveryHelper = &arktest.FakeDiscoveryHelper{} diff --git a/pkg/generated/clientset/versioned/typed/ark/v1/ark_client.go b/pkg/generated/clientset/versioned/typed/ark/v1/ark_client.go index a835394066..fc50d8501b 100644 --- a/pkg/generated/clientset/versioned/typed/ark/v1/ark_client.go +++ b/pkg/generated/clientset/versioned/typed/ark/v1/ark_client.go @@ -29,7 +29,6 @@ type ArkV1Interface interface { RESTClient() rest.Interface BackupsGetter BackupStorageLocationsGetter - ConfigsGetter DeleteBackupRequestsGetter DownloadRequestsGetter PodVolumeBackupsGetter @@ -53,10 +52,6 @@ func (c *ArkV1Client) BackupStorageLocations(namespace string) BackupStorageLoca return newBackupStorageLocations(c, namespace) } -func (c *ArkV1Client) Configs(namespace string) ConfigInterface { - return newConfigs(c, namespace) -} - func (c *ArkV1Client) DeleteBackupRequests(namespace string) DeleteBackupRequestInterface { return newDeleteBackupRequests(c, namespace) } diff --git a/pkg/generated/clientset/versioned/typed/ark/v1/config.go b/pkg/generated/clientset/versioned/typed/ark/v1/config.go deleted file mode 100644 index baaaa1f266..0000000000 --- a/pkg/generated/clientset/versioned/typed/ark/v1/config.go +++ /dev/null @@ -1,157 +0,0 @@ -/* -Copyright 2018 the Heptio Ark contributors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/heptio/ark/pkg/apis/ark/v1" - scheme "github.com/heptio/ark/pkg/generated/clientset/versioned/scheme" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" -) - -// ConfigsGetter has a method to return a ConfigInterface. -// A group's client should implement this interface. -type ConfigsGetter interface { - Configs(namespace string) ConfigInterface -} - -// ConfigInterface has methods to work with Config resources. -type ConfigInterface interface { - Create(*v1.Config) (*v1.Config, error) - Update(*v1.Config) (*v1.Config, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.Config, error) - List(opts meta_v1.ListOptions) (*v1.ConfigList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Config, err error) - ConfigExpansion -} - -// configs implements ConfigInterface -type configs struct { - client rest.Interface - ns string -} - -// newConfigs returns a Configs -func newConfigs(c *ArkV1Client, namespace string) *configs { - return &configs{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the config, and returns the corresponding config object, and an error if there is any. -func (c *configs) Get(name string, options meta_v1.GetOptions) (result *v1.Config, err error) { - result = &v1.Config{} - err = c.client.Get(). - Namespace(c.ns). - Resource("configs"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Configs that match those selectors. -func (c *configs) List(opts meta_v1.ListOptions) (result *v1.ConfigList, err error) { - result = &v1.ConfigList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("configs"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested configs. -func (c *configs) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.client.Get(). - Namespace(c.ns). - Resource("configs"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch() -} - -// Create takes the representation of a config and creates it. Returns the server's representation of the config, and an error, if there is any. -func (c *configs) Create(config *v1.Config) (result *v1.Config, err error) { - result = &v1.Config{} - err = c.client.Post(). - Namespace(c.ns). - Resource("configs"). - Body(config). - Do(). - Into(result) - return -} - -// Update takes the representation of a config and updates it. Returns the server's representation of the config, and an error, if there is any. -func (c *configs) Update(config *v1.Config) (result *v1.Config, err error) { - result = &v1.Config{} - err = c.client.Put(). - Namespace(c.ns). - Resource("configs"). - Name(config.Name). - Body(config). - Do(). - Into(result) - return -} - -// Delete takes name of the config and deletes it. Returns an error if one occurs. -func (c *configs) Delete(name string, options *meta_v1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("configs"). - Name(name). - Body(options). - Do(). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *configs) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("configs"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - -// Patch applies the patch and returns the patched config. -func (c *configs) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Config, err error) { - result = &v1.Config{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("configs"). - SubResource(subresources...). - Name(name). - Body(data). - Do(). - Into(result) - return -} diff --git a/pkg/generated/clientset/versioned/typed/ark/v1/fake/fake_ark_client.go b/pkg/generated/clientset/versioned/typed/ark/v1/fake/fake_ark_client.go index 988261b667..a8cfd8c33e 100644 --- a/pkg/generated/clientset/versioned/typed/ark/v1/fake/fake_ark_client.go +++ b/pkg/generated/clientset/versioned/typed/ark/v1/fake/fake_ark_client.go @@ -36,10 +36,6 @@ func (c *FakeArkV1) BackupStorageLocations(namespace string) v1.BackupStorageLoc return &FakeBackupStorageLocations{c, namespace} } -func (c *FakeArkV1) Configs(namespace string) v1.ConfigInterface { - return &FakeConfigs{c, namespace} -} - func (c *FakeArkV1) DeleteBackupRequests(namespace string) v1.DeleteBackupRequestInterface { return &FakeDeleteBackupRequests{c, namespace} } diff --git a/pkg/generated/clientset/versioned/typed/ark/v1/fake/fake_config.go b/pkg/generated/clientset/versioned/typed/ark/v1/fake/fake_config.go deleted file mode 100644 index 48c11341fe..0000000000 --- a/pkg/generated/clientset/versioned/typed/ark/v1/fake/fake_config.go +++ /dev/null @@ -1,128 +0,0 @@ -/* -Copyright 2018 the Heptio Ark contributors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - ark_v1 "github.com/heptio/ark/pkg/apis/ark/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" -) - -// FakeConfigs implements ConfigInterface -type FakeConfigs struct { - Fake *FakeArkV1 - ns string -} - -var configsResource = schema.GroupVersionResource{Group: "ark.heptio.com", Version: "v1", Resource: "configs"} - -var configsKind = schema.GroupVersionKind{Group: "ark.heptio.com", Version: "v1", Kind: "Config"} - -// Get takes name of the config, and returns the corresponding config object, and an error if there is any. -func (c *FakeConfigs) Get(name string, options v1.GetOptions) (result *ark_v1.Config, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(configsResource, c.ns, name), &ark_v1.Config{}) - - if obj == nil { - return nil, err - } - return obj.(*ark_v1.Config), err -} - -// List takes label and field selectors, and returns the list of Configs that match those selectors. -func (c *FakeConfigs) List(opts v1.ListOptions) (result *ark_v1.ConfigList, err error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(configsResource, configsKind, c.ns, opts), &ark_v1.ConfigList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &ark_v1.ConfigList{ListMeta: obj.(*ark_v1.ConfigList).ListMeta} - for _, item := range obj.(*ark_v1.ConfigList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested configs. -func (c *FakeConfigs) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(configsResource, c.ns, opts)) - -} - -// Create takes the representation of a config and creates it. Returns the server's representation of the config, and an error, if there is any. -func (c *FakeConfigs) Create(config *ark_v1.Config) (result *ark_v1.Config, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(configsResource, c.ns, config), &ark_v1.Config{}) - - if obj == nil { - return nil, err - } - return obj.(*ark_v1.Config), err -} - -// Update takes the representation of a config and updates it. Returns the server's representation of the config, and an error, if there is any. -func (c *FakeConfigs) Update(config *ark_v1.Config) (result *ark_v1.Config, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(configsResource, c.ns, config), &ark_v1.Config{}) - - if obj == nil { - return nil, err - } - return obj.(*ark_v1.Config), err -} - -// Delete takes name of the config and deletes it. Returns an error if one occurs. -func (c *FakeConfigs) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteAction(configsResource, c.ns, name), &ark_v1.Config{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeConfigs) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(configsResource, c.ns, listOptions) - - _, err := c.Fake.Invokes(action, &ark_v1.ConfigList{}) - return err -} - -// Patch applies the patch and returns the patched config. -func (c *FakeConfigs) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *ark_v1.Config, err error) { - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(configsResource, c.ns, name, data, subresources...), &ark_v1.Config{}) - - if obj == nil { - return nil, err - } - return obj.(*ark_v1.Config), err -} diff --git a/pkg/generated/clientset/versioned/typed/ark/v1/generated_expansion.go b/pkg/generated/clientset/versioned/typed/ark/v1/generated_expansion.go index 47768e6b02..66e27b9389 100644 --- a/pkg/generated/clientset/versioned/typed/ark/v1/generated_expansion.go +++ b/pkg/generated/clientset/versioned/typed/ark/v1/generated_expansion.go @@ -22,8 +22,6 @@ type BackupExpansion interface{} type BackupStorageLocationExpansion interface{} -type ConfigExpansion interface{} - type DeleteBackupRequestExpansion interface{} type DownloadRequestExpansion interface{} diff --git a/pkg/generated/informers/externalversions/ark/v1/config.go b/pkg/generated/informers/externalversions/ark/v1/config.go deleted file mode 100644 index 8ba1f90779..0000000000 --- a/pkg/generated/informers/externalversions/ark/v1/config.go +++ /dev/null @@ -1,89 +0,0 @@ -/* -Copyright 2018 the Heptio Ark contributors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - time "time" - - ark_v1 "github.com/heptio/ark/pkg/apis/ark/v1" - versioned "github.com/heptio/ark/pkg/generated/clientset/versioned" - internalinterfaces "github.com/heptio/ark/pkg/generated/informers/externalversions/internalinterfaces" - v1 "github.com/heptio/ark/pkg/generated/listers/ark/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - watch "k8s.io/apimachinery/pkg/watch" - cache "k8s.io/client-go/tools/cache" -) - -// ConfigInformer provides access to a shared informer and lister for -// Configs. -type ConfigInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.ConfigLister -} - -type configInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc - namespace string -} - -// NewConfigInformer constructs a new informer for Config type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewConfigInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredConfigInformer(client, namespace, resyncPeriod, indexers, nil) -} - -// NewFilteredConfigInformer constructs a new informer for Config type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewFilteredConfigInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.ArkV1().Configs(namespace).List(options) - }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.ArkV1().Configs(namespace).Watch(options) - }, - }, - &ark_v1.Config{}, - resyncPeriod, - indexers, - ) -} - -func (f *configInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredConfigInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *configInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&ark_v1.Config{}, f.defaultInformer) -} - -func (f *configInformer) Lister() v1.ConfigLister { - return v1.NewConfigLister(f.Informer().GetIndexer()) -} diff --git a/pkg/generated/informers/externalversions/ark/v1/interface.go b/pkg/generated/informers/externalversions/ark/v1/interface.go index bdeb84abcc..2dfdcbffca 100644 --- a/pkg/generated/informers/externalversions/ark/v1/interface.go +++ b/pkg/generated/informers/externalversions/ark/v1/interface.go @@ -28,8 +28,6 @@ type Interface interface { Backups() BackupInformer // BackupStorageLocations returns a BackupStorageLocationInformer. BackupStorageLocations() BackupStorageLocationInformer - // Configs returns a ConfigInformer. - Configs() ConfigInformer // DeleteBackupRequests returns a DeleteBackupRequestInformer. DeleteBackupRequests() DeleteBackupRequestInformer // DownloadRequests returns a DownloadRequestInformer. @@ -69,11 +67,6 @@ func (v *version) BackupStorageLocations() BackupStorageLocationInformer { return &backupStorageLocationInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } -// Configs returns a ConfigInformer. -func (v *version) Configs() ConfigInformer { - return &configInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} -} - // DeleteBackupRequests returns a DeleteBackupRequestInformer. func (v *version) DeleteBackupRequests() DeleteBackupRequestInformer { return &deleteBackupRequestInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} diff --git a/pkg/generated/informers/externalversions/generic.go b/pkg/generated/informers/externalversions/generic.go index 3973bf1d80..1c6ee169b6 100644 --- a/pkg/generated/informers/externalversions/generic.go +++ b/pkg/generated/informers/externalversions/generic.go @@ -57,8 +57,6 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource return &genericInformer{resource: resource.GroupResource(), informer: f.Ark().V1().Backups().Informer()}, nil case v1.SchemeGroupVersion.WithResource("backupstoragelocations"): return &genericInformer{resource: resource.GroupResource(), informer: f.Ark().V1().BackupStorageLocations().Informer()}, nil - case v1.SchemeGroupVersion.WithResource("configs"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Ark().V1().Configs().Informer()}, nil case v1.SchemeGroupVersion.WithResource("deletebackuprequests"): return &genericInformer{resource: resource.GroupResource(), informer: f.Ark().V1().DeleteBackupRequests().Informer()}, nil case v1.SchemeGroupVersion.WithResource("downloadrequests"): diff --git a/pkg/generated/listers/ark/v1/config.go b/pkg/generated/listers/ark/v1/config.go deleted file mode 100644 index 187e826c22..0000000000 --- a/pkg/generated/listers/ark/v1/config.go +++ /dev/null @@ -1,94 +0,0 @@ -/* -Copyright 2018 the Heptio Ark contributors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/heptio/ark/pkg/apis/ark/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// ConfigLister helps list Configs. -type ConfigLister interface { - // List lists all Configs in the indexer. - List(selector labels.Selector) (ret []*v1.Config, err error) - // Configs returns an object that can list and get Configs. - Configs(namespace string) ConfigNamespaceLister - ConfigListerExpansion -} - -// configLister implements the ConfigLister interface. -type configLister struct { - indexer cache.Indexer -} - -// NewConfigLister returns a new ConfigLister. -func NewConfigLister(indexer cache.Indexer) ConfigLister { - return &configLister{indexer: indexer} -} - -// List lists all Configs in the indexer. -func (s *configLister) List(selector labels.Selector) (ret []*v1.Config, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.Config)) - }) - return ret, err -} - -// Configs returns an object that can list and get Configs. -func (s *configLister) Configs(namespace string) ConfigNamespaceLister { - return configNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// ConfigNamespaceLister helps list and get Configs. -type ConfigNamespaceLister interface { - // List lists all Configs in the indexer for a given namespace. - List(selector labels.Selector) (ret []*v1.Config, err error) - // Get retrieves the Config from the indexer for a given namespace and name. - Get(name string) (*v1.Config, error) - ConfigNamespaceListerExpansion -} - -// configNamespaceLister implements the ConfigNamespaceLister -// interface. -type configNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all Configs in the indexer for a given namespace. -func (s configNamespaceLister) List(selector labels.Selector) (ret []*v1.Config, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1.Config)) - }) - return ret, err -} - -// Get retrieves the Config from the indexer for a given namespace and name. -func (s configNamespaceLister) Get(name string) (*v1.Config, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("config"), name) - } - return obj.(*v1.Config), nil -} diff --git a/pkg/generated/listers/ark/v1/expansion_generated.go b/pkg/generated/listers/ark/v1/expansion_generated.go index 7daa6b8e96..34fab37ae7 100644 --- a/pkg/generated/listers/ark/v1/expansion_generated.go +++ b/pkg/generated/listers/ark/v1/expansion_generated.go @@ -34,14 +34,6 @@ type BackupStorageLocationListerExpansion interface{} // BackupStorageLocationNamespaceLister. type BackupStorageLocationNamespaceListerExpansion interface{} -// ConfigListerExpansion allows custom methods to be added to -// ConfigLister. -type ConfigListerExpansion interface{} - -// ConfigNamespaceListerExpansion allows custom methods to be added to -// ConfigNamespaceLister. -type ConfigNamespaceListerExpansion interface{} - // DeleteBackupRequestListerExpansion allows custom methods to be added to // DeleteBackupRequestLister. type DeleteBackupRequestListerExpansion interface{} diff --git a/pkg/install/config.go b/pkg/install/config.go deleted file mode 100644 index ed74b8bed2..0000000000 --- a/pkg/install/config.go +++ /dev/null @@ -1,35 +0,0 @@ -/* -Copyright 2018 the Heptio Ark contributors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package install - -import ( - arkv1 "github.com/heptio/ark/pkg/apis/ark/v1" -) - -func Config( - namespace string, - pvCloudProviderName string, - pvCloudProviderConfig map[string]string, -) *arkv1.Config { - return &arkv1.Config{ - ObjectMeta: objectMeta(namespace, "default"), - PersistentVolumeProvider: &arkv1.CloudProviderConfig{ - Name: pvCloudProviderName, - Config: pvCloudProviderConfig, - }, - } -}