Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deployment Interfaces #19

Open
ethernetdan opened this issue Feb 5, 2016 · 2 comments
Open

Deployment Interfaces #19

ethernetdan opened this issue Feb 5, 2016 · 2 comments
Assignees

Comments

@ethernetdan
Copy link
Member

I propose the creation of 2 interfaces for managing and deploying Deployments, Deployer and Manager.

Deployer

// Deployer can deploy Deployments
type Deployer interface {
    // Deploy creates Deployment using the name requested. The name should be stored so that it can be queried by Manager.
    // Returns error if Deployment exists and replace is false.
    Deploy(d *Deployment, name string, replace bool) error
}

Manager

// Manager provides functionality to manipulate running Deployments
type Manager interface {
    Deployer
    // Deployment returns the named Deployment. Returns ErrNotFound if doesn't exist.
    Deployment(name string) (*Deployment, error)
    // Stop will remove the requested Deployment
    Stop(name string) error
}
@ethernetdan ethernetdan self-assigned this Feb 5, 2016
@ethernetdan
Copy link
Member Author

It looks like Manager will require some extra work because it tracks Deployments that are already created. Considering I'm not completely convinced about this deployment model, let's implement Deployer and hold off on Manager.

Deployer should be able to be implemented for Kubernetes by looping through each object type in a Deployment and creating each object.

@ethernetdan ethernetdan mentioned this issue Feb 5, 2016
@ethernetdan
Copy link
Member Author

We probably want to add a mechanism to get updates after objects are created. For example, waiting for a cloud provider to provision the Ingress for Services of type LoadBalancer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants