Skip to content

Commit

Permalink
Merge branch 'master' into 1527_traunc_fw
Browse files Browse the repository at this point in the history
  • Loading branch information
NissesSenap committed Jun 5, 2023
2 parents 470f742 + 2fe1715 commit a2b70dd
Show file tree
Hide file tree
Showing 31 changed files with 360 additions and 20 deletions.
6 changes: 5 additions & 1 deletion .github/renovate.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@
"stabilityDays":0
},
"separateMajorMinor":false,
"constraints": {
"go": "1.18"
},
"packageRules": [
{
"matchPaths": ["examples/**", "test/**", ".github/**"],
Expand All @@ -35,7 +38,8 @@
"postUpdateOptions": ["gomodTidy"]
},
{
"matchPackageNames": ["go"],
"matchDatasources": ["golang-version"],
"rangeStrategy": "bump",
"allowedVersions": "<1.19.0",
"postUpdateOptions": ["gomodTidy"]
},
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
- id: variables
run: |
MAKEFILE=$(find . -name Makefile -print -quit)
if [ ! -z "$MAKEFILE" ]; then
if [ -z "$MAKEFILE" ]; then
echo dev-tools=gcr.io/cloud-foundation-cicd/cft/developer-tools:1 >> "$GITHUB_OUTPUT"
else
VERSION=$(grep "DOCKER_TAG_VERSION_DEVELOPER_TOOLS := " $MAKEFILE | cut -d\ -f3)
Expand Down
2 changes: 1 addition & 1 deletion autogen/main/cluster.tf.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ resource "google_container_cluster" "primary" {
disabled = var.disable_default_snat
}

min_master_version = var.release_channel == null || var.release_channel == "UNSPECIFIED" ? local.master_version : null
min_master_version = var.release_channel == null || var.release_channel == "UNSPECIFIED" ? local.master_version : var.kubernetes_version == "latest" ? null : var.kubernetes_version

{% if beta_cluster and autopilot_cluster != true %}
dynamic "cluster_telemetry" {
Expand Down
2 changes: 1 addition & 1 deletion cluster.tf
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ resource "google_container_cluster" "primary" {
disabled = var.disable_default_snat
}

min_master_version = var.release_channel == null || var.release_channel == "UNSPECIFIED" ? local.master_version : null
min_master_version = var.release_channel == null || var.release_channel == "UNSPECIFIED" ? local.master_version : var.kubernetes_version == "latest" ? null : var.kubernetes_version

# only one of logging/monitoring_service or logging/monitoring_config can be specified
logging_service = local.logmon_config_is_set ? null : var.logging_service
Expand Down
2 changes: 1 addition & 1 deletion examples/acm-terraform-blog-part1/terraform/gke.tf
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ module "enabled_google_apis" {

module "gke" {
source = "terraform-google-modules/kubernetes-engine/google"
version = "~> 25.0"
version = "~> 26.0"
project_id = module.enabled_google_apis.project_id
name = "sfl-acm-part1"
region = var.region
Expand Down
2 changes: 1 addition & 1 deletion examples/acm-terraform-blog-part2/terraform/gke.tf
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ module "enabled_google_apis" {

module "gke" {
source = "terraform-google-modules/kubernetes-engine/google"
version = "~> 25.0"
version = "~> 26.0"
project_id = module.enabled_google_apis.project_id
name = "sfl-acm-part2"
region = var.region
Expand Down
4 changes: 2 additions & 2 deletions examples/acm-terraform-blog-part3/terraform/gke.tf
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ module "enabled_google_apis" {

module "gke" {
source = "terraform-google-modules/kubernetes-engine/google//modules/beta-public-cluster"
version = "~> 25.0"
version = "~> 26.0"
project_id = module.enabled_google_apis.project_id
name = "sfl-acm-part3"
region = var.region
Expand All @@ -48,7 +48,7 @@ module "gke" {

module "wi" {
source = "terraform-google-modules/kubernetes-engine/google//modules/workload-identity"
version = "~> 25.0"
version = "~> 26.0"
gcp_sa_name = "cnrmsa"
cluster_name = module.gke.name
name = "cnrm-controller-manager"
Expand Down
2 changes: 1 addition & 1 deletion examples/safer_cluster_iap_bastion/network.tf
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ module "vpc" {

module "cloud-nat" {
source = "terraform-google-modules/cloud-nat/google"
version = "~> 2.0"
version = "~> 3.0"
project_id = module.enabled_google_apis.project_id
region = var.region
router = "safer-router"
Expand Down
49 changes: 49 additions & 0 deletions examples/simple_regional_private_with_cluster_version/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Simple Regional Cluster

This example illustrates how to create a simple private cluster with beta features.

[^]: (autogen_docs_start)

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|:----:|:-----:|:-----:|
| cloudrun | Boolean to enable / disable CloudRun | string | `"true"` | no |
| cluster\_name\_suffix | A suffix to append to the default cluster name | string | `""` | no |
| compute\_engine\_service\_account | Service account to associate to the nodes in the cluster | string | n/a | yes |
| credentials\_path | The path to the GCP credentials JSON file | string | n/a | yes |
| ip\_range\_pods | The secondary ip range to use for pods | string | n/a | yes |
| ip\_range\_services | The secondary ip range to use for pods | string | n/a | yes |
| istio | Boolean to enable / disable Istio | string | `"true"` | no |
| network | The VPC network to host the cluster in | string | n/a | yes |
| project\_id | The project ID to host the cluster in | string | n/a | yes |
| region | The region to host the cluster in | string | n/a | yes |
| subnetwork | The subnetwork to host the cluster in | string | n/a | yes |

## Outputs

| Name | Description |
|------|-------------|
| ca\_certificate | |
| client\_token | |
| cluster\_name | Cluster name |
| credentials\_path | |
| ip\_range\_pods | The secondary IP range used for pods |
| ip\_range\_services | The secondary IP range used for services |
| kubernetes\_endpoint | |
| location | |
| master\_kubernetes\_version | The master Kubernetes version |
| network | |
| project\_id | |
| region | |
| service\_account | The service account to default running nodes as if not overridden in `node_pools`. |
| subnetwork | |
| zones | List of zones in which the cluster resides |

[^]: (autogen_docs_end)

To provision this example, run the following from within this directory:
- `terraform init` to get the plugins
- `terraform plan` to see the infrastructure plan
- `terraform apply` to apply the infrastructure build
- `terraform destroy` to destroy the built infrastructure
76 changes: 76 additions & 0 deletions examples/simple_regional_private_with_cluster_version/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
/**
* Copyright 2018 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

locals {
cluster_type = "simple-regional-private"
}

data "google_client_config" "default" {}

provider "kubernetes" {
host = "https://${module.gke.endpoint}"
token = data.google_client_config.default.access_token
cluster_ca_certificate = base64decode(module.gke.ca_certificate)
}

data "google_compute_subnetwork" "subnetwork" {
name = var.subnetwork
project = var.project_id
region = var.region
}

module "gke" {
source = "../../modules/private-cluster/"
project_id = var.project_id
name = "${local.cluster_type}-cluster${var.cluster_name_suffix}"
regional = true
region = var.region
network = var.network
kubernetes_version = var.kubernetes_version
subnetwork = var.subnetwork
ip_range_pods = var.ip_range_pods
ip_range_services = var.ip_range_services
create_service_account = false
service_account = var.compute_engine_service_account
enable_private_endpoint = true
enable_private_nodes = true
master_ipv4_cidr_block = "172.16.0.0/28"
default_max_pods_per_node = 20
remove_default_node_pool = true

node_pools = [
{
name = "pool-01"
min_count = 1
max_count = 100
local_ssd_count = 0
disk_size_gb = 100
disk_type = "pd-standard"
auto_repair = true
auto_upgrade = true
service_account = var.compute_engine_service_account
preemptible = false
max_pods_per_node = 12
},
]

master_authorized_networks = [
{
cidr_block = data.google_compute_subnetwork.subnetwork.ip_cidr_range
display_name = "VPC"
},
]
}
35 changes: 35 additions & 0 deletions examples/simple_regional_private_with_cluster_version/outputs.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
/**
* Copyright 2018 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

output "kubernetes_endpoint" {
sensitive = true
value = module.gke.endpoint
}

output "client_token" {
sensitive = true
value = base64encode(data.google_client_config.default.access_token)
}

output "ca_certificate" {
value = module.gke.ca_certificate
}

output "service_account" {
description = "The default service account used for running nodes."
value = module.gke.service_account
}

54 changes: 54 additions & 0 deletions examples/simple_regional_private_with_cluster_version/variables.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
/**
* Copyright 2018 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

variable "project_id" {
description = "The project ID to host the cluster in"
}

variable "cluster_name_suffix" {
description = "A suffix to append to the default cluster name"
default = ""
}

variable "region" {
description = "The region to host the cluster in"
}

variable "network" {
description = "The VPC network to host the cluster in"
}

variable "subnetwork" {
description = "The subnetwork to host the cluster in"
}

variable "ip_range_pods" {
description = "The secondary ip range to use for pods"
}

variable "ip_range_services" {
description = "The secondary ip range to use for services"
}

variable "compute_engine_service_account" {
description = "Service account to associate to the nodes in the cluster"
}

variable "kubernetes_version" {
type = string
description = "The Kubernetes version of the masters. If set to 'latest' it will pull latest available version in the selected region."
default = "latest"
}
28 changes: 28 additions & 0 deletions examples/simple_regional_private_with_cluster_version/versions.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/**
* Copyright 2021 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

terraform {
required_providers {
google = {
source = "hashicorp/google"
version = "~> 4.0"
}
kubernetes = {
source = "hashicorp/kubernetes"
}
}
required_version = ">= 0.13"
}
1 change: 1 addition & 0 deletions examples/simple_zonal_with_acm/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ After applying the Terraform configuration, you can run the following commands t
| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| cluster\_name\_suffix | A suffix to append to the default cluster name | `string` | `""` | no |
| enable\_fleet\_feature | Whether to enable the ACM feature on the fleet. | `bool` | `true` | no |
| project\_id | The project ID to host the cluster in | `string` | n/a | yes |
| region | The region to host the cluster in | `string` | `"us-central1"` | no |
| zone | The zone to host the cluster in | `string` | `"us-central1-a"` | no |
Expand Down
4 changes: 3 additions & 1 deletion examples/simple_zonal_with_acm/acm.tf
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,11 @@ module "acm" {
sync_branch = "1.0.0"
policy_dir = "foo-corp"

enable_fleet_feature = var.enable_fleet_feature

secret_type = "ssh"

policy_bundles = ["https://github.com/GoogleCloudPlatform/acm-policy-controller-library/bundles/policy-essentials-v2022#e4094aacb91a35b0219f6f4cf6a31580e85b3c28"]
policy_bundles = ["https://github.com/GoogleCloudPlatform/acm-policy-controller-library/bundles/policy-essentials-v2022?ref=59f4695394285078f7c2029ec7d0f9ed1d6d700a"]

create_metrics_gcp_sa = true
}
6 changes: 6 additions & 0 deletions examples/simple_zonal_with_acm/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,9 @@ variable "zone" {
description = "The zone to host the cluster in"
default = "us-central1-a"
}

variable "enable_fleet_feature" {
description = "Whether to enable the ACM feature on the fleet."
type = bool
default = true
}
4 changes: 2 additions & 2 deletions modules/acm/creds.tf
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,12 @@ resource "tls_private_key" "k8sop_creds" {
rsa_bits = 4096
}

# Wait for the ACM operator to create the namespace
# Wait for ACM
resource "time_sleep" "wait_acm" {
count = (var.create_ssh_key == true || var.ssh_auth_key != null || var.enable_policy_controller || var.enable_config_sync) ? 1 : 0
depends_on = [google_gke_hub_feature_membership.main]

create_duration = "300s"
create_duration = (length(var.policy_bundles) > 0) ? "600s" : "300s"
}

resource "google_service_account_iam_binding" "ksa_iam" {
Expand Down
2 changes: 1 addition & 1 deletion modules/beta-autopilot-private-cluster/cluster.tf
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ resource "google_container_cluster" "primary" {
disabled = var.disable_default_snat
}

min_master_version = var.release_channel == null || var.release_channel == "UNSPECIFIED" ? local.master_version : null
min_master_version = var.release_channel == null || var.release_channel == "UNSPECIFIED" ? local.master_version : var.kubernetes_version == "latest" ? null : var.kubernetes_version

cluster_autoscaling {
dynamic "auto_provisioning_defaults" {
Expand Down
Loading

0 comments on commit a2b70dd

Please sign in to comment.