Skip to content

Commit c12f5e7

Browse files
authored
Merge pull request #61086 from xenolinux/installing-ocp-azure-restricted-nw
OSDOCS#5174: Azure: Document installing OpenShift in a restricted network [Installer-provisioned]
2 parents afdb14a + 427f2e9 commit c12f5e7

18 files changed

+292
-65
lines changed

_topic_maps/_topic_map.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,8 @@ Topics:
215215
File: installing-azure-government-region
216216
- Name: Installing a cluster on Azure using ARM templates
217217
File: installing-azure-user-infra
218+
- Name: Installing a cluster on Azure in a restricted network
219+
File: installing-restricted-networks-azure-installer-provisioned
218220
- Name: Installing a three-node cluster on Azure
219221
File: installing-azure-three-node
220222
- Name: Uninstalling a cluster on Azure
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
:_content-type: ASSEMBLY
2+
[id="installing-restricted-networks-azure-installer-provisioned"]
3+
= Installing a cluster on Azure in a restricted network
4+
include::_attributes/common-attributes.adoc[]
5+
:context: installing-restricted-networks-azure-installer-provisioned
6+
7+
toc::[]
8+
9+
In {product-title} version {product-version}, you can install a cluster on Microsoft Azure in a restricted network by creating an internal mirror of the installation release content on an existing Azure Virtual Network (VNet).
10+
11+
[IMPORTANT]
12+
====
13+
You can install an {product-title} cluster by using mirrored installation release content, but your cluster requires internet access to use the Azure APIs.
14+
====
15+
16+
[id="prerequisites_installing-restricted-networks-azure-installer-provisioned"]
17+
== Prerequisites
18+
19+
* You reviewed details about the xref:../../architecture/architecture-installation.adoc#architecture-installation[{product-title} installation and update] processes.
20+
* You read the documentation on xref:../../installing/installing-preparing.adoc#installing-preparing[selecting a cluster installation method and preparing it for users].
21+
* You xref:../../installing/installing_azure/installing-azure-account.adoc#installing-azure-account[configured an Azure account] to host the cluster and determined the tested and validated region to deploy the cluster.
22+
* You xref:../../installing/disconnected_install/installing-mirroring-installation-images.adoc#installation-about-mirror-registry_installing-mirroring-installation-images[mirrored the images for a disconnected installation] to your registry and obtained the `imageContentSources` data for your version of {product-title}.
23+
+
24+
[IMPORTANT]
25+
====
26+
Because the installation media is on the mirror host, you can use that computer to complete all installation steps.
27+
====
28+
* You have an existing VNet in Azure. While installing a cluster in a restricted network that uses installer-provisioned infrastructure, you cannot use the installer-provisioned VNet. You must use a user-provisioned VNet that satisfies one of the following requirements:
29+
** The VNet contains the mirror registry
30+
** The VNet has firewall rules or a peering connection to access the mirror registry hosted elsewhere
31+
* If you use a firewall, you xref:../../installing/install_config/configuring-firewall.adoc#configuring-firewall[configured it to allow the sites] that your cluster requires access to.
32+
* If the cloud identity and access management (IAM) APIs are not accessible in your environment, or if you do not want to store an administrator-level credential secret in the kube-system namespace, you can xref:../../installing/installing_azure/manually-creating-iam-azure.adoc#manually-creating-iam-azure[manually create and maintain IAM credentials].
33+
* If you use customer-managed encryption keys, you xref:../../installing/installing_azure/enabling-user-managed-encryption-azure.adoc#enabling-user-managed-encryption-azure[prepared your Azure environment for encryption].
34+
35+
include::modules/installation-about-restricted-network.adoc[leveloffset=+1]
36+
37+
include::modules/installation-azure-user-defined-routing.adoc[leveloffset=+2]
38+
39+
include::modules/installation-about-custom-azure-vnet.adoc[leveloffset=+1]
40+
41+
include::modules/cluster-entitlements.adoc[leveloffset=+1]
42+
43+
include::modules/ssh-agent-using.adoc[leveloffset=+1]
44+
45+
include::modules/installation-initializing.adoc[leveloffset=+1]
46+
47+
[role="_additional-resources"]
48+
.Additional resources
49+
* xref:../../installing/installing_azure/installation-config-parameters-azure.adoc#installation-config-parameters-azure[Installation configuration parameters for Azure]
50+
51+
include::modules/installation-minimum-resource-requirements.adoc[leveloffset=+2]
52+
53+
include::modules/installation-azure-tested-machine-types.adoc[leveloffset=+2]
54+
55+
include::modules/installation-azure-arm-tested-machine-types.adoc[leveloffset=+2]
56+
57+
include::modules/installation-azure-config-yaml.adoc[leveloffset=+2]
58+
59+
include::modules/installation-configure-proxy.adoc[leveloffset=+2]
60+
61+
include::modules/installation-launching-installer.adoc[leveloffset=+1]
62+
63+
include::modules/cli-installing-cli.adoc[leveloffset=+1]
64+
65+
include::modules/cli-logging-in-kubeadmin.adoc[leveloffset=+1]
66+
67+
include::modules/cluster-telemetry.adoc[leveloffset=+1]
68+
69+
[role="_additional-resources"]
70+
.Additional resources
71+
72+
* See xref:../../support/remote_health_monitoring/about-remote-health-monitoring.adoc#about-remote-health-monitoring[About remote health monitoring] for more information about the Telemetry service
73+
74+
== Next steps
75+
76+
* xref:../../post_installation_configuration/cluster-tasks.adoc#available_cluster_customizations[Customize your cluster].
77+
* If necessary, you can
78+
xref:../../support/remote_health_monitoring/opting-out-of-remote-health-reporting.adoc#opting-out-remote-health-reporting_opting-out-remote-health-reporting[opt out of remote health reporting].

