Open sguyennet opened 7 years ago
Just stabbing in the dark here, but also inspect the logs coming from both the identity manager and the apiserver.
It feels like something got a weird value and the console is trying to parse an error message when its expecting a JSON response.
The "U" is coming from a 401 (http status code) "Unauthorised" (actual text output) response, this will be something to do with the certificates (blah is valid for bleh not blah)
Issue Report Template
Tectonic Version
1.73
Environment
VMware vSphere 6.5
Expected Behavior
tectonic-console pods in Running state
Actual Behavior
tectonic-console pods in CrashLoopBackOff state
Reproduction Steps
I followed the documentation https://coreos.com/tectonic/docs/latest/install/vmware/vmware-terraform.html
Other Information
$ kubectl -n tectonic-system logs tectonic-console-1046407245-3702f 2017/09/27 18:53:18 http: Provider config sync failed, retrying in 1s: invalid character 'U' looking for beginning of value 2017/09/27 18:53:19 http: Provider config sync still failing, retrying in 2s: invalid character 'U' looking for beginning of value 2017/09/27 18:53:21 http: Provider config sync still failing, retrying in 4s: invalid character 'U' looking for beginning of value 2017/09/27 18:53:25 http: Provider config sync still failing, retrying in 8s: invalid character 'U' looking for beginning of value 2017/09/27 18:53:33 http: Provider config sync still failing, retrying in 16s: invalid character 'U' looking for beginning of value 2017/09/27 18:53:49 http: Provider config sync still failing, retrying in 32s: invalid character 'U' looking for beginning of value
Here is my terraform.tfvars:
// The e-mail address used to: // 1. login as the admin user to the Tectonic Console. // 2. generate DNS zones for some providers. // // Note: This field MUST be set manually prior to creating the cluster. tectonic_admin_email = "xxx"
// The bcrypt hash of admin user password to login to the Tectonic Console. // Use the bcrypt-hash tool (https://github.com/coreos/bcrypt-tool/releases/tag/v1.0.0) to generate it. // // Note: This field MUST be set manually prior to creating the cluster. tectonic_admin_password_hash = "xxx"
// The base DNS domain of the cluster. It must NOT contain a trailing period. Some // DNS providers will automatically add this if necessary. // // Example:
openstack.dev.coreos.systems
. // // Note: This field MUST be set manually prior to creating the cluster. // This applies only to cloud platforms. // // [Azure-specific NOTE] // To use Azure-provided DNS,tectonic_base_domain
should be set to""
// If using DNS records, ensure thattectonic_base_domain
is set to a properly configured external DNS zone. // Instructions for configuring delegated domains for Azure DNS can be found here: https://docs.microsoft.com/en-us/azure/dns/dns-delegate-domain-azure-dns tectonic_base_domain = "mydomain.local"// (optional) The content of the PEM-encoded CA certificate, used to generate Tectonic Console's server certificate. // If left blank, a CA certificate will be automatically generated. // tectonic_ca_cert = ""
// (optional) The content of the PEM-encoded CA key, used to generate Tectonic Console's server certificate. // This field is mandatory if
tectonic_ca_cert
is set. // tectonic_ca_key = ""// (optional) The algorithm used to generate tectonic_ca_key. // The default value is currently recommended. // This field is mandatory if
tectonic_ca_cert
is set. // tectonic_ca_key_alg = "RSA"// [ALPHA] If set to true, calico network policy support will be deployed. // WARNING: Enabling an alpha feature means that future updates may become unsupported. // This should only be enabled on clusters that are meant to be short-lived to begin validating the alpha feature. tectonic_calico_network_policy = false
// The Container Linux update channel. // // Examples:
stable
,beta
,alpha
tectonic_cl_channel = "stable"// This declares the IP range to assign Kubernetes pod IPs in CIDR notation. tectonic_cluster_cidr = "10.2.0.0/16"
// The name of the cluster. // If used in a cloud-environment, this will be prepended to
tectonic_base_domain
resulting in the URL to the Tectonic console. // // Note: This field MUST be set manually prior to creating the cluster. // Warning: Special characters in the name like '.' may cause errors on OpenStack platforms due to resource name constraints. tectonic_cluster_name = "tectonic"// (optional) This only applies if you use the modules/dns/ddns module. // // Specifies the RFC2136 Dynamic DNS server key algorithm. // tectonic_ddns_key_algorithm = ""
// (optional) This only applies if you use the modules/dns/ddns module. // // Specifies the RFC2136 Dynamic DNS server key name. // tectonic_ddns_key_name = ""
// (optional) This only applies if you use the modules/dns/ddns module. // // Specifies the RFC2136 Dynamic DNS server key secret. // tectonic_ddns_key_secret = ""
// (optional) This only applies if you use the modules/dns/ddns module. // // Specifies the RFC2136 Dynamic DNS server IP/host to register IP addresses to. // tectonic_ddns_server = ""
// (optional) The path of the file containing the CA certificate for TLS communication with etcd. // // Note: This works only when used in conjunction with an external etcd cluster. // If set, the variables
tectonic_etcd_servers
,tectonic_etcd_client_cert_path
, andtectonic_etcd_client_key_path
must also be set. // tectonic_etcd_ca_cert_path = "/dev/null"// (optional) The path of the file containing the client certificate for TLS communication with etcd. // // Note: This works only when used in conjunction with an external etcd cluster. // If set, the variables
tectonic_etcd_servers
,tectonic_etcd_ca_cert_path
, andtectonic_etcd_client_key_path
must also be set. // tectonic_etcd_client_cert_path = "/dev/null"// (optional) The path of the file containing the client key for TLS communication with etcd. // // Note: This works only when used in conjunction with an external etcd cluster. // If set, the variables
tectonic_etcd_servers
,tectonic_etcd_ca_cert_path
, andtectonic_etcd_client_cert_path
must also be set. // tectonic_etcd_client_key_path = "/dev/null"// The number of etcd nodes to be created. // If set to zero, the count of etcd nodes will be determined automatically. // // Note: This is not supported on bare metal. tectonic_etcd_count = "3"
// (optional) List of external etcd v3 servers to connect with (hostnames/IPs only). // Needs to be set if using an external etcd cluster. // // Example:
["etcd1", "etcd2", "etcd3"]
// tectonic_etcd_servers = ""// (optional) If set to
true
, TLS secure communication for self-provisioned etcd. will be used. // // Note: Iftectonic_experimental
is set totrue
this variable has no effect, because the experimental self-hosted etcd always uses TLS. tectonic_etcd_tls_enabled = true// If set to true, experimental Tectonic assets are being deployed. tectonic_experimental = false
// The path to the tectonic licence file. // You can download the Tectonic license file from your Account overview page at [1]. // // [1] https://account.coreos.com/overview // // Note: This field MUST be set manually prior to creating the cluster unless
tectonic_vanilla_k8s
is set totrue
. tectonic_license_path = "/home/sguyennet/tectonic-license.txt"// The number of master nodes to be created. // This applies only to cloud platforms. tectonic_master_count = "2"
// The path the pull secret file in JSON format. // This is known to be a "Docker pull secret" as produced by the docker login [1] command. // A sample JSON content is shown in [2]. // You can download the pull secret from your Account overview page at [3]. // // [1] https://docs.docker.com/engine/reference/commandline/login/ // // [2] https://coreos.com/os/docs/latest/registry-authentication.html#manual-registry-auth-setup // // [3] https://account.coreos.com/overview // // Note: This field MUST be set manually prior to creating the cluster unless
tectonic_vanilla_k8s
is set totrue
. tectonic_pull_secret_path = "/home/sguyennet/config.json"// This declares the IP range to assign Kubernetes service cluster IPs in CIDR notation. The maximum size of this IP range is /12 tectonic_service_cidr = "10.3.0.0/16"
// The Tectonic statistics collection URL to which to report. tectonic_stats_url = "https://stats-collector.tectonic.com"
// If set to true, a vanilla Kubernetes cluster will be deployed, omitting any Tectonic assets. tectonic_vanilla_k8s = false
// vCenter Cluster used to create VMs under tectonic_vmware_cluster = "Compute-01"
// The domain name which resolves to controller node(s) tectonic_vmware_controller_domain = "tectonic-k8s.mydomain.local"
// Virtual DataCenter to deploy VMs tectonic_vmware_datacenter = "lab"
// The storage LUN used by etcd nodes. In order to use vSphere Datastore Cluster use the syntax DatastoreClusterName/datastore. tectonic_vmware_etcd_datastore = "Datastore-02"
// Default Gateway IP address for etcd nodes(s) tectonic_vmware_etcd_gateway = "10.10.20.1"
// Terraform map of etcd node(s) Hostnames, Example: // tectonic_vmware_etcd_hostnames = { // "0" = "mycluster-etcd-0" // "1" = "mycluster-etcd-1" // "2" = "mycluster-etcd-2" // } tectonic_vmware_etcd_hostnames = { "0" = "tectonic-etcd-0" "1" = "tectonic-etcd-1" "2" = "tectonic-etcd-2" }
// Terraform map of etcd node(s) IP Addresses, Example: // tectonic_vmware_etcd_ip = { // "0" = "192.168.246.10/24" // "1" = "192.168.246.11/24" // "2" = "192.168.246.12/24" // } tectonic_vmware_etcd_ip = { "0" = "10.10.20.210/24" "1" = "10.10.20.211/24" "2" = "10.10.20.212/24" }
// etcd node(s) VM Memory Size in MB tectonic_vmware_etcd_memory = "2048"
// etcd node(s) VM vCPU count tectonic_vmware_etcd_vcpu = "1"
// vSphere Folder to create and add the Tectonic nodes tectonic_vmware_folder = "tectonic"
// The domain name which resolves to Tectonic Ingress (i.e. worker node(s)) tectonic_vmware_ingress_domain = "tectonic-k8s.mydomain.local"
// The storage LUN used by master nodes. In order to use vSphere Datastore Cluster use the syntax DatastoreClusterName/datastore. tectonic_vmware_master_datastore = "Datastore-02"
// Default Gateway IP address for Master nodes(s) tectonic_vmware_master_gateway = "10.10.20.1"
// Terraform map of Master node(s) Hostnames, Example: // tectonic_vmware_master_hostnames = { // "0" = "mycluster-master-0" // "1" = "mycluster-master-1" // } tectonic_vmware_master_hostnames = { "0" = "tectonic-master-0" "1" = "tectonic-master-1" }
// Terraform map of Master node(s) IP Addresses, Example: // tectonic_vmware_master_ip = { // "0" = "192.168.246.20/24" // "1" = "192.168.246.21/24" // } tectonic_vmware_master_ip = { "0" = "10.10.20.220/24" "1" = "10.10.20.221/24" }
// Master node(s) Memory Size in MB tectonic_vmware_master_memory = "2048"
// Master node(s) vCPU count tectonic_vmware_master_vcpu = "1"
// Portgroup to attach the cluster nodes tectonic_vmware_network = "VM Network"
// DNS Server to be used by Virtual Machine(s). Multiple DNS servers can be separated by whitespace. Example:
"192.168.1.1 192.168.2.1"
tectonic_vmware_node_dns = "10.10.20.1"// vCenter Server IP/FQDN tectonic_vmware_server = "vcsa.mydomain.local"
// SSH public key to use as an authorized key. Example:
"ssh-rsa AAAB3N..."
tectonic_vmware_ssh_authorized_key = "ssh-rsa xxx"// SSH private key file in .pem format corresponding to tectonic_vmware_ssh_authorized_key. If not provided, SSH agent will be used. tectonic_vmware_ssh_private_key_path = ""
// Is the vCenter certificate Self-Signed? Example:
tectonic_vmware_sslselfsigned = "true"
tectonic_vmware_sslselfsigned = "true"// Virtual Machine template of CoreOS Container Linux. tectonic_vmware_vm_template = "CoreOS-Container-Linux-1465.6.0"
// Folder for VM template of CoreOS Container Linux. tectonic_vmware_vm_template_folder = "tectonic"
// The storage LUN used by worker nodes. In order to use vSphere Datastore Cluster use the syntax DatastoreClusterName/datastore. tectonic_vmware_worker_datastore = "Datastore-02"
// Default Gateway IP address for Master nodes(s) tectonic_vmware_worker_gateway = "10.10.20.1"
// Terraform map of Worker node(s) Hostnames, Example: // tectonic_vmware_worker_hostnames = { // "0" = "mycluster-worker-0" // "1" = "mycluster-worker-1" // } tectonic_vmware_worker_hostnames = { "0" = "tectonic-worker-0" "1" = "tectonic-worker-1" }
// Terraform map of Worker node(s) IP Addresses, Example: // tectonic_vmware_worker_ip = { // "0" = "192.168.246.30/24" // "1" = "192.168.246.31/24" // } tectonic_vmware_worker_ip = { "0" = "10.10.20.230/24" "1" = "10.10.20.231/24" }
// Worker node(s) Memory Size in MB tectonic_vmware_worker_memory = "2048"
// Worker node(s) vCPU count tectonic_vmware_worker_vcpu = "1"
// The number of worker nodes to be created. // This applies only to cloud platforms. tectonic_worker_count = "2"