ресурс google_compute_forwarding_rule
Синтаксис
Для проверки ресурса Google ForwardingRule используется google_compute_forwarding_rule
Ресурс бета-версии
Для этого ресурса доступны поля бета-версии. Чтобы получить доступ к этим полям, добавьте beta: true в конструктор ресурса.
Примеры
describe google_compute_forwarding_rule(project: 'chef-gcp-inspec', region: 'europe-west2', name: 'udp-forwarding-rule') do
it { should exist }
its('region') { should match 'europe-west2' }
its('creation_timestamp') { should be > Time.now - 365*60*60*24*10 }
its('load_balancing_scheme') { should match 'EXTERNAL' }
its('port_range') { should match "500-500" }
its('ip_protocol') { should match "UDP" }
end
describe google_compute_forwarding_rule(project: 'chef-gcp-inspec', region: 'europe-west2', name: "nonexistent") do
it { should_not exist }
end
Проверка существования правила перенаправления GCP compute forwarding_rule
describe google_compute_forwarding_rule(project: 'chef-inspec-gcp', region: 'europe-west2', name: 'gcp-inspec-forwarding_rule') do
it { should exist }
end
Проверка времени создания правила перенаправления GCP compute forwarding_rule
describe google_compute_forwarding_rule(project: 'chef-inspec-gcp', region: 'europe-west2', name: 'gcp-inspec-forwarding_rule') do
its('creation_timestamp_date') { should be > Time.now - 365*60*60*24*10 }
end
Проверка ожидаемого идентификатора правила перенаправления forwarding_rule
describe google_compute_forwarding_rule(project: 'chef-inspec-gcp', region: 'europe-west2', name: 'gcp-inspec-forwarding_rule') do
its('id') { should eq 12345567789 }
end
Проверка ожидаемой схемы балансировки нагрузки для правила перенаправления forwarding_rule
describe google_compute_forwarding_rule(project: 'chef-inspec-gcp', region: 'europe-west2', name: 'gcp-inspec-forwarding_rule') do
its('load_balancing_scheme') { should eq "INTERNAL" }
end
Проверка ожидаемого IP-адреса правила перенаправления forwarding_rule
describe google_compute_forwarding_rule(project: 'chef-inspec-gcp', region: 'europe-west2', name: 'gcp-inspec-forwarding_rule') do
its('ip_address') { should eq "10.0.0.1" }
end
Проверка корректной привязки правила перенаправления forwarding_rule к ожидаемой сети
describe google_compute_forwarding_rule(project: 'chef-inspec-gcp', region: 'europe-west2', name: 'gcp-inspec-forwarding_rule') do
its('network') { should match "gcp_network_name" }
end
Свойства
Свойства, к которым можно получить доступ из ресурса google_compute_forwarding_rule:
creation_timestamp- Дата и время создания в формате RFC3339.
is_mirroring_collector- (Только бета) Указывает, можно ли использовать этот балансировщик нагрузки в качестве коллектора для зеркалирования пакетов. Чтобы предотвратить циклы зеркалирования, трафик экземпляров за этим балансировщиком не будет зеркалироваться, даже если для них применимо правило PacketMirroring. Это можно установить только для балансировщиков нагрузки, у которых loadBalancingScheme задано как INTERNAL.
description- Необязательное описание ресурса. Укажите это свойство при создании ресурса.
id- Уникальный идентификатор ресурса.
ip_address- IP-адрес, на котором это правило перенаправления обслуживает трафик от имени. Адреса ограничены схемой балансировки нагрузки правила перенаправления (EXTERNAL или INTERNAL) и областью (глобальной или региональной). Когда схема балансировки равна EXTERNAL, для глобальных правил перенаправления адрес должен быть глобальным IP-адресом, а для региональных правил перенаправления — принадлежать тому же региону, что и правило перенаправления. Если это поле пустое, будет назначен временный IPv4-адрес из той же области (глобальной или региональной). Региональное правило перенаправления поддерживает только IPv4. Глобальное правило перенаправления поддерживает IPv4 или IPv6. Когда схема балансировки равна INTERNAL, это может быть только IP-адрес RFC 1918, принадлежащий сети/подсети, настроенной для правила перенаправления. По умолчанию, если это поле пустое, будет автоматически выделен временный внутренний IP-адрес из диапазона IP-адресов подсети или сети, настроенных для этого правила перенаправления. Адрес можно указать либо явно, либо через ссылку на существующий ресурс Address.
ip_protocol- IP-протокол, к которому применяется это правило. При схеме балансировки INTERNAL допустимы только TCP и UDP.
Возможные значения:
- TCP
- UDP
- ESP
- AH
- SCTP
- ICMP
backend_service- BackendService для получения соответствующего трафика. Используется только для внутренней балансировки нагрузки.
load_balancing_scheme- Указывает, для чего используется ForwardingRule: EXTERNAL, INTERNAL или INTERNAL_MANAGED. EXTERNAL используется для шлюзов Classic Cloud VPN, переадресации протоколов на ВМ с внешнего IP-адреса и HTTP(S), SSL Proxy, TCP Proxy и балансировщиков сети TCP/UDP. INTERNAL используется для переадресации протоколов на ВМ с внутреннего IP-адреса и внутренних балансировщиков TCP/UDP. INTERNAL_MANAGED используется для внутренних HTTP(S) балансировщиков.
Возможные значения:
- EXTERNAL
- INTERNAL
- INTERNAL_MANAGED
name- Имя ресурса, предоставленное клиентом при создании. Имя должно быть длиной от 1 до 63 символов и соответствовать RFC1035. В частности, имя должно быть длиной от 1 до 63 символов и соответствовать регулярному выражению
[a-z]([-a-z0-9]*[a-z0-9])?, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. network- Для внутренней балансировки нагрузки это поле идентифицирует сеть, к которой должен принадлежать IP-адрес, сбалансированный по нагрузке, для этого правила перенаправления. Если это поле не указано, будет использоваться сеть по умолчанию. Это поле используется только для внутренней балансировки нагрузки.
port_range- Это поле используется вместе с полем target для TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance. Применимо только при IPProtocol TCP, UDP или SCTP; только пакеты, адресованные портам в указанном диапазоне, будут пересылаться целевому объекту. Правила перенаправления с одинаковой парой
[IPAddress, IPProtocol]должны иметь непересекающиеся диапазоны портов. Некоторые типы целевых объектов перенаправления имеют ограничения на допустимые порты:- TargetHttpProxy: 80, 8080
- TargetHttpsProxy: 443
- TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 5222
- TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 5222
- TargetVpnGateway: 500, 4500
ports- Это поле используется вместе с полем backend_service для внутренней балансировки нагрузки. При схеме балансировки INTERNAL можно настроить один порт или список портов, разделенных запятыми. Только пакеты, адресованные этим портам, будут пересылаться бэкендам, настроенным с этим правилом перенаправления. Можно указать до 5 портов.
subnetwork- Подсеть, к которой должен принадлежать IP-адрес, сбалансированный по нагрузке, для этого правила перенаправления. Это поле используется только для внутренней балансировки нагрузки. Если заданная сеть находится в режиме автоматической подсети, это поле необязательно. Однако, если сеть находится в режиме настраиваемой подсети, подсеть необходимо указать.
target- URL целевого ресурса для получения соответствующего трафика. Целевой объект должен находиться в том же регионе, что и правило перенаправления. Передаваемый трафик должен быть подходящего типа для целевого объекта.
allow_global_access- Если true, клиенты могут получить доступ к ILB из всех регионов. В противном случае доступ разрешен только из локального региона, где находится ILB.
labels- (Только бета) Метки для применения к этому правилу перенаправления. Список пар ключ-значение.
label_fingerprint- (Только бета) Отпечаток, используемый для оптимистической блокировки этого ресурса. Используется во внутренних обновлениях.
all_ports- Для внутренней TCP/UDP балансировки нагрузки (т.е. схема балансировки INTERNAL, протокол TCP/UDP), установите это значение в true, чтобы разрешить пересылку пакетов, адресованных любым портам, на бэкенды, настроенные с этим правилом перенаправления. Используется с backend service. Не может быть установлено, если заданы порт или portRange.
network_tier- Уровень сетевой инфраструктуры, используемый для настройки этого адреса. Если это поле не указано, предполагается PREMIUM.
Возможные значения:
- PREMIUM
- STANDARD
service_label- Необязательное префикс к имени сервиса для этого правила перенаправления. Если указано, будет первым тегом полностью квалифицированного имени сервиса. Тег должен быть длиной от 1 до 63 символов и соответствовать RFC1035. В частности, тег должен быть длиной от 1 до 63 символов и соответствовать регулярному выражению
[a-z]([-a-z0-9]*[a-z0-9])?, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. Это поле используется только для внутренней балансировки нагрузки. service_name- Внутреннее полное квалифицированное имя сервиса для этого правила перенаправления. Это поле используется только для внутренней балансировки нагрузки.
region- Ссылка на регион, в котором находится региональное правило перенаправления. Это поле не применимо к глобальным правилам перенаправления.
Разрешения GCP
Убедитесь, что для текущего проекта включен API Compute Engine Compute Engine API.
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/google_compute_forwarding_rule/