etcd: kubedb.dev/etcd/pkg/controller Index | Files

package controller

import "kubedb.dev/etcd/pkg/controller"

Copyright The KubeDB Authors.

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.

Copyright The KubeDB Authors.

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.

Copyright The KubeDB Authors.

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.

Copyright The KubeDB Authors.

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.

Copyright The KubeDB Authors.

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.

Copyright The KubeDB Authors.

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.

Copyright The KubeDB Authors.

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.

Copyright The KubeDB Authors.

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.

Copyright The KubeDB Authors.

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.

Copyright The KubeDB Authors.

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.

Copyright The KubeDB Authors.

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.

Copyright The KubeDB Authors.

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.

Copyright The KubeDB Authors.

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.

Copyright The KubeDB Authors.

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.

Copyright The KubeDB Authors.

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.

Copyright The KubeDB Authors.

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.

Index

Package Files

appbinding.go cluster.go config.go controller.go dormant_database.go etcd.go job.go member.go monitor.go pod.go rbac.go reconcile.go secret.go service.go snapshot.go workqueue.go

Constants

const (
    // EtcdClientPort is the client port on client service and etcd nodes.
    EtcdClientPort = 2379
    EtcdPeerPort   = 2380

    ExporterSecretPath = "/var/run/secrets/kubedb.com/"
)
const (
    KeyEtcdUser     = "user"
    KeyEtcdPassword = "password"
)
const TolerateUnreadyEndpointsAnnotation = "service.alpha.kubernetes.io/tolerate-unready-endpoints"

Variables

var ErrLostQuorum = errors.New("lost quorum")

type Cluster Uses

type Cluster struct {
    // contains filtered or unexported fields
}

func (*Cluster) Delete Uses

func (c *Cluster) Delete()

func (*Cluster) Update Uses

func (c *Cluster) Update(cl *api.Etcd)

type Controller Uses

type Controller struct {
    amc.Config
    *amc.Controller
    // contains filtered or unexported fields
}

func New Uses

func New(
    clientConfig *rest.Config,
    client kubernetes.Interface,
    apiExtKubeClient crd_cs.ApiextensionsV1beta1Interface,
    extClient cs.Interface,
    dc dynamic.Interface,
    appCatalogClient appcat_cs.Interface,
    promClient pcm.MonitoringV1Interface,
    cronController snapc.CronControllerInterface,
    opt amc.Config,
    recorder record.EventRecorder,
) *Controller

func (*Controller) CreateClientService Uses

func (c *Controller) CreateClientService(cl *Cluster) error

func (*Controller) CreatePeerService Uses

func (c *Controller) CreatePeerService(cl *Cluster) error

func (*Controller) EnsureCustomResourceDefinitions Uses

func (c *Controller) EnsureCustomResourceDefinitions() error

EnsureCustomResourceDefinitions ensures CRD for MySQl, DormantDatabase and Snapshot

func (*Controller) GetDatabase Uses

func (c *Controller) GetDatabase(meta metav1.ObjectMeta) (runtime.Object, error)

func (*Controller) GetSnapshotter Uses

func (c *Controller) GetSnapshotter(snapshot *api.Snapshot) (*batch.Job, error)

func (*Controller) Init Uses

func (c *Controller) Init() error

InitInformer initializes Etcd, DormantDB amd Snapshot watcher

func (Controller) NewCluster Uses

func (c Controller) NewCluster(etcd *api.Etcd)

func (*Controller) Run Uses

func (c *Controller) Run(stopCh <-chan struct{})

Blocks caller. Intended to be called as a Go routine.

func (*Controller) RunControllers Uses

func (c *Controller) RunControllers(stopCh <-chan struct{})

RunControllers runs queue.worker

func (*Controller) SetDatabaseStatus Uses

func (c *Controller) SetDatabaseStatus(meta metav1.ObjectMeta, phase api.DatabasePhase, reason string) error

func (*Controller) StartAndRunControllers Uses

func (c *Controller) StartAndRunControllers(stopCh <-chan struct{})

StartAndRunControllers starts InformetFactory and runs queue.worker

func (*Controller) UpsertDatabaseAnnotation Uses

func (c *Controller) UpsertDatabaseAnnotation(meta metav1.ObjectMeta, annotation map[string]string) error

func (*Controller) ValidateSnapshot Uses

func (c *Controller) ValidateSnapshot(snapshot *api.Snapshot) error

func (*Controller) WaitUntilPaused Uses

func (c *Controller) WaitUntilPaused(drmn *api.DormantDatabase) error

func (*Controller) WipeOutDatabase Uses

func (c *Controller) WipeOutDatabase(drmn *api.DormantDatabase) error

func (*Controller) WipeOutSnapshot Uses

func (c *Controller) WipeOutSnapshot(snapshot *api.Snapshot) error

type Event Uses

type Event struct {
    Type   kwatch.EventType
    Object *api.Etcd
}

type OperatorConfig Uses

type OperatorConfig struct {
    amc.Config

    ClientConfig     *rest.Config
    KubeClient       kubernetes.Interface
    APIExtKubeClient crd_cs.ApiextensionsV1beta1Interface
    DBClient         cs.Interface
    DynamicClient    dynamic.Interface
    AppCatalogClient appcat_cs.Interface
    PromClient       pcm.MonitoringV1Interface
    CronController   snapc.CronControllerInterface
}

func NewOperatorConfig Uses

func NewOperatorConfig(clientConfig *rest.Config) *OperatorConfig

func (*OperatorConfig) New Uses

func (c *OperatorConfig) New() (*Controller, error)

Package controller imports 68 packages (graph) and is imported by 8 packages. Updated 2019-11-17. Refresh now. Tools for package owners.