modules/cli-installing-cli.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
// * installing/installing_ibm_powervs/installing-ibm-power-vs-private-cluster.adoc
5050
// * installing/installing_ibm_powervs/installing-restricted-networks-ibm-power-vs.adoc
5151
// * installing/installing_ibm_powervs/installing-ibm-powervs-vpc.adoc
52+
// * installing/installing-restricted-networks-azure-installer-provisioned.adoc
5253
// AMQ docs link to this; do not change anchor
5354

5455
ifeval::["{context}" == "mirroring-ocp-image-repository"]

modules/cli-logging-in-kubeadmin.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
// * installing/installing_vsphere/installing-vsphere-installer-provisioned-network-customizations.adoc
5151
// * installing/installing_vsphere/installing-restricted-networks-installer-provisioned-vsphere.adoc
5252
// * installing/installing_ibm_z/installing-ibm-z.adoc
53-
53+
// * installing/installing-restricted-networks-azure-installer-provisioned.adoc
5454

5555
:_content-type: PROCEDURE
5656
[id="cli-logging-in-kubeadmin_{context}"]

modules/cluster-entitlements.adoc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@
6868
// * installing/installing_azure_stack_hub/installing-azure-stack-hub-network-customizations.adoc
6969
// * architecture/architecture.adoc
7070
// * installing/installing_nutanix/installing-nutanix-installer-provisioned.adoc
71+
// * installing/installing_azure/installing-restricted-networks-azure-installer-provisioned.adoc
72+
7173

7274
ifeval::["{context}" == "installing-restricted-networks-bare-metal"]
7375
:restricted:
@@ -105,6 +107,9 @@ endif::[]
105107
ifeval::["{context}" == "installing-restricted-networks-gcp"]
106108
:restricted:
107109
endif::[]
110+
ifeval::["{context}" == "installing-restricted-networks-azure-installer-provisioned"]
111+
:restricted:
112+
endif::[]
108113

109114
:_content-type: CONCEPT
110115
[id="cluster-entitlements_{context}"]
@@ -173,3 +178,6 @@ endif::[]
173178
ifeval::["{context}" == "installing-restricted-networks-gcp"]
174179
:!restricted:
175180
endif::[]
181+
ifeval::["{context}" == "installing-restricted-networks-azure-installer-provisioned"]
182+
:!restricted:
183+
endif::[]

