├── ansible ├── inventory ├── ansible.cfg ├── etcd-reset.yaml ├── etcd-reset-other.yaml ├── kubernetes.repo ├── kube-node.yaml ├── kube-workers.yaml ├── kube-reset.yaml ├── configure-kubectl.yaml ├── kube-other-masters.yaml ├── first-etcdadm.yaml ├── other-etcds.yaml ├── get-etcd-info.yaml ├── regression.yaml ├── create-token.yaml ├── kube-first-master.yaml └── kubelet.yaml ├── .gitignore ├── terraform ├── modules │ ├── is_lb_pool_member │ │ ├── output.tf │ │ ├── versions.tf │ │ ├── variables.tf │ │ └── main.tf │ ├── kube_base │ │ ├── variables.tf │ │ ├── versions.tf │ │ ├── output.tf │ │ └── main.tf │ ├── is_lb │ │ ├── versions.tf │ │ ├── output.tf │ │ ├── variables.tf │ │ └── main.tf │ └── is_instance │ │ ├── versions.tf │ │ ├── output.tf │ │ ├── variables.tf │ │ └── main.tf ├── versions.tf ├── variables.tf ├── output.tf ├── .gitignore └── main.tf ├── retrieve_master_ip ├── ansible.cfg ├── OSTS ├── kube_resources ├── kubernetes-dashboard.yaml ├── kube_ui_service_account.yaml ├── kube_ui_svc.yaml └── kube_ui_cluster_role_binding.yaml ├── ssh_master ├── ssh_worker ├── etcd_member_list ├── prepare_ansible_inventory.py ├── deploy_kube_ui ├── .envrc-template ├── README.md ├── Makefile └── terraform_show.json /ansible/inventory: -------------------------------------------------------------------------------- 1 | 52.116.207.128 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .envrc 2 | ssh-keys/ 3 | 4 | -------------------------------------------------------------------------------- /terraform/modules/is_lb_pool_member/output.tf: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ansible/ansible.cfg: -------------------------------------------------------------------------------- 1 | [ssh_connection] 2 | retries=2 3 | enable_task_debugger = True 4 | -------------------------------------------------------------------------------- /retrieve_master_ip: -------------------------------------------------------------------------------- 1 | grep master00 /tmp/ansible-hosts | awk '{ print $2 }' | cut -f2 -d= -------------------------------------------------------------------------------- /ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | inventory = /tmp/ansible-hosts 3 | host_key_checking = False 4 | 5 | 6 | -------------------------------------------------------------------------------- /OSTS: -------------------------------------------------------------------------------- 1 | kube-master-1 ansible_host=P_ADDRESS ansible_user=root 2 | kube-master-1 ansible_host=P_ADDRESS ansible_user=root 3 | -------------------------------------------------------------------------------- /kube_resources/kubernetes-dashboard.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: kubernetes-dashboard 5 | -------------------------------------------------------------------------------- /terraform/modules/kube_base/variables.tf: -------------------------------------------------------------------------------- 1 | variable "RESOURCE_PREFIX" {} 2 | variable "SSH_PUBLIC_KEY" {} 3 | variable "zone" {} 4 | -------------------------------------------------------------------------------- /ansible/etcd-reset.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | remote_user: root 4 | 5 | tasks: 6 | - name: Reset etcd 7 | shell: /tmp/etcdadm/etcdadm reset -------------------------------------------------------------------------------- /terraform/modules/is_lb/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_providers { 3 | ibm = { 4 | source = "IBM-Cloud/ibm" 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /kube_resources/kube_ui_service_account.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: admin-user 5 | namespace: kubernetes-dashboard -------------------------------------------------------------------------------- /terraform/modules/kube_base/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_providers { 3 | ibm = { 4 | source = "IBM-Cloud/ibm" 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /terraform/modules/is_instance/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_providers { 3 | ibm = { 4 | source = "IBM-Cloud/ibm" 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /terraform/modules/is_lb_pool_member/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_providers { 3 | ibm = { 4 | source = "IBM-Cloud/ibm" 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ansible/etcd-reset-other.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: other-kube-masters 3 | remote_user: root 4 | 5 | tasks: 6 | - name: Reset etcd 7 | shell: /tmp/etcdadm/etcdadm reset -------------------------------------------------------------------------------- /ssh_master: -------------------------------------------------------------------------------- 1 | NUM=$1 2 | echo SSHing to Master $NUM 3 | IP=$(grep master$NUM /tmp/ansible-hosts | awk '{ print $2 }' | cut -f2 -d=) 4 | echo IP: $IP 5 | ssh -i ssh-keys/ssh-key root@$IP 6 | -------------------------------------------------------------------------------- /ssh_worker: -------------------------------------------------------------------------------- 1 | NUM=$1 2 | echo SSHing to Worker $NUM 3 | IP=$(grep worker$NUM /tmp/ansible-hosts | awk '{ print $2 }' | cut -f2 -d=) 4 | echo IP: $IP 5 | ssh -i ssh-keys/ssh-key root@$IP 6 | -------------------------------------------------------------------------------- /terraform/modules/is_instance/output.tf: -------------------------------------------------------------------------------- 1 | output "floating_ips" { 2 | value = ibm_is_floating_ip.fip 3 | } 4 | 5 | output "instances" { 6 | value = ibm_is_instance.is_instance 7 | } 8 | -------------------------------------------------------------------------------- /terraform/modules/is_lb_pool_member/variables.tf: -------------------------------------------------------------------------------- 1 | variable "lb_pool_id" { 2 | type = string 3 | } 4 | 5 | variable "lb_id" { 6 | type = string 7 | } 8 | 9 | variable "masters" { 10 | type = list 11 | } -------------------------------------------------------------------------------- /terraform/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = ">= 0.14" 3 | required_providers { 4 | ibm = { 5 | source = "IBM-Cloud/ibm" 6 | version = ">= 1.17" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /terraform/modules/is_lb/output.tf: -------------------------------------------------------------------------------- 1 | output "lb_hostname" { 2 | value = ibm_is_lb.is_lb.hostname 3 | } 4 | 5 | output "lb_id" { 6 | value = ibm_is_lb.is_lb.id 7 | } 8 | 9 | output "lb_pool_id" { 10 | value = ibm_is_lb_pool.is_lb_pool.id 11 | } 12 | 13 | -------------------------------------------------------------------------------- /terraform/modules/is_lb/variables.tf: -------------------------------------------------------------------------------- 1 | variable "name" { 2 | type = string 3 | } 4 | 5 | variable "subnet_id" { 6 | type = string 7 | } 8 | 9 | variable "resource_group" { 10 | type = string 11 | } 12 | 13 | variable "security_group_id" { 14 | type = string 15 | } 16 | 17 | -------------------------------------------------------------------------------- /ansible/kubernetes.repo: -------------------------------------------------------------------------------- 1 | [kubernetes] 2 | name=Kubernetes 3 | baseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64 4 | enabled=1 5 | gpgcheck=1 6 | repo_gpgcheck=1 7 | gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg 8 | https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg 9 | 10 | -------------------------------------------------------------------------------- /etcd_member_list: -------------------------------------------------------------------------------- 1 | DIR=/etc/etcd/pki 2 | 3 | make prep_ansible_inventory 4 | 5 | IP=$(grep master00 /tmp/ansible-hosts | awk '{ print $2 }' | cut -f2 -d=) 6 | echo Master IP: $IP 7 | 8 | ssh -i ssh-keys/ssh-key root@$IP "ETCDCTL_API=3 /opt/bin/etcdctl --cert $DIR/peer.crt --key $DIR/peer.key --cacert $DIR/ca.crt --endpoints https://127.0.0.1:2379 member list" -------------------------------------------------------------------------------- /kube_resources/kube_ui_svc.yaml: -------------------------------------------------------------------------------- 1 | kind: Service 2 | apiVersion: v1 3 | metadata: 4 | labels: 5 | k8s-app: kubernetes-dashboard 6 | name: kubernetes-dashboard 7 | namespace: kubernetes-dashboard 8 | spec: 9 | type: NodePort 10 | ports: 11 | - port: 443 12 | targetPort: 8443 13 | selector: 14 | k8s-app: kubernetes-dashboard -------------------------------------------------------------------------------- /ansible/kube-node.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: kube-node 3 | remote_user: root 4 | tasks: 5 | - include: kubelet.yaml 6 | 7 | - debug: msg="Master IP is {{ master_ip }}" 8 | 9 | - name: Initialize the node 10 | shell: kubeadm join --token mymymy.kubernetesssssss {{ master_ip }}:6443 --skip-preflight-checks 11 | ignore_errors: yes 12 | 13 | -------------------------------------------------------------------------------- /kube_resources/kube_ui_cluster_role_binding.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: ClusterRoleBinding 3 | metadata: 4 | name: admin-user 5 | roleRef: 6 | apiGroup: rbac.authorization.k8s.io 7 | kind: ClusterRole 8 | name: cluster-admin 9 | subjects: 10 | - kind: ServiceAccount 11 | name: admin-user 12 | namespace: kubernetes-dashboard -------------------------------------------------------------------------------- /terraform/modules/is_lb_pool_member/main.tf: -------------------------------------------------------------------------------- 1 | resource "ibm_is_lb_pool_member" "testacc_lb_mem" { 2 | count = length(var.masters) 3 | lb = var.lb_id 4 | pool = var.lb_pool_id 5 | port = 6443 6 | target_address = var.masters[count.index].primary_network_interface[0].primary_ipv4_address 7 | weight = 60 8 | } 9 | -------------------------------------------------------------------------------- /ansible/kube-workers.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: workers 3 | remote_user: root 4 | environment: 5 | KUBECONFIG: /etc/kubernetes/admin.conf 6 | tasks: 7 | - debug: msg="Master IP is {{ ansible_default_ipv4.address }}" 8 | - debug: msg="join is {{ join }}" 9 | 10 | - include: kubelet.yaml 11 | 12 | - name: Initialize the workers 13 | shell: "{{ join }}" 14 | ignore_errors: yes 15 | 16 | 17 | -------------------------------------------------------------------------------- /terraform/variables.tf: -------------------------------------------------------------------------------- 1 | variable "zone" { 2 | # FIXME: for some reason, "eu-gb-1" does not work as a zone name. 3 | type = string 4 | default = "us-east-2" 5 | } 6 | 7 | # These variables are supplied from the .envrc file in TF_VAR_xxx environment 8 | # variables. 9 | variable "SSH_PUBLIC_KEY" {} 10 | variable "RESOURCE_PREFIX" {} 11 | variable "NUM_MASTERS" {} 12 | variable "NUM_WORKERS" {} 13 | variable "CLOUD_REGION" {} 14 | variable "SECOND_DISK_CAPACITY" {} 15 | -------------------------------------------------------------------------------- /ansible/kube-reset.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | remote_user: root 4 | environment: 5 | KUBECONFIG: /etc/kubernetes/admin.conf 6 | 7 | tasks: 8 | - name: Reset the master 9 | shell: kubeadm reset -f 10 | 11 | - name: Get running processes 12 | shell: "ps -ef | grep -v grep | grep -w kube | awk '{print $2}'" 13 | register: running_processes 14 | 15 | - name: Kill running processes 16 | shell: "kill {{ item }}" 17 | with_items: "{{ running_processes.stdout_lines }}" -------------------------------------------------------------------------------- /terraform/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "masters" { 3 | value = module.is_instance_masters 4 | } 5 | 6 | output "workers" { 7 | value = module.is_instance_workers 8 | } 9 | 10 | output "lb_hostname" { 11 | value = module.kube_base.lb_hostname 12 | } 13 | 14 | /* 15 | output "lb_id" { 16 | value = module.is_lb.lb_id 17 | } 18 | 19 | output "lb_pool_id" { 20 | value = module.is_lb.lb_pool_id 21 | } 22 | */ 23 | 24 | output "first_master_ip" { 25 | value = module.is_instance_masters.instances[0].primary_network_interface[0].primary_ipv4_address 26 | } 27 | -------------------------------------------------------------------------------- /terraform/modules/is_instance/variables.tf: -------------------------------------------------------------------------------- 1 | variable "name" { 2 | type = string 3 | } 4 | 5 | variable "subnet_id" { 6 | type = string 7 | } 8 | 9 | variable "security_group_id" { 10 | type = string 11 | } 12 | 13 | variable "vpc_id" { 14 | type = string 15 | } 16 | 17 | variable "ssh_key_id" { 18 | type = string 19 | } 20 | 21 | variable "zone" { 22 | type = string 23 | } 24 | 25 | variable "resource_group" { 26 | type = string 27 | } 28 | 29 | variable "num_instances" { 30 | type = string 31 | } 32 | 33 | variable "second_disk_capacity" { 34 | type = number 35 | } 36 | 37 | -------------------------------------------------------------------------------- /terraform/modules/kube_base/output.tf: -------------------------------------------------------------------------------- 1 | output "resource_group_id" { 2 | value = ibm_resource_group.group.id 3 | } 4 | 5 | output "subnet_id" { 6 | value = ibm_is_subnet.subnet.id 7 | } 8 | 9 | output "security_group_id" { 10 | value = ibm_is_security_group.security_group.id 11 | } 12 | 13 | output "lb_hostname" { 14 | value = module.is_lb.lb_hostname 15 | } 16 | 17 | output "lb_id" { 18 | value = module.is_lb.lb_id 19 | } 20 | 21 | output "lb_pool_id" { 22 | value = module.is_lb.lb_pool_id 23 | } 24 | 25 | output "ssh_key_id" { 26 | value = ibm_is_ssh_key.ssh-key.id 27 | } 28 | 29 | output "vpc_id" { 30 | value = ibm_is_vpc.vpc.id 31 | } 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /ansible/configure-kubectl.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: first-kube-master 3 | remote_user: root 4 | tasks: 5 | - debug: msg="LB hosntmae is {{ lb_hostname }}" 6 | 7 | - name: Copy kube config file 8 | ansible.builtin.copy: 9 | src: /etc/kubernetes/admin.conf 10 | dest: /tmp/kube.config 11 | remote_src: yes 12 | 13 | - name: Inject public IP in Kube config 14 | ansible.builtin.lineinfile: 15 | path: /tmp/kube.config 16 | regexp: 'server:' 17 | line: ' server: https://{{ lb_hostname }}:6443' 18 | 19 | - debug: msg="Kubernetes URL is https://{{ lb_hostname }}:6443" 20 | 21 | - name: Fetching admin file 22 | fetch: 23 | src: /tmp/kube.config 24 | dest: ~/.kube/config 25 | flat: yes 26 | 27 | -------------------------------------------------------------------------------- /ansible/kube-other-masters.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: other-kube-masters 3 | remote_user: root 4 | environment: 5 | KUBECONFIG: /etc/kubernetes/admin.conf 6 | tasks: 7 | - debug: msg="Master IP is {{ ansible_default_ipv4.address }}" 8 | - debug: msg="join is {{ join }}" 9 | 10 | - include: kubelet.yaml 11 | 12 | - name: Copy certificate files 13 | copy: 14 | src: /tmp/certs.tgz 15 | dest: /tmp 16 | 17 | - name: Create directory /etc/kubernetes/pki/ if it does not exist 18 | ansible.builtin.file: 19 | path: /etc/kubernetes/pki/ 20 | state: directory 21 | 22 | - name: Unarchive certificate files 23 | unarchive: 24 | src: /tmp/certs.tgz 25 | dest: /etc/kubernetes/pki/ 26 | 27 | - name: Initialize the masters 28 | shell: "{{ join }} --control-plane" 29 | ignore_errors: yes 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /terraform/modules/is_lb/main.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "ibm_is_lb" "is_lb" { 3 | name = var.name 4 | subnets = [var.subnet_id] 5 | resource_group = var.resource_group 6 | security_groups = [var.security_group_id] 7 | 8 | } 9 | 10 | 11 | resource "ibm_is_lb_pool" "is_lb_pool" { 12 | name = var.name 13 | lb = ibm_is_lb.is_lb.id 14 | algorithm = "round_robin" 15 | protocol = "tcp" 16 | health_delay = 60 17 | health_retries = 5 18 | health_timeout = 30 19 | health_type = "tcp" 20 | } 21 | 22 | resource "ibm_is_lb_listener" "is_lb_listener" { 23 | lb = ibm_is_lb.is_lb.id 24 | port = 6443 25 | protocol = "tcp" 26 | default_pool = ibm_is_lb_pool.is_lb_pool.id 27 | } 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /prepare_ansible_inventory.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | HOSTS = "/tmp/ansible-hosts" 4 | 5 | file = open('terraform_show.json') 6 | show = json.load(file) 7 | 8 | f = open(HOSTS, "w") 9 | 10 | # List the master nodes 11 | ips = show['values']['outputs']['masters']['value']['floating_ips'] 12 | 13 | f.write("[first-kube-master]\n") 14 | f.write("%s ansible_host=%s ansible_user=root\n" % (ips[0]['name'], ips[0]['address'])) 15 | f.write("\n"); 16 | 17 | f.write("[other-kube-masters]\n") 18 | for i in range(1, len(ips)): 19 | f.write("%s ansible_host=%s ansible_user=root\n" % (ips[i]['name'], ips[i]['address'])) 20 | f.write("\n"); 21 | 22 | # List the workers 23 | ips = show['values']['outputs']['workers']['value']['floating_ips'] 24 | 25 | f.write("[workers]\n") 26 | for i in range(0, len(ips)): 27 | f.write("%s ansible_host=%s ansible_user=root\n" % (ips[i]['name'], ips[i]['address'])) 28 | 29 | 30 | f.close() 31 | 32 | -------------------------------------------------------------------------------- /ansible/first-etcdadm.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: first-kube-master 3 | remote_user: root 4 | environment: 5 | KUBECONFIG: /etc/kubernetes/admin.conf 6 | tasks: 7 | - debug: msg="Master IP is {{ ansible_default_ipv4.address }}" 8 | 9 | - name: Create directory /etc/kubernetes/pki/ if it does not exist 10 | ansible.builtin.file: 11 | path: /tmp/etcdadm 12 | state: directory 13 | 14 | - name: Clone git repository 15 | git: 16 | repo: https://github.com/kubernetes-sigs/etcdadm.git 17 | dest: /tmp/etcdadm 18 | retries: 2 19 | 20 | - name: Install make and go 21 | apt: 22 | update_cache: yes 23 | name: 24 | - make 25 | - golang-go 26 | state: present 27 | 28 | - name: Build etcdadm 29 | shell: make etcdadm 30 | args: 31 | chdir: /tmp/etcdadm 32 | 33 | - name: Create an etcd cluster 34 | shell: /tmp/etcdadm/etcdadm init 35 | retries: 1 36 | 37 | -------------------------------------------------------------------------------- /ansible/other-etcds.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: other-kube-masters 3 | serial: 1 4 | remote_user: root 5 | tasks: 6 | - debug: msg="First master IP is {{ first_master_ip }}" 7 | 8 | - name: Copy certificate files 9 | copy: 10 | src: /tmp/etcd_certs.tgz 11 | dest: /tmp 12 | 13 | - name: Create directory /etc/etcd/pki/ 14 | ansible.builtin.file: 15 | path: /etc/etcd/pki 16 | state: directory 17 | 18 | - name: Unarchive certificate files 19 | unarchive: 20 | src: /tmp/etcd_certs.tgz 21 | dest: /etc/etcd/pki 22 | 23 | - name: Create directory /tmp/etcdadm 24 | ansible.builtin.file: 25 | path: /tmp/etcdadm 26 | state: directory 27 | 28 | - name: Copy etcdadm files 29 | copy: 30 | src: /tmp/etcdadm 31 | dest: /tmp/etcdadm 32 | mode: preserve 33 | 34 | - name: Deploy etcd 35 | shell: "/tmp/etcdadm/etcdadm join https://{{ first_master_ip }}:2379" 36 | 37 | 38 | -------------------------------------------------------------------------------- /terraform/.gitignore: -------------------------------------------------------------------------------- 1 | .envrc 2 | terraform.tfvars 3 | 4 | .terraform.lock.* 5 | 6 | # Local .terraform directories 7 | **/.terraform/* 8 | 9 | # .tfstate.backup files 10 | *.tfstate 11 | *.tfstate.backup 12 | 13 | # Crash log files 14 | crash.log 15 | 16 | # Ignore any .tfvars files that are generated automatically for each Terraform run. Most 17 | # .tfvars files are managed as part of configuration and so should be included in 18 | # version control. 19 | # 20 | # example.tfvars 21 | 22 | # Ignore override files as they are usually used to override resources locally and so 23 | # are not checked in 24 | override.tf 25 | override.tf.json 26 | *_override.tf 27 | *_override.tf.json 28 | 29 | # Include override files you do wish to add to version control using negated pattern 30 | # 31 | # !example_override.tf 32 | 33 | # Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan 34 | # example: *tfplan* 35 | 36 | # Ignore CLI configuration files 37 | .terraformrc 38 | terraform.rc 39 | -------------------------------------------------------------------------------- /deploy_kube_ui: -------------------------------------------------------------------------------- 1 | kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml 2 | 3 | kubectl delete svc kubernetes-bashboard || echo "Creating Kube UI service" 4 | kubectl apply -f kube_resources/kube_ui_svc.yaml 5 | 6 | one_node=$(kubectl get nodes -o=custom-columns="NAME:.metadata.name" --no-headers=true | head -1) 7 | echo Node name: $one_node 8 | 9 | ibmcloud target -r $TF_VAR_CLOUD_REGION 10 | 11 | ip=$(ibmcloud is ips --resource-group-name $RESOURCE_PREFIX-group | grep $one_node | awk '{print $2}') 12 | echo Node IP: $ip 13 | 14 | port=$(kubectl get svc -n kubernetes-dashboard kubernetes-dashboard -o jsonpath='{.spec.ports[0].nodePort}') 15 | 16 | echo URL: https://$ip:$port 17 | 18 | kubectl apply -f kube_resources/kube_ui_service_account.yaml 19 | kubectl apply -f kube_resources/kube_ui_cluster_role_binding.yaml 20 | 21 | echo Secret: 22 | kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}" 23 | echo 24 | 25 | -------------------------------------------------------------------------------- /ansible/get-etcd-info.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: first-kube-master 3 | remote_user: root 4 | environment: 5 | KUBECONFIG: /etc/kubernetes/admin.conf 6 | tasks: 7 | - debug: msg="Master IP is {{ ansible_default_ipv4.address }}" 8 | 9 | - name: Remove archive file 10 | file: 11 | path: "/tmp/etcd_certs.tgz" 12 | state: absent 13 | 14 | - name: Archive certificate files 15 | archive: 16 | path: 17 | - /etc/etcd/pki/ca.* 18 | dest: /tmp/etcd_certs.tgz 19 | 20 | - name: Fetch certificate files 21 | fetch: 22 | src: /tmp/etcd_certs.tgz 23 | dest: /tmp/ 24 | flat: yes 25 | 26 | - name: Fetch etcdadm 27 | fetch: 28 | src: /tmp/etcdadm/etcdadm 29 | dest: /tmp/ 30 | flat: yes 31 | 32 | - name: Archive certificate peer files 33 | archive: 34 | path: 35 | - /etc/etcd/pki/peer.* 36 | dest: /tmp/etcd_certs_peer.tgz 37 | 38 | - name: Fetch certificate peer files 39 | fetch: 40 | src: /tmp/etcd_certs_peer.tgz 41 | dest: /tmp/ 42 | flat: yes 43 | 44 | -------------------------------------------------------------------------------- /.envrc-template: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # All the resources created by the Makefile will use this prefix. Recommend you 4 | # set to 'satellite-test-' or similar (perhaps including your initials if you're 5 | # on a shared account), e.g. you might use 'abc-my-satellite-test-'. 6 | export RESOURCE_PREFIX="XXX" 7 | 8 | # Provide an API key. Docs for creating one at 9 | # https://cloud.ibm.com/docs/account?topic=account-userapikey#create_user_key. 10 | export IC_API_KEY="XXX" 11 | 12 | # NUM_WORKERS: The number of worker nodes that will be created to run workloads on 13 | export TF_VAR_NUM_WORKERS=1 14 | 15 | # NUM_MASTERS: The number of master nodes 16 | export TF_VAR_NUM_MASTERS=1 17 | 18 | # CPU and memory only apply to virtual servers. 19 | export CPU=2 20 | export MEMORY=2 21 | 22 | # Kubelet port number 23 | export KUBELET_PORT_NUMBER=10250 24 | 25 | # IBM Cloud region 26 | export TF_VAR_CLOUD_REGION=us-east 27 | 28 | # Second disk on each VM 29 | export TF_VAR_SECOND_DISK_CAPACITY=0 30 | 31 | # DON'T CHANGE THESE LINES. 32 | export TF_VAR_RESOURCE_PREFIX=${RESOURCE_PREFIX} 33 | export ANSIBLE_HOST_KEY_CHECKING=False 34 | -------------------------------------------------------------------------------- /ansible/regression.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: kube-master 3 | remote_user: root 4 | tasks: 5 | 6 | - name: Clone repository 7 | git: repo=https://github.com/kubernetes/kubernetes.git dest=/root/regression force=yes 8 | 9 | - name: Revert to specific commit release (before the use of Deployment) 10 | command: git reset --hard 6a657e0bc25eafd44fa042b079c36f8f0413d420 chdir=/root/regression 11 | 12 | - name: Tear down existing POD rc 13 | command: kubectl delete rc -l "app in (redis, guestbook)" 14 | 15 | - name: Tear down existing POD rc 16 | command: kubectl delete service -l "app in (redis, guestbook)" 17 | 18 | - name: Deploy POD 19 | command: kubectl create -f examples/guestbook/all-in-one/guestbook-all-in-one.yaml chdir=/root/regression 20 | 21 | - name: Check POD 22 | shell: kubectl get svc | grep frontend 23 | register: result 24 | failed_when: ( result.rc != 0 ) 25 | 26 | - name: Tear down existing POD rc 27 | command: kubectl delete rc -l "app in (redis, guestbook)" 28 | 29 | - name: Tear down existing POD rc 30 | command: kubectl delete service -l "app in (redis, guestbook)" 31 | 32 | 33 | -------------------------------------------------------------------------------- /ansible/create-token.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: first-kube-master 3 | remote_user: root 4 | environment: 5 | KUBECONFIG: /etc/kubernetes/admin.conf 6 | tasks: 7 | - debug: msg="Master IP is {{ ansible_default_ipv4.address }}" 8 | 9 | - name: Create join statement 10 | shell: kubeadm token create --print-join-command 11 | register: join 12 | 13 | - debug: msg="Join statement is {{ join.stdout }}" 14 | 15 | - name: Save join 16 | copy: 17 | dest=/tmp/join 18 | content="{{ join.stdout }}" 19 | 20 | - name: Fetch token 21 | fetch: 22 | src: /tmp/join 23 | dest: /tmp/ 24 | flat: yes 25 | 26 | - name: Remove archive file 27 | file: 28 | path: "/tmp/certs.tgz" 29 | state: absent 30 | 31 | - name: Archive certificate files 32 | archive: 33 | path: 34 | - /etc/kubernetes/pki/ca* 35 | - /etc/kubernetes/pki/etcd_* 36 | - /etc/kubernetes/pki/front* 37 | - /etc/kubernetes/pki/sa* 38 | - /etc/kubernetes/pki/etcd/ca* 39 | - /etc/kubernetes/pki/etcd/health* 40 | dest: /tmp/certs.tgz 41 | 42 | - name: Fetch certificate files 43 | fetch: 44 | src: /tmp/certs.tgz 45 | dest: /tmp/ 46 | flat: yes 47 | -------------------------------------------------------------------------------- /terraform/modules/is_instance/main.tf: -------------------------------------------------------------------------------- 1 | data "ibm_is_image" "ubuntu" { 2 | name = "ibm-ubuntu-20-04-minimal-amd64-2" 3 | } 4 | 5 | resource "ibm_is_volume" "second_disk" { 6 | count = var.num_instances 7 | name = format("%s%02d-second", var.name, count.index) 8 | profile = "10iops-tier" 9 | zone = var.zone 10 | } 11 | 12 | resource "ibm_is_instance" "is_instance" { 13 | count = var.num_instances 14 | name = format("%s%02d", var.name, count.index) 15 | image = data.ibm_is_image.ubuntu.id 16 | profile = "cx2-2x4" 17 | 18 | resource_group = var.resource_group 19 | 20 | primary_network_interface { 21 | subnet = var.subnet_id 22 | security_groups = [var.security_group_id] 23 | allow_ip_spoofing = true 24 | } 25 | 26 | vpc = var.vpc_id 27 | zone = var.zone 28 | keys = [var.ssh_key_id] 29 | 30 | timeouts { 31 | # From experience, this sometimes takes longer than 30m, which is the 32 | # default. 33 | create = "60m" 34 | update = "60m" 35 | delete = "60m" 36 | } 37 | 38 | volumes = [ibm_is_volume.second_disk[count.index].id] 39 | 40 | } 41 | 42 | resource "ibm_is_floating_ip" "fip" { 43 | count = var.num_instances 44 | name = format("%s%02d", var.name, count.index) 45 | target = ibm_is_instance.is_instance[count.index].primary_network_interface[0].id 46 | resource_group = var.resource_group 47 | } 48 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Deploy a Kubernetes environment in SoftLayer with a single command! It's that simple. 2 | 3 | ### Prerequisites: 4 | 1. PIP - `sudo apt-get install python-pip python-dev build-essential` 5 | 2. SoftLayer CLI - `sudo pip install --upgrade pip softlayer` 6 | 3. Ansible v2.0 or newer- `sudo apt-get install ansible` 7 | 4. sshpass - `sudo apt-get install sshpass` 8 | 5. A default SSH key must exist on your local platform. If one does not exist, this can be created via the command `ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa`. 9 | 10 | NOTE: If you encounter SSH issues running from Ubuntu, install `sudo pip install requests[security]` first. If that does not eliminate the issue, you may be hitting an issue with GNOME Keyring. See [this article](https://chrisjean.com/ubuntu-ssh-fix-for-agent-admitted-failure-to-sign-using-the-key/) for a fix. 11 | 12 | ### Deployment: 13 | Follow this procedure: 14 | 15 | 1. First clone this project: `git clone https://github.com/patrocinio/kubernetes-softlayer.git` 16 | 2. Copy the file .envrc-template as .envrc: `cp .envrc-template .envrc` 17 | 3. Mandatory fields: 18 | * RESOURCE_PREFIX 19 | * API_KEY: Check https://cloud.ibm.com/docs/account?topic=account-userapikey#create_user_key to see how you can generate an API key 20 | 4. Optional ones: 21 | * TF_VAR_NUM_WORKERS: The number of worker nodes 22 | * TF_VAR_NUM_MASTERS: The number of master nodes 23 | * KUBELET_PORT_NUMBER: The port number that kubelet is listening (default is 10250) 24 | * TF_VAR_CLOUD_REGION: The IBM Cloud region where the cluster is deployed 25 | 5. Load the file in the current shell:`. ./.envrc` 26 | 5. Run the following command:`make all` 27 | 28 | Simple, no? 29 | 30 | The process will go through a few phases: 31 | - It creates the cloud resources, using Terraform 32 | - It configures the virtual machines, using Ansible 33 | 34 | 35 | -------------------------------------------------------------------------------- /terraform/main.tf: -------------------------------------------------------------------------------- 1 | provider "ibm" { 2 | region = "${var.CLOUD_REGION}" 3 | } 4 | 5 | # https://cloud.ibm.com/docs/vpc?topic=solution-tutorials-vpc-public-app-private-backend 6 | 7 | # Documentation: https://cloud.ibm.com/docs/ibm-cloud-provider-for-terraform?topic=ibm-cloud-provider-for-terraform-vpc-gen2-resources 8 | 9 | data "ibm_is_images" "ds_images" { 10 | } 11 | 12 | module "kube_base" { 13 | source = "./modules/kube_base" 14 | 15 | RESOURCE_PREFIX = var.RESOURCE_PREFIX 16 | SSH_PUBLIC_KEY = var.SSH_PUBLIC_KEY 17 | zone = var.zone 18 | } 19 | 20 | 21 | module "is_instance_masters" { 22 | source = "./modules/is_instance" 23 | 24 | name = "${var.RESOURCE_PREFIX}-master" 25 | num_instances = var.NUM_MASTERS 26 | resource_group = module.kube_base.resource_group_id 27 | subnet_id = module.kube_base.subnet_id 28 | security_group_id = module.kube_base.security_group_id 29 | vpc_id = module.kube_base.vpc_id 30 | ssh_key_id = module.kube_base.ssh_key_id 31 | zone = var.zone 32 | second_disk_capacity = var.SECOND_DISK_CAPACITY 33 | } 34 | 35 | module "is_instance_workers" { 36 | source = "./modules/is_instance" 37 | 38 | name = "${var.RESOURCE_PREFIX}-worker" 39 | num_instances = var.NUM_WORKERS 40 | resource_group = module.kube_base.resource_group_id 41 | subnet_id = module.kube_base.subnet_id 42 | security_group_id = module.kube_base.security_group_id 43 | vpc_id = module.kube_base.vpc_id 44 | ssh_key_id = module.kube_base.ssh_key_id 45 | zone = var.zone 46 | second_disk_capacity = var.SECOND_DISK_CAPACITY 47 | } 48 | 49 | module "is_lb_pool_member" { 50 | source = "./modules/is_lb_pool_member" 51 | 52 | lb_pool_id = module.kube_base.lb_pool_id 53 | lb_id = module.kube_base.lb_id 54 | masters = module.is_instance_masters.instances 55 | } 56 | 57 | -------------------------------------------------------------------------------- /ansible/kube-first-master.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: first-kube-master 3 | remote_user: root 4 | environment: 5 | KUBECONFIG: /etc/kubernetes/admin.conf 6 | tasks: 7 | - debug: msg="Master IP is {{ ansible_default_ipv4.address }}" 8 | - debug: msg="LB hosntmame is {{ lb_hostname }}" 9 | 10 | - include: kubelet.yaml 11 | 12 | # - name: Generate certificates and kubeconfig files 13 | # shell: kubeadm init phase {{ item }} 14 | # ignore_errors: yes 15 | # with_items: 16 | # - certs 17 | # - kubeconfig 18 | 19 | # - name: Write kubelet settings 20 | # shell: kubeadm init phase kubelet-start --cri-socket /run/containerd/containerd.sock 21 | # ignore_errors: yes 22 | 23 | # - name: Initialize the master 24 | # shell: kubeadm init phase {{ item }} 25 | # ignore_errors: yes 26 | # with_items: 27 | # - control-plane 28 | # - etcd 29 | # - upload-config 30 | # - update-certs 31 | # - mark-control-plane 32 | # - bootstrap-token 33 | # - kubelet-finalize 34 | # - addon 35 | 36 | - name: Create kubeadm-config.yaml 37 | copy: 38 | dest: /tmp/kubeadm-config.yaml 39 | content: | 40 | apiVersion: kubeadm.k8s.io/v1beta2 41 | kind: InitConfiguration 42 | nodeRegistration: 43 | criSocket: "/var/run/dockershim.sock" 44 | --- 45 | apiVersion: kubeadm.k8s.io/v1beta2 46 | kind: ClusterConfiguration 47 | kubernetesVersion: stable 48 | controlPlaneEndpoint: {{ lb_hostname }}:6443 49 | networking: 50 | podSubnet: "192.168.0.0/16" 51 | serviceSubnet: "192.1.0.0/16" 52 | etcd: 53 | external: 54 | endpoints: 55 | - https://{{ ansible_default_ipv4.address }}:2379 56 | caFile: /etc/etcd/pki/ca.crt 57 | certFile: /etc/etcd/pki/apiserver-etcd-client.crt 58 | keyFile: /etc/etcd/pki/apiserver-etcd-client.key 59 | 60 | - name: Pull the image 61 | shell: kubeadm config images pull 62 | retries: 1 63 | 64 | - name: Initialize the master 65 | shell: kubeadm init --config /tmp/kubeadm-config.yaml --cri-socket /run/containerd/containerd.sock --upload-certs 66 | ignore_errors: yes 67 | 68 | - name: Install Calico operator 69 | shell: kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml 70 | ignore_errors: yes 71 | 72 | - name: Install Calico CNI 73 | shell: kubectl create -f https://docs.projectcalico.org/manifests/custom-resources.yaml 74 | ignore_errors: yes 75 | 76 | - name: Remove master taint 77 | shell: kubectl taint nodes --all node-role.kubernetes.io/master- 78 | ignore_errors: yes 79 | 80 | - name: Remove not-ready taint 81 | shell: kubectl taint nodes --all node.kubernetes.io/not-ready- 82 | ignore_errors: yes 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | SHELL := /bin/bash 2 | 3 | HOSTS := /tmp/ansible-hosts 4 | TEMP_FILE := /tmp/ansible-line 5 | 6 | ifndef RESOURCE_PREFIX 7 | $(error RESOURCE_PREFIX is not set, please read the README and set using .envrc.) 8 | endif 9 | 10 | ifndef IC_API_KEY 11 | $(error IC_API_KEY is not set, please read the README and set using .envrc.) 12 | endif 13 | 14 | .PHONY: all 15 | 16 | aggressive_clean: check_clean 17 | until make perform_clean; do echo 'Retrying clean...'; sleep 10; done 18 | 19 | apply_ansible: first_etcdadm other_etcds first_master other_masters workers kube_ui 20 | 21 | apply_terraform: terraform_init 22 | echo RESOURCE_PREFIX: $(RESOURCE_PREFIX) 23 | echo NUM_MASTERS: $(TF_VAR_NUM_MASTERS) 24 | echo NUM_WORKERS: $(TF_VAR_NUM_WORKERS) 25 | echo CLOUD_REGION: ${TF_VAR_CLOUD_REGION} 26 | echo SECOND_DISK_CAPACITY: $(TF_VAR_SECOND_DISK_CAPACITY) 27 | (cd terraform && terraform apply -auto-approve) 28 | 29 | check_clean: 30 | @echo -n "Are you sure you want to delete all resources? [y/N] " && read ans && [ $${ans:-N} = y ] 31 | 32 | clean: check_clean terraform_init 33 | make perform_clean 34 | 35 | create_join_stmt: 36 | (cd ansible && ansible-playbook -v -i $(HOSTS) create-token.yaml --key-file "../ssh-keys/ssh-key") 37 | 38 | config_kubectl: prep_ansible_inventory 39 | (cd ansible && ansible-playbook -v -i $(HOSTS) configure-kubectl.yaml -e "lb_hostname=$(shell cd terraform && terraform output lb_hostname | tr -d '"')" --key-file "../ssh-keys/ssh-key") 40 | 41 | etcd_reset: 42 | (cd ansible && ansible-playbook -v -i $(HOSTS) etcd-reset.yaml --key-file "../ssh-keys/ssh-key") 43 | 44 | etcd_reset_other: 45 | (cd ansible && ansible-playbook -v -i $(HOSTS) etcd-reset-other.yaml --key-file "../ssh-keys/ssh-key") 46 | 47 | first_etcdadm: prep_ansible_inventory 48 | (cd ansible && ansible-playbook -v -i $(HOSTS) first-etcdadm.yaml --key-file "../ssh-keys/ssh-key") 49 | 50 | first_master: login_ibmcloud prep_ansible_inventory 51 | (cd ansible && ansible-playbook -v -i $(HOSTS) kube-first-master.yaml -e "lb_hostname=$(shell cd terraform && terraform output lb_hostname | tr -d '"') kubelet_port_number=$(KUBELET_PORT_NUMBER)" --key-file "../ssh-keys/ssh-key") 52 | 53 | get_etcd_info: prep_ansible_inventory 54 | (cd ansible && ansible-playbook -v -i $(HOSTS) get-etcd-info.yaml --key-file "../ssh-keys/ssh-key") 55 | 56 | get_terraform_show: 57 | (cd terraform && terraform show -json > ../terraform_show.json) 58 | 59 | login_ibmcloud: 60 | # For now, we forcibly select us-east from this list: https://cloud.ibm.com/docs/satellite?topic=satellite-sat-regions. 61 | ibmcloud login --apikey $(IC_API_KEY) -r us-east 62 | 63 | other_masters: prep_ansible_inventory create_join_stmt 64 | (cd ansible && ansible-playbook -v -i $(HOSTS) kube-other-masters.yaml --key-file "../ssh-keys/ssh-key" -e "join='$(shell cat /tmp/join)' kubelet_port_number=$(KUBELET_PORT_NUMBER)") 65 | 66 | 67 | install: 68 | ibmcloud plugin install container-registry 69 | ibmcloud plugin install container-service 70 | ibmcloud plugin install observe-service 71 | ibmcloud plugin install vpc-infrastructure 72 | 73 | kube_reset: 74 | (cd ansible && ansible-playbook -v -i $(HOSTS) kube-reset.yaml --key-file "../ssh-keys/ssh-key") 75 | 76 | kube_ui: config_kubectl 77 | ./deploy_kube_ui 78 | 79 | other_etcds: get_etcd_info 80 | (cd ansible && ansible-playbook -v -i $(HOSTS) other-etcds.yaml --key-file "../ssh-keys/ssh-key" -e "first_master_ip=$(shell cd terraform && terraform output first_master_ip | tr -d '"')") 81 | 82 | perform_clean: login_ibmcloud 83 | cd terraform && terraform destroy -auto-approve 84 | 85 | prep_ansible_inventory: get_terraform_show 86 | python prepare_ansible_inventory.py 87 | 88 | ssh-keygen: 89 | mkdir -p ssh-keys/ 90 | ssh-keygen -f ssh-keys/ssh-key 91 | chmod 600 ssh 92 | cat ssh-keys/ssh-key.pub | cut -d' ' -f2 | sed 's/^/export TF_VAR_SSH_PUBLIC_KEY="/' | sed 's/$$/"/' >> ./.envrc 93 | 94 | ssh_master: 95 | ssh -i ssh-keys/ssh-key root@$(shell ./retrieve_master_ip) 96 | 97 | terraform_refresh: 98 | (cd terraform && terraform refresh) 99 | 100 | 101 | target_resource_group: 102 | ibmcloud target -g $(RESOURCE_PREFIX)-group 103 | 104 | terraform_init: 105 | ifeq (, $(shell which tfswitch)) 106 | (cd terraform && terraform init) 107 | else 108 | (cd terraform && tfswitch && terraform init) 109 | endif 110 | 111 | watch: 112 | ./watch_ibmcloud $(RESOURCE_PREFIX) 113 | 114 | workers: prep_ansible_inventory create_join_stmt 115 | (cd ansible && ansible-playbook -v -i "$(HOSTS)" kube-workers.yaml --key-file "../ssh-keys/ssh-key" -e "join='$(shell cat /tmp/join)' kubelet_port_number=$(KUBELET_PORT_NUMBER)") 116 | 117 | all: login_ibmcloud 118 | date 119 | make apply_terraform 120 | date 121 | make apply_ansible 122 | date 123 | echo "Done!" 124 | -------------------------------------------------------------------------------- /terraform/modules/kube_base/main.tf: -------------------------------------------------------------------------------- 1 | resource "ibm_is_ssh_key" "ssh-key" { 2 | name = "${var.RESOURCE_PREFIX}-key" 3 | public_key = "ssh-rsa ${var.SSH_PUBLIC_KEY}" 4 | resource_group = ibm_resource_group.group.id 5 | } 6 | 7 | resource "ibm_resource_group" "group" { 8 | name = "${var.RESOURCE_PREFIX}-group" 9 | } 10 | 11 | resource "ibm_is_vpc" "vpc" { 12 | name = "${var.RESOURCE_PREFIX}-vpc" 13 | resource_group = ibm_resource_group.group.id 14 | 15 | } 16 | 17 | resource "ibm_is_subnet" "subnet" { 18 | name = "${var.RESOURCE_PREFIX}-subnet" 19 | vpc = ibm_is_vpc.vpc.id 20 | resource_group = ibm_resource_group.group.id 21 | total_ipv4_address_count = "256" 22 | public_gateway = ibm_is_public_gateway.public-gateway.id 23 | zone = var.zone 24 | 25 | //User can configure timeouts 26 | timeouts { 27 | create = "90m" 28 | delete = "30m" 29 | } 30 | } 31 | 32 | resource "ibm_is_security_group" "security_group" { 33 | vpc = ibm_is_vpc.vpc.id 34 | name = "${var.RESOURCE_PREFIX}-sg" 35 | } 36 | 37 | resource "ibm_is_security_group_rule" "sg-rule-inbound-ssh" { 38 | // group = ibm_is_vpc.vpc.security_group[0].group_id 39 | group = ibm_is_security_group.security_group.id 40 | direction = "inbound" 41 | remote = "0.0.0.0/0" 42 | 43 | tcp { 44 | port_min = 22 45 | port_max = 22 46 | } 47 | } 48 | 49 | resource "ibm_is_security_group_rule" "sg-rule-inbound-kube-api" { 50 | // group = ibm_is_vpc.vpc.security_group[0].group_id 51 | group = ibm_is_security_group.security_group.id 52 | direction = "inbound" 53 | remote = "0.0.0.0/0" 54 | 55 | tcp { 56 | port_min = 6443 57 | port_max = 6443 58 | } 59 | } 60 | 61 | resource "ibm_is_security_group_rule" "sg-rule-inbound-etcd" { 62 | // group = ibm_is_vpc.vpc.security_group[0].group_id 63 | group = ibm_is_security_group.security_group.id 64 | direction = "inbound" 65 | remote = "0.0.0.0/0" 66 | 67 | tcp { 68 | port_min = 2379 69 | port_max = 2380 70 | } 71 | } 72 | 73 | 74 | resource "ibm_is_security_group_rule" "sg-rule-inbound-https" { 75 | group = ibm_is_security_group.security_group.id 76 | direction = "inbound" 77 | remote = "0.0.0.0/0" 78 | 79 | tcp { 80 | port_min = 443 81 | port_max = 443 82 | } 83 | } 84 | 85 | resource "ibm_is_security_group_rule" "sg-rule-inbound-api" { 86 | group = ibm_is_security_group.security_group.id 87 | direction = "inbound" 88 | remote = "0.0.0.0/0" 89 | 90 | tcp { 91 | port_min = 30000 92 | port_max = 32767 93 | } 94 | } 95 | 96 | resource "ibm_is_security_group_rule" "sg-rule-inbound-api2" { 97 | group = ibm_is_security_group.security_group.id 98 | direction = "inbound" 99 | remote = "0.0.0.0/0" 100 | 101 | udp { 102 | port_min = 30000 103 | port_max = 32767 104 | } 105 | } 106 | 107 | 108 | resource "ibm_is_security_group_rule" "sg-rule-inbound-icmp" { 109 | group = ibm_is_security_group.security_group.id 110 | direction = "inbound" 111 | remote = "0.0.0.0/0" 112 | 113 | icmp { 114 | type = 8 115 | } 116 | } 117 | 118 | resource "ibm_is_security_group_rule" "sg-rule-outbound" { 119 | group = ibm_is_security_group.security_group.id 120 | direction = "outbound" 121 | remote = "0.0.0.0/0" 122 | 123 | tcp { 124 | port_min = 1 125 | port_max = 65535 126 | } 127 | } 128 | 129 | resource "ibm_is_security_group_rule" "sg-rule-outbound-all" { 130 | group = ibm_is_security_group.security_group.id 131 | direction = "outbound" 132 | remote = "0.0.0.0/0" 133 | } 134 | 135 | # Hosts must have TCP/UDP/ICMP Layer 3 connectivity for all ports across hosts. 136 | # You cannot block access to certain ports that might block communication across hosts. 137 | resource "ibm_is_security_group_rule" "sg-rule-inbound-from-the-group" { 138 | group = ibm_is_security_group.security_group.id 139 | // group = ibm_is_vpc.vpc.security_group[0].group_id 140 | direction = "inbound" 141 | // remote = ibm_is_vpc.vpc.security_group[0].group_id 142 | remote = ibm_is_security_group.security_group.id 143 | } 144 | 145 | resource "ibm_is_security_group_rule" "sg-rule-outbound-to-the-group" { 146 | group = ibm_is_security_group.security_group.id 147 | // group = ibm_is_vpc.vpc.security_group[0].group_id 148 | direction = "outbound" 149 | // remote = ibm_is_vpc.vpc.security_group[0].group_id 150 | remote = ibm_is_security_group.security_group.id 151 | } 152 | 153 | resource "ibm_is_public_gateway" "public-gateway" { 154 | name = "${var.RESOURCE_PREFIX}-public-gateway" 155 | vpc = ibm_is_vpc.vpc.id 156 | zone = var.zone 157 | resource_group = ibm_resource_group.group.id 158 | 159 | //User can configure timeouts 160 | timeouts { 161 | create = "90m" 162 | } 163 | } 164 | 165 | module "is_lb" { 166 | source = "../is_lb" 167 | 168 | name = "${var.RESOURCE_PREFIX}-lb" 169 | subnet_id = ibm_is_subnet.subnet.id 170 | resource_group = ibm_resource_group.group.id 171 | security_group_id = ibm_is_security_group.security_group.id 172 | } 173 | -------------------------------------------------------------------------------- /ansible/kubelet.yaml: -------------------------------------------------------------------------------- 1 | - debug: msg="Kubelet port number is {{ kubelet_port_number }}" 2 | 3 | - name: Make the Swap inactive 4 | command: swapoff -a 5 | 6 | - name: Remove Swap entry from /etc/fstab. 7 | lineinfile: 8 | dest: /etc/fstab 9 | regexp: swap 10 | state: absent 11 | 12 | - name: Installing Prerequisites for Kubernetes 13 | apt: 14 | name: 15 | - apt-transport-https 16 | - ca-certificates 17 | - curl 18 | - gnupg-agent 19 | - vim 20 | - software-properties-common 21 | state: present 22 | 23 | - name: Add Docker’s official GPG key 24 | apt_key: 25 | url: https://download.docker.com/linux/ubuntu/gpg 26 | state: present 27 | register: key_added 28 | until: key_added is not failed 29 | retries: 2 30 | delay: 10 31 | 32 | - name: Create directory /var/lib/apt/lists/ if it does not exist 33 | ansible.builtin.file: 34 | path: /var/lib/apt/lists/ 35 | state: directory 36 | mode: '0755' 37 | 38 | - name: Add Docker Repository 39 | apt_repository: 40 | repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable 41 | state: present 42 | filename: docker 43 | mode: 0600 44 | validate_certs: no 45 | ignore_errors: yes 46 | 47 | - name: Create containerd file 48 | copy: 49 | dest: "/etc/modules-load.d/containerd.conf" 50 | content: | 51 | overlay 52 | br_netfilter 53 | 54 | 55 | - name: Add some modules 56 | community.general.modprobe: 57 | name: "{{ item }}" 58 | state: present 59 | with_items: 60 | - overlay 61 | - br_netfilter 62 | 63 | - name: Create CRI configuration file 64 | copy: 65 | dest: "/etc/sysctl.d/99-kubernetes-cri.conf" 66 | content: | 67 | net.bridge.bridge-nf-call-iptables = 1 68 | net.ipv4.ip_forward = 1 69 | net.bridge.bridge-nf-call-ip6tables = 1 70 | 71 | - name: Apply sysctl params 72 | command: sysctl --system 73 | 74 | - name: Create directory /etc/containerd if it does not exist 75 | ansible.builtin.file: 76 | path: /etc/containerd 77 | state: directory 78 | mode: '0755' 79 | 80 | - name: Install containerd 81 | apt: 82 | name: 83 | # - docker-ce 84 | # - docker-ce-cli 85 | - containerd.io 86 | state: present 87 | 88 | - name: Remove disabled_plugins line 89 | lineinfile: 90 | path: "/etc/containerd/config.toml" 91 | regexp: "disabled_plugins" 92 | state: absent 93 | 94 | #- meta: end_play 95 | 96 | - name: Retrieve containerd configuration 97 | command: containerd config default 98 | register: containerd_config 99 | 100 | - blockinfile: | 101 | dest=/etc/containerd/config.toml 102 | content="{{ containerd_config.stdout }}" 103 | 104 | - name: Use systemd with containerd 105 | lineinfile: 106 | dest: "/etc/containerd/config.toml" 107 | insertafter: 'containerd.runtimes.runc.options' 108 | line: " SystemdCgroup = true" 109 | 110 | - name: Restart containerd 111 | ansible.builtin.systemd: 112 | state: restarted 113 | daemon_reload: yes 114 | name: containerd 115 | 116 | - name: Add Kubernetes GPG key 117 | # command: wget https://packages.cloud.google.com/apt/doc/apt-key.gpg && apt-key add apt-key.gpg 118 | # command: curl -O https://packages.cloud.google.com/apt/doc/apt-key.gpg && apt-key add apt-key.gpg 119 | command: curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg 120 | # register: key_added 121 | # until: key_added is not failed 122 | retries: 8 123 | delay: 10 124 | 125 | 126 | - name: Add Kubernetes repository (Debian) 127 | apt_repository: 128 | repo: deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] http://apt.kubernetes.io/ kubernetes-xenial main 129 | state: present 130 | validate_certs: no 131 | 132 | - name: Install kubeadm 133 | package: name=kubeadm state=present 134 | retries: 4 135 | delay: 10 136 | 137 | 138 | - name: Install kubelet 139 | package: name=kubelet state=present 140 | 141 | - name: Configure kubelet to use containerd 142 | copy: 143 | dest: "/etc/systemd/system/kubelet.service.d/0-containerd.conf" 144 | content: | 145 | [Service] 146 | Environment="KUBELET_EXTRA_ARGS=--container-runtime=remote --runtime-request-timeout=15m --container-runtime-endpoint=unix:///run/containerd/containerd.sock --port={{ kubelet_port_number }}" 147 | 148 | - name: Let iptables see bridged traffic - part 1 149 | copy: 150 | dest: "/etc/modules-load.d/k8s.conf" 151 | content: | 152 | br_netfilter 153 | 154 | - name: Let iptables see bridged traffic - part 2 155 | copy: 156 | dest: "/etc/sysctl.d/k8s.conf" 157 | content: | 158 | net.bridge.bridge-nf-call-ip6tables = 1 159 | net.bridge.bridge-nf-call-iptables = 1 160 | 161 | - name: Restart kubelet 162 | ansible.builtin.systemd: 163 | state: restarted 164 | daemon_reload: yes 165 | name: kubelet 166 | 167 | - name: Install kubectl 168 | package: name=kubectl state=present 169 | 170 | - name: Install kubenetes-cni 171 | package: name=kubernetes-cni state=present 172 | 173 | - name: Enable kubelet 174 | shell: systemctl enable kubelet && systemctl start kubelet 175 | 176 | - name: Disable password login 177 | lineinfile: dest=/etc/ssh/sshd_config regexp="^PasswordAuthentication" line="PasswordAuthentication no" state=present 178 | 179 | - name: restart sshd 180 | service: 181 | name: sshd 182 | state: restarted 183 | 184 | -------------------------------------------------------------------------------- /terraform_show.json: -------------------------------------------------------------------------------- 1 | {"format_version":"0.2","terraform_version":"1.0.1","values":{"outputs":{"first_master_ip":{"sensitive":false,"value":"10.241.64.8"},"lb_hostname":{"sensitive":false,"value":"b3be9a40-us-east.lb.appdomain.cloud"},"masters":{"sensitive":false,"value":{"floating_ips":[{"address":"169.59.165.197","id":"r014-b9830a17-513a-407e-b10f-40f2acfdb601","name":"patro-idea2-master00","resource_controller_url":"https://cloud.ibm.com/vpc-ext/network/floatingIPs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::floating-ip:r014-b9830a17-513a-407e-b10f-40f2acfdb601","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-master00","resource_status":"available","status":"available","tags":[],"target":"0767-ee533e83-5094-4a94-8d2a-f9c66553921d","timeouts":null,"zone":"us-east-2"},{"address":"169.59.161.238","id":"r014-dfa738a1-2b85-4cbb-8f42-18cc86e52fa0","name":"patro-idea2-master01","resource_controller_url":"https://cloud.ibm.com/vpc-ext/network/floatingIPs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::floating-ip:r014-dfa738a1-2b85-4cbb-8f42-18cc86e52fa0","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-master01","resource_status":"available","status":"available","tags":[],"target":"0767-a02ef321-0080-46c2-98cc-4173801fa918","timeouts":null,"zone":"us-east-2"},{"address":"169.63.182.155","id":"r014-e3d3e3a2-68f1-4589-8ccf-5c8942202649","name":"patro-idea2-master02","resource_controller_url":"https://cloud.ibm.com/vpc-ext/network/floatingIPs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::floating-ip:r014-e3d3e3a2-68f1-4589-8ccf-5c8942202649","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-master02","resource_status":"available","status":"available","tags":[],"target":"0767-05b25a40-00e8-479a-9d4f-5af2df49675e","timeouts":null,"zone":"us-east-2"}],"instances":[{"auto_delete_volume":null,"boot_volume":[{"encryption":"","iops":3000,"name":"achiness-rented-crispness-chased","profile":"general-purpose","size":100}],"force_recovery_time":null,"gpu":[],"id":"0767_c02bcfcd-2d7f-4047-a703-296be121c325","image":"r014-b7da49af-b46a-4099-99a4-c183d2d40ea8","keys":["r014-3604fa1b-77d9-43b5-851b-ad88b1f817a2"],"memory":4,"name":"patro-idea2-master00","network_interfaces":[],"primary_network_interface":[{"allow_ip_spoofing":true,"id":"0767-ee533e83-5094-4a94-8d2a-f9c66553921d","name":"happier-kindness-numerator-jokingly","port_speed":0,"primary_ipv4_address":"10.241.64.8","security_groups":["r014-11422e25-23ff-4240-87ea-d6f2b756d4be"],"subnet":"0767-b6c305d0-1e13-46f9-8868-44ae236aea60"}],"profile":"cx2-2x4","resource_controller_url":"https://cloud.ibm.com/vpc-ext/compute/vs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::instance:0767_c02bcfcd-2d7f-4047-a703-296be121c325","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-master00","resource_status":"running","status":"running","tags":[],"timeouts":{"create":"60m","delete":"60m","update":"60m"},"user_data":null,"vcpu":[{"architecture":"amd64","count":2}],"volume_attachments":[{"id":"0767-67b684da-9a35-4b22-a59d-cb515b2c182e","name":"sedation-unbaked-undergrad-swung","volume_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::volume:r014-f218f737-0285-48c7-b07b-1408805042e7","volume_id":"r014-f218f737-0285-48c7-b07b-1408805042e7","volume_name":"achiness-rented-crispness-chased"}],"volumes":[],"vpc":"r014-f57f4038-57a5-401a-8757-af145d8f963b","wait_before_delete":true,"zone":"us-east-2"},{"auto_delete_volume":null,"boot_volume":[{"encryption":"","iops":3000,"name":"jokingly-hesitate-outline-emotion","profile":"general-purpose","size":100}],"force_recovery_time":null,"gpu":[],"id":"0767_42b61a21-fd16-4f0b-8e9a-a8d16b20c061","image":"r014-b7da49af-b46a-4099-99a4-c183d2d40ea8","keys":["r014-3604fa1b-77d9-43b5-851b-ad88b1f817a2"],"memory":4,"name":"patro-idea2-master01","network_interfaces":[],"primary_network_interface":[{"allow_ip_spoofing":true,"id":"0767-a02ef321-0080-46c2-98cc-4173801fa918","name":"elastic-applicant-overthrow-swept","port_speed":0,"primary_ipv4_address":"10.241.64.7","security_groups":["r014-11422e25-23ff-4240-87ea-d6f2b756d4be"],"subnet":"0767-b6c305d0-1e13-46f9-8868-44ae236aea60"}],"profile":"cx2-2x4","resource_controller_url":"https://cloud.ibm.com/vpc-ext/compute/vs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::instance:0767_42b61a21-fd16-4f0b-8e9a-a8d16b20c061","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-master01","resource_status":"running","status":"running","tags":[],"timeouts":{"create":"60m","delete":"60m","update":"60m"},"user_data":null,"vcpu":[{"architecture":"amd64","count":2}],"volume_attachments":[{"id":"0767-09f37d43-0ca3-47a7-a32a-aecb98bc5424","name":"disprove-tassel-figurine-married","volume_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::volume:r014-c95a9f84-7b71-405d-8efa-5c286efcdd1a","volume_id":"r014-c95a9f84-7b71-405d-8efa-5c286efcdd1a","volume_name":"jokingly-hesitate-outline-emotion"}],"volumes":[],"vpc":"r014-f57f4038-57a5-401a-8757-af145d8f963b","wait_before_delete":true,"zone":"us-east-2"},{"auto_delete_volume":null,"boot_volume":[{"encryption":"","iops":3000,"name":"preflight-cartwheel-revert-hurdle","profile":"general-purpose","size":100}],"force_recovery_time":null,"gpu":[],"id":"0767_2d124261-39cf-46d9-8b50-6a305620d976","image":"r014-b7da49af-b46a-4099-99a4-c183d2d40ea8","keys":["r014-3604fa1b-77d9-43b5-851b-ad88b1f817a2"],"memory":4,"name":"patro-idea2-master02","network_interfaces":[],"primary_network_interface":[{"allow_ip_spoofing":true,"id":"0767-05b25a40-00e8-479a-9d4f-5af2df49675e","name":"reveal-registrar-flying-entitle","port_speed":0,"primary_ipv4_address":"10.241.64.6","security_groups":["r014-11422e25-23ff-4240-87ea-d6f2b756d4be"],"subnet":"0767-b6c305d0-1e13-46f9-8868-44ae236aea60"}],"profile":"cx2-2x4","resource_controller_url":"https://cloud.ibm.com/vpc-ext/compute/vs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::instance:0767_2d124261-39cf-46d9-8b50-6a305620d976","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-master02","resource_status":"running","status":"running","tags":[],"timeouts":{"create":"60m","delete":"60m","update":"60m"},"user_data":null,"vcpu":[{"architecture":"amd64","count":2}],"volume_attachments":[{"id":"0767-4a42c620-daeb-4229-b63e-8de6fd529332","name":"sapling-value-lankiness-lend","volume_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::volume:r014-434a5bbc-80a8-46e9-b54a-6c503eff81d5","volume_id":"r014-434a5bbc-80a8-46e9-b54a-6c503eff81d5","volume_name":"preflight-cartwheel-revert-hurdle"}],"volumes":[],"vpc":"r014-f57f4038-57a5-401a-8757-af145d8f963b","wait_before_delete":true,"zone":"us-east-2"}]}},"workers":{"sensitive":false,"value":{"floating_ips":[{"address":"169.63.181.10","id":"r014-8ef7cfae-f666-47c9-9892-c037667f657d","name":"patro-idea2-worker00","resource_controller_url":"https://cloud.ibm.com/vpc-ext/network/floatingIPs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::floating-ip:r014-8ef7cfae-f666-47c9-9892-c037667f657d","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-worker00","resource_status":"available","status":"available","tags":[],"target":"0767-56440f7a-7c1c-451f-b51d-b1c00822467b","timeouts":null,"zone":"us-east-2"},{"address":"169.63.177.144","id":"r014-872b1b7c-6efe-4c2c-a205-ce8b818027d9","name":"patro-idea2-worker01","resource_controller_url":"https://cloud.ibm.com/vpc-ext/network/floatingIPs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::floating-ip:r014-872b1b7c-6efe-4c2c-a205-ce8b818027d9","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-worker01","resource_status":"available","status":"available","tags":[],"target":"0767-66a98a32-c1cc-4a03-b632-a6cda658911a","timeouts":null,"zone":"us-east-2"},{"address":"169.63.182.154","id":"r014-1210b03a-6616-43a9-a336-6375f4ae2ce7","name":"patro-idea2-worker02","resource_controller_url":"https://cloud.ibm.com/vpc-ext/network/floatingIPs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::floating-ip:r014-1210b03a-6616-43a9-a336-6375f4ae2ce7","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-worker02","resource_status":"available","status":"available","tags":[],"target":"0767-46ef58cc-acde-4e73-9ad7-5df6ab3c8591","timeouts":null,"zone":"us-east-2"}],"instances":[{"auto_delete_volume":null,"boot_volume":[{"encryption":"","iops":3000,"name":"ambiance-relight-herb-drone","profile":"general-purpose","size":100}],"force_recovery_time":null,"gpu":[],"id":"0767_310d4418-e49a-4266-934d-c1989acf33d8","image":"r014-b7da49af-b46a-4099-99a4-c183d2d40ea8","keys":["r014-3604fa1b-77d9-43b5-851b-ad88b1f817a2"],"memory":4,"name":"patro-idea2-worker00","network_interfaces":[],"primary_network_interface":[{"allow_ip_spoofing":true,"id":"0767-56440f7a-7c1c-451f-b51d-b1c00822467b","name":"chin-mutineer-tint-numerator","port_speed":0,"primary_ipv4_address":"10.241.64.4","security_groups":["r014-11422e25-23ff-4240-87ea-d6f2b756d4be"],"subnet":"0767-b6c305d0-1e13-46f9-8868-44ae236aea60"}],"profile":"cx2-2x4","resource_controller_url":"https://cloud.ibm.com/vpc-ext/compute/vs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::instance:0767_310d4418-e49a-4266-934d-c1989acf33d8","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-worker00","resource_status":"running","status":"running","tags":[],"timeouts":{"create":"60m","delete":"60m","update":"60m"},"user_data":null,"vcpu":[{"architecture":"amd64","count":2}],"volume_attachments":[{"id":"0767-53fe33d8-ff02-45db-8c81-ef1b26fc8745","name":"stagnant-barstool-trinity-haunt","volume_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::volume:r014-71cd2aae-45fd-4759-8339-0451b167ca5f","volume_id":"r014-71cd2aae-45fd-4759-8339-0451b167ca5f","volume_name":"ambiance-relight-herb-drone"}],"volumes":[],"vpc":"r014-f57f4038-57a5-401a-8757-af145d8f963b","wait_before_delete":true,"zone":"us-east-2"},{"auto_delete_volume":null,"boot_volume":[{"encryption":"","iops":3000,"name":"worrier-bluff-blinks-saturated","profile":"general-purpose","size":100}],"force_recovery_time":null,"gpu":[],"id":"0767_73e12353-8f8b-41a9-aa8f-b351151fecc3","image":"r014-b7da49af-b46a-4099-99a4-c183d2d40ea8","keys":["r014-3604fa1b-77d9-43b5-851b-ad88b1f817a2"],"memory":4,"name":"patro-idea2-worker01","network_interfaces":[],"primary_network_interface":[{"allow_ip_spoofing":true,"id":"0767-66a98a32-c1cc-4a03-b632-a6cda658911a","name":"twine-external-maverick-swab","port_speed":0,"primary_ipv4_address":"10.241.64.9","security_groups":["r014-11422e25-23ff-4240-87ea-d6f2b756d4be"],"subnet":"0767-b6c305d0-1e13-46f9-8868-44ae236aea60"}],"profile":"cx2-2x4","resource_controller_url":"https://cloud.ibm.com/vpc-ext/compute/vs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::instance:0767_73e12353-8f8b-41a9-aa8f-b351151fecc3","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-worker01","resource_status":"running","status":"running","tags":[],"timeouts":{"create":"60m","delete":"60m","update":"60m"},"user_data":null,"vcpu":[{"architecture":"amd64","count":2}],"volume_attachments":[{"id":"0767-43afe063-84d6-4e6e-9a1e-c9ab4a2270cd","name":"rudder-gray-think-living","volume_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::volume:r014-9840131b-d3ba-4958-a481-536e778e6678","volume_id":"r014-9840131b-d3ba-4958-a481-536e778e6678","volume_name":"worrier-bluff-blinks-saturated"}],"volumes":[],"vpc":"r014-f57f4038-57a5-401a-8757-af145d8f963b","wait_before_delete":true,"zone":"us-east-2"},{"auto_delete_volume":null,"boot_volume":[{"encryption":"","iops":3000,"name":"immovably-imposter-bobbed-stallion","profile":"general-purpose","size":100}],"force_recovery_time":null,"gpu":[],"id":"0767_785acbe4-999a-45d9-b298-5c9e5607878b","image":"r014-b7da49af-b46a-4099-99a4-c183d2d40ea8","keys":["r014-3604fa1b-77d9-43b5-851b-ad88b1f817a2"],"memory":4,"name":"patro-idea2-worker02","network_interfaces":[],"primary_network_interface":[{"allow_ip_spoofing":true,"id":"0767-46ef58cc-acde-4e73-9ad7-5df6ab3c8591","name":"massive-speller-props-smithy","port_speed":0,"primary_ipv4_address":"10.241.64.5","security_groups":["r014-11422e25-23ff-4240-87ea-d6f2b756d4be"],"subnet":"0767-b6c305d0-1e13-46f9-8868-44ae236aea60"}],"profile":"cx2-2x4","resource_controller_url":"https://cloud.ibm.com/vpc-ext/compute/vs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::instance:0767_785acbe4-999a-45d9-b298-5c9e5607878b","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-worker02","resource_status":"running","status":"running","tags":[],"timeouts":{"create":"60m","delete":"60m","update":"60m"},"user_data":null,"vcpu":[{"architecture":"amd64","count":2}],"volume_attachments":[{"id":"0767-f446337c-b895-43bf-94c1-6630b6003b18","name":"impulsivity-reformist-perkiness-imitation","volume_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::volume:r014-6576d368-fccc-4be1-a8fa-6108a98826b5","volume_id":"r014-6576d368-fccc-4be1-a8fa-6108a98826b5","volume_name":"immovably-imposter-bobbed-stallion"}],"volumes":[],"vpc":"r014-f57f4038-57a5-401a-8757-af145d8f963b","wait_before_delete":true,"zone":"us-east-2"}]}}},"root_module":{"resources":[{"address":"data.ibm_is_images.ds_images","mode":"data","type":"ibm_is_images","name":"ds_images","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"id":"2021-06-26 18:32:26.744685 +0000 UTC","images":[{"architecture":"amd64","checksum":"9584b6384f9223623a105b5348195f28913ff35b9004dfbddf24abc805e2ffeb","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-b50c3d6d-5825-451f-ba18-efaf5e4d410c","encryption":"none","encryption_key":"","id":"r014-b50c3d6d-5825-451f-ba18-efaf5e4d410c","name":"ibm-windows-server-2019-core-amd64-2","os":"windows-2019-amd64-core","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"9be03cbe813642b093f1ff8f6deef9d8f68c6518624e3e0d832fed73ab69f59e","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-765447f9-2199-48c2-bd9e-6bed62d914d7","encryption":"none","encryption_key":"","id":"r014-765447f9-2199-48c2-bd9e-6bed62d914d7","name":"ibm-windows-server-2016-core-amd64-2","os":"windows-2016-amd64-core","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"1f3550a2f8276e13d93f3fa818bb72231829a6772648cfb2596aec3535d4054f","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-02843c52-e12b-4f72-a631-931b4bf6589d","encryption":"none","encryption_key":"","id":"r014-02843c52-e12b-4f72-a631-931b4bf6589d","name":"ibm-redhat-8-3-minimal-amd64-3","os":"red-8-amd64","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"802d35029638a3464b4507387095c59b1ec479ec1621c25ba63612f99a01df06","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-99bbf5ee-bf89-402f-a936-173eeff03ce5","encryption":"none","encryption_key":"","id":"r014-99bbf5ee-bf89-402f-a936-173eeff03ce5","name":"ibm-redhat-7-9-minimal-amd64-3","os":"red-7-amd64","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"0b1d61d05ee4588be46b1ea1fcb09bb0b53a2545f58d734846f9c0a04e842a68","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-ce5f692d-763d-4b5a-bca2-93d6990fb3fd","encryption":"none","encryption_key":"","id":"r014-ce5f692d-763d-4b5a-bca2-93d6990fb3fd","name":"ibm-centos-8-3-minimal-amd64-3","os":"centos-8-amd64","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"a803896d70ac4c2bc5eed0718dbb131003abffa4cc5a1cebc9b18d1944b26dd7","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-f3faced1-34a4-492e-a9c4-c32b2105c5a4","encryption":"none","encryption_key":"","id":"r014-f3faced1-34a4-492e-a9c4-c32b2105c5a4","name":"ibm-centos-7-9-minimal-amd64-3","os":"centos-7-amd64","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"6a121216d32a5636d799d4a41dbe3833e3645b9e6517db81577bc083e867a0f3","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-a27c7697-5b18-4f61-9413-881006fbdc11","encryption":"none","encryption_key":"","id":"r014-a27c7697-5b18-4f61-9413-881006fbdc11","name":"ibm-windows-server-2012-r2-full-standard-amd64-4","os":"windows-2012-r2-amd64","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"404577c16285274bba2f3e879450aafc02538bd26032a6918e4e0fe4ffc4074d","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-94917f65-f967-40de-90d5-da8365a1e175","encryption":"none","encryption_key":"","id":"r014-94917f65-f967-40de-90d5-da8365a1e175","name":"ibm-windows-server-2016-full-standard-amd64-4","os":"windows-2016-amd64","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"81d351d0d5b9d04321a8a3c26b709afda0957a31ca8573dcf3db361c6420a2fc","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-63fab3e9-d121-4f78-93e8-5a98d8701fcc","encryption":"none","encryption_key":"","id":"r014-63fab3e9-d121-4f78-93e8-5a98d8701fcc","name":"ibm-debian-10-8-minimal-amd64-1","os":"debian-10-amd64","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"1045de0d85bee89bdd52a4c3b95be27da651f763f0801ea0d2ad7cf571d50add","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-b2da9a02-63bd-4afd-b3e5-049154c61ea3","encryption":"none","encryption_key":"","id":"r014-b2da9a02-63bd-4afd-b3e5-049154c61ea3","name":"ibm-debian-9-13-minimal-amd64-4","os":"debian-9-amd64","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"3eb0013e860029081dc7e168f2a07d88c55d77b342d97a81f9619d15cac3f0d6","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-a4b40ddc-219a-4a60-a836-a7fc1a752786","encryption":"none","encryption_key":"","id":"r014-a4b40ddc-219a-4a60-a836-a7fc1a752786","name":"ibm-windows-server-2019-full-standard-amd64-3","os":"windows-2019-amd64","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-4182f948-86d9-4614-b382-3dececd723c9","encryption":"none","encryption_key":"","id":"r014-4182f948-86d9-4614-b382-3dececd723c9","name":"ibm-debian-9-13-minimal-amd64-2","os":"debian-9-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-51a5aaf5-de34-41ab-aca8-5921eb0d0bc3","encryption":"none","encryption_key":"","id":"r014-51a5aaf5-de34-41ab-aca8-5921eb0d0bc3","name":"ibm-centos-8-2-minimal-amd64-2","os":"centos-8-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"e45b668d3370a94419a5a70308b1382f196d77a24402aa7780f911c8e56bfeea","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-b7da49af-b46a-4099-99a4-c183d2d40ea8","encryption":"none","encryption_key":"","id":"r014-b7da49af-b46a-4099-99a4-c183d2d40ea8","name":"ibm-ubuntu-20-04-minimal-amd64-2","os":"ubuntu-20-04-amd64","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"e7f822be5f341a7b19bf95420cf1337ecadc0c0087158330c5e6f1f4b98c5c40","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-67abe549-a73e-4ce5-85c0-b1d7233c0278","encryption":"none","encryption_key":"","id":"r014-67abe549-a73e-4ce5-85c0-b1d7233c0278","name":"ibm-sles-15-1-amd64-sap-hana-1","os":"sles-15-sp1-amd64-sap-hana","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"9c890f77e8ed21049ec6efc2779a2437fe6acee2b373e1ade9af3296bb00a248","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-0e25139c-51ce-49ac-9a8f-d31d6a9d2688","encryption":"none","encryption_key":"","id":"r014-0e25139c-51ce-49ac-9a8f-d31d6a9d2688","name":"ibm-sles-15-1-amd64-sap-applications-1","os":"sles-15-sp1-amd64-sap-applications","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"ca06718fd54f18ee7cb5b669dd61aca5cc888857a9060be565304c5d2e4fc9c1","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-5441127b-26c7-4103-b735-2c392d3aa60f","encryption":"none","encryption_key":"","id":"r014-5441127b-26c7-4103-b735-2c392d3aa60f","name":"ibm-sles-12-4-amd64-sap-hana-1","os":"sles-12-amd64-sap-hana","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"d2e449544e97e13ae5147380407dff7aa4305098fa703cb77a45dadf211e2b60","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-3636bc4e-e72f-412e-8147-b3787df5956b","encryption":"none","encryption_key":"","id":"r014-3636bc4e-e72f-412e-8147-b3787df5956b","name":"ibm-sles-12-4-amd64-sap-applications-1","os":"sles-12-amd64-sap-applications","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-05c5ac7d-4c44-4325-ade1-2ee079fb4af6","encryption":"none","encryption_key":"","id":"r014-05c5ac7d-4c44-4325-ade1-2ee079fb4af6","name":"ibm-debian-10-0-minimal-amd64-1","os":"debian-10-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-c37c9a73-a12f-4ac0-a619-c31e2aa4215a","encryption":"none","encryption_key":"","id":"r014-c37c9a73-a12f-4ac0-a619-c31e2aa4215a","name":"ibm-redhat-8-1-minimal-amd64-1","os":"red-8-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-5e390f7b-0469-4ac1-b589-2fea307c1c5a","encryption":"none","encryption_key":"","id":"r014-5e390f7b-0469-4ac1-b589-2fea307c1c5a","name":"ibm-debian-9-12-minimal-amd64-2","os":"debian-9-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-6e732c5c-673b-42bd-911e-5a05e1c9b9b2","encryption":"none","encryption_key":"","id":"r014-6e732c5c-673b-42bd-911e-5a05e1c9b9b2","name":"ibm-windows-server-2019-full-standard-amd64-1","os":"windows-2019-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-ed3f775f-ad7e-4e37-ae62-7199b4988b00","encryption":"none","encryption_key":"","id":"r014-ed3f775f-ad7e-4e37-ae62-7199b4988b00","name":"ibm-ubuntu-18-04-1-minimal-amd64-2","os":"ubuntu-18-04-amd64","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-ea70cf5b-93f0-4871-a31e-f0030484149e","encryption":"none","encryption_key":"","id":"r014-ea70cf5b-93f0-4871-a31e-f0030484149e","name":"ibm-debian-9-12-minimal-amd64-1","os":"debian-9-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-7b4a1103-c5ed-4a14-87c0-5f75b9f3c86a","encryption":"none","encryption_key":"","id":"r014-7b4a1103-c5ed-4a14-87c0-5f75b9f3c86a","name":"ibm-debian-9-9-minimal-amd64-2","os":"debian-9-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-6f153a5d-6a9a-496d-8063-5c39932f6ded","encryption":"none","encryption_key":"","id":"r014-6f153a5d-6a9a-496d-8063-5c39932f6ded","name":"ibm-centos-7-6-minimal-amd64-2","os":"centos-7-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-60d279a0-b328-40eb-a379-595ca53bee18","encryption":"none","encryption_key":"","id":"r014-60d279a0-b328-40eb-a379-595ca53bee18","name":"ibm-redhat-7-6-amd64-sap-hana-1","os":"red-7-amd64-sap-hana","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-f5387730-7a4b-4f71-9a85-13b05b137953","encryption":"none","encryption_key":"","id":"r014-f5387730-7a4b-4f71-9a85-13b05b137953","name":"ibm-redhat-7-6-amd64-sap-applications-1","os":"red-7-amd64-sap-applications","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-54e9238a-ffdd-4f90-9742-7424eb2b9ff1","encryption":"none","encryption_key":"","id":"r014-54e9238a-ffdd-4f90-9742-7424eb2b9ff1","name":"ibm-windows-server-2016-full-standard-amd64-3","os":"windows-2016-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-5f9568ae-792e-47e1-a710-5538b2bdfca7","encryption":"none","encryption_key":"","id":"r014-5f9568ae-792e-47e1-a710-5538b2bdfca7","name":"ibm-windows-server-2012-full-standard-amd64-3","os":"windows-2012-amd64","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-8bb3e8aa-b789-4292-8679-3564b3a9366a","encryption":"none","encryption_key":"","id":"r014-8bb3e8aa-b789-4292-8679-3564b3a9366a","name":"ibm-windows-server-2012-r2-full-standard-amd64-3","os":"windows-2012-r2-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-253c540d-1b96-4e55-a1c3-7341616c7b19","encryption":"none","encryption_key":"","id":"r014-253c540d-1b96-4e55-a1c3-7341616c7b19","name":"ibm-windows-server-2016-full-standard-amd64-2","os":"windows-2016-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-9d8b336f-c203-4860-8234-38fcf8334793","encryption":"none","encryption_key":"","id":"r014-9d8b336f-c203-4860-8234-38fcf8334793","name":"ibm-windows-server-2012-r2-full-standard-amd64-2","os":"windows-2012-r2-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-a219157a-9862-4360-be63-b912320a399a","encryption":"none","encryption_key":"","id":"r014-a219157a-9862-4360-be63-b912320a399a","name":"ibm-windows-server-2012-full-standard-amd64-2","os":"windows-2012-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-d4aec81e-fcc6-11e9-9149-870ebf69fd8d","encryption":"none","encryption_key":"","id":"r014-d4aec81e-fcc6-11e9-9149-870ebf69fd8d","name":"ibm-debian-9-9-minimal-amd64-1","os":"debian-9-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-6b74bf1e-fccd-11e9-80ba-1b59914ac95b","encryption":"none","encryption_key":"","id":"r014-6b74bf1e-fccd-11e9-80ba-1b59914ac95b","name":"ibm-windows-server-2016-full-standard-amd64-1","os":"windows-2016-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:9de244af-e231-4aae-a958-aa60d735c826","encryption":"none","encryption_key":"","id":"9de244af-e231-4aae-a958-aa60d735c826","name":"ibm-windows-2016-full-std-amd64-1","os":"windows-2016-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-158e7a2c-fccd-11e9-80fb-4f991aaa30f9","encryption":"none","encryption_key":"","id":"r014-158e7a2c-fccd-11e9-80fb-4f991aaa30f9","name":"ibm-windows-server-2012-r2-full-standard-amd64-1","os":"windows-2012-r2-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-eb1c47cc-fcc9-11e9-8de1-33db5afbbd14","encryption":"none","encryption_key":"","id":"r014-eb1c47cc-fcc9-11e9-8de1-33db5afbbd14","name":"ibm-windows-server-2012-full-standard-amd64-1","os":"windows-2012-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:f8ae058e-4273-42e9-b549-68d09219e9e5","encryption":"none","encryption_key":"","id":"f8ae058e-4273-42e9-b549-68d09219e9e5","name":"ibm-centos-7-0-minimal-amd64-1","os":"centos-7-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:987cb0ec-4f2b-4733-a232-f1a3efc727d8","encryption":"none","encryption_key":"","id":"987cb0ec-4f2b-4733-a232-f1a3efc727d8","name":"ibm-windows-2012-r2-full-std-64","os":"windows-2012-r2-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:6e9208e4-b757-4530-a22e-66722464c334","encryption":"none","encryption_key":"","id":"6e9208e4-b757-4530-a22e-66722464c334","name":"ibm-windows-2016-full-std-64","os":"windows-2016-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:a63864aa-c766-42d3-8bd0-999fdb87fb42","encryption":"none","encryption_key":"","id":"a63864aa-c766-42d3-8bd0-999fdb87fb42","name":"ibm-windows-2012-full-std-64","os":"windows-2012-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-931515d2-fcc3-11e9-896d-3baa2797200f","encryption":"none","encryption_key":"","id":"r014-931515d2-fcc3-11e9-896d-3baa2797200f","name":"ibm-redhat-7-6-minimal-amd64-1","os":"red-7-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-e0039ab2-fcc8-11e9-8a36-6ffb6501dd33","encryption":"none","encryption_key":"","id":"r014-e0039ab2-fcc8-11e9-8a36-6ffb6501dd33","name":"ibm-centos-7-6-minimal-amd64-1","os":"centos-7-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-34ceeafe-fcc6-11e9-893a-57dde2f48a21","encryption":"none","encryption_key":"","id":"r014-34ceeafe-fcc6-11e9-893a-57dde2f48a21","name":"ibm-ubuntu-16-04-5-minimal-amd64-1","os":"ubuntu-16-04-amd64","status":"available","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:3f323501-667e-4583-b081-19cca9ac55fd","encryption":"none","encryption_key":"","id":"3f323501-667e-4583-b081-19cca9ac55fd","name":"ibm-debian-9-0-64-minimal-for-vsi","os":"debian-9-amd64","status":"deprecated","visibility":"public"},{"architecture":"amd64","checksum":"","crn":"crn:v1:bluemix:public:is:us-east:::image:r014-14140f94-fcc4-11e9-96e7-a72723715315","encryption":"none","encryption_key":"","id":"r014-14140f94-fcc4-11e9-96e7-a72723715315","name":"ibm-ubuntu-18-04-1-minimal-amd64-1","os":"ubuntu-18-04-amd64","status":"deprecated","visibility":"public"}]},"sensitive_values":{"images":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]}}],"child_modules":[{"resources":[{"address":"module.is_instance_masters.data.ibm_is_image.ubuntu","mode":"data","type":"ibm_is_image","name":"ubuntu","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"architecture":"amd64","checksum":"e45b668d3370a94419a5a70308b1382f196d77a24402aa7780f911c8e56bfeea","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-b7da49af-b46a-4099-99a4-c183d2d40ea8","encryption":"none","encryption_key":null,"id":"r014-b7da49af-b46a-4099-99a4-c183d2d40ea8","name":"ibm-ubuntu-20-04-minimal-amd64-2","os":"ubuntu-20-04-amd64","status":"available","visibility":"public"},"sensitive_values":{}},{"address":"module.is_instance_masters.ibm_is_floating_ip.fip[0]","mode":"managed","type":"ibm_is_floating_ip","name":"fip","index":0,"provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"address":"169.59.165.197","id":"r014-b9830a17-513a-407e-b10f-40f2acfdb601","name":"patro-idea2-master00","resource_controller_url":"https://cloud.ibm.com/vpc-ext/network/floatingIPs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::floating-ip:r014-b9830a17-513a-407e-b10f-40f2acfdb601","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-master00","resource_status":"available","status":"available","tags":[],"target":"0767-ee533e83-5094-4a94-8d2a-f9c66553921d","timeouts":null,"zone":"us-east-2"},"sensitive_values":{"tags":[]},"depends_on":["module.is_instance_masters.data.ibm_is_image.ubuntu","module.is_instance_masters.ibm_is_instance.is_instance","module.kube_base.ibm_is_public_gateway.public-gateway","module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_ssh_key.ssh-key","module.kube_base.ibm_is_subnet.subnet","module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group"]},{"address":"module.is_instance_masters.ibm_is_floating_ip.fip[1]","mode":"managed","type":"ibm_is_floating_ip","name":"fip","index":1,"provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"address":"169.59.161.238","id":"r014-dfa738a1-2b85-4cbb-8f42-18cc86e52fa0","name":"patro-idea2-master01","resource_controller_url":"https://cloud.ibm.com/vpc-ext/network/floatingIPs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::floating-ip:r014-dfa738a1-2b85-4cbb-8f42-18cc86e52fa0","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-master01","resource_status":"available","status":"available","tags":[],"target":"0767-a02ef321-0080-46c2-98cc-4173801fa918","timeouts":null,"zone":"us-east-2"},"sensitive_values":{"tags":[]},"depends_on":["module.kube_base.ibm_is_ssh_key.ssh-key","module.kube_base.ibm_is_subnet.subnet","module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group","module.is_instance_masters.data.ibm_is_image.ubuntu","module.is_instance_masters.ibm_is_instance.is_instance","module.kube_base.ibm_is_public_gateway.public-gateway","module.kube_base.ibm_is_security_group.security_group"]},{"address":"module.is_instance_masters.ibm_is_floating_ip.fip[2]","mode":"managed","type":"ibm_is_floating_ip","name":"fip","index":2,"provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"address":"169.63.182.155","id":"r014-e3d3e3a2-68f1-4589-8ccf-5c8942202649","name":"patro-idea2-master02","resource_controller_url":"https://cloud.ibm.com/vpc-ext/network/floatingIPs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::floating-ip:r014-e3d3e3a2-68f1-4589-8ccf-5c8942202649","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-master02","resource_status":"available","status":"available","tags":[],"target":"0767-05b25a40-00e8-479a-9d4f-5af2df49675e","timeouts":null,"zone":"us-east-2"},"sensitive_values":{"tags":[]},"depends_on":["module.kube_base.ibm_is_subnet.subnet","module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group","module.is_instance_masters.data.ibm_is_image.ubuntu","module.is_instance_masters.ibm_is_instance.is_instance","module.kube_base.ibm_is_public_gateway.public-gateway","module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_ssh_key.ssh-key"]},{"address":"module.is_instance_masters.ibm_is_instance.is_instance[0]","mode":"managed","type":"ibm_is_instance","name":"is_instance","index":0,"provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"auto_delete_volume":null,"boot_volume":[{"encryption":"","iops":3000,"name":"achiness-rented-crispness-chased","profile":"general-purpose","size":100}],"force_recovery_time":null,"gpu":[],"id":"0767_c02bcfcd-2d7f-4047-a703-296be121c325","image":"r014-b7da49af-b46a-4099-99a4-c183d2d40ea8","keys":["r014-3604fa1b-77d9-43b5-851b-ad88b1f817a2"],"memory":4,"name":"patro-idea2-master00","network_interfaces":[],"primary_network_interface":[{"allow_ip_spoofing":true,"id":"0767-ee533e83-5094-4a94-8d2a-f9c66553921d","name":"happier-kindness-numerator-jokingly","port_speed":0,"primary_ipv4_address":"10.241.64.8","security_groups":["r014-11422e25-23ff-4240-87ea-d6f2b756d4be"],"subnet":"0767-b6c305d0-1e13-46f9-8868-44ae236aea60"}],"profile":"cx2-2x4","resource_controller_url":"https://cloud.ibm.com/vpc-ext/compute/vs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::instance:0767_c02bcfcd-2d7f-4047-a703-296be121c325","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-master00","resource_status":"running","status":"running","tags":[],"timeouts":{"create":"60m","delete":"60m","update":"60m"},"user_data":null,"vcpu":[{"architecture":"amd64","count":2}],"volume_attachments":[{"id":"0767-67b684da-9a35-4b22-a59d-cb515b2c182e","name":"sedation-unbaked-undergrad-swung","volume_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::volume:r014-f218f737-0285-48c7-b07b-1408805042e7","volume_id":"r014-f218f737-0285-48c7-b07b-1408805042e7","volume_name":"achiness-rented-crispness-chased"}],"volumes":[],"vpc":"r014-f57f4038-57a5-401a-8757-af145d8f963b","wait_before_delete":true,"zone":"us-east-2"},"sensitive_values":{"boot_volume":[{}],"gpu":[],"keys":[false],"network_interfaces":[],"primary_network_interface":[{"security_groups":[false]}],"tags":[],"timeouts":{},"vcpu":[{}],"volume_attachments":[{}],"volumes":[]},"depends_on":["module.kube_base.ibm_is_public_gateway.public-gateway","module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_ssh_key.ssh-key","module.kube_base.ibm_is_subnet.subnet","module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group","module.is_instance_masters.data.ibm_is_image.ubuntu"]},{"address":"module.is_instance_masters.ibm_is_instance.is_instance[1]","mode":"managed","type":"ibm_is_instance","name":"is_instance","index":1,"provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"auto_delete_volume":null,"boot_volume":[{"encryption":"","iops":3000,"name":"jokingly-hesitate-outline-emotion","profile":"general-purpose","size":100}],"force_recovery_time":null,"gpu":[],"id":"0767_42b61a21-fd16-4f0b-8e9a-a8d16b20c061","image":"r014-b7da49af-b46a-4099-99a4-c183d2d40ea8","keys":["r014-3604fa1b-77d9-43b5-851b-ad88b1f817a2"],"memory":4,"name":"patro-idea2-master01","network_interfaces":[],"primary_network_interface":[{"allow_ip_spoofing":true,"id":"0767-a02ef321-0080-46c2-98cc-4173801fa918","name":"elastic-applicant-overthrow-swept","port_speed":0,"primary_ipv4_address":"10.241.64.7","security_groups":["r014-11422e25-23ff-4240-87ea-d6f2b756d4be"],"subnet":"0767-b6c305d0-1e13-46f9-8868-44ae236aea60"}],"profile":"cx2-2x4","resource_controller_url":"https://cloud.ibm.com/vpc-ext/compute/vs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::instance:0767_42b61a21-fd16-4f0b-8e9a-a8d16b20c061","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-master01","resource_status":"running","status":"running","tags":[],"timeouts":{"create":"60m","delete":"60m","update":"60m"},"user_data":null,"vcpu":[{"architecture":"amd64","count":2}],"volume_attachments":[{"id":"0767-09f37d43-0ca3-47a7-a32a-aecb98bc5424","name":"disprove-tassel-figurine-married","volume_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::volume:r014-c95a9f84-7b71-405d-8efa-5c286efcdd1a","volume_id":"r014-c95a9f84-7b71-405d-8efa-5c286efcdd1a","volume_name":"jokingly-hesitate-outline-emotion"}],"volumes":[],"vpc":"r014-f57f4038-57a5-401a-8757-af145d8f963b","wait_before_delete":true,"zone":"us-east-2"},"sensitive_values":{"boot_volume":[{}],"gpu":[],"keys":[false],"network_interfaces":[],"primary_network_interface":[{"security_groups":[false]}],"tags":[],"timeouts":{},"vcpu":[{}],"volume_attachments":[{}],"volumes":[]},"depends_on":["module.is_instance_masters.data.ibm_is_image.ubuntu","module.kube_base.ibm_is_public_gateway.public-gateway","module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_ssh_key.ssh-key","module.kube_base.ibm_is_subnet.subnet","module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group"]},{"address":"module.is_instance_masters.ibm_is_instance.is_instance[2]","mode":"managed","type":"ibm_is_instance","name":"is_instance","index":2,"provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"auto_delete_volume":null,"boot_volume":[{"encryption":"","iops":3000,"name":"preflight-cartwheel-revert-hurdle","profile":"general-purpose","size":100}],"force_recovery_time":null,"gpu":[],"id":"0767_2d124261-39cf-46d9-8b50-6a305620d976","image":"r014-b7da49af-b46a-4099-99a4-c183d2d40ea8","keys":["r014-3604fa1b-77d9-43b5-851b-ad88b1f817a2"],"memory":4,"name":"patro-idea2-master02","network_interfaces":[],"primary_network_interface":[{"allow_ip_spoofing":true,"id":"0767-05b25a40-00e8-479a-9d4f-5af2df49675e","name":"reveal-registrar-flying-entitle","port_speed":0,"primary_ipv4_address":"10.241.64.6","security_groups":["r014-11422e25-23ff-4240-87ea-d6f2b756d4be"],"subnet":"0767-b6c305d0-1e13-46f9-8868-44ae236aea60"}],"profile":"cx2-2x4","resource_controller_url":"https://cloud.ibm.com/vpc-ext/compute/vs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::instance:0767_2d124261-39cf-46d9-8b50-6a305620d976","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-master02","resource_status":"running","status":"running","tags":[],"timeouts":{"create":"60m","delete":"60m","update":"60m"},"user_data":null,"vcpu":[{"architecture":"amd64","count":2}],"volume_attachments":[{"id":"0767-4a42c620-daeb-4229-b63e-8de6fd529332","name":"sapling-value-lankiness-lend","volume_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::volume:r014-434a5bbc-80a8-46e9-b54a-6c503eff81d5","volume_id":"r014-434a5bbc-80a8-46e9-b54a-6c503eff81d5","volume_name":"preflight-cartwheel-revert-hurdle"}],"volumes":[],"vpc":"r014-f57f4038-57a5-401a-8757-af145d8f963b","wait_before_delete":true,"zone":"us-east-2"},"sensitive_values":{"boot_volume":[{}],"gpu":[],"keys":[false],"network_interfaces":[],"primary_network_interface":[{"security_groups":[false]}],"tags":[],"timeouts":{},"vcpu":[{}],"volume_attachments":[{}],"volumes":[]},"depends_on":["module.kube_base.ibm_is_ssh_key.ssh-key","module.kube_base.ibm_is_subnet.subnet","module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group","module.is_instance_masters.data.ibm_is_image.ubuntu","module.kube_base.ibm_is_public_gateway.public-gateway","module.kube_base.ibm_is_security_group.security_group"]}],"address":"module.is_instance_masters"},{"resources":[{"address":"module.is_instance_workers.data.ibm_is_image.ubuntu","mode":"data","type":"ibm_is_image","name":"ubuntu","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"architecture":"amd64","checksum":"e45b668d3370a94419a5a70308b1382f196d77a24402aa7780f911c8e56bfeea","crn":"crn:v1:bluemix:public:is:us-east:a/811f8abfbd32425597dc7ba40da98fa6::image:r014-b7da49af-b46a-4099-99a4-c183d2d40ea8","encryption":"none","encryption_key":null,"id":"r014-b7da49af-b46a-4099-99a4-c183d2d40ea8","name":"ibm-ubuntu-20-04-minimal-amd64-2","os":"ubuntu-20-04-amd64","status":"available","visibility":"public"},"sensitive_values":{}},{"address":"module.is_instance_workers.ibm_is_floating_ip.fip[0]","mode":"managed","type":"ibm_is_floating_ip","name":"fip","index":0,"provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"address":"169.63.181.10","id":"r014-8ef7cfae-f666-47c9-9892-c037667f657d","name":"patro-idea2-worker00","resource_controller_url":"https://cloud.ibm.com/vpc-ext/network/floatingIPs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::floating-ip:r014-8ef7cfae-f666-47c9-9892-c037667f657d","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-worker00","resource_status":"available","status":"available","tags":[],"target":"0767-56440f7a-7c1c-451f-b51d-b1c00822467b","timeouts":null,"zone":"us-east-2"},"sensitive_values":{"tags":[]},"depends_on":["module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_ssh_key.ssh-key","module.kube_base.ibm_is_subnet.subnet","module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group","module.is_instance_workers.data.ibm_is_image.ubuntu","module.is_instance_workers.ibm_is_instance.is_instance","module.kube_base.ibm_is_public_gateway.public-gateway"]},{"address":"module.is_instance_workers.ibm_is_floating_ip.fip[1]","mode":"managed","type":"ibm_is_floating_ip","name":"fip","index":1,"provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"address":"169.63.177.144","id":"r014-872b1b7c-6efe-4c2c-a205-ce8b818027d9","name":"patro-idea2-worker01","resource_controller_url":"https://cloud.ibm.com/vpc-ext/network/floatingIPs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::floating-ip:r014-872b1b7c-6efe-4c2c-a205-ce8b818027d9","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-worker01","resource_status":"available","status":"available","tags":[],"target":"0767-66a98a32-c1cc-4a03-b632-a6cda658911a","timeouts":null,"zone":"us-east-2"},"sensitive_values":{"tags":[]},"depends_on":["module.kube_base.ibm_resource_group.group","module.is_instance_workers.data.ibm_is_image.ubuntu","module.is_instance_workers.ibm_is_instance.is_instance","module.kube_base.ibm_is_public_gateway.public-gateway","module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_ssh_key.ssh-key","module.kube_base.ibm_is_subnet.subnet","module.kube_base.ibm_is_vpc.vpc"]},{"address":"module.is_instance_workers.ibm_is_floating_ip.fip[2]","mode":"managed","type":"ibm_is_floating_ip","name":"fip","index":2,"provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"address":"169.63.182.154","id":"r014-1210b03a-6616-43a9-a336-6375f4ae2ce7","name":"patro-idea2-worker02","resource_controller_url":"https://cloud.ibm.com/vpc-ext/network/floatingIPs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::floating-ip:r014-1210b03a-6616-43a9-a336-6375f4ae2ce7","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-worker02","resource_status":"available","status":"available","tags":[],"target":"0767-46ef58cc-acde-4e73-9ad7-5df6ab3c8591","timeouts":null,"zone":"us-east-2"},"sensitive_values":{"tags":[]},"depends_on":["module.kube_base.ibm_resource_group.group","module.is_instance_workers.data.ibm_is_image.ubuntu","module.is_instance_workers.ibm_is_instance.is_instance","module.kube_base.ibm_is_public_gateway.public-gateway","module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_ssh_key.ssh-key","module.kube_base.ibm_is_subnet.subnet","module.kube_base.ibm_is_vpc.vpc"]},{"address":"module.is_instance_workers.ibm_is_instance.is_instance[0]","mode":"managed","type":"ibm_is_instance","name":"is_instance","index":0,"provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"auto_delete_volume":null,"boot_volume":[{"encryption":"","iops":3000,"name":"ambiance-relight-herb-drone","profile":"general-purpose","size":100}],"force_recovery_time":null,"gpu":[],"id":"0767_310d4418-e49a-4266-934d-c1989acf33d8","image":"r014-b7da49af-b46a-4099-99a4-c183d2d40ea8","keys":["r014-3604fa1b-77d9-43b5-851b-ad88b1f817a2"],"memory":4,"name":"patro-idea2-worker00","network_interfaces":[],"primary_network_interface":[{"allow_ip_spoofing":true,"id":"0767-56440f7a-7c1c-451f-b51d-b1c00822467b","name":"chin-mutineer-tint-numerator","port_speed":0,"primary_ipv4_address":"10.241.64.4","security_groups":["r014-11422e25-23ff-4240-87ea-d6f2b756d4be"],"subnet":"0767-b6c305d0-1e13-46f9-8868-44ae236aea60"}],"profile":"cx2-2x4","resource_controller_url":"https://cloud.ibm.com/vpc-ext/compute/vs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::instance:0767_310d4418-e49a-4266-934d-c1989acf33d8","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-worker00","resource_status":"running","status":"running","tags":[],"timeouts":{"create":"60m","delete":"60m","update":"60m"},"user_data":null,"vcpu":[{"architecture":"amd64","count":2}],"volume_attachments":[{"id":"0767-53fe33d8-ff02-45db-8c81-ef1b26fc8745","name":"stagnant-barstool-trinity-haunt","volume_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::volume:r014-71cd2aae-45fd-4759-8339-0451b167ca5f","volume_id":"r014-71cd2aae-45fd-4759-8339-0451b167ca5f","volume_name":"ambiance-relight-herb-drone"}],"volumes":[],"vpc":"r014-f57f4038-57a5-401a-8757-af145d8f963b","wait_before_delete":true,"zone":"us-east-2"},"sensitive_values":{"boot_volume":[{}],"gpu":[],"keys":[false],"network_interfaces":[],"primary_network_interface":[{"security_groups":[false]}],"tags":[],"timeouts":{},"vcpu":[{}],"volume_attachments":[{}],"volumes":[]},"depends_on":["module.is_instance_workers.data.ibm_is_image.ubuntu","module.kube_base.ibm_is_public_gateway.public-gateway","module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_ssh_key.ssh-key","module.kube_base.ibm_is_subnet.subnet","module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group"]},{"address":"module.is_instance_workers.ibm_is_instance.is_instance[1]","mode":"managed","type":"ibm_is_instance","name":"is_instance","index":1,"provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"auto_delete_volume":null,"boot_volume":[{"encryption":"","iops":3000,"name":"worrier-bluff-blinks-saturated","profile":"general-purpose","size":100}],"force_recovery_time":null,"gpu":[],"id":"0767_73e12353-8f8b-41a9-aa8f-b351151fecc3","image":"r014-b7da49af-b46a-4099-99a4-c183d2d40ea8","keys":["r014-3604fa1b-77d9-43b5-851b-ad88b1f817a2"],"memory":4,"name":"patro-idea2-worker01","network_interfaces":[],"primary_network_interface":[{"allow_ip_spoofing":true,"id":"0767-66a98a32-c1cc-4a03-b632-a6cda658911a","name":"twine-external-maverick-swab","port_speed":0,"primary_ipv4_address":"10.241.64.9","security_groups":["r014-11422e25-23ff-4240-87ea-d6f2b756d4be"],"subnet":"0767-b6c305d0-1e13-46f9-8868-44ae236aea60"}],"profile":"cx2-2x4","resource_controller_url":"https://cloud.ibm.com/vpc-ext/compute/vs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::instance:0767_73e12353-8f8b-41a9-aa8f-b351151fecc3","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-worker01","resource_status":"running","status":"running","tags":[],"timeouts":{"create":"60m","delete":"60m","update":"60m"},"user_data":null,"vcpu":[{"architecture":"amd64","count":2}],"volume_attachments":[{"id":"0767-43afe063-84d6-4e6e-9a1e-c9ab4a2270cd","name":"rudder-gray-think-living","volume_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::volume:r014-9840131b-d3ba-4958-a481-536e778e6678","volume_id":"r014-9840131b-d3ba-4958-a481-536e778e6678","volume_name":"worrier-bluff-blinks-saturated"}],"volumes":[],"vpc":"r014-f57f4038-57a5-401a-8757-af145d8f963b","wait_before_delete":true,"zone":"us-east-2"},"sensitive_values":{"boot_volume":[{}],"gpu":[],"keys":[false],"network_interfaces":[],"primary_network_interface":[{"security_groups":[false]}],"tags":[],"timeouts":{},"vcpu":[{}],"volume_attachments":[{}],"volumes":[]},"depends_on":["module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_ssh_key.ssh-key","module.kube_base.ibm_is_subnet.subnet","module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group","module.is_instance_workers.data.ibm_is_image.ubuntu","module.kube_base.ibm_is_public_gateway.public-gateway"]},{"address":"module.is_instance_workers.ibm_is_instance.is_instance[2]","mode":"managed","type":"ibm_is_instance","name":"is_instance","index":2,"provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"auto_delete_volume":null,"boot_volume":[{"encryption":"","iops":3000,"name":"immovably-imposter-bobbed-stallion","profile":"general-purpose","size":100}],"force_recovery_time":null,"gpu":[],"id":"0767_785acbe4-999a-45d9-b298-5c9e5607878b","image":"r014-b7da49af-b46a-4099-99a4-c183d2d40ea8","keys":["r014-3604fa1b-77d9-43b5-851b-ad88b1f817a2"],"memory":4,"name":"patro-idea2-worker02","network_interfaces":[],"primary_network_interface":[{"allow_ip_spoofing":true,"id":"0767-46ef58cc-acde-4e73-9ad7-5df6ab3c8591","name":"massive-speller-props-smithy","port_speed":0,"primary_ipv4_address":"10.241.64.5","security_groups":["r014-11422e25-23ff-4240-87ea-d6f2b756d4be"],"subnet":"0767-b6c305d0-1e13-46f9-8868-44ae236aea60"}],"profile":"cx2-2x4","resource_controller_url":"https://cloud.ibm.com/vpc-ext/compute/vs","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::instance:0767_785acbe4-999a-45d9-b298-5c9e5607878b","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-worker02","resource_status":"running","status":"running","tags":[],"timeouts":{"create":"60m","delete":"60m","update":"60m"},"user_data":null,"vcpu":[{"architecture":"amd64","count":2}],"volume_attachments":[{"id":"0767-f446337c-b895-43bf-94c1-6630b6003b18","name":"impulsivity-reformist-perkiness-imitation","volume_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::volume:r014-6576d368-fccc-4be1-a8fa-6108a98826b5","volume_id":"r014-6576d368-fccc-4be1-a8fa-6108a98826b5","volume_name":"immovably-imposter-bobbed-stallion"}],"volumes":[],"vpc":"r014-f57f4038-57a5-401a-8757-af145d8f963b","wait_before_delete":true,"zone":"us-east-2"},"sensitive_values":{"boot_volume":[{}],"gpu":[],"keys":[false],"network_interfaces":[],"primary_network_interface":[{"security_groups":[false]}],"tags":[],"timeouts":{},"vcpu":[{}],"volume_attachments":[{}],"volumes":[]},"depends_on":["module.kube_base.ibm_resource_group.group","module.is_instance_workers.data.ibm_is_image.ubuntu","module.kube_base.ibm_is_public_gateway.public-gateway","module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_ssh_key.ssh-key","module.kube_base.ibm_is_subnet.subnet","module.kube_base.ibm_is_vpc.vpc"]}],"address":"module.is_instance_workers"},{"resources":[{"address":"module.is_lb_pool_member.ibm_is_lb_pool_member.testacc_lb_mem[0]","mode":"managed","type":"ibm_is_lb_pool_member","name":"testacc_lb_mem","index":0,"provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"health":"ok","href":"https://us-east.iaas.cloud.ibm.com/v1/load_balancers/r014-b3be9a40-d0d4-4885-b182-c77614bce3c0/pools/r014-fb4068f0-9714-46f2-89f0-2d534e5e1a22/members/r014-6668234f-632b-40ab-90fa-58bd523e5c48","id":"r014-b3be9a40-d0d4-4885-b182-c77614bce3c0/r014-fb4068f0-9714-46f2-89f0-2d534e5e1a22/r014-6668234f-632b-40ab-90fa-58bd523e5c48","lb":"r014-b3be9a40-d0d4-4885-b182-c77614bce3c0","pool":"r014-fb4068f0-9714-46f2-89f0-2d534e5e1a22","port":6443,"provisioning_status":"active","related_crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::load-balancer:r014-b3be9a40-d0d4-4885-b182-c77614bce3c0","target_address":"10.241.64.8","target_id":null,"timeouts":null,"weight":60},"sensitive_values":{},"depends_on":["module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_ssh_key.ssh-key","module.kube_base.ibm_is_subnet.subnet","module.kube_base.ibm_resource_group.group","module.kube_base.module.is_lb.ibm_is_lb_pool.is_lb_pool","module.is_instance_masters.data.ibm_is_image.ubuntu","module.is_instance_masters.ibm_is_instance.is_instance","module.kube_base.ibm_is_public_gateway.public-gateway","module.kube_base.ibm_is_vpc.vpc","module.kube_base.module.is_lb.ibm_is_lb.is_lb"]},{"address":"module.is_lb_pool_member.ibm_is_lb_pool_member.testacc_lb_mem[1]","mode":"managed","type":"ibm_is_lb_pool_member","name":"testacc_lb_mem","index":1,"provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"health":"ok","href":"https://us-east.iaas.cloud.ibm.com/v1/load_balancers/r014-b3be9a40-d0d4-4885-b182-c77614bce3c0/pools/r014-fb4068f0-9714-46f2-89f0-2d534e5e1a22/members/r014-0e364ad5-db9e-4d9a-8a46-5858b6105440","id":"r014-b3be9a40-d0d4-4885-b182-c77614bce3c0/r014-fb4068f0-9714-46f2-89f0-2d534e5e1a22/r014-0e364ad5-db9e-4d9a-8a46-5858b6105440","lb":"r014-b3be9a40-d0d4-4885-b182-c77614bce3c0","pool":"r014-fb4068f0-9714-46f2-89f0-2d534e5e1a22","port":6443,"provisioning_status":"active","related_crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::load-balancer:r014-b3be9a40-d0d4-4885-b182-c77614bce3c0","target_address":"10.241.64.7","target_id":null,"timeouts":null,"weight":60},"sensitive_values":{},"depends_on":["module.is_instance_masters.data.ibm_is_image.ubuntu","module.is_instance_masters.ibm_is_instance.is_instance","module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_subnet.subnet","module.kube_base.module.is_lb.ibm_is_lb_pool.is_lb_pool","module.kube_base.ibm_is_public_gateway.public-gateway","module.kube_base.ibm_is_ssh_key.ssh-key","module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group","module.kube_base.module.is_lb.ibm_is_lb.is_lb"]},{"address":"module.is_lb_pool_member.ibm_is_lb_pool_member.testacc_lb_mem[2]","mode":"managed","type":"ibm_is_lb_pool_member","name":"testacc_lb_mem","index":2,"provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"health":"ok","href":"https://us-east.iaas.cloud.ibm.com/v1/load_balancers/r014-b3be9a40-d0d4-4885-b182-c77614bce3c0/pools/r014-fb4068f0-9714-46f2-89f0-2d534e5e1a22/members/r014-9c39f380-1fba-4481-b0ff-d7609009e757","id":"r014-b3be9a40-d0d4-4885-b182-c77614bce3c0/r014-fb4068f0-9714-46f2-89f0-2d534e5e1a22/r014-9c39f380-1fba-4481-b0ff-d7609009e757","lb":"r014-b3be9a40-d0d4-4885-b182-c77614bce3c0","pool":"r014-fb4068f0-9714-46f2-89f0-2d534e5e1a22","port":6443,"provisioning_status":"active","related_crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::load-balancer:r014-b3be9a40-d0d4-4885-b182-c77614bce3c0","target_address":"10.241.64.6","target_id":null,"timeouts":null,"weight":60},"sensitive_values":{},"depends_on":["module.kube_base.ibm_resource_group.group","module.is_instance_masters.ibm_is_instance.is_instance","module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_ssh_key.ssh-key","module.kube_base.ibm_is_vpc.vpc","module.kube_base.module.is_lb.ibm_is_lb.is_lb","module.kube_base.module.is_lb.ibm_is_lb_pool.is_lb_pool","module.is_instance_masters.data.ibm_is_image.ubuntu","module.kube_base.ibm_is_public_gateway.public-gateway","module.kube_base.ibm_is_subnet.subnet"]}],"address":"module.is_lb_pool_member"},{"resources":[{"address":"module.kube_base.ibm_is_public_gateway.public-gateway","mode":"managed","type":"ibm_is_public_gateway","name":"public-gateway","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"floating_ip":{"address":"169.63.177.143","id":"r014-21a1b8e2-2668-47bc-b792-1cfe6d6ecd28"},"id":"r014-4080e1b9-ef53-4d9b-85bd-fa495e705703","name":"patro-idea2-public-gateway","resource_controller_url":"https://cloud.ibm.com/vpc-ext/network/publicGateways","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::public-gateway:r014-4080e1b9-ef53-4d9b-85bd-fa495e705703","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-public-gateway","resource_status":"available","status":"available","tags":[],"timeouts":{"create":"90m","delete":null},"vpc":"r014-f57f4038-57a5-401a-8757-af145d8f963b","zone":"us-east-2"},"sensitive_values":{"floating_ip":{},"tags":[],"timeouts":{}},"depends_on":["module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group"]},{"address":"module.kube_base.ibm_is_security_group.security_group","mode":"managed","type":"ibm_is_security_group","name":"security_group","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::security-group:r014-11422e25-23ff-4240-87ea-d6f2b756d4be","id":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be","name":"patro-idea2-sg","resource_controller_url":"https://cloud.ibm.com/vpc-ext/network/securityGroups","resource_crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::security-group:r014-11422e25-23ff-4240-87ea-d6f2b756d4be","resource_group":"3e8b0ef1ed4c4ec7910233c5f4b43e96","resource_group_name":"default","resource_name":"patro-idea2-sg","rules":[{"code":0,"direction":"inbound","ip_version":"ipv4","port_max":0,"port_min":0,"protocol":"icmp","remote":"0.0.0.0/0","type":8},{"code":0,"direction":"inbound","ip_version":"ipv4","port_max":22,"port_min":22,"protocol":"tcp","remote":"0.0.0.0/0","type":0},{"code":0,"direction":"inbound","ip_version":"ipv4","port_max":32767,"port_min":30000,"protocol":"udp","remote":"0.0.0.0/0","type":0},{"code":0,"direction":"inbound","ip_version":"ipv4","port_max":32767,"port_min":30000,"protocol":"tcp","remote":"0.0.0.0/0","type":0},{"code":0,"direction":"inbound","ip_version":"ipv4","port_max":0,"port_min":0,"protocol":"all","remote":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be","type":0},{"code":0,"direction":"outbound","ip_version":"ipv4","port_max":0,"port_min":0,"protocol":"all","remote":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be","type":0},{"code":0,"direction":"inbound","ip_version":"ipv4","port_max":6443,"port_min":6443,"protocol":"tcp","remote":"0.0.0.0/0","type":0},{"code":0,"direction":"inbound","ip_version":"ipv4","port_max":443,"port_min":443,"protocol":"tcp","remote":"0.0.0.0/0","type":0},{"code":0,"direction":"outbound","ip_version":"ipv4","port_max":65535,"port_min":1,"protocol":"tcp","remote":"0.0.0.0/0","type":0},{"code":0,"direction":"inbound","ip_version":"ipv4","port_max":2380,"port_min":2379,"protocol":"tcp","remote":"0.0.0.0/0","type":0},{"code":0,"direction":"outbound","ip_version":"ipv4","port_max":0,"port_min":0,"protocol":"all","remote":"0.0.0.0/0","type":0}],"tags":[],"vpc":"r014-f57f4038-57a5-401a-8757-af145d8f963b"},"sensitive_values":{"rules":[{},{},{},{},{},{},{},{},{},{},{}],"tags":[]},"depends_on":["module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group"]},{"address":"module.kube_base.ibm_is_security_group_rule.sg-rule-inbound-api","mode":"managed","type":"ibm_is_security_group_rule","name":"sg-rule-inbound-api","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"direction":"inbound","group":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be","icmp":[],"id":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be.r014-0ab7685c-f95f-4ae2-81cb-c757088bf655","ip_version":"ipv4","protocol":"tcp","related_crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::security-group:r014-11422e25-23ff-4240-87ea-d6f2b756d4be","remote":"0.0.0.0/0","rule_id":"r014-0ab7685c-f95f-4ae2-81cb-c757088bf655","tcp":[{"port_max":32767,"port_min":30000}],"udp":[]},"sensitive_values":{"icmp":[],"tcp":[{}],"udp":[]},"depends_on":["module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group"]},{"address":"module.kube_base.ibm_is_security_group_rule.sg-rule-inbound-api2","mode":"managed","type":"ibm_is_security_group_rule","name":"sg-rule-inbound-api2","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"direction":"inbound","group":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be","icmp":[],"id":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be.r014-cd2b7f1d-2081-43b7-9abe-0f4e238039f7","ip_version":"ipv4","protocol":"udp","related_crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::security-group:r014-11422e25-23ff-4240-87ea-d6f2b756d4be","remote":"0.0.0.0/0","rule_id":"r014-cd2b7f1d-2081-43b7-9abe-0f4e238039f7","tcp":[],"udp":[{"port_max":32767,"port_min":30000}]},"sensitive_values":{"icmp":[],"tcp":[],"udp":[{}]},"depends_on":["module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group"]},{"address":"module.kube_base.ibm_is_security_group_rule.sg-rule-inbound-etcd","mode":"managed","type":"ibm_is_security_group_rule","name":"sg-rule-inbound-etcd","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"direction":"inbound","group":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be","icmp":[],"id":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be.r014-119acd63-ec06-49a4-b08e-705751fc2165","ip_version":"ipv4","protocol":"tcp","related_crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::security-group:r014-11422e25-23ff-4240-87ea-d6f2b756d4be","remote":"0.0.0.0/0","rule_id":"r014-119acd63-ec06-49a4-b08e-705751fc2165","tcp":[{"port_max":2380,"port_min":2379}],"udp":[]},"sensitive_values":{"icmp":[],"tcp":[{}],"udp":[]},"depends_on":["module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group","module.kube_base.ibm_is_security_group.security_group"]},{"address":"module.kube_base.ibm_is_security_group_rule.sg-rule-inbound-from-the-group","mode":"managed","type":"ibm_is_security_group_rule","name":"sg-rule-inbound-from-the-group","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"direction":"inbound","group":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be","icmp":[],"id":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be.r014-ffd805b4-d7e4-424a-a08b-e2b000685c38","ip_version":"ipv4","protocol":"all","related_crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::security-group:r014-11422e25-23ff-4240-87ea-d6f2b756d4be","remote":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be","rule_id":"r014-ffd805b4-d7e4-424a-a08b-e2b000685c38","tcp":[],"udp":[]},"sensitive_values":{"icmp":[],"tcp":[],"udp":[]},"depends_on":["module.kube_base.ibm_resource_group.group","module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_vpc.vpc"]},{"address":"module.kube_base.ibm_is_security_group_rule.sg-rule-inbound-https","mode":"managed","type":"ibm_is_security_group_rule","name":"sg-rule-inbound-https","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"direction":"inbound","group":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be","icmp":[],"id":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be.r014-72d642b8-d10a-4194-bc1b-87acf845a8c1","ip_version":"ipv4","protocol":"tcp","related_crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::security-group:r014-11422e25-23ff-4240-87ea-d6f2b756d4be","remote":"0.0.0.0/0","rule_id":"r014-72d642b8-d10a-4194-bc1b-87acf845a8c1","tcp":[{"port_max":443,"port_min":443}],"udp":[]},"sensitive_values":{"icmp":[],"tcp":[{}],"udp":[]},"depends_on":["module.kube_base.ibm_resource_group.group","module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_vpc.vpc"]},{"address":"module.kube_base.ibm_is_security_group_rule.sg-rule-inbound-icmp","mode":"managed","type":"ibm_is_security_group_rule","name":"sg-rule-inbound-icmp","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"direction":"inbound","group":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be","icmp":[{"code":0,"type":8}],"id":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be.r014-6e31c673-73b5-4846-b58a-4f670a93313c","ip_version":"ipv4","protocol":"icmp","related_crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::security-group:r014-11422e25-23ff-4240-87ea-d6f2b756d4be","remote":"0.0.0.0/0","rule_id":"r014-6e31c673-73b5-4846-b58a-4f670a93313c","tcp":[],"udp":[]},"sensitive_values":{"icmp":[{}],"tcp":[],"udp":[]},"depends_on":["module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group","module.kube_base.ibm_is_security_group.security_group"]},{"address":"module.kube_base.ibm_is_security_group_rule.sg-rule-inbound-kube-api","mode":"managed","type":"ibm_is_security_group_rule","name":"sg-rule-inbound-kube-api","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"direction":"inbound","group":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be","icmp":[],"id":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be.r014-76a55a29-4870-4d50-92e6-cf111b20c51b","ip_version":"ipv4","protocol":"tcp","related_crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::security-group:r014-11422e25-23ff-4240-87ea-d6f2b756d4be","remote":"0.0.0.0/0","rule_id":"r014-76a55a29-4870-4d50-92e6-cf111b20c51b","tcp":[{"port_max":6443,"port_min":6443}],"udp":[]},"sensitive_values":{"icmp":[],"tcp":[{}],"udp":[]},"depends_on":["module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group"]},{"address":"module.kube_base.ibm_is_security_group_rule.sg-rule-inbound-ssh","mode":"managed","type":"ibm_is_security_group_rule","name":"sg-rule-inbound-ssh","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"direction":"inbound","group":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be","icmp":[],"id":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be.r014-753dc3e2-814e-4786-817d-171f992dbc21","ip_version":"ipv4","protocol":"tcp","related_crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::security-group:r014-11422e25-23ff-4240-87ea-d6f2b756d4be","remote":"0.0.0.0/0","rule_id":"r014-753dc3e2-814e-4786-817d-171f992dbc21","tcp":[{"port_max":22,"port_min":22}],"udp":[]},"sensitive_values":{"icmp":[],"tcp":[{}],"udp":[]},"depends_on":["module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group"]},{"address":"module.kube_base.ibm_is_security_group_rule.sg-rule-outbound","mode":"managed","type":"ibm_is_security_group_rule","name":"sg-rule-outbound","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"direction":"outbound","group":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be","icmp":[],"id":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be.r014-5a7f69be-a018-4a1f-8f4a-64d5e808d09f","ip_version":"ipv4","protocol":"tcp","related_crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::security-group:r014-11422e25-23ff-4240-87ea-d6f2b756d4be","remote":"0.0.0.0/0","rule_id":"r014-5a7f69be-a018-4a1f-8f4a-64d5e808d09f","tcp":[{"port_max":65535,"port_min":1}],"udp":[]},"sensitive_values":{"icmp":[],"tcp":[{}],"udp":[]},"depends_on":["module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group"]},{"address":"module.kube_base.ibm_is_security_group_rule.sg-rule-outbound-all","mode":"managed","type":"ibm_is_security_group_rule","name":"sg-rule-outbound-all","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"direction":"outbound","group":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be","icmp":[],"id":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be.r014-e0c30978-d0e0-4b1d-99e9-74e0eed6370f","ip_version":"ipv4","protocol":"all","related_crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::security-group:r014-11422e25-23ff-4240-87ea-d6f2b756d4be","remote":"0.0.0.0/0","rule_id":"r014-e0c30978-d0e0-4b1d-99e9-74e0eed6370f","tcp":[],"udp":[]},"sensitive_values":{"icmp":[],"tcp":[],"udp":[]},"depends_on":["module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group"]},{"address":"module.kube_base.ibm_is_security_group_rule.sg-rule-outbound-to-the-group","mode":"managed","type":"ibm_is_security_group_rule","name":"sg-rule-outbound-to-the-group","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"direction":"outbound","group":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be","icmp":[],"id":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be.r014-20d74755-b7a2-4e3e-9a70-8baddcb15c29","ip_version":"ipv4","protocol":"all","related_crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::security-group:r014-11422e25-23ff-4240-87ea-d6f2b756d4be","remote":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be","rule_id":"r014-20d74755-b7a2-4e3e-9a70-8baddcb15c29","tcp":[],"udp":[]},"sensitive_values":{"icmp":[],"tcp":[],"udp":[]},"depends_on":["module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group"]},{"address":"module.kube_base.ibm_is_ssh_key.ssh-key","mode":"managed","type":"ibm_is_ssh_key","name":"ssh-key","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"fingerprint":"SHA256:JCTFlsjZy/i3C+VkdpJ8X4CO0Ff5lfFPMb0T4HuhAzY","id":"r014-3604fa1b-77d9-43b5-851b-ad88b1f817a2","length":4096,"name":"patro-idea2-key","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDNQKCw/2FwIll5msFDjVrFGOiZA38eA8Add/4lq+D1/mOJ2lK/H4aJjCLnM5I+jH3Onri9azX3oFrxVTsJFk4OLqdFNpNlqQ/gtnOX1V1IXNefGAn9MCCLucaBuZAviR1Tba7glxA79stM/BytHDVaWa7sX/x0YQd2Rg8LcD3tBYQgM50TaHbrUn/QveuCbbXQBMULJUX7ucYEgqeQxiwyQYxYUn0yHmaEKCS6kWPnuGDMi+gUjO9DbUK5T4CS2IUsHoPeADYap9LhM5V76HEnrlNpw287/sVI5tE4Elbz2Ucro6aDJGZrbpgqLw71j45Om/7/EqAuG9AA2lotVeMnBBOnewmKIGpqu8Iseq5yLIt/620mK9RaTMhpIDocYvm/SVKTm2EHGQkPNVH7mUMe0EwTqO3KHOsX3XiGItwqQNS/eISnW072gVDwOJGxkcAQ2gDjer28KCXCgYiCM0zvNL0gjDsTi7tPhWoymwGOj9iXPCFt+6huUMg2BgHAMP8=","resource_controller_url":"https://cloud.ibm.com/vpc-ext/compute/sshKeys","resource_crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::key:r014-3604fa1b-77d9-43b5-851b-ad88b1f817a2","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-key","tags":[],"type":"rsa"},"sensitive_values":{"tags":[]},"depends_on":["module.kube_base.ibm_resource_group.group"]},{"address":"module.kube_base.ibm_is_subnet.subnet","mode":"managed","type":"ibm_is_subnet","name":"subnet","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"available_ipv4_address_count":243,"crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::subnet:0767-b6c305d0-1e13-46f9-8868-44ae236aea60","id":"0767-b6c305d0-1e13-46f9-8868-44ae236aea60","ip_version":"ipv4","ipv4_cidr_block":"10.241.64.0/24","ipv6_cidr_block":null,"name":"patro-idea2-subnet","network_acl":"r014-b4f9d887-612b-4505-8b9d-2714611faae2","public_gateway":"r014-4080e1b9-ef53-4d9b-85bd-fa495e705703","resource_controller_url":"https://cloud.ibm.com/vpc-ext/network/subnets","resource_crn":"crn:v1:bluemix:public:is:us-east-2:a/c6b82bced8251e389648625d5b3ed9bf::subnet:0767-b6c305d0-1e13-46f9-8868-44ae236aea60","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-subnet","resource_status":"available","routing_table":"r014-9207702c-c70c-45bf-996e-90d1566cb794","status":"available","tags":[],"timeouts":{"create":"90m","delete":"30m","update":null},"total_ipv4_address_count":256,"vpc":"r014-f57f4038-57a5-401a-8757-af145d8f963b","zone":"us-east-2"},"sensitive_values":{"tags":[],"timeouts":{}},"depends_on":["module.kube_base.ibm_is_public_gateway.public-gateway","module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group"]},{"address":"module.kube_base.ibm_is_vpc.vpc","mode":"managed","type":"ibm_is_vpc","name":"vpc","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"address_prefix_management":"auto","classic_access":false,"crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::vpc:r014-f57f4038-57a5-401a-8757-af145d8f963b","cse_source_addresses":[{"address":"10.12.100.244","zone_name":"us-east-1"},{"address":"10.12.108.30","zone_name":"us-east-2"},{"address":"10.12.118.37","zone_name":"us-east-3"}],"default_network_acl":"r014-b4f9d887-612b-4505-8b9d-2714611faae2","default_network_acl_name":"raving-stainable-game-crescent","default_routing_table":"r014-9207702c-c70c-45bf-996e-90d1566cb794","default_routing_table_name":"expediter-zone-reuse-isolated","default_security_group":"r014-a631b718-b4b7-44d2-9f74-a4e674b94a31","default_security_group_name":"twice-exclaim-art-luxuriate","id":"r014-f57f4038-57a5-401a-8757-af145d8f963b","name":"patro-idea2-vpc","resource_controller_url":"https://cloud.ibm.com/vpc-ext/network/vpcs","resource_crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::vpc:r014-f57f4038-57a5-401a-8757-af145d8f963b","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"patro-idea2-group","resource_name":"patro-idea2-vpc","resource_status":"available","security_group":[{"group_id":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be","group_name":"patro-idea2-sg","rules":[{"code":0,"direction":"inbound","ip_version":"ipv4","port_max":0,"port_min":0,"protocol":"icmp","remote":"0.0.0.0/0","rule_id":"r014-6e31c673-73b5-4846-b58a-4f670a93313c","type":8},{"code":0,"direction":"inbound","ip_version":"ipv4","port_max":22,"port_min":22,"protocol":"tcp","remote":"0.0.0.0/0","rule_id":"r014-753dc3e2-814e-4786-817d-171f992dbc21","type":0},{"code":0,"direction":"inbound","ip_version":"ipv4","port_max":32767,"port_min":30000,"protocol":"udp","remote":"0.0.0.0/0","rule_id":"r014-cd2b7f1d-2081-43b7-9abe-0f4e238039f7","type":0},{"code":0,"direction":"inbound","ip_version":"ipv4","port_max":32767,"port_min":30000,"protocol":"tcp","remote":"0.0.0.0/0","rule_id":"r014-0ab7685c-f95f-4ae2-81cb-c757088bf655","type":0},{"code":0,"direction":"inbound","ip_version":"ipv4","port_max":0,"port_min":0,"protocol":"all","remote":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be","rule_id":"r014-ffd805b4-d7e4-424a-a08b-e2b000685c38","type":0},{"code":0,"direction":"outbound","ip_version":"ipv4","port_max":0,"port_min":0,"protocol":"all","remote":"r014-11422e25-23ff-4240-87ea-d6f2b756d4be","rule_id":"r014-20d74755-b7a2-4e3e-9a70-8baddcb15c29","type":0},{"code":0,"direction":"inbound","ip_version":"ipv4","port_max":6443,"port_min":6443,"protocol":"tcp","remote":"0.0.0.0/0","rule_id":"r014-76a55a29-4870-4d50-92e6-cf111b20c51b","type":0},{"code":0,"direction":"inbound","ip_version":"ipv4","port_max":443,"port_min":443,"protocol":"tcp","remote":"0.0.0.0/0","rule_id":"r014-72d642b8-d10a-4194-bc1b-87acf845a8c1","type":0},{"code":0,"direction":"outbound","ip_version":"ipv4","port_max":65535,"port_min":1,"protocol":"tcp","remote":"0.0.0.0/0","rule_id":"r014-5a7f69be-a018-4a1f-8f4a-64d5e808d09f","type":0},{"code":0,"direction":"inbound","ip_version":"ipv4","port_max":2380,"port_min":2379,"protocol":"tcp","remote":"0.0.0.0/0","rule_id":"r014-119acd63-ec06-49a4-b08e-705751fc2165","type":0},{"code":0,"direction":"outbound","ip_version":"ipv4","port_max":0,"port_min":0,"protocol":"all","remote":"0.0.0.0/0","rule_id":"r014-e0c30978-d0e0-4b1d-99e9-74e0eed6370f","type":0}]},{"group_id":"r014-a631b718-b4b7-44d2-9f74-a4e674b94a31","group_name":"twice-exclaim-art-luxuriate","rules":[{"code":0,"direction":"outbound","ip_version":"ipv4","port_max":0,"port_min":0,"protocol":"all","remote":"0.0.0.0/0","rule_id":"r014-eed736b3-3dca-4014-b0ee-f12e8b1aba8b","type":0},{"code":0,"direction":"inbound","ip_version":"ipv4","port_max":0,"port_min":0,"protocol":"all","remote":"r014-a631b718-b4b7-44d2-9f74-a4e674b94a31","rule_id":"r014-685eb2ae-7160-4bbc-988a-3534531579a9","type":0}]}],"status":"available","subnets":[{"available_ipv4_address_count":243,"id":"0767-b6c305d0-1e13-46f9-8868-44ae236aea60","name":"patro-idea2-subnet","status":"available","total_ipv4_address_count":256,"zone":"us-east-2"}],"tags":[],"timeouts":null},"sensitive_values":{"cse_source_addresses":[{},{},{}],"security_group":[{"rules":[{},{},{},{},{},{},{},{},{},{},{}]},{"rules":[{},{}]}],"subnets":[{}],"tags":[]},"depends_on":["module.kube_base.ibm_resource_group.group"]},{"address":"module.kube_base.ibm_resource_group.group","mode":"managed","type":"ibm_resource_group","name":"group","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"created_at":"2021-06-04T17:18:21.174Z","crn":"crn:v1:bluemix:public:resource-controller::a/c6b82bced8251e389648625d5b3ed9bf::resource-group:b552ee4fbd2e4a2ea5dce4b58f4a7d2e","default":false,"id":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","name":"patro-idea2-group","payment_methods_url":"/v2/resource_groups/b552ee4fbd2e4a2ea5dce4b58f4a7d2e/payment_methods","quota_id":"a3d7b8d01e261c24677937c29ab33f3c","quota_url":"/v2/quota_definitions/a3d7b8d01e261c24677937c29ab33f3c","resource_linkages":[],"state":"ACTIVE","tags":null,"teams_url":"/v2/resource_groups/b552ee4fbd2e4a2ea5dce4b58f4a7d2e/teams","updated_at":"2021-06-04T17:18:21.174Z"},"sensitive_values":{"resource_linkages":[]}}],"address":"module.kube_base","child_modules":[{"resources":[{"address":"module.kube_base.module.is_lb.ibm_is_lb.is_lb","mode":"managed","type":"ibm_is_lb","name":"is_lb","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"hostname":"b3be9a40-us-east.lb.appdomain.cloud","id":"r014-b3be9a40-d0d4-4885-b182-c77614bce3c0","logging":false,"name":"patro-idea2-lb","operating_status":"online","private_ips":["10.241.64.10","10.241.64.11"],"profile":"dynamic","public_ips":["169.59.163.59","169.59.161.239"],"resource_controller_url":"https://cloud.ibm.com/vpc-ext/network/loadBalancers","resource_group":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_group_name":"b552ee4fbd2e4a2ea5dce4b58f4a7d2e","resource_name":"patro-idea2-lb","security_group_supported":true,"security_groups":["r014-11422e25-23ff-4240-87ea-d6f2b756d4be"],"status":"active","subnets":["0767-b6c305d0-1e13-46f9-8868-44ae236aea60"],"tags":[],"timeouts":null,"type":"public"},"sensitive_values":{"private_ips":[false,false],"public_ips":[false,false],"security_groups":[false],"subnets":[false],"tags":[]},"depends_on":["module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group","module.kube_base.ibm_is_public_gateway.public-gateway","module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_subnet.subnet"]},{"address":"module.kube_base.module.is_lb.ibm_is_lb_listener.is_lb_listener","mode":"managed","type":"ibm_is_lb_listener","name":"is_lb_listener","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"accept_proxy_protocol":false,"certificate_instance":null,"connection_limit":null,"default_pool":"r014-fb4068f0-9714-46f2-89f0-2d534e5e1a22","id":"r014-b3be9a40-d0d4-4885-b182-c77614bce3c0/r014-a0ad0b42-67a2-4056-978f-6391930a56f4","lb":"r014-b3be9a40-d0d4-4885-b182-c77614bce3c0","listener_id":"r014-a0ad0b42-67a2-4056-978f-6391930a56f4","port":6443,"protocol":"tcp","related_crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::load-balancer:r014-b3be9a40-d0d4-4885-b182-c77614bce3c0","status":"active","timeouts":null},"sensitive_values":{},"depends_on":["module.kube_base.ibm_is_public_gateway.public-gateway","module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_subnet.subnet","module.kube_base.ibm_is_vpc.vpc","module.kube_base.ibm_resource_group.group","module.kube_base.module.is_lb.ibm_is_lb.is_lb","module.kube_base.module.is_lb.ibm_is_lb_pool.is_lb_pool"]},{"address":"module.kube_base.module.is_lb.ibm_is_lb_pool.is_lb_pool","mode":"managed","type":"ibm_is_lb_pool","name":"is_lb_pool","provider_name":"registry.terraform.io/ibm-cloud/ibm","schema_version":0,"values":{"algorithm":"round_robin","health_delay":60,"health_monitor_port":null,"health_monitor_url":null,"health_retries":5,"health_timeout":30,"health_type":"tcp","id":"r014-b3be9a40-d0d4-4885-b182-c77614bce3c0/r014-fb4068f0-9714-46f2-89f0-2d534e5e1a22","lb":"r014-b3be9a40-d0d4-4885-b182-c77614bce3c0","name":"patro-idea2-lb","pool_id":"r014-fb4068f0-9714-46f2-89f0-2d534e5e1a22","protocol":"tcp","provisioning_status":"active","proxy_protocol":"disabled","related_crn":"crn:v1:bluemix:public:is:us-east:a/c6b82bced8251e389648625d5b3ed9bf::load-balancer:r014-b3be9a40-d0d4-4885-b182-c77614bce3c0","session_persistence_cookie_name":null,"session_persistence_type":null,"timeouts":null},"sensitive_values":{},"depends_on":["module.kube_base.ibm_resource_group.group","module.kube_base.module.is_lb.ibm_is_lb.is_lb","module.kube_base.ibm_is_public_gateway.public-gateway","module.kube_base.ibm_is_security_group.security_group","module.kube_base.ibm_is_subnet.subnet","module.kube_base.ibm_is_vpc.vpc"]}],"address":"module.kube_base.module.is_lb"}]}]}}} 2 | --------------------------------------------------------------------------------