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

Automating infrastructure deployments for CCO-managed clusters #69

Open
2 of 5 tasks
pwalsh opened this issue Nov 10, 2019 · 6 comments
Open
2 of 5 tasks

Automating infrastructure deployments for CCO-managed clusters #69

pwalsh opened this issue Nov 10, 2019 · 6 comments
Assignees

Comments

@pwalsh
Copy link
Contributor

pwalsh commented Nov 10, 2019

Job story

When I standup a cluster of CKANs managed by CCO, I want to be able to automate the required infrastructure deployment in a platform-agnostic way, so I have a consistent foundation for infrastructure resource management that is code-driven and does not require manual configuration steps.

Context

Currently, we have a range of manual steps that are under- or un-documented, to run CKAN Cloud, and much of these are related to standing up the k8s configuration required to run CCO within. Further, we now have CCO deployments on Azure, AWS and GCP, and each of these deployment targets has requirements for infrastructure configuration that we want to ensure are reproducible in code. A tool like Terraform may provide us with the necessary foundation to write platform-agnostic deployments for CCO infrastructure, at least targeting Azure, AWS, and GCP.

Acceptance criteria

  • A CLI and a method of configuration for standing up k8s-managed clusters in which to run CCO
    • Prefer an existing tool like Terraform that is designed for this
    • Documented support for Azure, AWS, GCP
  • Default values/configuration for this CLI as part of the CCO repository or else another repository for this specific purpose
  • CCO Documentation that walks the user through exactly how this tool automates configuration of the required infrastructure, and describes the various configuration points available
@pwalsh
Copy link
Contributor Author

pwalsh commented Nov 20, 2019

Responsibilities of Terraform

In standing up an environment for managing a CKAN cluster, Terraform will have the following responsibilities:

  • Standup k8s with default configuration of k8s-specific resources
  • Standup external cloud services as appropriate for the provider
    • DB
    • Search
    • Cache
    • Object storage
  • Standup and configure a DNS provider (cloud platform native, or cloudflare)
  • Configure and deploy a service into the cluster that provides kubectl, cco and jenkins
    • Requires setting up dockerfile for this

In order to do this, the system administrator will have to have created a project (or similar) in advance on the cloud platform, so that Terraform has the appropriate user with permissions/keys to perform all required tasks.

We will ship a default terraform configuration with support for:

  • AWS
  • Azure
  • GCP

And document ways to modify these defaults if needed.

@kimwdavidson
Copy link
Collaborator

kimwdavidson commented Nov 25, 2019

Esteban to breakdown ticket

  • reusable terraform piece
  • make it work for GSA environment
  • create an image of the management operator

@pwalsh
Copy link
Contributor Author

pwalsh commented Nov 25, 2019

@estebanruseler @kimwdavidson

@kimwdavidson
Copy link
Collaborator

move to backlog

@pwalsh
Copy link
Contributor Author

pwalsh commented Jan 22, 2020

@akariv @zelima is this in a state for me to do acceptance testing yet?

@zelima
Copy link
Collaborator

zelima commented Jan 22, 2020

We are still working on docs. Should have ready tomorrow

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

No branches or pull requests

4 participants