The base-project is a minimal project that uses the Exekube framework. You can use it as a boilerplate to jump-start your cloud projects.
git clone git@github.com:exekube/base-project.git my-new-project
cd my-new-project
The project has a companion tutorial at https://docs.exekube.com/in-practice/getting-started
git clone https://github.com/exekube/base-project my-new-project
cd my-new-project
alias xk='docker-compose run --rm xk'
export ENV=dev
export ORGANIZATION_ID=<YOUR-GCP-ORGANIZATION-ID>
export BILLING_ID=<YOUR-GCP-BILLING-ID>
- In
docker-compose.yaml
:TF_VAR_project_id: <NEW-GCP-PROJECT-ID>
xk gcloud auth login
xk gcp-project-init
xk up live/dev/infra
xk up
(same asxk up live/dev/k8s
)xk down
Note: Complex, production-grade cloud projects can have tens of project modules deployed into 5+ (dev, stg, prod, test, etc.) environments
The base-project has only 5 project modules:
modules/
├── administration-tasks
│ ├── main.tf
│ └── values.yaml
├── gcp-api-mgmt
│ └── main.tf
├── gke-cluster
│ └── main.tf
├── gke-network
│ └── main.tf
└── helm-initializer
└── main.tf
deployed into 1 environment (dev):
live/
├── dev
│ ├── infra
│ │ ├── api-mgmt
│ │ │ └── terraform.tfvars
│ │ └── network
│ │ └── terraform.tfvars
│ ├── k8s
│ │ ├── cluster
│ │ │ └── terraform.tfvars
│ │ └── kube-system
│ │ ├── administration-tasks
│ │ │ └── terraform.tfvars
│ │ └── helm-initializer
│ │ └── terraform.tfvars
│ └── secrets
│ └── kube-system
│ ├── helm-tls
│ │ ├── ca.cert.pem.example
│ │ ├── helm.cert.pem.example
│ │ ├── helm.key.pem.example
│ │ ├── tiller.cert.pem.example
│ │ └── tiller.key.pem.example
│ ├── owner.json
│ └── owner.json.example
└── terraform.tfvars