modules/cluster-telemetry.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
// * installing/installing_ibm_powervs/installing-ibm-powervs-vpc.adoc
6767
// * installing/installing-nutanix-installer-provisioned.adoc
6868
// * installing/installing-restricted-networks-nutanix-installer-provisioned.adoc
69+
// * installing/installing-restricted-networks-azure-installer-provisioned.adoc
6970

7071
:_content-type: CONCEPT
7172
[id="cluster-telemetry_{context}"]

modules/installation-about-custom-azure-vnet.adoc

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// * installing/installing_azure/installing-azure-government-region.adoc
44
// * installing/installing_azure/installing-azure-private.adoc
55
// * installing/installing_azure/installing-azure-vnet.adoc
6+
// * installing/installing_azure/installing-restricted-networks-azure-installer-provisioned.adoc
67

78
ifeval::["{context}" == "installing-azure-government-region"]
89
:azure:
@@ -13,6 +14,10 @@ endif::[]
1314
ifeval::["{context}" == "installing-azure-vnet"]
1415
:azure:
1516
endif::[]
17+
ifeval::["{context}" == "installing-restricted-networks-azure-installer-provisioned"]
18+
:azure:
19+
:restricted:
20+
endif::[]
1621

1722
:_content-type: CONCEPT
1823
[id="installation-about-custom-azure-vnet_{context}"]
@@ -103,16 +108,34 @@ The network security group rules must be in place before you install the cluster
103108
|Allows internal communication to the machine config server for provisioning machines
104109
|x
105110
|
111+
112+
ifdef::restricted[]
113+
|`*`
114+
a|Allows connections to Azure APIs. You must set a Destination Service Tag to `AzureCloud`. ^[1]^
115+
|x
116+
|x
117+
118+
|`*`
119+
a|Denies connections to the internet. You must set a Destination Service Tag to `Internet`. ^[1]^
120+
|x
121+
|x
122+
endif::restricted[]
106123
|===
124+
[.small]
125+
--
126+
1. If you are using Azure Firewall to restrict the internet access, then xref:../../installing/install_config/configuring-firewall.adoc#configuring-firewall[you can configure Azure Firewall to allow the Azure APIs]. A network security group rule is not needed.
127+
--
107128

108129
include::snippets/mcs-endpoint-limitation.adoc[]
109130

110131
Because cluster components do not modify the user-provided network security groups, which the Kubernetes controllers update, a pseudo-network security group is created for the Kubernetes controller to modify without impacting the rest of the environment.
111132

133+
[role="_additional-resources"]
112134
.Additional resources
113135

114136
* xref:../../networking/openshift_sdn/about-openshift-sdn.adoc#about-openshift-sdn[About the OpenShift SDN network plugin]
115137

138+
* xref:../../installing/install_config/configuring-firewall.adoc#configuring-firewall[Configuring your firewall]
116139

117140
[id="installation-about-custom-azure-permissions_{context}"]
118141
== Division of permissions
@@ -135,3 +158,17 @@ If you deploy {product-title} to an existing network, the isolation of cluster s
135158
* Control plane TCP 6443 ingress (Kubernetes API) is allowed to the entire network.
136159
* Control plane TCP 22623 ingress (MCS) is allowed to the entire network.
137160
////
161+
162+
ifeval::["{context}" == "installing-azure-government-region"]
163+
:!azure:
164+
endif::[]
165+
ifeval::["{context}" == "installing-azure-private"]
166+
:!azure-private:
167+
endif::[]
168+
ifeval::["{context}" == "installing-azure-vnet"]
169+
:!azure:
170+
endif::[]
171+
ifeval::["{context}" == "installing-restricted-networks-azure-installer-provisioned"]
172+
:!azure:
173+
:!restricted:
174+
endif::[]

modules/installation-about-restricted-network.adoc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
// * installing/installing_ibm_power/installing-restricted-networks-ibm-power.adoc
1212
// * installing/installing_ibm_powervs/installing-restricted-networks-ibm-power-vs.adoc
1313
// * installing/installing-restricted-networks-nutanix-installer-provisioned.adoc
14+
// * installing/installing-restricted-networks-azure-installer-provisioned.adoc
1415

