solutions/client-landing-zone/setters.yaml (52 lines of code) (raw):

# 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. ######### apiVersion: v1 kind: ConfigMap metadata: name: setters annotations: config.kubernetes.io/local-config: "true" data: ########################## # Instructions ########################## # # Follow instructions specific to each section. # Project IDs must follow the rules below, additionally, # if a gatekeeper policy is used to enforce specific naming conventions, refer to its documentation. # - All IDs should be universally unique. # - Must be 6 to 30 characters in length. # - Can only contain lowercase letters, numbers, and hyphens. # - Must start with a letter. # - Cannot end with a hyphen. # - Cannot be in use or previously used; this includes deleted projects. # - Cannot contain restricted strings, such as google and ssl. # ########################## # Client ########################## # # Name for the client, lowercase only # customization: required client-name: 'client1' # # Clients Billing Account ID to associate with the client-landing-zone resources. The client-name-projects-sa will need billing user role permission granted. # customization: required client-billing-id: "AAAAAA-BBBBBB-CCCCCC" # # group to grant viewer permission on client folder # customization: required client-folderviewer: 'group:client1@example.com' # ########################## # Logging ########################## # # logging project id created in core-landing-zone # customization: required logging-project-id: logging-project-12345 # # LoggingLogBucket retention settings # Set the number of days to retain logs in Cloud Logging buckets # Set the lock mechanism on the bucket to: true or false # After a retention policy is locked (true), you can't delete the bucket until every log in the bucket has fulfilled the bucket's retention period # AU-9 PROTECTION OF AUDIT INFORMATION # AU-11 AUDIT RECORD RETENTION # The values below must be modified to retention-locking-policy: true in a Production setting to implement above mentioned security controls. # customization: required retention-locking-policy: "false" # # The values below must be modified to retention-in-days: 365 in a Production setting to implement above mentioned security controls. # customization: required retention-in-days: "1" # ########################## # Network Host Project (standard) ########################## # # the distinct network host projects that will be created for each classification # customization: required host-project-id-nonp: net-host-project-nonp-12345 host-project-id-pbmm: net-host-project-pbmm-12345 # # Org policy exception to allow vpc peering between a defined list and the host project. # The file is located here client-folder/standard/application-infrastructure/host-project/org-policies/exceptions/compute-restrict-vpc-peering-except-host-project.yaml # Warning ! this file is commented out by default. You will need to customize this setter only if you enable it. # The allowed/denied list of networks must be identified in the form: # under:organizations/ORGANIZATION_ID, under:folders/FOLDER_ID, under:projects/PROJECT_ID, # or projects/PROJECT_ID/global/networks/NETWORK_NAME. # customization: required project-allowed-restrict-vpc-peering: | - under:projects/PROJECT_ID # # Subnet IP range for nonp-main in northamerica-northeast1 standard-nane1-nonp-main-snet: 10.1.0.0/21 # # Subnet IP range for nonp-main in northamerica-northeast2 standard-nane2-nonp-main-snet: 10.1.8.0/21 # # Subnet IP range for pbmm-main in northamerica-northeast1 standard-nane1-pbmm-main-snet: 10.1.128.0/21 # # Subnet IP range for pbmm-main in northamerica-northeast2 standard-nane2-pbmm-main-snet: 10.1.136.0/21 # # A list of internal IP ranges used by firewall rules firewall-internal-ip-ranges: | - 10.0.0.0/8 - 172.16.0.0/12 - 192.168.0.0/16 # ########################## # Firewall Policy (client-folder) ########################## # # Deny sanctioned countries ingress traffic # https://cloud.google.com/firewall/docs/firewall-policies-rule-details#geo-location-object # https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements # The list below MUST BE reconfigured. If the value stays XX it will fail reconciliation with an error for unrecognized country. # customization: required denied-sanctioned-countries: | - "XX" # # Allowed domain names for os updates # The list below is an example for Debian and Ubuntu, modify as per trusted images # note that cloud.google.com is required when GKE nodes are provisioned # customization: optional allowed-os-update-domains: | - "debian.map.fastlydns.net" - "debian.org" - "deb.debian.org" - "ubuntu.com" - "cloud.google.com" - "packages.cloud.google.com" - "security.ubuntu.com" - "northamerica-northeast1.gce.archive.ubuntu.com" - "northamerica-northeast2.gce.archive.ubuntu.com" # # the source IP ranges allowed to access the domains listed above # the ranges should match the values of the '*main-snet' setters configured earlier: # - standard-nane1-nonp-main-snet # - standard-nane2-nonp-main-snet # - standard-nane1-pbmm-main-snet # - standard-nane2-pbmm-main-snet # OR a list of more restrictive ranges within those subnets (for example, 10.1.1.5/32) # it also has to include the primary ranges of the GKE nodes otherwise, nodes won't be able to be provisioned. # customization: optional allowed-os-update-source-ip-ranges: | - "10.1.0.0/21" - "10.1.8.0/21" - "10.1.32.0/19" - "10.1.128.0/21" - "10.1.136.0/21" - "10.1.160.0/19" # ########################## # DNS ########################## # # dns project id created during core-landing-zone package deployment # customization: required, obtain value from the core-landing-zone setters.yaml core-dns-project-id: core-dns-project-12345 # # dns project id that will be created for this client # customization: required dns-project-id: dns-project-12345 # # Clients Landing Zone fqdn. The "dns-name" must end with a "." # dns-name needs to receive delegation from the upper level of the domain example.com. # customization: required dns-name: "client-name.example.com." # # The nameservers below must be updated to match the same nameservers as the client DNS subzone # Cloud DNS creates NS and SOA records automatically when a zone is created and these cannot be changed # See https://cloud.google.com/dns/docs/zones#create-pub-zone dns-nameservers: | - "ns-cloud-a1.googledomains.com." - "ns-cloud-a2.googledomains.com." - "ns-cloud-a3.googledomains.com." - "ns-cloud-a4.googledomains.com." # ########################## # Labels ########################## # Labels can be set on project using set-labels-project.yaml. Please make sure there is one pair of key-value pair otherwise render will fail ########################## # End of Configurations ##########################