Rather than downloading the hash every time, we can record the hashes
for our well-known assets and bake them into the kOps binary. If the
hash is not baked in, we will continue to fall-back to downloading it,
this is important for new k8s versions, or where the user specifies a
version of one of our well-known assets (such as containerd).
This lets us safely make changes to otherwise immutable fields, in
particular for adding security groups to NLBs created without them.
We detect the older versions, and create deletion tasks to remove
them. These tasks can be deferred, and we expect them to be
deferred to a "prune" phase that runs after cluster apply.
Co-authored-by: Ciprian Hacman <ciprian@hakman.dev>
Similar to the TPM bootstrapping on GCE (indeed, a lot of the code is
modified from there), but we verify the PKI signature against a public
key in a Host CRD object.
The pflag library tries to split comma separated values using strict
CSV semantics, which requires quoting of the full value if the value
contains a quote. We switch to LazyQuotes which is much more
tolerant.
If given a directory, we can construct a reasonable name based on the
executable name, pid and timestamp. Then this is relatively easy to
wire up from kubetest2, if we have an artifacts directory.
We initially support capturing to a file (in our own format, as it
doesn't appear a suitable format exists). This means we don't need a
server to capture the traces, and can start capturing through prow
without a lot of infrastructure changes.
Co-authored-by: Peter Rifel <rifelpet@users.noreply.github.com>
* tasks dependencies
* FindAddresses should proceed even if LBID is empty
* refacto instance: handle several instances in IG + volumeSize in model
* refacto lb_backend: set servers' IPs in backend task rather than instance
* dns changes for tf support
* render Scaleway s3 objects + add zone to outputs
* add terraform support to documentation
* new instance unique name should be given according to actual instances names
* avoid untimely changes in tf + tag instance IPs to avoid orphaned IPs at cluster deletion
* update integration tests
* review comments
* add IPs to the resources to be deleted with the cluster
* add task + model for DNS record