1516
ifeval::["{context}" == "installing-ibm-power"]
1617
:ibm-power:
@@ -36,6 +37,9 @@ endif::[]
3637
ifeval::["{context}" == "installing-restricted-networks-nutanix-installer-provisioned"]
3738
:ipi:
3839
endif::[]
40+
ifeval::["{context}" == "installing-restricted-networks-azure-installer-provisioned"]
41+
:ipi:
42+
endif::[]
3943

4044
:_content-type: CONCEPT
4145
[id="installation-about-restricted-networks_{context}"]
@@ -102,3 +106,6 @@ endif::[]
102106
ifeval::["{context}" == "installing-restricted-networks-nutanix-installer-provisioned"]
103107
:!ipi:
104108
endif::[]
109+
ifeval::["{context}" == "installing-restricted-networks-azure-installer-provisioned"]
110+
:!ipi:
111+
endif::[]

modules/installation-azure-arm-tested-machine-types.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
// installing/installing_azure/installing-azure-private.adoc
88
// installing/installing_azure/installing-azure-user-infra.adoc
99
// installing/installing_azure/installing-azure-vnet.adoc
10+
// * installing/installing-restricted-networks-azure-installer-provisioned.adoc
1011

1112
[id="installation-azure-arm-tested-machine-types_{context}"]
1213
= Tested instance types for Azure on 64-bit ARM infrastructures

modules/installation-azure-config-yaml.adoc

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
// * installing/installing_azure/installing-azure-network-customizations.adoc
66
// * installing/installing_azure/installing-azure-private.adoc
77
// * installing/installing_azure/installing-azure-vnet.adoc
8+
// * installing/installing-restricted-networks-azure-installer-provisioned.adoc
89

910
ifeval::["{context}" == "installing-azure-network-customizations"]
1011
:with-networking:
@@ -21,6 +22,9 @@ endif::[]
2122
ifeval::["{context}" == "installing-azure-government-region"]
2223
:gov:
2324
endif::[]
25+
ifeval::["{context}" == "installing-restricted-networks-azure-installer-provisioned"]
26+
:restricted:
27+
endif::[]
2428

