Implement failsafe ssh keys for Model Maker

Prod related: PROD-25376 (PROD:25376)

Change-Id: I50e6847d2fbfcd7ae07fe0dae54b9534e6ec2e2f
diff --git a/generate-cookiecutter-products.groovy b/generate-cookiecutter-products.groovy
index 9df7611..124f96b 100644
--- a/generate-cookiecutter-products.groovy
+++ b/generate-cookiecutter-products.groovy
@@ -156,6 +156,9 @@
                         }
                         context['secrets_encryption_key_id'] = secretKeyID
                     }
+                    if (context.get('cfg_failsafe_ssh_public_key')) {
+                        writeFile file:'failsafe-ssh-key.pub', text:context['cfg_failsafe_ssh_public_key']
+                    }
                     python.setupCookiecutterVirtualenv(cutterEnv)
                     // FIXME refactor generateModel
                     python.generateModel(common2.dumpYAML(['default_context': context]), 'default_context', context['salt_master_hostname'], cutterEnv, modelEnv, templateEnv, false)
@@ -211,6 +214,9 @@
                 if (context['secrets_encryption_enabled'] == 'True') {
                     args = "--gpg-key gpgkey.asc " + args
                 }
+                if (context.get('cfg_failsafe_ssh_public_key')) {
+                    args = "--ssh-key failsafe-ssh-key.pub " + args
+                }
 
                 // load data from model
                 def smc = [:]