-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathdevops.tf
More file actions
63 lines (57 loc) · 3.63 KB
/
Copy pathdevops.tf
File metadata and controls
63 lines (57 loc) · 3.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
## Copyright © 2022-2026, Oracle and/or its affiliates.
## All rights reserved. The Universal Permissive License (UPL), Version 1.0 as shown at http://oss.oracle.com/licenses/upl
# defines trigger to enable specific components based on selection
locals {
enable_cert_manager = var.enable_cert_manager
enable_cluster_autoscaler = !var.use_existing_cluster && (var.np1_enable_autoscaler || var.np2_enable_autoscaler || var.np3_enable_autoscaler)
enable_metrics_server = var.enable_metrics_server
}
# Define what deployment method will be used depending on the cluster type and k8s endpoint access
locals {
any_addon_enabled = local.enable_cert_manager || local.enable_cluster_autoscaler || local.enable_metrics_server
# enhanced clusters use add-on manager
use_addon_manager = var.use_existing_cluster ? true : var.is_enhanced_cluster
object_storage_namespace = var.object_storage_namespace == null ? data.oci_objectstorage_namespace.ns.namespace : var.object_storage_namespace
cluster_autoscaler_test_metadata = {
mode = var.use_existing_cluster ? "unmanaged" : (local.enable_cluster_autoscaler ? "managed" : "disabled")
active = contains(local.existing_addons, "ClusterAutoscaler")
note = var.use_existing_cluster ? "Cluster autoscaler is intentionally unmanaged when use_existing_cluster = true." : (local.enable_cluster_autoscaler ? "Cluster autoscaler is managed only for stack-managed clusters when enabled." : "Cluster autoscaler is disabled for this stack configuration.")
}
existing_cluster_addon_reused_names = sort(compact([
local.use_addon_manager && var.use_existing_cluster && local.enable_cert_manager && contains(local.existing_addons, "CertManager") ? "CertManager" : null,
local.use_addon_manager && var.use_existing_cluster && local.enable_metrics_server && contains(local.existing_addons, "KubernetesMetricsServer") ? "KubernetesMetricsServer" : null,
local.use_addon_manager && var.use_existing_cluster && contains(local.existing_addons, "Istio") ? "Istio" : null
]))
existing_cluster_addon_created_names = sort(compact([
local.use_addon_manager && var.use_existing_cluster && local.enable_cert_manager && !contains(local.existing_addons, "CertManager") ? "CertManager" : null,
local.use_addon_manager && var.use_existing_cluster && local.enable_metrics_server && !contains(local.existing_addons, "KubernetesMetricsServer") ? "KubernetesMetricsServer" : null,
local.use_addon_manager && var.use_existing_cluster && !contains(local.existing_addons, "Istio") ? "Istio" : null
]))
}
# Setup the DevOps project when using DevOps
module "devops_setup" {
source = "./modules/devops/project"
compartment_id = var.devops_compartment_id
project_name = "${local.cluster_name}-deployments"
target_cluster = local.target_cluster
defined_tags = var.defined_tags
}
# Setup the DevOps project cluster environment when using DevOps
module "devops_target_cluster_env" {
source = "./modules/devops/environment"
project_id = module.devops_setup.project_id
target_cluster = local.target_cluster
defined_tags = var.defined_tags
}
# Create policies for the DevOps service to do its work.
module "devops_policies" {
source = "./modules/devops/policies"
devops_compartment_id = var.devops_compartment_id
vcn_compartment_id = local.effective_vcn_compartment_id
cluster_compartment_id = local.effective_cluster_compartment_id
secrets_store_vault_compartment_id = var.secrets_store_vault_compartment_id
cluster_name = local.cluster_name_sanitized
providers = {
oci = oci.home_region
}
}