2529
[id="installation-azure-config-yaml_{context}"]
2630
= Sample customized install-config.yaml file for Azure
@@ -100,18 +104,21 @@ ifdef::gov[]
100104
region: usgovvirginia
101105
endif::gov[]
102106
resourceGroupName: existing_resource_group <9>
103-
ifdef::vnet,private,gov[]
107+
ifdef::vnet,private,gov,restricted[]
104108
networkResourceGroupName: vnet_resource_group <10>
105109
virtualNetwork: vnet <11>
106110
controlPlaneSubnet: control_plane_subnet <12>
107111
computeSubnet: compute_subnet <13>
108-
endif::vnet,private,gov[]
109-
ifndef::private,gov[]
112+
endif::vnet,private,gov,restricted[]
113+
ifndef::private,gov,restricted[]
110114
outboundType: Loadbalancer
111-
endif::private,gov[]
115+
endif::private,gov,restricted[]
112116
ifdef::private,gov[]
113117
outboundType: UserDefinedRouting <14>
114118
endif::private,gov[]
119+
ifdef::restricted[]
120+
outboundType: UserDefinedRouting <14>
121+
endif::restricted[]
115122
ifndef::gov[]
116123
cloudName: AzurePublicCloud
117124
endif::gov[]
@@ -148,10 +155,28 @@ ifdef::openshift-origin[]
148155
sshKey: ssh-ed25519 AAAA... <16>
149156
endif::openshift-origin[]
150157
endif::gov[]
158+
ifdef::restricted[]
159+
fips: false <15>
160+
sshKey: ssh-ed25519 AAAA... <16>
161+
additionalTrustBundle: | <17>
162+
-----BEGIN CERTIFICATE-----
163+
<MY_TRUSTED_CA_CERT>
164+
-----END CERTIFICATE-----
165+
imageContentSources: <18>
166+
- mirrors:
167+
- <local_registry>/<local_repository_name>/release
168+
source: quay.io/openshift-release-dev/ocp-release
169+
- mirrors:
170+
- <local_registry>/<local_repository_name>/release
171+
source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
172+
publish: Internal <19>
173+
endif::restricted[]
151174
ifndef::vnet,private,gov[]
152175
ifndef::openshift-origin[]
176+
ifndef::restricted[]
153177
fips: false <10>
154178
sshKey: ssh-ed25519 AAAA... <11>
179+
endif::restricted[]
155180
endif::openshift-origin[]
156181
ifdef::openshift-origin[]
157182
sshKey: ssh-ed25519 AAAA... <10>
@@ -195,18 +220,21 @@ If you disable simultaneous multithreading, ensure that your capacity planning a
195220
<7> The cluster network plugin to install. The supported values are `OVNKubernetes` and `OpenShiftSDN`. The default value is `OVNKubernetes`.
196221
<8> Specify the name of the resource group that contains the DNS zone for your base domain.
197222
<9> Specify the name of an already existing resource group to install your cluster to. If undefined, a new resource group is created for the cluster.
198-
ifdef::vnet,private,gov[]
223+
ifdef::vnet,private,gov,restricted[]
199224
<10> If you use an existing VNet, specify the name of the resource group that contains it.
200225
<11> If you use an existing VNet, specify its name.
201226
<12> If you use an existing VNet, specify the name of the subnet to host the control plane machines.
202227
<13> If you use an existing VNet, specify the name of the subnet to host the compute machines.
203-
endif::vnet,private,gov[]
228+
endif::vnet,private,gov,restricted[]
204229
ifdef::private,gov[]
205230
<14> You can customize your own outbound routing. Configuring user-defined routing prevents exposing external endpoints in your cluster. User-defined routing for egress requires deploying your cluster to an existing VNet.
206231
endif::private,gov[]
207232
ifdef::gov[]
208233
<15> Specify the name of the Azure cloud environment to deploy your cluster to. Set `AzureUSGovernmentCloud` to deploy to a Microsoft Azure Government (MAG) region. The default value is `AzurePublicCloud`.
209234
endif::gov[]
235+
ifdef::restricted[]
236+
<14> When using Azure Firewall to restrict Internet access, you must configure outbound routing to send traffic through the Firewall. Configuring user-defined routing prevents exposing external endpoints in your cluster.
237+
endif::restricted[]
210238
ifdef::vnet[]
211239
ifndef::openshift-origin[]
212240
<14> Whether to enable or disable FIPS mode. By default, FIPS mode is not enabled. If FIPS mode is enabled, the {op-system-first} machines that {product-title} runs on bypass the default Kubernetes cryptography suite and use the cryptography modules that are provided with {op-system} instead.
@@ -268,6 +296,11 @@ endif::vnet,private,gov[]
268296
====
269297
For production {product-title} clusters on which you want to perform installation debugging or disaster recovery, specify an SSH key that your `ssh-agent` process uses.
270298
====
299+
ifdef::restricted[]
300+
<17> Provide the contents of the certificate file that you used for your mirror registry.
301+
<18> Provide the `imageContentSources` section from the output of the command to mirror the repository.
302+
<19> How to publish the user-facing endpoints of your cluster. When using Azure Firewall to restrict Internet access, set `publish` to `Internal` to deploy a private cluster. The user-facing endpoints then cannot be accessed from the internet. The default value is `External`.
303+
endif::restricted[]
271304
ifdef::private[]
272305
ifndef::openshift-origin[]
273306
<17> How to publish the user-facing endpoints of your cluster. Set `publish` to `Internal` to deploy a private cluster, which cannot be accessed from the internet. The default value is `External`.
@@ -285,6 +318,7 @@ ifdef::openshift-origin[]
285318
endif::openshift-origin[]
286319
endif::gov[]
287320

321+
288322
ifeval::["{context}" == "installing-azure-network-customizations"]
289323
:!with-networking:
290324
endif::[]
@@ -300,3 +334,6 @@ endif::[]
300334
ifeval::["{context}" == "installing-azure-government-region"]
301335
:!gov:
302336
endif::[]
337+
ifeval::["{context}" == "installing-restricted-networks-azure-installer-provisioned"]
338+
:!restricted:
339+
endif::[]

0 commit comments

Comments
 (0)