(arg1, options, updateRequest)
| 57 | }; |
| 58 | |
| 59 | const k8sDeployAndDeployUpdate = async function (arg1, options, updateRequest) { |
| 60 | let dockerImageName, dockerDefaultImageName; |
| 61 | let dockerDefaultImageVersionTag = 'v1.0.0'; |
| 62 | let nextVersionTag; |
| 63 | |
| 64 | const self = this |
| 65 | |
| 66 | let appPath = arg1 || '.'; |
| 67 | let pkg = parsePackageFile(appPath); |
| 68 | let appName = pkg.name; |
| 69 | |
| 70 | let isUpdate = updateRequest; |
| 71 | |
| 72 | let failedToDeploy = (err) => { |
| 73 | this.errorLog(`Failed to deploy the '${appName}' app. ${err.message}`); |
| 74 | process.exit(); |
| 75 | }; |
| 76 | |
| 77 | let socketClusterK8sConfigFilePath = appPath + '/socketcluster-k8s.json'; |
| 78 | let socketClusterK8sConfig = parseJSONFile(socketClusterK8sConfigFilePath); |
| 79 | |
| 80 | let addAuthDetailsToSocketClusterK8s = function ( |
| 81 | socketClusterK8sConfigJSON, |
| 82 | username, |
| 83 | password, |
| 84 | ) { |
| 85 | if (!socketClusterK8sConfigJSON.docker) { |
| 86 | socketClusterK8sConfigJSON.docker = {}; |
| 87 | } |
| 88 | socketClusterK8sConfigJSON.docker.auth = Buffer.from( |
| 89 | `${username}:${password}`, |
| 90 | 'utf8', |
| 91 | ).toString('base64'); |
| 92 | }; |
| 93 | |
| 94 | let saveSocketClusterK8sConfigFile = function (socketClusterK8sConfigJSON) { |
| 95 | fs.writeFileSync( |
| 96 | socketClusterK8sConfigFilePath, |
| 97 | JSON.stringify(socketClusterK8sConfigJSON, null, 2), |
| 98 | ); |
| 99 | }; |
| 100 | |
| 101 | let parseVersionTag = function (fullImageName) { |
| 102 | let matches = fullImageName.match(/:[^:]*$/); |
| 103 | if (!matches) { |
| 104 | return ''; |
| 105 | } |
| 106 | return matches[0] || ''; |
| 107 | }; |
| 108 | |
| 109 | let setImageVersionTag = function (imageName, versionTag) { |
| 110 | if (versionTag.indexOf(':') !== 0) { |
| 111 | versionTag = ':' + versionTag; |
| 112 | } |
| 113 | return imageName.replace(/(\/[^\/:]*)(:[^:]*)?$/g, `$1${versionTag}`); |
| 114 | }; |
| 115 | |
| 116 | let promptDockerAuthDetails = async () => { |
nothing calls this directly
no test coverage detected
searching dependent graphs…