{
"terraform": {
"required_providers": [
{
"huaweicloud": {
"source": "huawei.com/provider/huaweicloud",
"version": "1.46.0"
}
}
]
},
"provider": {
"huaweicloud": {
"cloud": "myhuaweicloud.com",
"endpoints": {
"iam": "iam.cn-north-4.myhuaweicloud.com",
"dns": "dns.cn-north-4.myhuaweicloud.com"
},
"insecure": true,
"region": "cn-north-4",
"auth_url": "https://iam.cn-north-4.myhuaweicloud.com/v3"
}
},
"variable": {
"vpc_name": {
"default": "deploying-and-managing-kubernetes-clusters_demo",
"description": "虚拟私有云名称,该模板新建VPC,不允许重名。取值范围:1-57个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)。默认为deploying-and-managing-kubernetes-clusters_demo",
"type": "string",
"nullable": "false"
},
"secgroup_name": {
"default": "deploying-and-managing-kubernetes-clusters_demo",
"description": "安全组名称,该模板新建安全组,安全组规则请参考部署指南进行配置。取值范围:1-64个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)。默认为deploying-and-managing-kubernetes-clusters_demo",
"type": "string",
"nullable": "false"
},
"ecs_name": {
"default": "deploying-and-managing-kubernetes-clusters_demo",
"description": "弹性云服务器名称,不允许重名。取值范围:1-60个字符,支持字母、数字、中文、下划线(_)、中划线(-)、英文句号(.)。默认为deploying-and-managing-kubernetes-clusters_demo",
"type": "string",
"nullable": "false"
},
"ecs_flavor": {
"default": "c7.large.2",
"description": "弹性云服务器规格,请使用2vCPUs|4GiB及其以上规格。默认c7.large.2 | 2vCPUs | 4GiB。",
"type": "string",
"nullable": "false",
"validation": {
"condition": "${length(regexall(\"^([a-z][a-z0-9]{0,3}\\\\.)(small\\\\.|medium\\\\.|(x||[1-9][0-9]{0,1}x)large\\\\.)[1-9][0-9]{0,1}$\",var.ecs_flavor))>0}",
"error_message": "Invalid input. Please re-enter."
}
},
"ecs_password": {
"default": "",
"description": "弹性云服务器初始密码,创建完成后,请参考部署指南登录ECS控制台修改密码。取值范围:长度为8-26位,密码至少必须包含大写字母、小写字母、数字和特殊字符(!@$%^-_=+[{}]:,./?)中的三种,密码不能包含用户名或用户名的逆序。管理员帐户为root。",
"type": "string",
"nullable": "false",
"sensitive": true
},
"system_disk_size": {
"default": 200,
"description": "指定系统盘大小,以GB为单位,取值范围为40~1024,不支持缩盘。默认为200",
"type": "number",
"nullable": "false",
"validation": {
"condition": "${length(regexall(\"^([4-9]\\\\d|[1-9]\\\\d{2}|10[0-1][0-9]|102[0-4])$\",var.system_disk_size))>0}",
"error_message": "Invalid input, please re-enter."
}
},
"charging_mode": {
"default": "postPaid",
"description": "计费模式,默认自动扣费,取值为prePaid(包年包月)或postPaid(按需计费),默认postPaid。",
"type": "string",
"nullable": "false",
"validation": {
"condition": "${contains([\"postPaid\",\"prePaid\"], var.charging_mode)}",
"error_message": "Invalid input, please re-enter."
}
},
"charging_unit": {
"default": "month",
"description": "包年包月。有效值为“year”或“month”。当charging_mode(计费模式)为prePaid时,此选项为必填项。默认为month。",
"type": "string",
"nullable": "false",
"validation": {
"condition": "${contains([\"month\",\"year\"], var.charging_unit)}",
"error_message": "Invalid input, please re-enter."
}
},
"charging_period": {
"default": 1,
"description": "包年包月时长,当charging_unit取值为“year”,取值范围为1~3;取值为“month”,取值范围为1~9。当charging_mode(计费模式)为prePaid时,此选项为必填项。默认为1。",
"type": "number",
"nullable": "false",
"validation": {
"condition": "${length(regexall(\"^[1-9]$\",var.charging_period))>0}",
"error_message": "Invalid input, please re-enter."
}
},
"eip_bandwidth_size": {
"default": 5,
"description": "弹性公网IP带宽大小,该模板采用按带宽计费。取值范围为1~2000Mbit/s。默认值为5Mbit/s",
"type": "number",
"nullable": "false",
"validation": {
"condition": "${length(regexall(\"^(1[0-9]{3}|[1-9][0-9]{0,2}|2000)$\",var.eip_bandwidth_size))>0}",
"error_message": "Invalid input. Please re-enter."
}
}
},
"data": {
"huaweicloud_availability_zones": {
"availability_zones": {}
},
"huaweicloud_images_image": {
"CentOS": {
"most_recent": true,
"name": "CentOS 7.8 64bit",
"visibility": "public"
}
}
},
"resource": {
"huaweicloud_vpc": {
"vpc": {
"cidr": "172.16.0.0/24",
"name": "${var.vpc_name}"
}
},
"huaweicloud_vpc_subnet": {
"subnet": {
"availability_zone": "${data.huaweicloud_availability_zones.availability_zones.names[0]}",
"cidr": "${huaweicloud_vpc.vpc.cidr}",
"gateway_ip": "172.16.0.1",
"name": "${var.vpc_name}_subnet",
"vpc_id": "${huaweicloud_vpc.vpc.id}"
}
},
"huaweicloud_networking_secgroup": {
"secgroup": {
"name": "${var.secgroup_name}"
}
},
"huaweicloud_networking_secgroup_rule": {
"allow_ping": {
"description": "允许ping程序测试弹性云服务器的连通性",
"direction": "ingress",
"ethertype": "IPv4",
"protocol": "icmp",
"remote_ip_prefix": "0.0.0.0/0",
"security_group_id": "${huaweicloud_networking_secgroup.secgroup.id}"
},
"allow_ssh_linux": {
"description": "允许SSH远程连接Linux弹性云服务器",
"direction": "ingress",
"ethertype": "IPv4",
"ports": 22,
"protocol": "tcp",
"remote_ip_prefix": "172.16.0.0/24",
"security_group_id": "${huaweicloud_networking_secgroup.secgroup.id}"
},
"allow_all": {
"description": "允许用户通过浏览器登录Kuboard-Spray平台",
"direction": "ingress",
"ethertype": "IPv4",
"ports": 80,
"protocol": "tcp",
"remote_ip_prefix": "0.0.0.0/0",
"security_group_id": "${huaweicloud_networking_secgroup.secgroup.id}"
}
},
"huaweicloud_vpc_eip": {
"myeip": {
"bandwidth": {
"charge_mode": "bandwidth",
"name": "${var.ecs_name}_eip",
"share_type": "PER",
"size": "${var.eip_bandwidth_size}"
},
"publicip": {
"type": "5_bgp"
},
"charging_mode": "${var.charging_mode}",
"period_unit": "${var.charging_unit}",
"period": "${var.charging_period}"
}
},
"huaweicloud_compute_instance":{
"instance": {
"name": "${var.ecs_name}_ecs",
"image_id": "${data.huaweicloud_images_image.CentOS.id}",
"flavor_id": "${var.ecs_flavor}",
"security_group_ids": [
"${huaweicloud_networking_secgroup.secgroup.id}"
],
"availability_zone": "${data.huaweicloud_availability_zones.availability_zones.names[0]}",
"system_disk_type": "SAS",
"system_disk_size": "${var.system_disk_size}",
"charging_mode": "${var.charging_mode}",
"period_unit": "${var.charging_unit}",
"period": "${var.charging_period}",
"admin_pass": "${var.ecs_password}",
"network": {
"fixed_ip_v4": "172.16.0.10",
"uuid": "${huaweicloud_vpc_subnet.subnet.id}"
},
"eip_id": "${huaweicloud_vpc_eip.myeip.id}",
"user_data": "#!/bin/bash\necho 'root:${var.ecs_password}'|chpasswd\nwget -P /tmp/ https://documentation-samples.obs.cn-north-4.myhuaweicloud.com/solution-as-code-publicbucket/solution-as-code-moudle/deploying-and-managing-kubernetes-clusters/userdata/install_kuboard_spray.sh\nchmod 744 /tmp/install_kuboard_spray.sh\nsh /tmp/install_kuboard_spray.sh \nrm -rf /tmp/install_kuboard_spray.sh"
}
}
},
"output": {
"登录Kuboard-Spray": {
"value": "部署成功后,脚本开始执行,耐心等待大约10分钟左右。请在浏览器输入网址:http://${huaweicloud_vpc_eip.myeip.address},即可访问网站"
}
}
}