coreos / tectonic-installer

Install a Kubernetes cluster the CoreOS Tectonic Way: HA, self-hosted, RBAC, etcd Operator, and more
Apache License 2.0
600 stars 267 forks source link

Instructions to scale Tectonics workers needs propper documentation #1380

Closed roffe closed 7 years ago

roffe commented 7 years ago

What keywords did you search in tectonic-installer issues before filing this one?

https://coreos.com/tectonic/docs/latest/admin/bare-metal-scale.html#scaling-worker-nodes

Is this a BUG REPORT or FEATURE REQUEST?

Choose one: BUG REPORT

Versions

What happened?

Nothing, the instructions provided by you does not work

What you expected to happen?

A new worker node to be provisioned

How to reproduce it (as minimally and precisely as possible)?

Setup a working tectonics cluster ( I have after 1 1/2 day of guessing finally figured out how to use your Tectonic installer and produce working result )

Now you want to add another Worker ( adding controllers is not supported which is a red flag... ) https://coreos.com/tectonic/docs/latest/admin/bare-metal-scale.html#scaling-worker-nodes

Download the assets.zip tectonics installer gave me, unpack which gives me the following folder structure:

├── config.tf
├── generated
│   ├── auth
│   │   └── kubeconfig
│   ├── bootkube.sh
│   ├── bootstrap-manifests
│   │   ├── bootstrap-apiserver.yaml
│   │   ├── bootstrap-controller-manager.yaml
│   │   └── bootstrap-scheduler.yaml
│   ├── manifests
│   │   ├── kube-apiserver-secret.yaml
│   │   ├── kube-apiserver.yaml
│   │   ├── kube-controller-manager-disruption.yaml
│   │   ├── kube-controller-manager-secret.yaml
│   │   ├── kube-controller-manager.yaml
│   │   ├── kube-dns.yaml
│   │   ├── kube-flannel.yaml
│   │   ├── kube-proxy.yaml
│   │   ├── kube-scheduler-disruption.yaml
│   │   ├── kube-scheduler.yaml
│   │   ├── kube-system-rbac-role-binding.yaml
│   │   └── pod-checkpointer.yaml
│   ├── tectonic
│   │   ├── config.yaml
│   │   ├── console
│   │   │   ├── deployment.yaml
│   │   │   └── service.yaml
│   │   ├── heapster
│   │   │   ├── deployment.yaml
│   │   │   └── service.yaml
│   │   ├── identity
│   │   │   ├── configmap.yaml
│   │   │   ├── deployment.yaml
│   │   │   └── services.yaml
│   │   ├── ingress
│   │   │   ├── default-backend
│   │   │   │   ├── configmap.yaml
│   │   │   │   ├── deployment.yaml
│   │   │   │   └── service.yaml
│   │   │   ├── hostport
│   │   │   │   ├── daemonset.yaml
│   │   │   │   └── service.yaml
│   │   │   ├── ingress.yaml
│   │   │   └── nodeport
│   │   │       ├── deployment.yaml
│   │   │       └── service.yaml
│   │   ├── monitoring
│   │   │   ├── alertmanager-config.yaml
│   │   │   ├── alertmanager-service.yaml
│   │   │   ├── alertmanager.yaml
│   │   │   ├── kube-controller-manager-svc.yaml
│   │   │   ├── kube-scheduler-svc.yaml
│   │   │   ├── kube-state-metrics-cluster-role-binding.yaml
│   │   │   ├── kube-state-metrics-cluster-role.yaml
│   │   │   ├── kube-state-metrics-deployment.yaml
│   │   │   ├── kube-state-metrics-service-account.yaml
│   │   │   ├── kube-state-metrics-service.yaml
│   │   │   ├── node-exporter-ds.yaml
│   │   │   ├── node-exporter-svc.yaml
│   │   │   ├── prometheus-k8s-cluster-role-binding.yaml
│   │   │   ├── prometheus-k8s-cluster-role.yaml
│   │   │   ├── prometheus-k8s-rules.yaml
│   │   │   ├── prometheus-k8s-service-account.yaml
│   │   │   ├── prometheus-k8s-service-monitor-alertmanager.yaml
│   │   │   ├── prometheus-k8s-service-monitor-apiserver.yaml
│   │   │   ├── prometheus-k8s-service-monitor-kube-controller-manager.yaml
│   │   │   ├── prometheus-k8s-service-monitor-kube-scheduler.yaml
│   │   │   ├── prometheus-k8s-service-monitor-kube-state-metrics.yaml
│   │   │   ├── prometheus-k8s-service-monitor-kubelet.yaml
│   │   │   ├── prometheus-k8s-service-monitor-node-exporter.yaml
│   │   │   ├── prometheus-k8s-service-monitor-prometheus-operator.yaml
│   │   │   ├── prometheus-k8s-service-monitor-prometheus.yaml
│   │   │   ├── prometheus-k8s.yaml
│   │   │   ├── prometheus-operator-cluster-role-binding.yaml
│   │   │   ├── prometheus-operator-cluster-role.yaml
│   │   │   ├── prometheus-operator-service-account.yaml
│   │   │   ├── prometheus-operator-svc.yaml
│   │   │   ├── prometheus-operator.yaml
│   │   │   ├── prometheus-svc.yaml
│   │   │   ├── tectonic-monitoring-auth-alertmanager-deployment.yaml
│   │   │   ├── tectonic-monitoring-auth-alertmanager-svc.yaml
│   │   │   ├── tectonic-monitoring-auth-prometheus-deployment.yaml
│   │   │   ├── tectonic-monitoring-auth-prometheus-svc.yaml
│   │   │   ├── tectonic-monitoring-auth-secret.yaml
│   │   │   └── tectonic-monitoring-ingress.yaml
│   │   ├── namespace.yaml
│   │   ├── rbac
│   │   │   ├── binding-admin.yaml
│   │   │   ├── binding-discovery.yaml
│   │   │   ├── role-admin.yaml
│   │   │   ├── role-discovery.yaml
│   │   │   ├── role-ingress-controller.yaml
│   │   │   └── role-user.yaml
│   │   ├── secrets
│   │   │   ├── ca-cert.yaml
│   │   │   ├── identity-grpc-client.yaml
│   │   │   ├── identity-grpc-server.yaml
│   │   │   ├── ingress-tls.yaml
│   │   │   ├── license.json
│   │   │   └── pull.json
│   │   ├── stats-emitter.yaml
│   │   └── updater
│   │       ├── app-version-kind.yaml
│   │       ├── app_versions
│   │       │   ├── app-version-kubernetes.yaml
│   │       │   ├── app-version-tectonic-cluster.yaml
│   │       │   ├── app-version-tectonic-etcd.yaml
│   │       │   └── app-version-tectonic-monitoring.yaml
│   │       ├── cluster-config.yaml
│   │       ├── migration-status-kind.yaml
│   │       ├── node-agent.yaml
│   │       ├── operators
│   │       │   ├── container-linux-update-operator.yaml
│   │       │   ├── kube-version-operator.yaml
│   │       │   ├── tectonic-channel-operator.yaml
│   │       │   ├── tectonic-etcd-operator.yaml
│   │       │   └── tectonic-prometheus-operator.yaml
│   │       ├── tectonic-channel-operator-config.yaml
│   │       ├── tectonic-channel-operator-kind.yaml
│   │       └── tectonic-monitoring-config.yaml
│   ├── tectonic-rkt.sh
│   ├── tectonic.sh
│   └── tls
│       ├── apiserver.crt
│       ├── apiserver.key
│       ├── ca.crt
│       ├── ca.key
│       ├── etcd
│       │   ├── peer.crt
│       │   ├── peer.key
│       │   ├── server.crt
│       │   └── server.key
│       ├── etcd-client-ca.crt
│       ├── etcd-client.crt
│       ├── etcd-client.key
│       ├── kubelet.crt
│       ├── kubelet.key
│       ├── service-account.key
│       └── service-account.pub
├── license.txt
├── logs
│   ├── 9041.log
│   └── 9045.log
├── modules
│   ├── aws
│   │   ├── etcd
│   │   │   ├── dns.tf
│   │   │   ├── ignition.tf
│   │   │   ├── nodes.tf
│   │   │   ├── outputs.tf
│   │   │   └── variables.tf
│   │   ├── ignition
│   │   │   ├── ignition.tf
│   │   │   ├── outputs.tf
│   │   │   ├── resources
│   │   │   │   ├── detect-master.sh
│   │   │   │   ├── init-assets.sh
│   │   │   │   ├── s3-puller.sh
│   │   │   │   └── services
│   │   │   │       ├── init-assets.service
│   │   │   │       ├── kubelet-env.service
│   │   │   │       └── kubelet.service
│   │   │   └── variables.tf
│   │   ├── master-asg
│   │   │   ├── elb.tf
│   │   │   ├── master.tf
│   │   │   ├── outputs.tf
│   │   │   └── variables.tf
│   │   ├── vpc
│   │   │   ├── existing-vpc.tf
│   │   │   ├── outputs.tf
│   │   │   ├── sg-elb.tf
│   │   │   ├── sg-etcd.tf
│   │   │   ├── sg-master.tf
│   │   │   ├── sg-worker.tf
│   │   │   ├── variables.tf
│   │   │   ├── vpc-private.tf
│   │   │   ├── vpc-public.tf
│   │   │   └── vpc.tf
│   │   └── worker-asg
│   │       ├── variables.tf
│   │       └── worker.tf
│   ├── azure
│   │   ├── dns
│   │   │   ├── etcd.tf
│   │   │   ├── main.tf
│   │   │   ├── master.tf
│   │   │   ├── outputs.tf
│   │   │   └── variables.tf
│   │   ├── etcd
│   │   │   ├── etcd.tf
│   │   │   ├── ignition.tf
│   │   │   ├── output.tf
│   │   │   └── variables.tf
│   │   ├── master-as
│   │   │   ├── api-lb.tf
│   │   │   ├── console-lb.tf
│   │   │   ├── ignition-master.tf
│   │   │   ├── lb.tf
│   │   │   ├── master.tf
│   │   │   ├── output.tf
│   │   │   ├── resources
│   │   │   │   └── master-kubelet.service
│   │   │   └── variables.tf
│   │   ├── master-ss
│   │   │   ├── api-lb.tf
│   │   │   ├── console-lb.tf
│   │   │   ├── ignition-master.tf
│   │   │   ├── lb.tf
│   │   │   ├── master.tf
│   │   │   ├── output.tf
│   │   │   ├── resources
│   │   │   │   └── master-kubelet.service
│   │   │   └── variables.tf
│   │   ├── resource-group
│   │   │   └── rsg.tf
│   │   ├── vnet
│   │   │   ├── etcd.tf
│   │   │   ├── nsg-etcd.tf
│   │   │   ├── nsg-lb.tf
│   │   │   ├── nsg-master.tf
│   │   │   ├── nsg-worker.tf
│   │   │   ├── outputs.tf
│   │   │   ├── security-groups.tf
│   │   │   ├── variables.tf
│   │   │   └── virtualnet.tf
│   │   ├── worker-as
│   │   │   ├── ignition-worker.tf
│   │   │   ├── resources
│   │   │   │   └── worker-kubelet.service
│   │   │   ├── variables.tf
│   │   │   └── workers.tf
│   │   └── worker-ss
│   │       ├── ignition-worker.tf
│   │       ├── resources
│   │       │   └── worker-kubelet.service
│   │       ├── variables.tf
│   │       └── workers.tf
│   ├── bootkube
│   │   ├── assets.tf
│   │   ├── outputs.tf
│   │   ├── resources
│   │   │   ├── bootkube.service
│   │   │   ├── bootkube.sh
│   │   │   ├── bootstrap-manifests
│   │   │   │   ├── bootstrap-apiserver.yaml
│   │   │   │   ├── bootstrap-controller-manager.yaml
│   │   │   │   └── bootstrap-scheduler.yaml
│   │   │   ├── experimental
│   │   │   │   ├── bootstrap-manifests
│   │   │   │   │   └── bootstrap-etcd.yaml
│   │   │   │   ├── etcd
│   │   │   │   │   ├── bootstrap-etcd-service.json
│   │   │   │   │   └── migrate-etcd-cluster.json
│   │   │   │   └── manifests
│   │   │   │       ├── etcd-client-tls.yaml
│   │   │   │       ├── etcd-operator.yaml
│   │   │   │       ├── etcd-peer-tls.yaml
│   │   │   │       ├── etcd-server-tls.yaml
│   │   │   │       ├── etcd-service.yaml
│   │   │   │       └── kenc.yaml
│   │   │   ├── kubeconfig
│   │   │   └── manifests
│   │   │       ├── kube-apiserver-secret.yaml
│   │   │       ├── kube-apiserver.yaml
│   │   │       ├── kube-controller-manager-disruption.yaml
│   │   │       ├── kube-controller-manager-secret.yaml
│   │   │       ├── kube-controller-manager.yaml
│   │   │       ├── kube-dns.yaml
│   │   │       ├── kube-flannel.yaml
│   │   │       ├── kube-proxy.yaml
│   │   │       ├── kube-scheduler-disruption.yaml
│   │   │       ├── kube-scheduler.yaml
│   │   │       ├── kube-system-rbac-role-binding.yaml
│   │   │       └── pod-checkpointer.yaml
│   │   ├── tls_etcd.tf
│   │   ├── tls_kube.tf
│   │   └── variables.tf
│   ├── openstack
│   │   ├── etcd
│   │   │   ├── ignition.tf
│   │   │   ├── output.tf
│   │   │   └── variables.tf
│   │   ├── nodes
│   │   │   ├── ignition.tf
│   │   │   ├── output.tf
│   │   │   ├── resources
│   │   │   │   ├── etcd-member.service
│   │   │   │   └── kubelet.service
│   │   │   └── variables.tf
│   │   ├── secgroups
│   │   │   ├── output.tf
│   │   │   ├── secgroup.tf
│   │   │   └── variables.tf
│   │   └── secrets
│   │       ├── secrets.tf
│   │       └── variables.tf
│   ├── tectonic
│   │   ├── assets.tf
│   │   ├── crypto.tf
│   │   ├── output.tf
│   │   ├── resources
│   │   │   ├── manifests
│   │   │   │   ├── config.yaml
│   │   │   │   ├── console
│   │   │   │   │   ├── deployment.yaml
│   │   │   │   │   └── service.yaml
│   │   │   │   ├── heapster
│   │   │   │   │   ├── deployment.yaml
│   │   │   │   │   └── service.yaml
│   │   │   │   ├── identity
│   │   │   │   │   ├── configmap.yaml
│   │   │   │   │   ├── deployment.yaml
│   │   │   │   │   └── services.yaml
│   │   │   │   ├── ingress
│   │   │   │   │   ├── default-backend
│   │   │   │   │   │   ├── configmap.yaml
│   │   │   │   │   │   ├── deployment.yaml
│   │   │   │   │   │   └── service.yaml
│   │   │   │   │   ├── hostport
│   │   │   │   │   │   ├── daemonset.yaml
│   │   │   │   │   │   └── service.yaml
│   │   │   │   │   ├── ingress.yaml
│   │   │   │   │   └── nodeport
│   │   │   │   │       ├── deployment.yaml
│   │   │   │   │       └── service.yaml
│   │   │   │   ├── monitoring
│   │   │   │   │   ├── alertmanager-config.yaml
│   │   │   │   │   ├── alertmanager-service.yaml
│   │   │   │   │   ├── alertmanager.yaml
│   │   │   │   │   ├── kube-controller-manager-svc.yaml
│   │   │   │   │   ├── kube-scheduler-svc.yaml
│   │   │   │   │   ├── kube-state-metrics-cluster-role-binding.yaml
│   │   │   │   │   ├── kube-state-metrics-cluster-role.yaml
│   │   │   │   │   ├── kube-state-metrics-deployment.yaml
│   │   │   │   │   ├── kube-state-metrics-service-account.yaml
│   │   │   │   │   ├── kube-state-metrics-service.yaml
│   │   │   │   │   ├── node-exporter-ds.yaml
│   │   │   │   │   ├── node-exporter-svc.yaml
│   │   │   │   │   ├── prometheus-k8s-cluster-role-binding.yaml
│   │   │   │   │   ├── prometheus-k8s-cluster-role.yaml
│   │   │   │   │   ├── prometheus-k8s-rules.yaml
│   │   │   │   │   ├── prometheus-k8s-service-account.yaml
│   │   │   │   │   ├── prometheus-k8s-service-monitor-alertmanager.yaml
│   │   │   │   │   ├── prometheus-k8s-service-monitor-apiserver.yaml
│   │   │   │   │   ├── prometheus-k8s-service-monitor-kube-controller-manager.yaml
│   │   │   │   │   ├── prometheus-k8s-service-monitor-kube-scheduler.yaml
│   │   │   │   │   ├── prometheus-k8s-service-monitor-kube-state-metrics.yaml
│   │   │   │   │   ├── prometheus-k8s-service-monitor-kubelet.yaml
│   │   │   │   │   ├── prometheus-k8s-service-monitor-node-exporter.yaml
│   │   │   │   │   ├── prometheus-k8s-service-monitor-prometheus-operator.yaml
│   │   │   │   │   ├── prometheus-k8s-service-monitor-prometheus.yaml
│   │   │   │   │   ├── prometheus-k8s.yaml
│   │   │   │   │   ├── prometheus-operator-cluster-role-binding.yaml
│   │   │   │   │   ├── prometheus-operator-cluster-role.yaml
│   │   │   │   │   ├── prometheus-operator-service-account.yaml
│   │   │   │   │   ├── prometheus-operator-svc.yaml
│   │   │   │   │   ├── prometheus-operator.yaml
│   │   │   │   │   ├── prometheus-svc.yaml
│   │   │   │   │   ├── tectonic-monitoring-auth-alertmanager-deployment.yaml
│   │   │   │   │   ├── tectonic-monitoring-auth-alertmanager-svc.yaml
│   │   │   │   │   ├── tectonic-monitoring-auth-prometheus-deployment.yaml
│   │   │   │   │   ├── tectonic-monitoring-auth-prometheus-svc.yaml
│   │   │   │   │   ├── tectonic-monitoring-auth-secret.yaml
│   │   │   │   │   └── tectonic-monitoring-ingress.yaml
│   │   │   │   ├── namespace.yaml
│   │   │   │   ├── rbac
│   │   │   │   │   ├── binding-admin.yaml
│   │   │   │   │   ├── binding-discovery.yaml
│   │   │   │   │   ├── role-admin.yaml
│   │   │   │   │   ├── role-discovery.yaml
│   │   │   │   │   ├── role-ingress-controller.yaml
│   │   │   │   │   └── role-user.yaml
│   │   │   │   ├── secrets
│   │   │   │   │   ├── ca-cert.yaml
│   │   │   │   │   ├── identity-grpc-client.yaml
│   │   │   │   │   ├── identity-grpc-server.yaml
│   │   │   │   │   ├── ingress-tls.yaml
│   │   │   │   │   ├── license.json
│   │   │   │   │   └── pull.json
│   │   │   │   ├── stats-emitter.yaml
│   │   │   │   └── updater
│   │   │   │       ├── app-version-kind.yaml
│   │   │   │       ├── app_versions
│   │   │   │       │   ├── app-version-kubernetes.yaml
│   │   │   │       │   ├── app-version-tectonic-cluster.yaml
│   │   │   │       │   ├── app-version-tectonic-etcd.yaml
│   │   │   │       │   └── app-version-tectonic-monitoring.yaml
│   │   │   │       ├── cluster-config.yaml
│   │   │   │       ├── migration-status-kind.yaml
│   │   │   │       ├── node-agent.yaml
│   │   │   │       ├── operators
│   │   │   │       │   ├── container-linux-update-operator.yaml
│   │   │   │       │   ├── kube-version-operator.yaml
│   │   │   │       │   ├── tectonic-channel-operator.yaml
│   │   │   │       │   ├── tectonic-etcd-operator.yaml
│   │   │   │       │   └── tectonic-prometheus-operator.yaml
│   │   │   │       ├── tectonic-channel-operator-config.yaml
│   │   │   │       ├── tectonic-channel-operator-kind.yaml
│   │   │   │       └── tectonic-monitoring-config.yaml
│   │   │   ├── tectonic-rkt.sh
│   │   │   ├── tectonic.service
│   │   │   └── tectonic.sh
│   │   └── variables.tf
│   ├── update-payload
│   │   ├── assets.tf
│   │   ├── config.tf -> ../../config.tf
│   │   ├── make-update-payload.sh
│   │   ├── payload.json
│   │   ├── publish-payload.sh
│   │   ├── sign-payload.sh
│   │   └── upload-payload.sh
│   └── vmware
│       ├── etcd
│       │   ├── ignition.tf
│       │   ├── nodes.tf
│       │   ├── outputs.tf
│       │   ├── resources
│       │   │   └── etcd-cluster
│       │   └── variables.tf
│       └── node
│           ├── ignition.tf
│           ├── nodes.tf
│           ├── outputs.tf
│           ├── resources
│           │   └── services
│           │       ├── kubelet-env.service
│           │       └── kubelet.service
│           └── variables.tf
├── platforms
│   ├── aws
│   │   ├── config.tf -> ../../config.tf
│   │   ├── main.tf
│   │   ├── route53.tf
│   │   ├── s3.tf
│   │   ├── tectonic.tf
│   │   └── variables.tf
│   ├── azure
│   │   ├── config.tf -> ../../config.tf
│   │   ├── dns-todo
│   │   │   └── worker.tf
│   │   ├── main.tf
│   │   ├── tectonic.tf
│   │   └── variables.tf
│   ├── metal
│   │   ├── cl
│   │   │   ├── bootkube-controller.yaml.tmpl
│   │   │   ├── bootkube-worker.yaml.tmpl
│   │   │   └── coreos-install.yaml.tmpl
│   │   ├── config.tf -> ../../config.tf
│   │   ├── matchers.tf
│   │   ├── profiles.tf
│   │   ├── provider.tf
│   │   ├── remote.tf
│   │   ├── tectonic.tf
│   │   └── variables.tf
│   ├── openstack
│   │   ├── neutron
│   │   │   ├── config.tf -> ../../../config.tf
│   │   │   ├── dns.tf
│   │   │   ├── main.tf
│   │   │   ├── network.tf
│   │   │   ├── nodes.tf
│   │   │   └── variables.tf
│   │   └── nova
│   │       ├── config.tf -> ../../../config.tf
│   │       ├── dns.tf
│   │       ├── main.tf
│   │       ├── nodes.tf
│   │       └── variables.tf
│   └── vmware
│       ├── config.tf -> ../../config.tf
│       ├── main.tf
│       ├── provider.tf
│       ├── remote.tf
│       ├── tectonic.tf
│       └── variables.tf
├── pull_secret.json
├── terraform.tfstate
└── terraform.tfvars

90 directories, 390 files

Edt the terraform.tfvars according to guide & export a env variable

export CLUSTER=agi-cph

Unzip the assets file in a "build" folder and rename the output to comply with guide:

Now run the command provided by docs:

➜  tectonic > terraform plan \
  -var-file=build/${CLUSTER}/terraform.tfvars \
  -target module.workers \
  platforms/metal
Failed to load root config module: Error loading modules: module bootkube: not found, may need to be downloaded using 'terraform get'

Ok try to exec the command from within the assets folder:

➜  agi-cph > terraform plan \
  -var-file=terraform.tfvars \
  -target module.workers \
  platforms/metal
Error asking for user input: 6 error(s) occurred:

* matchbox_group.controller: provider matchbox couldn't be found
* matchbox_profile.tectonic-controller: provider matchbox couldn't be found
* matchbox_profile.coreos-install: provider matchbox couldn't be found
* matchbox_profile.tectonic-worker: provider matchbox couldn't be found
* matchbox_group.coreos-install: provider matchbox couldn't be found
* matchbox_group.worker: provider matchbox couldn't be found

Anything else we need to know?

I know how to build Kubernetes clusters from scratch setting up every single component by hand, but completing you 15 minutes to cluster guide has taken 2 days, instructions for basic operations such as scaling the cluster is poorly documented & my general experience with this product so far has been far from pleasant.

Why would i want to buy this software when the documentation for it doesn't even seem to be correct. Is the whole though about it that CoreOS team is supposed to run my cluster since the documentation resources avail to operators is lacking / faulty and would require me to contact CoreOS team with every single question?

roffe commented 7 years ago

So after some more guessing and trial 'n' error i get it to run "something"

➜  tectonic pwd
/Users/jk/devel/tectonic
➜  tectonic terraform plan -target module.workers -var-file=build/agi-cph/terraform.tfvars build/agi-cph
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.

No changes. Infrastructure is up-to-date.

This means that Terraform did not detect any differences between your
configuration and real physical resources that exist. As a result, Terraform
doesn't need to do anything.

This is false. I've added new hosts by following exactly the documentation:

To scale worker nodes, adjust tectonic_worker_count, tectonic_metal_worker_macs, tectonic_metal_worker_names and tectonic_metal_worker_domains

robszumski commented 7 years ago

I think you missed a step under configure Terraform, which is to fetch the modules:

$ terraform get ./platforms/metal

The plan tells you what will happen, and the apply makes it happen. All you need to do is run:

$ terraform apply \
  -var-file=build/${CLUSTER}/terraform.tfvars \
  -target module.workers \
  platforms/metal
robszumski commented 7 years ago

I opened https://github.com/coreos/tectonic-installer/issues/1390. I bet having the names of the modules that we fetch would have allowed you to match them up.

An additional overview of Terraform would have helped as well. Would you agree with that?

roffe commented 7 years ago

@robszumski Thanks for the feedback

No i did get the modules.

It seems the documentation is lacking what to do with the assets.zip you get from the Tectonic installer, or it assumes you are a matchbox / terraform guru.

I have followed this guide: https://coreos.com/tectonic/docs/latest/install/bare-metal/index.html

The cluster is running so no module is missing in the folder.

➜  tectonic ls
build               config.tf           examples            modules             platforms           tectonic-installer  terraform           terraformrc.example
➜  tectonic terraform get ./platforms/metal
Get: file:///Users/jk/devel/tectonic/modules/bootkube
Get: file:///Users/jk/devel/tectonic/modules/tectonic
➜  tectonic terraform get ./build/agi-cph/platforms/metal
Get: file:///Users/jk/devel/tectonic/build/agi-cph/modules/bootkube
Get: file:///Users/jk/devel/tectonic/build/agi-cph/modules/tectonic
➜  tectonic export CLUSTER=agi-cph
➜  tectonic terraform plan \
  -var-file=build/${CLUSTER}/terraform.tfvars \
  -target module.workers \
  platforms/metal
Error asking for user input: 6 error(s) occurred:

* matchbox_group.controller: provider matchbox couldn't be found
* matchbox_profile.tectonic-controller: provider matchbox couldn't be found
* matchbox_group.coreos-install: provider matchbox couldn't be found
* matchbox_profile.coreos-install: provider matchbox couldn't be found
* matchbox_profile.tectonic-worker: provider matchbox couldn't be found
* matchbox_group.worker: provider matchbox couldn't be found
roffe commented 7 years ago

Froms cratch, clean zip in new folder.


