Skip to content
/ thesis Public

Monorepo for thesis including various Configurations regarding Kubernetes

License

Notifications You must be signed in to change notification settings

isihu/thesis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This Repo

This monorepository is part of my Bachelor's Thesis. It holds different configuration files all related to Kubernetes, ArgoCD, Terraform and Crossplane. Its primary use is to compare Crossplane and Terraform by implementing the same EKS Setup with each of them. The Setups then point to the directories in this Repository via ArgoCD Applications.

It also has an Implementation of a 'Tenant'-Ressource for Kubernetes in Crossplane. This ressource contains all the ressources to enable a team to deploy into a specific namespace on a cluster.

This repo can also serve as an example for using Crossplane, Terraform and ArgoCD.

This is the directory structure:

.
├── clustertools
│   ├── crossplane
│   │   └── xrs
│   │       ├── eks_setup
│   │       └── tenant
│   └── external-secrets
├── remote_repos
│   ├── remote_repo_team_1
│   │   ├── base
│   │   └── overlays
│   │       ├── dev
│   │       └── prod
│   └── remote_repo_team_2
│       ├── base
│       └── overlays
│           ├── dev
│           └── prod
├── root
│   ├── base
│   └── overlays
│       ├── dev
│       └── prod
├── tenants
└── terraform
          ├── terraform_my_eks
          │   └── argocd_config
          └── workspaces
              ├── int
              └── prod

The Terraform directory contains the EKS Setup in Terraform.

The root directory contains 2 ArgoCD ApplicationSets further configured by kustomize. One ApplicationSet applies the resources of the clustertools folder, the other will create the applications based on the config files in the tenants folder. They again point to this same repo and the folder remote_repos.

Under clustertools/crossplane/xrs/eks_setup a Crossplane Composite Resource is defined and composed. This XR describes the same resources as the Terraform Setup.

The Tenant ressource lies in clustertools/crossplane/xrs/tenant.

On a high level, the folders point to each other via ArgoCD Applications like so:

(terraform|crossplane) -> root -> clustertools
(terraform|crossplane) -> root -> tenants -> remote_repos

About

Monorepo for thesis including various Configurations regarding Kubernetes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages