File tree Expand file tree Collapse file tree 7 files changed +67
-1
lines changed
Expand file tree Collapse file tree 7 files changed +67
-1
lines changed Original file line number Diff line number Diff line change @@ -44,4 +44,9 @@ module "kuberay-service" {
4444 min_gpu_replicas = var. kuberay_min_gpu_replicas
4545 max_gpu_replicas = var. kuberay_max_gpu_replicas
4646 serve_config_v2 = var. kuberay_serve_config_v2
47- }
47+ }
48+
49+ module "opa_gatekeeper" {
50+ source = " ../modules/opa_gatekeeper"
51+ count = var. enable_opa_gatekeeper ? 1 : 0
52+ }
Original file line number Diff line number Diff line change @@ -99,3 +99,5 @@ kuberay_max_gpu_replicas = 8
9999# Enable to deploy KubeRay Operator with RayService CR
100100enable_kuberay_service = false
101101
102+ # enable OPA gatekeeper (default: false)
103+ # enable_opa_gatekeeper = true
Original file line number Diff line number Diff line change @@ -423,3 +423,9 @@ variable "filesystem_csi" {
423423 })
424424 default = {}
425425}
426+
427+ variable "enable_opa_gatekeeper" {
428+ description = " Enable OPA Gatekeeper"
429+ type = bool
430+ default = false
431+ }
Original file line number Diff line number Diff line change 1+ # Module for OPA Gatekeeper
2+
3+ This is module for ` k8s-training ` that installs OPA Gatekeeper and
4+ optionally install a config/manifest of configs for it.
Original file line number Diff line number Diff line change 1+ data "http" "gatekeeper_url" {
2+ url = " https://raw.githubusercontent.com/open-policy-agent/gatekeeper/${ var . gk_version } /deploy/gatekeeper.yaml"
3+ }
4+
5+ data "kubectl_file_documents" "gatekeeper_install_documents" {
6+ content = data. http . gatekeeper_url . response_body
7+ }
8+
9+ # Use kubectl_file_documents to split multi-document into the kubectl_manifest resource
10+ resource "kubectl_manifest" "gatekeeper_manifests" {
11+ for_each = data. kubectl_file_documents . gatekeeper_install_documents . manifests
12+ yaml_body = each. value
13+ }
14+
15+ data "kubectl_file_documents" "gatekeeper_config_manifests" {
16+ content = var. configs
17+ }
18+
19+ resource "kubectl_manifest" "gatekeeper_configs" {
20+ for_each = data. kubectl_file_documents . gatekeeper_config_manifests . manifests
21+ yaml_body = each. value
22+ depends_on = [
23+ kubectl_manifest . gatekeeper_manifests
24+ ]
25+ }
Original file line number Diff line number Diff line change 1+ terraform {
2+ required_providers {
3+ http = {
4+ source = " hashicorp/http"
5+ version = " 3.5.0"
6+ }
7+ kubectl = {
8+ source = " gavinbunney/kubectl"
9+ version = " >=1.19.0"
10+ }
11+ }
12+ }
Original file line number Diff line number Diff line change 1+ variable "configs" {
2+ description = " A YAML file representing a config manifest for Gatekeeper"
3+ type = string
4+ default = " "
5+ }
6+
7+ variable "gk_version" {
8+ description = " A gatekeeper version string"
9+ type = string
10+ default = " v3.21.0"
11+ }
12+
You can’t perform that action at this time.
0 commit comments