➜  tectonics ls
assets.zip
➜  tectonics unzip assets.zip
Archive:  assets.zip
   creating: agi-cph_2017-07-13_09-22-09/.terraform/
  inflating: agi-cph_2017-07-13_09-22-09/.terraform/etcd_tls.zip
  inflating: agi-cph_2017-07-13_09-22-09/.terraform/generated_a1a7bfcec30ed0f8f4489bd8ea15cd0be34cdaf2.zip
   creating: agi-cph_2017-07-13_09-22-09/.terraform/modules/
    linking: agi-cph_2017-07-13_09-22-09/.terraform/modules/0391b25f8df845582a6b6a555d42296b  -> /Users/jk/devel/tectonic/tectonic-installer/darwin/clusters/agi-cph_2017-07-13_09-22-09/modules/bootkube
    linking: agi-cph_2017-07-13_09-22-09/.terraform/modules/7f25271fe38c01e56cf0f5ea6a745446  -> /Users/jk/devel/tectonic/tectonic-installer/darwin/clusters/agi-cph_2017-07-13_09-22-09/modules/tectonic
  inflating: agi-cph_2017-07-13_09-22-09/.terraformrc
  inflating: agi-cph_2017-07-13_09-22-09/config.tf
   creating: agi-cph_2017-07-13_09-22-09/generated/
   creating: agi-cph_2017-07-13_09-22-09/generated/auth/
  inflating: agi-cph_2017-07-13_09-22-09/generated/auth/kubeconfig
  inflating: agi-cph_2017-07-13_09-22-09/generated/bootkube.sh
   creating: agi-cph_2017-07-13_09-22-09/generated/bootstrap-manifests/
  inflating: agi-cph_2017-07-13_09-22-09/generated/bootstrap-manifests/bootstrap-apiserver.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/bootstrap-manifests/bootstrap-controller-manager.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/bootstrap-manifests/bootstrap-scheduler.yaml
   creating: agi-cph_2017-07-13_09-22-09/generated/manifests/
  inflating: agi-cph_2017-07-13_09-22-09/generated/manifests/kube-apiserver-secret.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/manifests/kube-apiserver.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/manifests/kube-controller-manager-disruption.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/manifests/kube-controller-manager-secret.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/manifests/kube-controller-manager.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/manifests/kube-dns.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/manifests/kube-flannel.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/manifests/kube-proxy.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/manifests/kube-scheduler-disruption.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/manifests/kube-scheduler.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/manifests/kube-system-rbac-role-binding.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/manifests/pod-checkpointer.yaml
   creating: agi-cph_2017-07-13_09-22-09/generated/tectonic/
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/config.yaml
   creating: agi-cph_2017-07-13_09-22-09/generated/tectonic/console/
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/console/deployment.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/console/service.yaml
   creating: agi-cph_2017-07-13_09-22-09/generated/tectonic/heapster/
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/heapster/deployment.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/heapster/service.yaml
   creating: agi-cph_2017-07-13_09-22-09/generated/tectonic/identity/
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/identity/configmap.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/identity/deployment.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/identity/services.yaml
   creating: agi-cph_2017-07-13_09-22-09/generated/tectonic/ingress/
   creating: agi-cph_2017-07-13_09-22-09/generated/tectonic/ingress/default-backend/
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/ingress/default-backend/configmap.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/ingress/default-backend/deployment.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/ingress/default-backend/service.yaml
   creating: agi-cph_2017-07-13_09-22-09/generated/tectonic/ingress/hostport/
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/ingress/hostport/daemonset.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/ingress/hostport/service.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/ingress/ingress.yaml
   creating: agi-cph_2017-07-13_09-22-09/generated/tectonic/ingress/nodeport/
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/ingress/nodeport/deployment.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/ingress/nodeport/service.yaml
   creating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/alertmanager-config.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/alertmanager-service.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/alertmanager.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/kube-controller-manager-svc.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/kube-scheduler-svc.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/kube-state-metrics-cluster-role-binding.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/kube-state-metrics-cluster-role.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/kube-state-metrics-deployment.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/kube-state-metrics-service-account.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/kube-state-metrics-service.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/node-exporter-ds.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/node-exporter-svc.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-k8s-cluster-role-binding.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-k8s-cluster-role.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-k8s-rules.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-k8s-service-account.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-k8s-service-monitor-alertmanager.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-k8s-service-monitor-apiserver.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-k8s-service-monitor-kube-controller-manager.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-k8s-service-monitor-kube-scheduler.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-k8s-service-monitor-kube-state-metrics.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-k8s-service-monitor-kubelet.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-k8s-service-monitor-node-exporter.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-k8s-service-monitor-prometheus-operator.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-k8s-service-monitor-prometheus.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-k8s.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-operator-cluster-role-binding.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-operator-cluster-role.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-operator-service-account.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-operator-svc.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-operator.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/prometheus-svc.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/tectonic-monitoring-auth-alertmanager-deployment.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/tectonic-monitoring-auth-alertmanager-svc.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/tectonic-monitoring-auth-prometheus-deployment.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/tectonic-monitoring-auth-prometheus-svc.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/tectonic-monitoring-auth-secret.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/monitoring/tectonic-monitoring-ingress.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/namespace.yaml
   creating: agi-cph_2017-07-13_09-22-09/generated/tectonic/rbac/
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/rbac/binding-admin.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/rbac/binding-discovery.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/rbac/role-admin.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/rbac/role-discovery.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/rbac/role-ingress-controller.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/rbac/role-user.yaml
   creating: agi-cph_2017-07-13_09-22-09/generated/tectonic/secrets/
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/secrets/ca-cert.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/secrets/identity-grpc-client.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/secrets/identity-grpc-server.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/secrets/ingress-tls.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/secrets/license.json
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/secrets/pull.json
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/stats-emitter.yaml
   creating: agi-cph_2017-07-13_09-22-09/generated/tectonic/updater/
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/updater/app-version-kind.yaml
   creating: agi-cph_2017-07-13_09-22-09/generated/tectonic/updater/app_versions/
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/updater/app_versions/app-version-kubernetes.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/updater/app_versions/app-version-tectonic-cluster.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/updater/app_versions/app-version-tectonic-etcd.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/updater/app_versions/app-version-tectonic-monitoring.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/updater/cluster-config.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/updater/migration-status-kind.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/updater/node-agent.yaml
   creating: agi-cph_2017-07-13_09-22-09/generated/tectonic/updater/operators/
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/updater/operators/container-linux-update-operator.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/updater/operators/kube-version-operator.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/updater/operators/tectonic-channel-operator.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/updater/operators/tectonic-etcd-operator.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/updater/operators/tectonic-prometheus-operator.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/updater/tectonic-channel-operator-config.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/updater/tectonic-channel-operator-kind.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic/updater/tectonic-monitoring-config.yaml
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic-rkt.sh
  inflating: agi-cph_2017-07-13_09-22-09/generated/tectonic.sh
   creating: agi-cph_2017-07-13_09-22-09/generated/tls/
  inflating: agi-cph_2017-07-13_09-22-09/generated/tls/apiserver.crt
  inflating: agi-cph_2017-07-13_09-22-09/generated/tls/apiserver.key
  inflating: agi-cph_2017-07-13_09-22-09/generated/tls/ca.crt
  inflating: agi-cph_2017-07-13_09-22-09/generated/tls/ca.key
   creating: agi-cph_2017-07-13_09-22-09/generated/tls/etcd/
  inflating: agi-cph_2017-07-13_09-22-09/generated/tls/etcd/peer.crt
  inflating: agi-cph_2017-07-13_09-22-09/generated/tls/etcd/peer.key
  inflating: agi-cph_2017-07-13_09-22-09/generated/tls/etcd/server.crt
  inflating: agi-cph_2017-07-13_09-22-09/generated/tls/etcd/server.key
  inflating: agi-cph_2017-07-13_09-22-09/generated/tls/etcd-client-ca.crt
  inflating: agi-cph_2017-07-13_09-22-09/generated/tls/etcd-client.crt
  inflating: agi-cph_2017-07-13_09-22-09/generated/tls/etcd-client.key
  inflating: agi-cph_2017-07-13_09-22-09/generated/tls/kubelet.crt
  inflating: agi-cph_2017-07-13_09-22-09/generated/tls/kubelet.key
  inflating: agi-cph_2017-07-13_09-22-09/generated/tls/service-account.key
  inflating: agi-cph_2017-07-13_09-22-09/generated/tls/service-account.pub
  inflating: agi-cph_2017-07-13_09-22-09/license.txt
   creating: agi-cph_2017-07-13_09-22-09/logs/
  inflating: agi-cph_2017-07-13_09-22-09/logs/9041.log
  inflating: agi-cph_2017-07-13_09-22-09/logs/9045.log
   creating: agi-cph_2017-07-13_09-22-09/modules/
   creating: agi-cph_2017-07-13_09-22-09/modules/aws/
   creating: agi-cph_2017-07-13_09-22-09/modules/aws/etcd/
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/etcd/dns.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/etcd/ignition.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/etcd/nodes.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/etcd/outputs.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/etcd/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/aws/ignition/
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/ignition/ignition.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/ignition/outputs.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/aws/ignition/resources/
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/ignition/resources/detect-master.sh
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/ignition/resources/init-assets.sh
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/ignition/resources/s3-puller.sh
   creating: agi-cph_2017-07-13_09-22-09/modules/aws/ignition/resources/services/
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/ignition/resources/services/init-assets.service
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/ignition/resources/services/kubelet-env.service
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/ignition/resources/services/kubelet.service
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/ignition/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/aws/master-asg/
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/master-asg/elb.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/master-asg/master.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/master-asg/outputs.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/master-asg/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/aws/vpc/
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/vpc/existing-vpc.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/vpc/outputs.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/vpc/sg-elb.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/vpc/sg-etcd.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/vpc/sg-master.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/vpc/sg-worker.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/vpc/variables.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/vpc/vpc-private.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/vpc/vpc-public.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/vpc/vpc.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/aws/worker-asg/
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/worker-asg/variables.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/aws/worker-asg/worker.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/azure/
   creating: agi-cph_2017-07-13_09-22-09/modules/azure/dns/
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/dns/etcd.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/dns/main.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/dns/master.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/dns/outputs.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/dns/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/azure/etcd/
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/etcd/etcd.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/etcd/ignition.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/etcd/output.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/etcd/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/azure/master-as/
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/master-as/api-lb.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/master-as/console-lb.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/master-as/ignition-master.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/master-as/lb.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/master-as/master.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/master-as/output.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/azure/master-as/resources/
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/master-as/resources/master-kubelet.service
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/master-as/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/azure/master-ss/
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/master-ss/api-lb.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/master-ss/console-lb.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/master-ss/ignition-master.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/master-ss/lb.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/master-ss/master.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/master-ss/output.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/azure/master-ss/resources/
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/master-ss/resources/master-kubelet.service
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/master-ss/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/azure/resource-group/
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/resource-group/rsg.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/azure/vnet/
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/vnet/etcd.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/vnet/nsg-etcd.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/vnet/nsg-lb.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/vnet/nsg-master.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/vnet/nsg-worker.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/vnet/outputs.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/vnet/security-groups.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/vnet/variables.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/vnet/virtualnet.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/azure/worker-as/
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/worker-as/ignition-worker.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/azure/worker-as/resources/
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/worker-as/resources/worker-kubelet.service
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/worker-as/variables.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/worker-as/workers.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/azure/worker-ss/
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/worker-ss/ignition-worker.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/azure/worker-ss/resources/
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/worker-ss/resources/worker-kubelet.service
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/worker-ss/variables.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/azure/worker-ss/workers.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/bootkube/
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/assets.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/outputs.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/bootkube.service
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/bootkube.sh
   creating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/bootstrap-manifests/
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/bootstrap-manifests/bootstrap-apiserver.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/bootstrap-manifests/bootstrap-controller-manager.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/bootstrap-manifests/bootstrap-scheduler.yaml
   creating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/experimental/
   creating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/experimental/bootstrap-manifests/
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/experimental/bootstrap-manifests/bootstrap-etcd.yaml
   creating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/experimental/etcd/
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/experimental/etcd/bootstrap-etcd-service.json
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/experimental/etcd/migrate-etcd-cluster.json
   creating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/experimental/manifests/
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/experimental/manifests/etcd-client-tls.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/experimental/manifests/etcd-operator.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/experimental/manifests/etcd-peer-tls.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/experimental/manifests/etcd-server-tls.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/experimental/manifests/etcd-service.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/experimental/manifests/kenc.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/kubeconfig
   creating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/manifests/
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/manifests/kube-apiserver-secret.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/manifests/kube-apiserver.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/manifests/kube-controller-manager-disruption.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/manifests/kube-controller-manager-secret.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/manifests/kube-controller-manager.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/manifests/kube-dns.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/manifests/kube-flannel.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/manifests/kube-proxy.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/manifests/kube-scheduler-disruption.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/manifests/kube-scheduler.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/manifests/kube-system-rbac-role-binding.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/resources/manifests/pod-checkpointer.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/tls_etcd.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/tls_kube.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/bootkube/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/openstack/
   creating: agi-cph_2017-07-13_09-22-09/modules/openstack/etcd/
  inflating: agi-cph_2017-07-13_09-22-09/modules/openstack/etcd/ignition.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/openstack/etcd/output.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/openstack/etcd/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/openstack/nodes/
  inflating: agi-cph_2017-07-13_09-22-09/modules/openstack/nodes/ignition.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/openstack/nodes/output.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/openstack/nodes/resources/
  inflating: agi-cph_2017-07-13_09-22-09/modules/openstack/nodes/resources/etcd-member.service
  inflating: agi-cph_2017-07-13_09-22-09/modules/openstack/nodes/resources/kubelet.service
  inflating: agi-cph_2017-07-13_09-22-09/modules/openstack/nodes/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/openstack/secgroups/
  inflating: agi-cph_2017-07-13_09-22-09/modules/openstack/secgroups/output.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/openstack/secgroups/secgroup.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/openstack/secgroups/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/openstack/secrets/
  inflating: agi-cph_2017-07-13_09-22-09/modules/openstack/secrets/secrets.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/openstack/secrets/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/tectonic/
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/assets.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/crypto.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/output.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/
   creating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/config.yaml
   creating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/console/
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/console/deployment.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/console/service.yaml
   creating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/heapster/
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/heapster/deployment.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/heapster/service.yaml
   creating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/identity/
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/identity/configmap.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/identity/deployment.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/identity/services.yaml
   creating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/ingress/
   creating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/ingress/default-backend/
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/ingress/default-backend/configmap.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/ingress/default-backend/deployment.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/ingress/default-backend/service.yaml
   creating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/ingress/hostport/
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/ingress/hostport/daemonset.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/ingress/hostport/service.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/ingress/ingress.yaml
   creating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/ingress/nodeport/
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/ingress/nodeport/deployment.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/ingress/nodeport/service.yaml
   creating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/alertmanager-config.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/alertmanager-service.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/alertmanager.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/kube-controller-manager-svc.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/kube-scheduler-svc.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/kube-state-metrics-cluster-role-binding.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/kube-state-metrics-cluster-role.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/kube-state-metrics-deployment.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/kube-state-metrics-service-account.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/kube-state-metrics-service.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/node-exporter-ds.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/node-exporter-svc.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-k8s-cluster-role-binding.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-k8s-cluster-role.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-k8s-rules.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-k8s-service-account.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-k8s-service-monitor-alertmanager.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-k8s-service-monitor-apiserver.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-k8s-service-monitor-kube-controller-manager.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-k8s-service-monitor-kube-scheduler.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-k8s-service-monitor-kube-state-metrics.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-k8s-service-monitor-kubelet.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-k8s-service-monitor-node-exporter.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-k8s-service-monitor-prometheus-operator.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-k8s-service-monitor-prometheus.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-k8s.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-operator-cluster-role-binding.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-operator-cluster-role.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-operator-service-account.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-operator-svc.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-operator.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/prometheus-svc.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/tectonic-monitoring-auth-alertmanager-deployment.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/tectonic-monitoring-auth-alertmanager-svc.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/tectonic-monitoring-auth-prometheus-deployment.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/tectonic-monitoring-auth-prometheus-svc.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/tectonic-monitoring-auth-secret.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/monitoring/tectonic-monitoring-ingress.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/namespace.yaml
   creating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/rbac/
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/rbac/binding-admin.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/rbac/binding-discovery.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/rbac/role-admin.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/rbac/role-discovery.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/rbac/role-ingress-controller.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/rbac/role-user.yaml
   creating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/secrets/
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/secrets/ca-cert.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/secrets/identity-grpc-client.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/secrets/identity-grpc-server.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/secrets/ingress-tls.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/secrets/license.json
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/secrets/pull.json
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/stats-emitter.yaml
   creating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/updater/
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/updater/app-version-kind.yaml
   creating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/updater/app_versions/
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/updater/app_versions/app-version-kubernetes.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/updater/app_versions/app-version-tectonic-cluster.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/updater/app_versions/app-version-tectonic-etcd.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/updater/app_versions/app-version-tectonic-monitoring.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/updater/cluster-config.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/updater/migration-status-kind.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/updater/node-agent.yaml
   creating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/updater/operators/
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/updater/operators/container-linux-update-operator.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/updater/operators/kube-version-operator.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/updater/operators/tectonic-channel-operator.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/updater/operators/tectonic-etcd-operator.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/updater/operators/tectonic-prometheus-operator.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/updater/tectonic-channel-operator-config.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/updater/tectonic-channel-operator-kind.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/manifests/updater/tectonic-monitoring-config.yaml
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/tectonic-rkt.sh
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/tectonic.service
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/resources/tectonic.sh
  inflating: agi-cph_2017-07-13_09-22-09/modules/tectonic/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/update-payload/
  inflating: agi-cph_2017-07-13_09-22-09/modules/update-payload/assets.tf
    linking: agi-cph_2017-07-13_09-22-09/modules/update-payload/config.tf  -> ../../config.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/update-payload/make-update-payload.sh
  inflating: agi-cph_2017-07-13_09-22-09/modules/update-payload/payload.json
  inflating: agi-cph_2017-07-13_09-22-09/modules/update-payload/publish-payload.sh
  inflating: agi-cph_2017-07-13_09-22-09/modules/update-payload/sign-payload.sh
  inflating: agi-cph_2017-07-13_09-22-09/modules/update-payload/upload-payload.sh
   creating: agi-cph_2017-07-13_09-22-09/modules/vmware/
   creating: agi-cph_2017-07-13_09-22-09/modules/vmware/etcd/
  inflating: agi-cph_2017-07-13_09-22-09/modules/vmware/etcd/ignition.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/vmware/etcd/nodes.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/vmware/etcd/outputs.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/vmware/etcd/resources/
  inflating: agi-cph_2017-07-13_09-22-09/modules/vmware/etcd/resources/etcd-cluster
  inflating: agi-cph_2017-07-13_09-22-09/modules/vmware/etcd/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/vmware/node/
  inflating: agi-cph_2017-07-13_09-22-09/modules/vmware/node/ignition.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/vmware/node/nodes.tf
  inflating: agi-cph_2017-07-13_09-22-09/modules/vmware/node/outputs.tf
   creating: agi-cph_2017-07-13_09-22-09/modules/vmware/node/resources/
   creating: agi-cph_2017-07-13_09-22-09/modules/vmware/node/resources/services/
  inflating: agi-cph_2017-07-13_09-22-09/modules/vmware/node/resources/services/kubelet-env.service
  inflating: agi-cph_2017-07-13_09-22-09/modules/vmware/node/resources/services/kubelet.service
  inflating: agi-cph_2017-07-13_09-22-09/modules/vmware/node/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/platforms/
   creating: agi-cph_2017-07-13_09-22-09/platforms/aws/
    linking: agi-cph_2017-07-13_09-22-09/platforms/aws/config.tf  -> ../../config.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/aws/main.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/aws/route53.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/aws/s3.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/aws/tectonic.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/aws/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/platforms/azure/
    linking: agi-cph_2017-07-13_09-22-09/platforms/azure/config.tf  -> ../../config.tf
   creating: agi-cph_2017-07-13_09-22-09/platforms/azure/dns-todo/
  inflating: agi-cph_2017-07-13_09-22-09/platforms/azure/dns-todo/worker.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/azure/main.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/azure/tectonic.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/azure/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/platforms/metal/
   creating: agi-cph_2017-07-13_09-22-09/platforms/metal/cl/
  inflating: agi-cph_2017-07-13_09-22-09/platforms/metal/cl/bootkube-controller.yaml.tmpl
  inflating: agi-cph_2017-07-13_09-22-09/platforms/metal/cl/bootkube-worker.yaml.tmpl
  inflating: agi-cph_2017-07-13_09-22-09/platforms/metal/cl/coreos-install.yaml.tmpl
    linking: agi-cph_2017-07-13_09-22-09/platforms/metal/config.tf  -> ../../config.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/metal/matchers.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/metal/profiles.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/metal/provider.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/metal/remote.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/metal/tectonic.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/metal/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/platforms/openstack/
   creating: agi-cph_2017-07-13_09-22-09/platforms/openstack/neutron/
    linking: agi-cph_2017-07-13_09-22-09/platforms/openstack/neutron/config.tf  -> ../../../config.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/openstack/neutron/dns.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/openstack/neutron/main.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/openstack/neutron/network.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/openstack/neutron/nodes.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/openstack/neutron/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/platforms/openstack/nova/
    linking: agi-cph_2017-07-13_09-22-09/platforms/openstack/nova/config.tf  -> ../../../config.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/openstack/nova/dns.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/openstack/nova/main.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/openstack/nova/nodes.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/openstack/nova/variables.tf
   creating: agi-cph_2017-07-13_09-22-09/platforms/vmware/
    linking: agi-cph_2017-07-13_09-22-09/platforms/vmware/config.tf  -> ../../config.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/vmware/main.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/vmware/provider.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/vmware/remote.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/vmware/tectonic.tf
  inflating: agi-cph_2017-07-13_09-22-09/platforms/vmware/variables.tf
  inflating: agi-cph_2017-07-13_09-22-09/pull_secret.json
  inflating: agi-cph_2017-07-13_09-22-09/terraform.tfstate
  inflating: agi-cph_2017-07-13_09-22-09/terraform.tfvars
