api_fingerprint (necesario)
|
Huella de la clave de firma de API que ha cargado. |
api_private_key_path (necesario)
|
Ruta de acceso completa y nombre del archivo que contiene su clave de firma de API privada. |
compartment_id (necesario)
|
OCID del compartimento en el que desea crear los recursos. |
tenancy_id (necesario)
|
OCID del arrendamiento. |
user_id (necesario)
|
OCID del usuario que desea que utilice Terraform para la autenticación con Oracle Cloud Infrastructure. |
ssh_private_key_path |
Ruta de acceso completa y nombre del archivo que contiene la clave SSH privada correspondiente a la clave pública que desea proporcionar para el host de base.
Este valor se utiliza para construir el comando ssh que puede utilizar para acceder al host de base. El comando ssh se muestra en la salida al aplicar la configuración de Terraform. Tenga en cuenta que Terraform no lee ni copia la clave privada.
|
ssh_public_key_path |
Ruta de acceso completa y nombre del archivo que contiene la clave SSH pública que desea proporcionar para el host de base. |
label_prefix |
Un identificador corto, que se desea utilizar como prefijo en los nombres de los recursos.
Use una cadena que le ayude a identificar la finalidad o la naturaleza de los recursos consultando sus nombres. Por ejemplo, si desea utilizar la configuración de Terraform para configurar un entorno de prueba o almacenamiento en zona intermedia, utilice el prefijo test o staging .
|
Región |
Identificador de la región en la que desea crear los recursos. Por ejemplo, el ID de la región US East (Ashburn) es us-ashburn-1 .
|
nat_gateway_enabled |
Especifique true para crear un gateway de NAT para VCN.
Se necesita un gateway de NAT si cualquiera de las instancias informáticas privadas (como el host de administración o los nodos de trabajador de Kubernetes) necesita acceder a los hosts en Internet público.
|
newbits y netnum |
Al aplicar la configuración, Terraform transfiere los valores de newbits y netnum como argumentos a la función Terraform cidrsubnet() . Esta función calcula los prefijos CIDR de las subredes del host bastion, el host admin, los nodos del equilibrador de carga y los nodos trabajadores de Kubernetes.
newbits se utiliza para determinar el tamaño de la subred. Se trata de la diferencia entre la máscara de red de VCN y la máscara de red necesaria para la subred de la base.
Por ejemplo, para crear una subred con la máscara de red /29 en un VCN /16 , especifique 13 como valor newbits (es decir, 29 menos 16 ).
Un valor newbits inferior da como resultado una subred con un espacio de dirección más grande.
netnum se utiliza para determinar los límites de la subred. Se trata del índice basado en cero de la subred cuando la red se enmascara con newbits .
Si continúa con el ejemplo anterior, si especifica newbits=13 y netnum=0 , la función cidrsubnet() devuelve el prefijo de CIDR de subred 10.0.0.0/29 , que es el primer espacio de direcciones /29 en el VCN 10.0.0.0/16 .
Valores por defecto: netnum = {
admin = 33
bastion = 32
int_lb = 16
pub_lb = 17
workers = 1
}
newbits = {
admin = 13
bastion = 13
lb = 11
workers = 2
}
Si deja estas variables en los valores predeterminados y especifica 10.0.0.0/16 como rango CIDR para VCN, la función cidrsubnet() de Terraform calcula los siguientes prefijos CIDR para las subredes. Las direcciones disponibles se muestran entre paréntesis. Tenga en cuenta que las dos primeras direcciones y la última dirección de una subred están reservadas por el servicio de red.
- Subred de la base:
10.0.1.0/29 (direcciones disponibles: 10.0.1.2 a 10.0.1.6 ; es decir, 5 hosts)
- Subred de administración:
10.0.1.8/29 (10.0.1.10 a 10.0.1.14 ; 5 hosts)
- Subred del equilibrador de carga interno:
10.0.2.0/27 (10.0.2.2 a 10.0.2.30 ; 29 nodos)
- Subred del equilibrador de carga público:
10.0.2.32/27 (10.0.2.34 a 10.0.2.62 ; 29 nodos)
- Subred de nodos de trabajador de Kubernetes:
10.0.64.0/18 (10.0.64.2 a 10.0.127.254 ; 16381 nodos)
Si necesita subredes con diferentes direcciones o tamaños que los valores por defecto, debe determinar los valores adecuados para newbits y netnum . Para ello, debe tener conocimientos básicos sobre las direcciones IP sin clase. Consulte también la documentación de Terraform para la función cidrsubnet() .
Asegúrese de que los bloques CIDR que especifique aquí no se superpongan con el bloque CIDR especificado para el pods de Kubernetes (pods_cidr ).
|
service_gateway_enabled |
Especifique true para crear un gateway de servicios para VCN.
Se necesita un gateway de servicio si las instancias informáticas de VCN necesitan acceder a otros servicios de Oracle como Oracle Cloud Infrastructure Object Storage.
|
vcn_cidr |
Bloque IPv4 CIDR que puede elegir para VCN.
El valor por defecto es 10.0.0.0/16 . El rango permitido es de /16 a /30
Asegúrese de que el bloque CIDR especificado aquí no se superponga con el bloque CIDR especificado para los servicios de Kubernetes (services_cidr ).
|
vcn_dns_label |
Prefijo de nombre para el nombre DNS interno de VCN.
El nombre que especifique aquí tiene como prefijo oraclevcn.com para formar el nombre de dominio de DNS de VCN. Por ejemplo, si especifica oke como prefijo, el nombre de dominio de DNS de VCN sería oke.oraclevcn.com
|
vcn_name |
Nombre del recurso VCN. |
bastion_access |
Rango de direcciones IP (en notación CIDR) desde las que se debe permitir el acceso SSH a la base.
Para permitir el acceso SSH desde cualquier host (es decir, 0.0.0.0/0 ), deje la variable en su valor por defecto, ANYWHERE .
|
bastion_enabled |
Especifique true para crear un host de base.
|
bastion_image_id |
OCID de la imagen que se va a utilizar para crear el host de base.
Si deja esta variable en el valor por defecto, NONE , se utiliza una imagen Oracle Autonomous Linux.
|
bastion_notification_enabled |
Puede utilizar el servicio de notificación de Oracle Cloud Infrastructure para recibir mensajes de estado del host de base cuando se aplican actualizaciones o cuando Oracle Ksplice detecta un intento de explotación conocido.
Especifique true para activar el envío de notificaciones para el host de base.
Nota: El código Terraform de esta solución configura las notificaciones del host de base solo cuando utiliza la imagen por defecto de Oracle Autonomous Linux.
|
bastion_notification_endpoint |
Dirección de correo electrónico a la que se deben enviar las notificaciones. Esta variable es necesaria si define bastion_notification_enabled en true .
|
bastion_notification_protocol |
Defina esta variable en EMAIL .
|
bastion_notification_topic |
Nombre del tema de notificación que se va a crear. Esta variable es necesaria si define bastion_notification_enabled en true .
|
bastion_package_upgrade |
Especifique true si desea que los paquetes de seguridad del host de base se actualicen la primera vez que se inicie el host.
Tenga en cuenta que cuando esta variable se define en true , una vez provisionado el host de base, no estará disponible durante un período corto mientras se actualicen los paquetes de seguridad. Sin embargo, al activar esta actualización se minimizan las vulnerabilidades del host de bastion.
|
bastion_shape |
Forma de cálculo que desea utilizar para el host de base. |
bastion_timezone |
Zona horaria que se debe configurar para el host de bastion, en el formato de zona horaria IANA (por ejemplo, America/Los_Angeles ).
|
admin_enabled |
Especifique true para crear un host de administración.
|
admin_image_id |
OCID de la imagen que se va a utilizar para crear el host de base.
Si deja esta variable en el valor por defecto, se utilizará NONE , se utilizará una imagen Linux proporcionada por Oracle.
|
admin_instance_principal |
Especifique true si desea activar el host de administración para gestionar todos los recursos del compartimento que especifique.
Use esta función si tiene previsto ejecutar comandos de la CLI o realizar llamadas de la API desde el host de administración para gestionar recursos en la topología.
Nota: Cualquier usuario que pueda conectarse a una instancia informática con SSH hereda los privilegios instance-principal otorgados a la instancia. Considere esto cuando decida designar el host de administración como principal de instancia. Puede desactivar o activar esta función en cualquier momento sin que afecte al host de administración.
Si define esta variable en true , el host admin será miembro de un grupo dinámico y se creará una sentencia de política para permitir que el grupo dinámico gestione todos los recursos en el compartimento.
|
admin_notification_enabled
admin_notification_endpoint
admin_notification_protocol
admin_notification_topic
|
Deje estas variables en los valores por defecto. La activación de notificaciones para el host de administración no está soportada actualmente en este código Terraform. |
admin_package_upgrade |
Especifique true si desea que los paquetes de seguridad del host de administración se actualicen la primera vez que se inicie el host.
Tenga en cuenta que cuando esta variable se define en true , una vez provisionado el host de administración, no estará disponible durante un período corto mientras se actualicen los paquetes de seguridad. Sin embargo, al activar esta actualización se minimizan las vulnerabilidades del host de administración.
|
admin_shape |
Forma de cálculo que desea utilizar para el host de administración. |
admin_timezone |
La zona horaria que se debe configurar para el host de administración, en el formato de zona horaria IANA (por ejemplo, America/Los_Angeles ).
|
availability_domains |
El dominio de disponibilidad en el que desea aprovisionar los hosts de administración y de base.
Por ejemplo, para aprovisionar el host de base en el segundo dominio de disponibilidad, defina bastion = 2 .
Si la región especificada sólo contiene un dominio de disponibilidad, deje esta variable en su valor por defecto, 1 .
|
tagging |
Especifique las etiquetas que desea asignar a los recursos de cálculo y de red. |
allow_node_port_access |
Especifique true si desea permitir el tráfico TCP a los nodos de trabajador de Kubernetes cuando se desplieguen en el modo público.
|
allow_worker_ssh_access |
Especifique true si desea permitir conexiones SSH a los nodos trabajadores de Kubernetes mediante el host de base.
Tenga en cuenta que incluso si los nodos de trabajador se implementan en el modo público, las conexiones SSH deben pasar por el host de base.
Si define esta variable en true , debe definir también bastion_enabled = true .
|
cluster_name |
Nombre para el cluster de Kubernetes. |
dashboard_enabled |
Especifique true si desea que se cree el panel de control de Kubernetes por defecto.
|
kubernetes_version |
Versión de Kubernetes que se usará para los nodos de trabajador.
Si deja esta variable en su valor por defecto, LATEST , se selecciona la última versión soportada. Para utilizar una versión específica, especifique dicha versión.
|
node_pools |
El número de agrupaciones de nodos que se crearán, el tamaño de cada agrupación y la forma de cálculo que se utilizará para los nodos de trabajador, en el siguiente formato:node_pools = {
"np1" = ["computeShape", numberOfNodes]
"np2" = ["computeShape", numberOfNodes]
"np3" = ["computeShape", numberOfNodes]
...
}
np1 , np2 y np3 son nombres arbitrarios que representan agrupaciones de nodos individuales.
computeShape es la forma de cálculo que se utilizará para los nodos de trabajador en el grupo.
numberOfNodes es el número de nodos de trabajador de Kubernetes que se crearán en el grupo. Se crea un mínimo de tres nodos en cada agrupación, aunque especifique un valor inferior.
En el siguiente ejemplo, se usa un cluster compuesto por dos agrupaciones, cada una con una unidad de computación diferente que contiene un número diferente de nodos trabajadores de Kubernetes: node_pools = {
"np1" = ["VM.Standard2.1", 3]
"np2" = ["VM.Standard2.2", 5]
}
|
node_pool_name_prefix |
Prefijo de nombre para los pools de nodos.
Los nombres de los pools de nodos se generan concatenando los valores de label_prefix , node_pool_name_prefix y el número de pool de nodos. Por ejemplo, si especifica label_prefix = "prod" y node_pool_name_prefix = "np" , los nombres generados de los grupos de nodos serían prod-np-1 , prod-np-2 , prod-np-3 , etc.
|
node_pool_image_id |
OCID de la imagen que se utilizará para los nodos de trabajador de Kubernetes.
Si deja esta variable en el valor por defecto, se utilizará NONE , una imagen que coincida con los valores especificados para node_pool_os y node_pool_os_version .
|
node_pool_os |
Sistema operativo que se debe utilizar para los nodos de trabajador de Kubernetes (por ejemplo, "Oracle Linux" ).
Este valor sólo se tiene en cuenta si define node_pool_image_id = "NONE"
|
node_pool_os_version |
Versión del sistema operativo que se debe utilizar para los nodos de trabajador de Kubernetes (por ejemplo, "7.7" ).
Este valor sólo se tiene en cuenta si define node_pool_image_id = "NONE"
|
pods_cidr |
Bloque IPv4 CIDR que puede elegir para los pods de Kubernetes.
Asegúrese de que el bloque CIDR especificado aquí no se superponga con el bloque CIDR especificado para VCN (vcn_cidr ).
|
services_cidr |
Bloque IPv4 CIDR que puede elegir para los pods de Kubernetes.
Asegúrese de que el bloque CIDR especificado aquí no se superponga con el bloque CIDR especificado para VCN (vcn_cidr ).
|
worker_mode |
Especifique public si los nodos de trabajador deben ser accesibles desde Internet. De lo contrario, defina esta variable en private .
Si define worker_mode = "private" , defina nat_gateway_enabled = true
|
lb_subnet_type y preferred_lb_subnets |
Los valores que especifique para lb_subnet_type y preferred_lb_subnets determinan el tipo de subredes que se deben utilizar para los nodos de equilibrio de carga que despliegue mediante el servicio Kubernetes de tipo LoadBalancer .
Los equilibradores de carga públicos tienen direcciones IP públicas. Los equilibradores de carga internos sólo tienen direcciones IP privadas y no se puede acceder desde Internet públicas.
- Si pretende utilizar equilibrios de carga públicos, defina
preferred_lb_subnet = "public" y subnet_type en "both" o "public"
- Si tiene previsto utilizar equilibrios de carga internos, defina
preferred_lb_subnet = "internal" y subnet_type en "both" o "internal"
Incluso si define que las subredes del equilibrador de carga sean internas, debe definir las anotaciones adecuadas (como service.beta.kubernetes.io/oci-load-balancer-internal: "true" ) al crear servicios de equilibrador de carga internos. La definición de forma de fusionar las subredes como privadas no es suficiente.
Para obtener información sobre la creación de equilibradores de carga internos, consulte la documentación de Oracle Cloud Infrastructure.
|
secret_id |
ID del secreto en el servicio Oracle Cloud Infrastructure Vault, donde se almacena el token de autenticación que se va a utilizar para extraer imágenes de aplicación de Oracle Cloud Infrastructure Registry.
También debe definir lo siguiente: bastion_enabled = true
admin_enabled = true
admin_instance_principal = true
|
email_address |
Dirección de correo electrónico que se utilizará al generar el secreto de Docker. Se necesita una dirección de correo electrónico, pero no importa la que especifique.
Esta variable es necesaria si especifica secret_id .
|
tenancy_name |
Espacio de nombres Oracle Cloud Infrastructure Object Storage del arrendamiento que contiene el registro desde el que se deben extraer imágenes para despliegues en el cluster de Kubernetes.
Esta variable es necesaria si especifica secret_id .
|
username |
Nombre de usuario para el que ha generado el token de autenticación almacenado en secret_id .
Esta variable es necesaria si especifica secret_id .
|
install_helm |
Especifique true si desea instalar Helm.
Helm es un gestor de paquetes para Kubernetes.
Para instalar Helm, debe definir también admin_instance_principal = true .
|
helm_version |
Versión del cliente Helm que se va a instalar.
Tiller (el equivalente del servidor de Helm) se actualiza automáticamente.
|
install_calico |
Especifique true si desea que se instale Calico.
Puede utilizar Calico para implementar políticas de red para contenedores de cargas de trabajo desplegadas en clusters de Kubernetes.
Si define install_calico = true , debe definir también lo siguiente: bastion_enabled = true
admin_enabled = true
admin_instance_principal = true
|
calico_version |
Versión de Calico que se va a instalar. |
install_metricserver |
Especifique true si desea instalar el servidor de métricas de Kubernetes.
Por defecto, la última versión se instala en el espacio de nombres kube-system . Kubernetes Metrics Server agrega datos de uso de recursos a través de un cluster.
Si define install_metricserver = true , debe definir también lo siguiente: bastion_enabled = true
admin_enabled = true
admin_instance_principal = true
|
use_encryption |
Si desea utilizar el servicio Oracle Cloud Infrastructure Vault para cifrar los secretos de Kubernetes, defina esta variable en true .
Si define use_encryption = true , debe definir también lo siguiente: bastion_enabled = true
admin_enabled = true
admin_instance_principal = true
|
existing_key_id |
OCID de una clave existente creada en el servicio Oracle Cloud Infrastructure Vault.
Esta variable es necesaria si define use_encryption en true .
|
create_service_account |
Si desea que los procesos y herramientas externos (como un pipeline de integración y despliegue) accedan al cluster, defina esta variable en true . Una cuenta de servicio se crea con su propio token de autenticación.
Si define create_service_account = true , debe definir también lo siguiente: bastion_enabled = true
admin_enabled = true
admin_instance_principal = true
|
service_account_name |
Nombre de la cuenta de servicio que se va a crear. |
service_account_namespace |
Espacio de nombres Kubernetes en el que se debe crear la cuenta. |
service_account_cluster_role_binding |
Nombre del enlace de rol de cluster para la cuenta de servicio. |