From 45449648dc31cc01b14caf739ac77d535edcc268 Mon Sep 17 00:00:00 2001 From: Jorge Morales Pou Date: Thu, 10 Apr 2025 18:53:45 +0200 Subject: [PATCH 1/2] chore: educates-gitops for workshops module --- README.md | 3 +- .../educates-gitops/05-additional-files.tf | 7 + .../10-educates-gitops-workshops.tf | 192 ++++++++++++++++++ platform/educates-gitops/outputs.tf | 6 + platform/educates-gitops/variables.tf | 34 ++++ platform/educates-gitops/versions.tf | 9 + 6 files changed, 250 insertions(+), 1 deletion(-) create mode 100644 platform/educates-gitops/05-additional-files.tf create mode 100644 platform/educates-gitops/10-educates-gitops-workshops.tf create mode 100644 platform/educates-gitops/outputs.tf create mode 100644 platform/educates-gitops/variables.tf create mode 100644 platform/educates-gitops/versions.tf diff --git a/README.md b/README.md index cc82f1b..daffe1e 100644 --- a/README.md +++ b/README.md @@ -34,4 +34,5 @@ Examples: - [ ] EKS root module - [ ] Adopt terraform-docs for modules https://terraform-docs.io/ - [x] token-sa-kubeconfig module (working with EKS and GKE) -- [ ] educates-gitops module \ No newline at end of file +- [x] educates-gitops module +- [ ] sample root-module with educates-gitops \ No newline at end of file diff --git a/platform/educates-gitops/05-additional-files.tf b/platform/educates-gitops/05-additional-files.tf new file mode 100644 index 0000000..80fccfc --- /dev/null +++ b/platform/educates-gitops/05-additional-files.tf @@ -0,0 +1,7 @@ +# Install additional files if they are provided + +# Install theme if file exists +resource "kubectl_manifest" "theme" { + count = fileexists(var.gitopsConfig.themeFile) ? 1 : 0 + yaml_body = file(var.gitopsConfig.themeFile) +} \ No newline at end of file diff --git a/platform/educates-gitops/10-educates-gitops-workshops.tf b/platform/educates-gitops/10-educates-gitops-workshops.tf new file mode 100644 index 0000000..628a6cf --- /dev/null +++ b/platform/educates-gitops/10-educates-gitops-workshops.tf @@ -0,0 +1,192 @@ +######### +## educates ns and rbac +######### +resource "kubectl_manifest" "namespace_gitops_installs" { + yaml_body = < Date: Thu, 10 Apr 2025 19:27:28 +0200 Subject: [PATCH 2/2] Adding terraform-docs to the module --- platform/educates-gitops/REAME.md | 46 +++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 platform/educates-gitops/REAME.md diff --git a/platform/educates-gitops/REAME.md b/platform/educates-gitops/REAME.md new file mode 100644 index 0000000..6a03ba6 --- /dev/null +++ b/platform/educates-gitops/REAME.md @@ -0,0 +1,46 @@ +# Terraform module for Educates-gitops + +This terraform module will deploy [Educates-gitops](https://github.com/educates/educates-workshop-gitops-configurer) on an Educates cluster as a Carvel Application + +## Requirements + +| Name | Version | +|------|---------| +| [terraform](#requirement\_terraform) | >= 1.5.7 , < 2.0.0 | +| [kubectl](#requirement\_kubectl) | 2.0.4 | + +## Providers + +| Name | Version | +|------|---------| +| [kubectl](#provider\_kubectl) | 2.0.4 | +| [time](#provider\_time) | n/a | + +## Modules + +No modules. + +## Resources + +| Name | Type | +|------|------| +| [kubectl_manifest.clusterrolebinding_gitops_installs](https://registry.terraform.io/providers/alekc/kubectl/2.0.4/docs/resources/manifest) | resource | +| [kubectl_manifest.gitops_app](https://registry.terraform.io/providers/alekc/kubectl/2.0.4/docs/resources/manifest) | resource | +| [kubectl_manifest.gitops_credentials](https://registry.terraform.io/providers/alekc/kubectl/2.0.4/docs/resources/manifest) | resource | +| [kubectl_manifest.namespace_gitops_installs](https://registry.terraform.io/providers/alekc/kubectl/2.0.4/docs/resources/manifest) | resource | +| [kubectl_manifest.serviceaccount_gitops_installs](https://registry.terraform.io/providers/alekc/kubectl/2.0.4/docs/resources/manifest) | resource | +| [kubectl_manifest.theme](https://registry.terraform.io/providers/alekc/kubectl/2.0.4/docs/resources/manifest) | resource | +| [time_sleep.k8s_gitops_rbac](https://registry.terraform.io/providers/hashicorp/time/latest/docs/resources/sleep) | resource | + +## Inputs + +| Name | Description | Type | Default | Required | +|------|-------------|------|---------|:--------:| +| [gitopsApp](#input\_gitopsApp) | n/a |
object({
namespace = optional(string, "workshop-gitops")
configFile = optional(string, "workshop-gitops-config.yaml")
})
| `{}` | no | +| [gitopsConfig](#input\_gitopsConfig) | n/a |
object({
configRepo = optional(string, "https://github.com/educates/educates-workshop-gitops-configurer")
environment = optional(string, "sample-environment")
ref = optional(string, "origin/main")
subPathPrefix = optional(string, "config")
syncPeriod = optional(string, "0h10m0s")
overlaysBundle = optional(string, "ghcr.io/educates/educates-workshop-gitops-configurer:main")
github = optional(object({
username = optional(string, "")
password = optional(string, "")
}))
themeFile = optional(string, "theme.yaml")
})
|
{
"github": {}
}
| no | + +## Outputs + +| Name | Description | +|------|-------------| +| [educates-gitops](#output\_educates-gitops) | n/a |