finishing deferred symbolic links:
  agi-cph_2017-07-13_09-22-09/.terraform/modules/0391b25f8df845582a6b6a555d42296b -> /Users/jk/devel/tectonic/tectonic-installer/darwin/clusters/agi-cph_2017-07-13_09-22-09/modules/bootkube
  agi-cph_2017-07-13_09-22-09/.terraform/modules/7f25271fe38c01e56cf0f5ea6a745446 -> /Users/jk/devel/tectonic/tectonic-installer/darwin/clusters/agi-cph_2017-07-13_09-22-09/modules/tectonic
  agi-cph_2017-07-13_09-22-09/modules/update-payload/config.tf -> ../../config.tf
  agi-cph_2017-07-13_09-22-09/platforms/aws/config.tf -> ../../config.tf
  agi-cph_2017-07-13_09-22-09/platforms/azure/config.tf -> ../../config.tf
  agi-cph_2017-07-13_09-22-09/platforms/metal/config.tf -> ../../config.tf
  agi-cph_2017-07-13_09-22-09/platforms/openstack/neutron/config.tf -> ../../../config.tf
  agi-cph_2017-07-13_09-22-09/platforms/openstack/nova/config.tf -> ../../../config.tf
  agi-cph_2017-07-13_09-22-09/platforms/vmware/config.tf -> ../../config.tf
➜  tectonics cd agi-cph_2017-07-13_09-22-09
➜  agi-cph_2017-07-13_09-22-09 ls
config.tf         generated         license.txt       logs              modules           platforms         pull_secret.json  terraform.tfstate terraform.tfvars
➜  agi-cph_2017-07-13_09-22-09 terraform get platforms/metal
Get: file:///Users/jk/Downloads/tectonics/agi-cph_2017-07-13_09-22-09/modules/bootkube
Get: file:///Users/jk/Downloads/tectonics/agi-cph_2017-07-13_09-22-09/modules/tectonic
➜  agi-cph_2017-07-13_09-22-09 terraform plan -var-file=terraform.tfvars platforms/metal
Error asking for user input: 6 error(s) occurred:

* matchbox_profile.tectonic-worker: provider matchbox couldn't be found
* matchbox_group.coreos-install: provider matchbox couldn't be found
* matchbox_profile.coreos-install: provider matchbox couldn't be found
* matchbox_profile.tectonic-controller: provider matchbox couldn't be found
* matchbox_group.controller: provider matchbox couldn't be found
* matchbox_group.worker: provider matchbox couldn't be found
roffe commented 7 years ago
➜  agi-cph_2017-07-13_09-22-09 cat .terraformrc

providers {
    matchbox = "/Users/jk/devel/tectonic/tectonic-installer/darwin/installer-TFSPACE-matchbox"
}%                                                                                                                                                                                                          ➜  agi-cph_2017-07-13_09-22-09 type /Users/jk/devel/tectonic/tectonic-installer/darwin/installer
/Users/jk/devel/tectonic/tectonic-installer/darwin/installer is /Users/jk/devel/tectonic/tectonic-installer/darwin/installer
➜  agi-cph_2017-07-13_09-22-09 file /Users/jk/devel/tectonic/tectonic-installer/darwin/installer
/Users/jk/devel/tectonic/tectonic-installer/darwin/installer: Mach-O 64-bit executable x86_64
roffe commented 7 years ago

Any other ideas @robszumski ?

s-urbaniak commented 7 years ago

@roffe I believe you are missing the following env var according to https://coreos.com/tectonic/docs/latest/install/bare-metal/metal-terraform.html:

export TERRAFORM_CONFIG=/Users/jk/devel/tectonic/tectonic-installer/.terraformrc

(or wherever your .terraformrc lives) Do you mind to recheck?

roffe commented 7 years ago

I think the whole problem is a huge missing section in the docs what to do with the assets zip file you get presented with after completing the tectonic installer.

You are still pointing to the documents of the initial installer even though this is done and that folder is removed & long gone. all that is left is the assets.zip given by the tectonics GUI installer and no instructions on what to do with it.

I have unfortunate enough removed all tectonics related machines & installs this morning as it went faster for me to deploy everything from my own scripts.

I'm closing this issue with a call for better documentation

zeeZ commented 7 years ago

Tried to do the same today, same version (1.6.7-tectonic.1). There is no terraform.vars, terraform.tfvars does not contain tectonic_worker_count. Using the info from here I managed to "successfully" run apply using the assets.zip:

"Apply complete! Resources: 0 added, 0 changed, 0 destroyed."

Nothing changed.

You'll probably have more luck with the 1.6.2 documentation and manually copying generated/auth/kubeconfig to /etc/kubernetes/kubeconfig

mmellison commented 7 years ago

In case anyone lands here as I did, I was able to add a worker to 1.6.7-tectonic.1 via terraform with the following modified instructions from the tectonic documentation:

  1. Add the new worker node values to terraform.tfvars by appending to:

    • tectonic_metal_worker_domains
    • tectonic_metal_worker_macs
    • tectonic_metal_worker_names.
  2. Run terraform, notice the removed target option (run plan first to make sure changes are sane):

    terraform apply \
    -var-file=terraform.tfvars \
    platforms/metal
  3. Boot the new worker via iPXE. You will likely see "Still creating..." messages from terraform as the node boots and installs container linux.

Caveats:

  1. I had to use the terraform binary bundled with the tectonic installer, not my local version.

Hope this helps!

roffe commented 7 years ago

Thank you for the link to the non existing webpage

I followed what i presume is the same instructions to no luck.

Deploying kubernetes from scratch proved more reliable and gave results faster so the Tectonic project is scrapped for the time being

rushins commented 6 years ago

hello @seglberg : i have tried in 1.7.3 release and it failed. do you know if you have tried 1.7.3 Did you download the assets.zip file and did the changes on your workstation or the matchbox server which copies assets.zip file ? the documentation link https://coreos.com/tectonic/docs/1.6.7-tectonic.2/admin/bare-metal-scale.html is not clear /

Can you guide me little how you did the while thing.

MartijnStraatman commented 6 years ago

I managed to scale up by first following the bare-metal-scale instructions. Terrafrom just tells me nothing has changed. The problem was that kubeconfig is not being scp-ed to the scaled-worker. I just copied it and it worked. Bad solution but for the time-being is not that bad. Hopefully they come up with a fix