From b63ea3bbb0e128aca67a37c9bf857835ef83e5bc Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Wed, 13 Sep 2017 12:16:13 +0100 Subject: [PATCH 01/39] Fissile WIP --- build/bk-build-utils.js | 6 +- build/bk-build.js | 12 ++ build/bk-prepare-build.js | 10 +- deploy/fissile/Dockerfile.bosh-cli | 14 +++ deploy/fissile/dark-opinions.yml | 108 ++++++++++++++++++ deploy/fissile/defaults.txt | 5 + deploy/fissile/env.sh | 6 + deploy/fissile/opinions.yml | 2 + deploy/fissile/role-manifest.yml | 80 +++++++++++++ deploy/stratos-ui-release/config/blobs.yml | 4 +- deploy/stratos-ui-release/jobs/backend/spec | 3 - .../packages/backend/pre_packaging | 12 +- package.json | 1 + 13 files changed, 249 insertions(+), 14 deletions(-) create mode 100644 deploy/fissile/Dockerfile.bosh-cli create mode 100644 deploy/fissile/dark-opinions.yml create mode 100644 deploy/fissile/defaults.txt create mode 100644 deploy/fissile/env.sh create mode 100644 deploy/fissile/opinions.yml create mode 100644 deploy/fissile/role-manifest.yml diff --git a/build/bk-build-utils.js b/build/bk-build-utils.js index ad3cd88a4d..304a70163a 100644 --- a/build/bk-build-utils.js +++ b/build/bk-build-utils.js @@ -100,8 +100,12 @@ var goFiles = _.filter(fs.readdirSync(pluginPath), function (file) { return path.extname(file) === '.go'; }); + var args = ['build']; - var args = ['build', '-i', '-buildmode=plugin', '-o', pluginName + '.so']; + if (!prepareBuild.getNoGoInstall()) { + args.push('-i'); + } + args = args.concat(['-buildmode=plugin', '-o', pluginName + '.so']); args = args.concat(goFiles); return spawnProcess('go', args, pluginPath, env); } diff --git a/build/bk-build.js b/build/bk-build.js index dea838754a..23de4f5de0 100644 --- a/build/bk-build.js +++ b/build/bk-build.js @@ -253,6 +253,18 @@ ); }); + gulp.task('bosh-build-backend', function () { + // Doesn't perform a `go build -i` buiild + prepareBuild.setNoGoInstall(true); + return runSequence( + 'init-build', + 'dedup-vendor', + 'write-plugins-yaml', + 'delete-temp', + 'local-dev-build' + ); + }); + gulp.task('cf-build-backend', function () { return runSequence( diff --git a/build/bk-prepare-build.js b/build/bk-prepare-build.js index 37c8572d54..8efe3a463d 100644 --- a/build/bk-prepare-build.js +++ b/build/bk-prepare-build.js @@ -11,7 +11,7 @@ var conf = require('./bk-conf'); var glob = require('glob'); - var tempPath, tempSrcPath, buildTest; + var tempPath, tempSrcPath, buildTest, noGoInstall; var fsEnsureDirQ = Q.denodeify(fs.ensureDir); var fsRemoveQ = Q.denodeify(fs.remove); var fsCopyQ = Q.denodeify(fs.copy); @@ -28,6 +28,14 @@ buildTest = build; }; + module.exports.getNoGoInstall = function () { + return noGoInstall; + }; + + module.exports.setNoGoInstall = function (goInstall) { + noGoInstall = goInstall; + }; + module.exports.getSourcePath = function () { return tempSrcPath; }; diff --git a/deploy/fissile/Dockerfile.bosh-cli b/deploy/fissile/Dockerfile.bosh-cli new file mode 100644 index 0000000000..0621e7940c --- /dev/null +++ b/deploy/fissile/Dockerfile.bosh-cli @@ -0,0 +1,14 @@ +FROM splatform/bosh-cli + +RUN curl https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz -o go1.8.3.linux-amd64.tar.gz +RUN tar -C /usr/local -xzf go1.8.3.linux-amd64.tar.gz +RUN curl https://deb.nodesource.com/setup_6.x -o install_node.sh +RUN chmod +x install_node.sh && \ + ./install_node.sh && \ + sudo apt-get install -y nodejs wget locales +RUN echo 'export BOSH_LOG_LEVEL=info' >> /etc/bash.bashrc && \ + echo 'export LANG=en_US.UTF-8' >> /etc/bash.bashrc && \ + echo 'export LC_ALL=en_US.UTF-8' >> /etc/bash.bashrc && \ + locale-gen en_US en_US.UTF-8 && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + dpkg-reconfigure --frontend=noninteractive locales diff --git a/deploy/fissile/dark-opinions.yml b/deploy/fissile/dark-opinions.yml new file mode 100644 index 0000000000..ac9c1a3458 --- /dev/null +++ b/deploy/fissile/dark-opinions.yml @@ -0,0 +1,108 @@ +--- +properties: + stratos_ui: + backend: + session_store_secret: foo + ssl_cert: | + -----BEGIN CERTIFICATE----- + MIIDXTCCAkWgAwIBAgIJAJooOiQWl1v1MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV + BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX + aWRnaXRzIFB0eSBMdGQwHhcNMTcwNjIzMTQ1MDM5WhcNMTgwNjIzMTQ1MDM5WjBF + MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50 + ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB + CgKCAQEA1ffskodMWczONUmpW35pNXFsFD/UGEvzCsXHme64f62JaEWYiK/WoDhy + gjUnRU0m/UU03+5nBRj3T10ONrjq85Vbvz3itR5b9rRH+8xQTJstHRFgdz5B9pLx + 43GExyBwuAqcu7fSkZUQkN8gBjyxcwrKYM9So/IBLtf7Rhejg6/qr3WNnfAVUQhK + qywBXnxCgA4kIRJKxbQY83XPBXIBcdRH5xsBDX0d9Tsre/v9G/BaiU//CvhpVzEJ + iTzRDjca2C/v8Q7MxcPwInAFM9Vz+iKsu6+grDFoiNh3hql+meET1nmSE7q+dIOA + Z58Enk5BYsOxJN/fmyuesIL0S3CKSwIDAQABo1AwTjAdBgNVHQ4EFgQUXucATEFh + 8s94Mg1+J/aP8potwhMwHwYDVR0jBBgwFoAUXucATEFh8s94Mg1+J/aP8potwhMw + DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAGroqi6rKMjw3mCtr6dAU + WgGXiO96ADRzRchdp+gpHTVtybKAa1n13MAs/tl7HKUBQWwvDqPlqAAmBtCDKhfh + N8SiI8PxScaCE2NcJCJDHwxs2CucUSAIf99w+WIZ0pF2IC+73GTCR+p9Kwb5bN04 + 8vN/7YQTMwNk7GxkKas9QPR9/6rvPHLGPYvPx8mOW6HbYaWdPavJAI/XAYPxnfid + uQuNfXXbhJyxN1BUi1Kt+KkVCyG+CY0jJNbO7lTsiJSzcstLykSxTX1bw0jIvEWa + LdXmd/Dyu/EVzgOYnEPiZmHbha4KuVsb0dtAQIT8hmVRXIIOIbndERBduxeVMkLm + fw== + -----END CERTIFICATE----- + ssl_cert_key: | + -----BEGIN PRIVATE KEY----- + MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41 + Salbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP + XQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ + 3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz + dc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai + cAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w + gvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q + A+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T + /vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA + +y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7 + M2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4 + 7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep + 0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk + x3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp + u+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV + k/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd + 2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH + pj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P + sG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2 + 6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb + nV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF + ZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6 + PQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z + 9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr + 42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd + mEVvEQxyBz3V1fZ0Yz246W60 + -----END PRIVATE KEY----- + frontend: + ssl_cert: | + -----BEGIN CERTIFICATE----- + MIIDXTCCAkWgAwIBAgIJAJooOiQWl1v1MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV + BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX + aWRnaXRzIFB0eSBMdGQwHhcNMTcwNjIzMTQ1MDM5WhcNMTgwNjIzMTQ1MDM5WjBF + MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50 + ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB + CgKCAQEA1ffskodMWczONUmpW35pNXFsFD/UGEvzCsXHme64f62JaEWYiK/WoDhy + gjUnRU0m/UU03+5nBRj3T10ONrjq85Vbvz3itR5b9rRH+8xQTJstHRFgdz5B9pLx + 43GExyBwuAqcu7fSkZUQkN8gBjyxcwrKYM9So/IBLtf7Rhejg6/qr3WNnfAVUQhK + qywBXnxCgA4kIRJKxbQY83XPBXIBcdRH5xsBDX0d9Tsre/v9G/BaiU//CvhpVzEJ + iTzRDjca2C/v8Q7MxcPwInAFM9Vz+iKsu6+grDFoiNh3hql+meET1nmSE7q+dIOA + Z58Enk5BYsOxJN/fmyuesIL0S3CKSwIDAQABo1AwTjAdBgNVHQ4EFgQUXucATEFh + 8s94Mg1+J/aP8potwhMwHwYDVR0jBBgwFoAUXucATEFh8s94Mg1+J/aP8potwhMw + DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAGroqi6rKMjw3mCtr6dAU + WgGXiO96ADRzRchdp+gpHTVtybKAa1n13MAs/tl7HKUBQWwvDqPlqAAmBtCDKhfh + N8SiI8PxScaCE2NcJCJDHwxs2CucUSAIf99w+WIZ0pF2IC+73GTCR+p9Kwb5bN04 + 8vN/7YQTMwNk7GxkKas9QPR9/6rvPHLGPYvPx8mOW6HbYaWdPavJAI/XAYPxnfid + uQuNfXXbhJyxN1BUi1Kt+KkVCyG+CY0jJNbO7lTsiJSzcstLykSxTX1bw0jIvEWa + LdXmd/Dyu/EVzgOYnEPiZmHbha4KuVsb0dtAQIT8hmVRXIIOIbndERBduxeVMkLm + fw== + -----END CERTIFICATE----- + ssl_cert_key: | + -----BEGIN PRIVATE KEY----- + MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41 + Salbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP + XQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ + 3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz + dc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai + cAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w + gvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q + A+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T + /vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA + +y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7 + M2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4 + 7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep + 0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk + x3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp + u+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV + k/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd + 2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH + pj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P + sG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2 + 6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb + nV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF + ZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6 + PQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z + 9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr + 42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd + mEVvEQxyBz3V1fZ0Yz246W60 + -----END PRIVATE KEY----- diff --git a/deploy/fissile/defaults.txt b/deploy/fissile/defaults.txt new file mode 100644 index 0000000000..514e052c7f --- /dev/null +++ b/deploy/fissile/defaults.txt @@ -0,0 +1,5 @@ +STRATOS_UI_BACKEND_SSL_CERT_KEY="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41\nSalbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP\nXQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ\n3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz\ndc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai\ncAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w\ngvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q\nA+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T\n/vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA\n+y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7\nM2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4\n7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep\n0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk\nx3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp\nu+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV\nk/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd\n2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH\npj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P\nsG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2\n6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb\nnV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF\nZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6\nPQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z\n9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr\n42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd\nmEVvEQxyBz3V1fZ0Yz246W60\n-----END PRIVATE KEY-----" BACKEND_SSL_CERT="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41\nSalbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP\nXQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ\n3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz\ndc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai\ncAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w\ngvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q\nA+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T\n/vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA\n+y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7\nM2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4\n7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep\n0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk\nx3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp\nu+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV\nk/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd\n2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH\npj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P\nsG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2\n6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb\nnV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF\nZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6\nPQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z\n9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr\n42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd\nmEVvEQxyBz3V1fZ0Yz246W60\n-----END PRIVATE KEY-----" +STRATOS_UI_BACKEND_SSL_CERT="-----BEGIN CERTIFICATE-----\nMIIDXTCCAkWgAwIBAgIJAJooOiQWl1v1MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcwNjIzMTQ1MDM5WhcNMTgwNjIzMTQ1MDM5WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEA1ffskodMWczONUmpW35pNXFsFD/UGEvzCsXHme64f62JaEWYiK/WoDhy\ngjUnRU0m/UU03+5nBRj3T10ONrjq85Vbvz3itR5b9rRH+8xQTJstHRFgdz5B9pLx\n43GExyBwuAqcu7fSkZUQkN8gBjyxcwrKYM9So/IBLtf7Rhejg6/qr3WNnfAVUQhK\nqywBXnxCgA4kIRJKxbQY83XPBXIBcdRH5xsBDX0d9Tsre/v9G/BaiU//CvhpVzEJ\niTzRDjca2C/v8Q7MxcPwInAFM9Vz+iKsu6+grDFoiNh3hql+meET1nmSE7q+dIOA\nZ58Enk5BYsOxJN/fmyuesIL0S3CKSwIDAQABo1AwTjAdBgNVHQ4EFgQUXucATEFh\n8s94Mg1+J/aP8potwhMwHwYDVR0jBBgwFoAUXucATEFh8s94Mg1+J/aP8potwhMw\nDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAGroqi6rKMjw3mCtr6dAU\nWgGXiO96ADRzRchdp+gpHTVtybKAa1n13MAs/tl7HKUBQWwvDqPlqAAmBtCDKhfh\nN8SiI8PxScaCE2NcJCJDHwxs2CucUSAIf99w+WIZ0pF2IC+73GTCR+p9Kwb5bN04\n8vN/7YQTMwNk7GxkKas9QPR9/6rvPHLGPYvPx8mOW6HbYaWdPavJAI/XAYPxnfid\nuQuNfXXbhJyxN1BUi1Kt+KkVCyG+CY0jJNbO7lTsiJSzcstLykSxTX1bw0jIvEWa\nLdXmd/Dyu/EVzgOYnEPiZmHbha4KuVsb0dtAQIT8hmVRXIIOIbndERBduxeVMkLm\nfw==\n-----END CERTIFICATE----- +STRATOS_UI_FRONTEND_SSL_CERT_KEY="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41\nSalbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP\nXQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ\n3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz\ndc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai\ncAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w\ngvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q\nA+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T\n/vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA\n+y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7\nM2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4\n7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep\n0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk\nx3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp\nu+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV\nk/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd\n2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH\npj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P\nsG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2\n6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb\nnV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF\nZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6\nPQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z\n9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr\n42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd\nmEVvEQxyBz3V1fZ0Yz246W60\n-----END PRIVATE KEY-----" BACKEND_SSL_CERT="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41\nSalbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP\nXQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ\n3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz\ndc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai\ncAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w\ngvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q\nA+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T\n/vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA\n+y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7\nM2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4\n7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep\n0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk\nx3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp\nu+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV\nk/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd\n2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH\npj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P\nsG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2\n6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb\nnV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF\nZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6\nPQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z\n9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr\n42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd\nmEVvEQxyBz3V1fZ0Yz246W60\n-----END PRIVATE KEY-----" +STRATOS_UI_FRONTEND_SSL_CERT="-----BEGIN CERTIFICATE-----\nMIIDXTCCAkWgAwIBAgIJAJooOiQWl1v1MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcwNjIzMTQ1MDM5WhcNMTgwNjIzMTQ1MDM5WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEA1ffskodMWczONUmpW35pNXFsFD/UGEvzCsXHme64f62JaEWYiK/WoDhy\ngjUnRU0m/UU03+5nBRj3T10ONrjq85Vbvz3itR5b9rRH+8xQTJstHRFgdz5B9pLx\n43GExyBwuAqcu7fSkZUQkN8gBjyxcwrKYM9So/IBLtf7Rhejg6/qr3WNnfAVUQhK\nqywBXnxCgA4kIRJKxbQY83XPBXIBcdRH5xsBDX0d9Tsre/v9G/BaiU//CvhpVzEJ\niTzRDjca2C/v8Q7MxcPwInAFM9Vz+iKsu6+grDFoiNh3hql+meET1nmSE7q+dIOA\nZ58Enk5BYsOxJN/fmyuesIL0S3CKSwIDAQABo1AwTjAdBgNVHQ4EFgQUXucATEFh\n8s94Mg1+J/aP8potwhMwHwYDVR0jBBgwFoAUXucATEFh8s94Mg1+J/aP8potwhMw\nDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAGroqi6rKMjw3mCtr6dAU\nWgGXiO96ADRzRchdp+gpHTVtybKAa1n13MAs/tl7HKUBQWwvDqPlqAAmBtCDKhfh\nN8SiI8PxScaCE2NcJCJDHwxs2CucUSAIf99w+WIZ0pF2IC+73GTCR+p9Kwb5bN04\n8vN/7YQTMwNk7GxkKas9QPR9/6rvPHLGPYvPx8mOW6HbYaWdPavJAI/XAYPxnfid\nuQuNfXXbhJyxN1BUi1Kt+KkVCyG+CY0jJNbO7lTsiJSzcstLykSxTX1bw0jIvEWa\nLdXmd/Dyu/EVzgOYnEPiZmHbha4KuVsb0dtAQIT8hmVRXIIOIbndERBduxeVMkLm\nfw==\n-----END CERTIFICATE----- +STRATOS_UI_SESSION_STORE_SECRET=foo \ No newline at end of file diff --git a/deploy/fissile/env.sh b/deploy/fissile/env.sh new file mode 100644 index 0000000000..5a3396cc5b --- /dev/null +++ b/deploy/fissile/env.sh @@ -0,0 +1,6 @@ +export FISSILE_RELEASE="deploy/stratos-ui-release" +export FISSILE_ROLE_MANIFEST="deploy/fissile/role-manifest.yml" +export FISSILE_LIGHT_OPINIONS="deploy/fissile/opinions.yml" +export FISSILE_DARK_OPINIONS="deploy/fissile/dark-opinions.yml" +export FISSILE_WORK_DIR="output/fissile" +export FISSILE_STEMCELL="splatform/fissile-stemcell-opensuse:42.2-6.ga651b2d-28.33" \ No newline at end of file diff --git a/deploy/fissile/opinions.yml b/deploy/fissile/opinions.yml new file mode 100644 index 0000000000..f2e5543317 --- /dev/null +++ b/deploy/fissile/opinions.yml @@ -0,0 +1,2 @@ +--- +properties: {} diff --git a/deploy/fissile/role-manifest.yml b/deploy/fissile/role-manifest.yml new file mode 100644 index 0000000000..7be502696f --- /dev/null +++ b/deploy/fissile/role-manifest.yml @@ -0,0 +1,80 @@ +roles: +- name: frontend + jobs: + - name: frontend + release_name: stratos-ui + run: + scaling: + min: 1 + max: 1 + memory: 1024 + virtual-cpus: 2 + exposed-ports: + - name: frontend-nginx + protocol: TCP + external: 4443 + internal: 443 + public: false + + configuration: + templates: + properties.stratos_ui.frontend.ssl_cert_key: '"((STRATOS_UI_FRONTEND_SSL_CERT_KEY))"' + properties.stratos_ui.frontend.ssl_cert: '"((STRATOS_UI_FRONTEND_SSL_CERT))"' + properties.stratos_ui.backend.host: 'IP' + properties.stratos_ui.backend.port: 443 + + variables: + - name: STRATOS_UI_FRONTEND_SSL_CERT + description: SSL Cert key for Stratos UI frontend + secret: true + required: true + - name: STRATOS_UI_FRONTEND_SSL_CERT_KEY + description: SSL Cert for Stratos UI frontend + secret: true + required: true + +- name: backend + jobs: + - name: backend + release_name: stratos-ui + run: + scaling: + min: 1 + max: 1 + memory: 1024 + virtual-cpus: 2 + exposed-ports: + - name: backend + protocol: TCP + external: 443 + internal: 443 + public: false + + configuration: + templates: + properties.stratos_ui.backend.port: 443 + properties.stratos_ui.backend.address: '"((IP_ADDRESS)"' + properties.stratos_ui.backend.frontend_origin_address: '' + properties.stratos_ui.backend.ssl_cert_key: '"((STRATOS_UI_BACKEND_SSL_CERT_KEY))"' + properties.stratos_ui.backend.ssl_cert: '"((STRATOS_UI_BACKEND_SSL_CERT))"' + properties.stratos-ui.backend.upgrade_volume_path: '/var/vcap/store/backend' + properties.stratos-ui.backend.upgrade_volume_file: 'upgrade.lock' + properties.stratos-ui.backend.encryption_key_volume: '/var/vcap/store/backend' + properties.stratos-ui.backend.encryption_key_filename: 'key' + properties.stratos_ui.backend.session_store_secret: '"((STRATOS_UI_BACKEND_SESSION_STORE_SECRET))"' + properties.stratos-ui.backend.use_mysql: false + properties.stratos-ui.backend.use_sqlite: true + + variables: + - name: STRATOS_UI_BACKEND_SSL_CERT + description: SSL Cert key for Stratos UI backend + secret: true + required: true + - name: STRATOS_UI_BACKEND_SSL_CERT_KEY + description: SSL Cert for Stratos UI backend + secret: true + required: true + - name: STRATOS_UI_BACKEND_SESSION_STORE_SECRET + description: Session store secret + secret: true + required: true \ No newline at end of file diff --git a/deploy/stratos-ui-release/config/blobs.yml b/deploy/stratos-ui-release/config/blobs.yml index ec72c2d999..b479759e7a 100644 --- a/deploy/stratos-ui-release/config/blobs.yml +++ b/deploy/stratos-ui-release/config/blobs.yml @@ -6,8 +6,8 @@ nginx/nginx-1.11.13.tar.gz: nginx/pcre-8.40.tar.gz: size: 2065161 object_id: 44706e8c-255c-4ff3-9737-23ab55a1a214 - sha: sha256:1d75ce90ea3f81ee080cdc04e68c9c25a9fb984861a0618be7bbf676b18eda3e + sha: 10384eb3d411794cc15f55b9d837d3f69e35391e golang/go1.8.3.linux-amd64.tar.gz: size: 90029041 object_id: 53346f1f-edfc-40d5-54b9-04126e05fdf3 - sha: sha256:1862f4c3d3907e59b04a757cfda0ea7aa9ef39274af99a784f5be843c80c6772 + sha: 838c415896ef5ecd395dfabde5e7e6f8ac943c8e diff --git a/deploy/stratos-ui-release/jobs/backend/spec b/deploy/stratos-ui-release/jobs/backend/spec index 186119617f..a0d38088a3 100644 --- a/deploy/stratos-ui-release/jobs/backend/spec +++ b/deploy/stratos-ui-release/jobs/backend/spec @@ -30,9 +30,6 @@ properties: stratos_ui.backend.console_admin_scope: description: "UAA scope identifying Stratos UI Console admin" default: '' - stratos_ui.backend.console_admin_scope: - description: "UAA scope identifying Stratos UI Console admin" - default: '' stratos_ui.backend.console_uaa_client: description: "UAA client for Stratos UI Console" default: '' diff --git a/deploy/stratos-ui-release/packages/backend/pre_packaging b/deploy/stratos-ui-release/packages/backend/pre_packaging index e5d8cd7991..6a9f2632d8 100644 --- a/deploy/stratos-ui-release/packages/backend/pre_packaging +++ b/deploy/stratos-ui-release/packages/backend/pre_packaging @@ -1,14 +1,17 @@ # abort script on any command that exits with a non zero value set -ex - +export GOPATH=${PWD}/go +mkdir -p $GOPATH/bin +export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin cd ${BUILD_DIR}/stratos-ui + # Install Glide build/tools/get-glide.sh # Build backend npm install export PATH=$PATH:$PWD/node_modules/.bin -npm run build-backend +npm run bosh-build-backend find ../stratos-ui/deploy -type d ! -path '../stratos-ui/deploy' ! -path '*/db' -maxdepth 1 | xargs rm -rf @@ -18,12 +21,7 @@ rm -f *.* mv outputs/* . rm -rf outputs - # The following packages are required for the post-deploy task -mkdir go -export GOPATH=${PWD}/go - -# Fetch libraries go get bitbucket.org/liamstask/goose/cmd/goose go get bitbucket.org/liamstask/goose/lib/goose go get github.com/go-sql-driver/mysql diff --git a/package.json b/package.json index a1a6899c7c..9ee507df20 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "build-backend": "gulp build-backend", "cf-get-backend-deps": "gulp cf-get-backend-deps", "cf-build-backend": "gulp cf-build-backend", + "bosh-build-backend": "gulp bosh-build-backend", "build-cf": "gulp deploy:cf", "precoverage": "npm run update-webdriver", "coverage": "npm test && gulp e2e:run && gulp coverage-combine", From 3ad68b912040b034ba9922779a14706e2db60e9f Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Thu, 14 Sep 2017 14:55:36 +0100 Subject: [PATCH 02/39] Initial fissile release --- .gitignore | 2 + defaults.txt | 5 + deploy/fissile/README.md | 17 +++ deploy/fissile/build-release.sh | 73 ++++++++++++ deploy/fissile/defaults.txt | 10 +- deploy/fissile/env.sh | 6 - deploy/fissile/opinions.yml | 2 +- deploy/fissile/role-manifest.yml | 104 ++++++++++-------- deploy/stratos-ui-release/jobs/backend/spec | 2 + .../jobs/backend/templates/backend_ctl.erb | 8 ++ .../jobs/backend/templates/pre-start.erb | 5 + .../jobs/frontend/templates/nginx_ctl.erb | 2 +- .../jobs/global-properties/monit | 0 .../jobs/global-properties/spec | 18 +++ .../jobs/global-properties/templates/run.erb | 2 + 15 files changed, 195 insertions(+), 61 deletions(-) create mode 100644 defaults.txt create mode 100644 deploy/fissile/README.md create mode 100755 deploy/fissile/build-release.sh delete mode 100644 deploy/fissile/env.sh create mode 100644 deploy/stratos-ui-release/jobs/global-properties/monit create mode 100644 deploy/stratos-ui-release/jobs/global-properties/spec create mode 100644 deploy/stratos-ui-release/jobs/global-properties/templates/run.erb diff --git a/.gitignore b/.gitignore index 580915809c..cd0b9b70a3 100644 --- a/.gitignore +++ b/.gitignore @@ -43,4 +43,6 @@ outputs/ deploy/stratos-ui-release/.dev_builds deploy/stratos-ui-release/blobs +deploy/stratos-ui-release/.blobs deploy/stratos-ui-release/dev_releases/ +output/fissile diff --git a/defaults.txt b/defaults.txt new file mode 100644 index 0000000000..514e052c7f --- /dev/null +++ b/defaults.txt @@ -0,0 +1,5 @@ +STRATOS_UI_BACKEND_SSL_CERT_KEY="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41\nSalbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP\nXQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ\n3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz\ndc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai\ncAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w\ngvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q\nA+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T\n/vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA\n+y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7\nM2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4\n7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep\n0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk\nx3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp\nu+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV\nk/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd\n2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH\npj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P\nsG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2\n6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb\nnV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF\nZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6\nPQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z\n9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr\n42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd\nmEVvEQxyBz3V1fZ0Yz246W60\n-----END PRIVATE KEY-----" BACKEND_SSL_CERT="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41\nSalbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP\nXQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ\n3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz\ndc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai\ncAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w\ngvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q\nA+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T\n/vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA\n+y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7\nM2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4\n7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep\n0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk\nx3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp\nu+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV\nk/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd\n2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH\npj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P\nsG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2\n6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb\nnV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF\nZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6\nPQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z\n9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr\n42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd\nmEVvEQxyBz3V1fZ0Yz246W60\n-----END PRIVATE KEY-----" +STRATOS_UI_BACKEND_SSL_CERT="-----BEGIN CERTIFICATE-----\nMIIDXTCCAkWgAwIBAgIJAJooOiQWl1v1MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcwNjIzMTQ1MDM5WhcNMTgwNjIzMTQ1MDM5WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEA1ffskodMWczONUmpW35pNXFsFD/UGEvzCsXHme64f62JaEWYiK/WoDhy\ngjUnRU0m/UU03+5nBRj3T10ONrjq85Vbvz3itR5b9rRH+8xQTJstHRFgdz5B9pLx\n43GExyBwuAqcu7fSkZUQkN8gBjyxcwrKYM9So/IBLtf7Rhejg6/qr3WNnfAVUQhK\nqywBXnxCgA4kIRJKxbQY83XPBXIBcdRH5xsBDX0d9Tsre/v9G/BaiU//CvhpVzEJ\niTzRDjca2C/v8Q7MxcPwInAFM9Vz+iKsu6+grDFoiNh3hql+meET1nmSE7q+dIOA\nZ58Enk5BYsOxJN/fmyuesIL0S3CKSwIDAQABo1AwTjAdBgNVHQ4EFgQUXucATEFh\n8s94Mg1+J/aP8potwhMwHwYDVR0jBBgwFoAUXucATEFh8s94Mg1+J/aP8potwhMw\nDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAGroqi6rKMjw3mCtr6dAU\nWgGXiO96ADRzRchdp+gpHTVtybKAa1n13MAs/tl7HKUBQWwvDqPlqAAmBtCDKhfh\nN8SiI8PxScaCE2NcJCJDHwxs2CucUSAIf99w+WIZ0pF2IC+73GTCR+p9Kwb5bN04\n8vN/7YQTMwNk7GxkKas9QPR9/6rvPHLGPYvPx8mOW6HbYaWdPavJAI/XAYPxnfid\nuQuNfXXbhJyxN1BUi1Kt+KkVCyG+CY0jJNbO7lTsiJSzcstLykSxTX1bw0jIvEWa\nLdXmd/Dyu/EVzgOYnEPiZmHbha4KuVsb0dtAQIT8hmVRXIIOIbndERBduxeVMkLm\nfw==\n-----END CERTIFICATE----- +STRATOS_UI_FRONTEND_SSL_CERT_KEY="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41\nSalbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP\nXQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ\n3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz\ndc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai\ncAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w\ngvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q\nA+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T\n/vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA\n+y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7\nM2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4\n7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep\n0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk\nx3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp\nu+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV\nk/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd\n2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH\npj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P\nsG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2\n6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb\nnV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF\nZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6\nPQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z\n9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr\n42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd\nmEVvEQxyBz3V1fZ0Yz246W60\n-----END PRIVATE KEY-----" BACKEND_SSL_CERT="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41\nSalbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP\nXQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ\n3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz\ndc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai\ncAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w\ngvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q\nA+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T\n/vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA\n+y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7\nM2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4\n7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep\n0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk\nx3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp\nu+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV\nk/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd\n2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH\npj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P\nsG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2\n6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb\nnV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF\nZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6\nPQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z\n9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr\n42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd\nmEVvEQxyBz3V1fZ0Yz246W60\n-----END PRIVATE KEY-----" +STRATOS_UI_FRONTEND_SSL_CERT="-----BEGIN CERTIFICATE-----\nMIIDXTCCAkWgAwIBAgIJAJooOiQWl1v1MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcwNjIzMTQ1MDM5WhcNMTgwNjIzMTQ1MDM5WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEA1ffskodMWczONUmpW35pNXFsFD/UGEvzCsXHme64f62JaEWYiK/WoDhy\ngjUnRU0m/UU03+5nBRj3T10ONrjq85Vbvz3itR5b9rRH+8xQTJstHRFgdz5B9pLx\n43GExyBwuAqcu7fSkZUQkN8gBjyxcwrKYM9So/IBLtf7Rhejg6/qr3WNnfAVUQhK\nqywBXnxCgA4kIRJKxbQY83XPBXIBcdRH5xsBDX0d9Tsre/v9G/BaiU//CvhpVzEJ\niTzRDjca2C/v8Q7MxcPwInAFM9Vz+iKsu6+grDFoiNh3hql+meET1nmSE7q+dIOA\nZ58Enk5BYsOxJN/fmyuesIL0S3CKSwIDAQABo1AwTjAdBgNVHQ4EFgQUXucATEFh\n8s94Mg1+J/aP8potwhMwHwYDVR0jBBgwFoAUXucATEFh8s94Mg1+J/aP8potwhMw\nDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAGroqi6rKMjw3mCtr6dAU\nWgGXiO96ADRzRchdp+gpHTVtybKAa1n13MAs/tl7HKUBQWwvDqPlqAAmBtCDKhfh\nN8SiI8PxScaCE2NcJCJDHwxs2CucUSAIf99w+WIZ0pF2IC+73GTCR+p9Kwb5bN04\n8vN/7YQTMwNk7GxkKas9QPR9/6rvPHLGPYvPx8mOW6HbYaWdPavJAI/XAYPxnfid\nuQuNfXXbhJyxN1BUi1Kt+KkVCyG+CY0jJNbO7lTsiJSzcstLykSxTX1bw0jIvEWa\nLdXmd/Dyu/EVzgOYnEPiZmHbha4KuVsb0dtAQIT8hmVRXIIOIbndERBduxeVMkLm\nfw==\n-----END CERTIFICATE----- +STRATOS_UI_SESSION_STORE_SECRET=foo \ No newline at end of file diff --git a/deploy/fissile/README.md b/deploy/fissile/README.md new file mode 100644 index 0000000000..74fb470bc8 --- /dev/null +++ b/deploy/fissile/README.md @@ -0,0 +1,17 @@ +## Fissile release for the Stratos UI console + +Use the script `build-release.sh` to build and create a Fissile generated Helm chart for the Stratos UI console. + +To use the script, specify the external IP of your Kubernetes cluster so that you can access the console instance when it is deployed. + +``` +$ KUBE_EXTERNAL_IP=10.10.10.11 ./build-release.sh +``` + +This will create a folder called `fissile-console` which contains the generated Helm chart. To dpeloy it in your cluster, install it with helm. + +``` +$ helm install ./fissile-console --namespace console +``` + +After deployment, the instance will be available at `https://YOUR_KUBE_EXTERNAL_IP:4443` \ No newline at end of file diff --git a/deploy/fissile/build-release.sh b/deploy/fissile/build-release.sh new file mode 100755 index 0000000000..cbd65ab5f3 --- /dev/null +++ b/deploy/fissile/build-release.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +__DIRNAME="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +export FISSILE_RELEASE="${__DIRNAME}/../stratos-ui-release" +export FISSILE_ROLE_MANIFEST="role-manifest.yml" +export FISSILE_LIGHT_OPINIONS="opinions.yml" +export FISSILE_DARK_OPINIONS="dark-opinions.yml" +export FISSILE_WORK_DIR="${__DIRNAME}/../../output/fissile" +export FISSILE_STEMCELL="splatform/fissile-stemcell-opensuse:42.2-6.ga651b2d-28.33" + + +rm -rf fissile-console* + +docker pull ${FISSILE_STEMCELL} + +# Build release +pushd ${__DIRNAME}/../../ +docker run --rm \ +--volume "${HOME}/.bosh/cache:/bosh-cache" \ +--volume "${PWD}:${PWD}" \ +--env "RUBY_VERSION=2.2.3" \ +irfanhabib/bosh-cli-fissile \ +/usr/local/bin/create-release.sh \ + "$(id -u)" "$(id -g)" /bosh-cache --dir "${PWD}/deploy/stratos-ui-release" --force --name "stratos-ui" +popd + +# Compile packages from the nats release +fissile build packages + +# Build the nats docker image +fissile build images + +# Build Helm chart +fissile build helm --defaults-file=defaults.txt + +mkdir fissile-console +mv templates/ fissile-console/ +mv values.yaml fissile-console/ +cat << EOF >> fissile-console/Chart.yaml +apiVersion: v1 +description: A Helm chart for deploying Console +name: fissile-console +version: 0.1.0 +EOF + +# Push images +pushd fissile-console/templates +backend_image=$(cat backend.yaml | grep image | sed 's/.*\(fissile-backend.*\)/\1/g') +docker tag ${backend_image} splatform/${backend_image} +docker push splatform/${backend_image} +sed -i 's@fissile-backend@splatform/fissile-backend@g' backend.yaml + +frontend_image=$(cat frontend.yaml | grep image | sed 's/.*\(fissile-frontend.*\)/\1/g') +docker tag ${frontend_image} splatform/${frontend_image} +docker push splatform/${frontend_image} +sed -i 's@fissile-frontend@splatform/fissile-frontend@g' frontend.yaml + + +# Change memory +sed -i 's@memory: 1Gi@memory: 100Mi@g' *.yaml +popd + +pushd fissile-console +KUBE_EXTERNAL_IP=${KUBE_EXTERNAL_IP:-"127.0.0.1"} +sed -i 's@192.168.77.77@'${MINIKUBE_IP}'@g' values.yaml +sed -i 's@persistent: persistent@persistent: standard@g' values.yaml +sed -i 's@FISSILE_MONIT_PASSWORD: ~@FISSILE_MONIT_PASSWORD: monit@g' values.yaml +sed -i 's@FISSILE_MONIT_PORT: ~@FISSILE_MONIT_PORT: 2812@g' values.yaml +sed -i 's@FISSILE_MONIT_USER: ~@FISSILE_MONIT_USER: admin@g' values.yaml +popd + + diff --git a/deploy/fissile/defaults.txt b/deploy/fissile/defaults.txt index 514e052c7f..dafb1d998a 100644 --- a/deploy/fissile/defaults.txt +++ b/deploy/fissile/defaults.txt @@ -1,5 +1,5 @@ -STRATOS_UI_BACKEND_SSL_CERT_KEY="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41\nSalbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP\nXQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ\n3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz\ndc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai\ncAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w\ngvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q\nA+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T\n/vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA\n+y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7\nM2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4\n7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep\n0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk\nx3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp\nu+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV\nk/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd\n2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH\npj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P\nsG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2\n6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb\nnV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF\nZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6\nPQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z\n9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr\n42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd\nmEVvEQxyBz3V1fZ0Yz246W60\n-----END PRIVATE KEY-----" BACKEND_SSL_CERT="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41\nSalbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP\nXQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ\n3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz\ndc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai\ncAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w\ngvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q\nA+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T\n/vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA\n+y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7\nM2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4\n7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep\n0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk\nx3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp\nu+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV\nk/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd\n2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH\npj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P\nsG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2\n6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb\nnV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF\nZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6\nPQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z\n9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr\n42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd\nmEVvEQxyBz3V1fZ0Yz246W60\n-----END PRIVATE KEY-----" -STRATOS_UI_BACKEND_SSL_CERT="-----BEGIN CERTIFICATE-----\nMIIDXTCCAkWgAwIBAgIJAJooOiQWl1v1MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcwNjIzMTQ1MDM5WhcNMTgwNjIzMTQ1MDM5WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEA1ffskodMWczONUmpW35pNXFsFD/UGEvzCsXHme64f62JaEWYiK/WoDhy\ngjUnRU0m/UU03+5nBRj3T10ONrjq85Vbvz3itR5b9rRH+8xQTJstHRFgdz5B9pLx\n43GExyBwuAqcu7fSkZUQkN8gBjyxcwrKYM9So/IBLtf7Rhejg6/qr3WNnfAVUQhK\nqywBXnxCgA4kIRJKxbQY83XPBXIBcdRH5xsBDX0d9Tsre/v9G/BaiU//CvhpVzEJ\niTzRDjca2C/v8Q7MxcPwInAFM9Vz+iKsu6+grDFoiNh3hql+meET1nmSE7q+dIOA\nZ58Enk5BYsOxJN/fmyuesIL0S3CKSwIDAQABo1AwTjAdBgNVHQ4EFgQUXucATEFh\n8s94Mg1+J/aP8potwhMwHwYDVR0jBBgwFoAUXucATEFh8s94Mg1+J/aP8potwhMw\nDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAGroqi6rKMjw3mCtr6dAU\nWgGXiO96ADRzRchdp+gpHTVtybKAa1n13MAs/tl7HKUBQWwvDqPlqAAmBtCDKhfh\nN8SiI8PxScaCE2NcJCJDHwxs2CucUSAIf99w+WIZ0pF2IC+73GTCR+p9Kwb5bN04\n8vN/7YQTMwNk7GxkKas9QPR9/6rvPHLGPYvPx8mOW6HbYaWdPavJAI/XAYPxnfid\nuQuNfXXbhJyxN1BUi1Kt+KkVCyG+CY0jJNbO7lTsiJSzcstLykSxTX1bw0jIvEWa\nLdXmd/Dyu/EVzgOYnEPiZmHbha4KuVsb0dtAQIT8hmVRXIIOIbndERBduxeVMkLm\nfw==\n-----END CERTIFICATE----- -STRATOS_UI_FRONTEND_SSL_CERT_KEY="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41\nSalbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP\nXQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ\n3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz\ndc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai\ncAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w\ngvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q\nA+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T\n/vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA\n+y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7\nM2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4\n7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep\n0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk\nx3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp\nu+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV\nk/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd\n2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH\npj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P\nsG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2\n6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb\nnV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF\nZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6\nPQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z\n9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr\n42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd\nmEVvEQxyBz3V1fZ0Yz246W60\n-----END PRIVATE KEY-----" BACKEND_SSL_CERT="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41\nSalbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP\nXQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ\n3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz\ndc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai\ncAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w\ngvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q\nA+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T\n/vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA\n+y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7\nM2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4\n7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep\n0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk\nx3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp\nu+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV\nk/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd\n2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH\npj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P\nsG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2\n6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb\nnV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF\nZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6\nPQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z\n9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr\n42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd\nmEVvEQxyBz3V1fZ0Yz246W60\n-----END PRIVATE KEY-----" -STRATOS_UI_FRONTEND_SSL_CERT="-----BEGIN CERTIFICATE-----\nMIIDXTCCAkWgAwIBAgIJAJooOiQWl1v1MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcwNjIzMTQ1MDM5WhcNMTgwNjIzMTQ1MDM5WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEA1ffskodMWczONUmpW35pNXFsFD/UGEvzCsXHme64f62JaEWYiK/WoDhy\ngjUnRU0m/UU03+5nBRj3T10ONrjq85Vbvz3itR5b9rRH+8xQTJstHRFgdz5B9pLx\n43GExyBwuAqcu7fSkZUQkN8gBjyxcwrKYM9So/IBLtf7Rhejg6/qr3WNnfAVUQhK\nqywBXnxCgA4kIRJKxbQY83XPBXIBcdRH5xsBDX0d9Tsre/v9G/BaiU//CvhpVzEJ\niTzRDjca2C/v8Q7MxcPwInAFM9Vz+iKsu6+grDFoiNh3hql+meET1nmSE7q+dIOA\nZ58Enk5BYsOxJN/fmyuesIL0S3CKSwIDAQABo1AwTjAdBgNVHQ4EFgQUXucATEFh\n8s94Mg1+J/aP8potwhMwHwYDVR0jBBgwFoAUXucATEFh8s94Mg1+J/aP8potwhMw\nDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAGroqi6rKMjw3mCtr6dAU\nWgGXiO96ADRzRchdp+gpHTVtybKAa1n13MAs/tl7HKUBQWwvDqPlqAAmBtCDKhfh\nN8SiI8PxScaCE2NcJCJDHwxs2CucUSAIf99w+WIZ0pF2IC+73GTCR+p9Kwb5bN04\n8vN/7YQTMwNk7GxkKas9QPR9/6rvPHLGPYvPx8mOW6HbYaWdPavJAI/XAYPxnfid\nuQuNfXXbhJyxN1BUi1Kt+KkVCyG+CY0jJNbO7lTsiJSzcstLykSxTX1bw0jIvEWa\nLdXmd/Dyu/EVzgOYnEPiZmHbha4KuVsb0dtAQIT8hmVRXIIOIbndERBduxeVMkLm\nfw==\n-----END CERTIFICATE----- -STRATOS_UI_SESSION_STORE_SECRET=foo \ No newline at end of file +STRATOS_UI_BACKEND_SSL_CERT_KEY="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41\nSalbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP\nXQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ\n3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz\ndc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai\ncAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w\ngvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q\nA+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T\n/vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA\n+y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7\nM2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4\n7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep\n0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk\nx3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp\nu+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV\nk/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd\n2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH\npj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P\nsG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2\n6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb\nnV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF\nZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6\nPQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z\n9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr\n42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd\nmEVvEQxyBz3V1fZ0Yz246W60\n-----END PRIVATE KEY-----" +STRATOS_UI_BACKEND_SSL_CERT="-----BEGIN CERTIFICATE-----\nMIIDXTCCAkWgAwIBAgIJAJooOiQWl1v1MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcwNjIzMTQ1MDM5WhcNMTgwNjIzMTQ1MDM5WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEA1ffskodMWczONUmpW35pNXFsFD/UGEvzCsXHme64f62JaEWYiK/WoDhy\ngjUnRU0m/UU03+5nBRj3T10ONrjq85Vbvz3itR5b9rRH+8xQTJstHRFgdz5B9pLx\n43GExyBwuAqcu7fSkZUQkN8gBjyxcwrKYM9So/IBLtf7Rhejg6/qr3WNnfAVUQhK\nqywBXnxCgA4kIRJKxbQY83XPBXIBcdRH5xsBDX0d9Tsre/v9G/BaiU//CvhpVzEJ\niTzRDjca2C/v8Q7MxcPwInAFM9Vz+iKsu6+grDFoiNh3hql+meET1nmSE7q+dIOA\nZ58Enk5BYsOxJN/fmyuesIL0S3CKSwIDAQABo1AwTjAdBgNVHQ4EFgQUXucATEFh\n8s94Mg1+J/aP8potwhMwHwYDVR0jBBgwFoAUXucATEFh8s94Mg1+J/aP8potwhMw\nDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAGroqi6rKMjw3mCtr6dAU\nWgGXiO96ADRzRchdp+gpHTVtybKAa1n13MAs/tl7HKUBQWwvDqPlqAAmBtCDKhfh\nN8SiI8PxScaCE2NcJCJDHwxs2CucUSAIf99w+WIZ0pF2IC+73GTCR+p9Kwb5bN04\n8vN/7YQTMwNk7GxkKas9QPR9/6rvPHLGPYvPx8mOW6HbYaWdPavJAI/XAYPxnfid\nuQuNfXXbhJyxN1BUi1Kt+KkVCyG+CY0jJNbO7lTsiJSzcstLykSxTX1bw0jIvEWa\nLdXmd/Dyu/EVzgOYnEPiZmHbha4KuVsb0dtAQIT8hmVRXIIOIbndERBduxeVMkLm\nfw==\n-----END CERTIFICATE-----" +STRATOS_UI_FRONTEND_SSL_CERT_KEY="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41\nSalbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP\nXQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ\n3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz\ndc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai\ncAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w\ngvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q\nA+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T\n/vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA\n+y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7\nM2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4\n7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep\n0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk\nx3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp\nu+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV\nk/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd\n2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH\npj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P\nsG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2\n6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb\nnV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF\nZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6\nPQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z\n9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr\n42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd\nmEVvEQxyBz3V1fZ0Yz246W60\n-----END PRIVATE KEY-----" +STRATOS_UI_FRONTEND_SSL_CERT="-----BEGIN CERTIFICATE-----\nMIIDXTCCAkWgAwIBAgIJAJooOiQWl1v1MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcwNjIzMTQ1MDM5WhcNMTgwNjIzMTQ1MDM5WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEA1ffskodMWczONUmpW35pNXFsFD/UGEvzCsXHme64f62JaEWYiK/WoDhy\ngjUnRU0m/UU03+5nBRj3T10ONrjq85Vbvz3itR5b9rRH+8xQTJstHRFgdz5B9pLx\n43GExyBwuAqcu7fSkZUQkN8gBjyxcwrKYM9So/IBLtf7Rhejg6/qr3WNnfAVUQhK\nqywBXnxCgA4kIRJKxbQY83XPBXIBcdRH5xsBDX0d9Tsre/v9G/BaiU//CvhpVzEJ\niTzRDjca2C/v8Q7MxcPwInAFM9Vz+iKsu6+grDFoiNh3hql+meET1nmSE7q+dIOA\nZ58Enk5BYsOxJN/fmyuesIL0S3CKSwIDAQABo1AwTjAdBgNVHQ4EFgQUXucATEFh\n8s94Mg1+J/aP8potwhMwHwYDVR0jBBgwFoAUXucATEFh8s94Mg1+J/aP8potwhMw\nDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAGroqi6rKMjw3mCtr6dAU\nWgGXiO96ADRzRchdp+gpHTVtybKAa1n13MAs/tl7HKUBQWwvDqPlqAAmBtCDKhfh\nN8SiI8PxScaCE2NcJCJDHwxs2CucUSAIf99w+WIZ0pF2IC+73GTCR+p9Kwb5bN04\n8vN/7YQTMwNk7GxkKas9QPR9/6rvPHLGPYvPx8mOW6HbYaWdPavJAI/XAYPxnfid\nuQuNfXXbhJyxN1BUi1Kt+KkVCyG+CY0jJNbO7lTsiJSzcstLykSxTX1bw0jIvEWa\nLdXmd/Dyu/EVzgOYnEPiZmHbha4KuVsb0dtAQIT8hmVRXIIOIbndERBduxeVMkLm\nfw==\n-----END CERTIFICATE-----" +STRATOS_UI_BACKEND_SESSION_STORE_SECRET="foo" \ No newline at end of file diff --git a/deploy/fissile/env.sh b/deploy/fissile/env.sh deleted file mode 100644 index 5a3396cc5b..0000000000 --- a/deploy/fissile/env.sh +++ /dev/null @@ -1,6 +0,0 @@ -export FISSILE_RELEASE="deploy/stratos-ui-release" -export FISSILE_ROLE_MANIFEST="deploy/fissile/role-manifest.yml" -export FISSILE_LIGHT_OPINIONS="deploy/fissile/opinions.yml" -export FISSILE_DARK_OPINIONS="deploy/fissile/dark-opinions.yml" -export FISSILE_WORK_DIR="output/fissile" -export FISSILE_STEMCELL="splatform/fissile-stemcell-opensuse:42.2-6.ga651b2d-28.33" \ No newline at end of file diff --git a/deploy/fissile/opinions.yml b/deploy/fissile/opinions.yml index f2e5543317..c59ab9e816 100644 --- a/deploy/fissile/opinions.yml +++ b/deploy/fissile/opinions.yml @@ -1,2 +1,2 @@ --- -properties: {} +properties: {} \ No newline at end of file diff --git a/deploy/fissile/role-manifest.yml b/deploy/fissile/role-manifest.yml index 7be502696f..573d1bb9f4 100644 --- a/deploy/fissile/role-manifest.yml +++ b/deploy/fissile/role-manifest.yml @@ -1,6 +1,8 @@ roles: - name: frontend - jobs: + jobs: + - name: global-properties + release_name: stratos-ui - name: frontend release_name: stratos-ui run: @@ -14,27 +16,12 @@ roles: protocol: TCP external: 4443 internal: 443 - public: false - - configuration: - templates: - properties.stratos_ui.frontend.ssl_cert_key: '"((STRATOS_UI_FRONTEND_SSL_CERT_KEY))"' - properties.stratos_ui.frontend.ssl_cert: '"((STRATOS_UI_FRONTEND_SSL_CERT))"' - properties.stratos_ui.backend.host: 'IP' - properties.stratos_ui.backend.port: 443 - - variables: - - name: STRATOS_UI_FRONTEND_SSL_CERT - description: SSL Cert key for Stratos UI frontend - secret: true - required: true - - name: STRATOS_UI_FRONTEND_SSL_CERT_KEY - description: SSL Cert for Stratos UI frontend - secret: true - required: true + public: true - name: backend - jobs: + jobs: + - name: global-properties + release_name: stratos-ui - name: backend release_name: stratos-ui run: @@ -50,31 +37,52 @@ roles: internal: 443 public: false - configuration: - templates: - properties.stratos_ui.backend.port: 443 - properties.stratos_ui.backend.address: '"((IP_ADDRESS)"' - properties.stratos_ui.backend.frontend_origin_address: '' - properties.stratos_ui.backend.ssl_cert_key: '"((STRATOS_UI_BACKEND_SSL_CERT_KEY))"' - properties.stratos_ui.backend.ssl_cert: '"((STRATOS_UI_BACKEND_SSL_CERT))"' - properties.stratos-ui.backend.upgrade_volume_path: '/var/vcap/store/backend' - properties.stratos-ui.backend.upgrade_volume_file: 'upgrade.lock' - properties.stratos-ui.backend.encryption_key_volume: '/var/vcap/store/backend' - properties.stratos-ui.backend.encryption_key_filename: 'key' - properties.stratos_ui.backend.session_store_secret: '"((STRATOS_UI_BACKEND_SESSION_STORE_SECRET))"' - properties.stratos-ui.backend.use_mysql: false - properties.stratos-ui.backend.use_sqlite: true - - variables: - - name: STRATOS_UI_BACKEND_SSL_CERT - description: SSL Cert key for Stratos UI backend - secret: true - required: true - - name: STRATOS_UI_BACKEND_SSL_CERT_KEY - description: SSL Cert for Stratos UI backend - secret: true - required: true - - name: STRATOS_UI_BACKEND_SESSION_STORE_SECRET - description: Session store secret - secret: true - required: true \ No newline at end of file +configuration: + templates: + properties.stratos_ui.frontend.ssl_cert_key: '"((STRATOS_UI_FRONTEND_SSL_CERT_KEY))"' + properties.stratos_ui.frontend.ssl_cert: '"((STRATOS_UI_FRONTEND_SSL_CERT))"' + properties.stratos_ui.backend.host: 'backend.((KUBE_SERVICE_DOMAIN_SUFFIX))' + properties.stratos_ui.backend.address: '"((IP_ADDRESS))"' + properties.stratos_ui.backend.ssl_cert_key: '"((STRATOS_UI_BACKEND_SSL_CERT_KEY))"' + properties.stratos_ui.backend.ssl_cert: '"((STRATOS_UI_BACKEND_SSL_CERT))"' + properties.stratos_ui.backend.session_store_secret: '"((STRATOS_UI_BACKEND_SESSION_STORE_SECRET))"' + properties.fissile.monit.user: '"((FISSILE_MONIT_USER))"' + properties.fissile.monit.password: '"((FISSILE_MONIT_PASSWORD))"' + properties.fissile.monit.port: '"((FISSILE_MONIT_PORT))"' + variables: + - name: FISSILE_MONIT_PASSWORD + description: Monit port for fissile + required: true + - name: FISSILE_MONIT_PORT + description: Monit port for fissile + required: true + - name: FISSILE_MONIT_USER + description: Fissile Monit user name + required: true + - name: KUBE_SERVICE_DOMAIN_SUFFIX + description: > + The Kubernetes-internal domain suffix (svc..cluster.local or + equivalent) to use. If not specified, it will be auto-detected from the + runtime configuration. + immutable: true + required: false + - name: STRATOS_UI_BACKEND_SESSION_STORE_SECRET + description: Session store secret + secret: true + required: true + - name: STRATOS_UI_BACKEND_SSL_CERT + description: SSL Cert key for Stratos UI backend + secret: true + required: true + - name: STRATOS_UI_BACKEND_SSL_CERT_KEY + description: SSL Cert for Stratos UI backend + secret: true + required: true + - name: STRATOS_UI_FRONTEND_SSL_CERT + description: SSL Cert key for Stratos UI frontend + secret: true + required: true + - name: STRATOS_UI_FRONTEND_SSL_CERT_KEY + description: SSL Cert for Stratos UI frontend + secret: true + required: true \ No newline at end of file diff --git a/deploy/stratos-ui-release/jobs/backend/spec b/deploy/stratos-ui-release/jobs/backend/spec index a0d38088a3..a16cea61bd 100644 --- a/deploy/stratos-ui-release/jobs/backend/spec +++ b/deploy/stratos-ui-release/jobs/backend/spec @@ -35,6 +35,7 @@ properties: default: '' stratos_ui.backend.frontend_origin_address: description: "Frontend origin address" + default: '' stratos_ui.backend.ssl_cert_key: description: "SSL Certificate key body" stratos_ui.backend.ssl_cert: @@ -43,6 +44,7 @@ properties: description: "Secret used to encrypt the backend session store" stratos_ui.backend.use_mysql: description: "Use mysql, need to specify relevant mysql settings" + default: false stratos_ui.backend.mysql_user: description: "mysql User" stratos_ui.backend.mysql_user_password: diff --git a/deploy/stratos-ui-release/jobs/backend/templates/backend_ctl.erb b/deploy/stratos-ui-release/jobs/backend/templates/backend_ctl.erb index 0cf43e7572..4a97861cca 100644 --- a/deploy/stratos-ui-release/jobs/backend/templates/backend_ctl.erb +++ b/deploy/stratos-ui-release/jobs/backend/templates/backend_ctl.erb @@ -5,6 +5,14 @@ LOG_DIR="/var/vcap/sys/log/backend" PIDFILE="${RUN_DIR}/backend.pid" CONFIG_DIR="/var/vcap/jobs/backend/config" +if [ ! -d ${RUN_DIR} ]; then + mkdir -p ${RUN_DIR} +fi + +if [ ! -d ${LOG_DIR} ]; then + mkdir -p ${LOG_DIR} +fi + source /var/vcap/packages/utils/syslog_utils.sh source /var/vcap/packages/utils/pid_utils.sh diff --git a/deploy/stratos-ui-release/jobs/backend/templates/pre-start.erb b/deploy/stratos-ui-release/jobs/backend/templates/pre-start.erb index 3452e8278a..ae631201d7 100644 --- a/deploy/stratos-ui-release/jobs/backend/templates/pre-start.erb +++ b/deploy/stratos-ui-release/jobs/backend/templates/pre-start.erb @@ -12,6 +12,11 @@ echo "Created the upgrade lock file." # Step 2 - Create an AES-256 compliant encryption key # in a file on a shared volume. echo "Checking to see if we need to generate the encryption key <%= p('stratos_ui.backend.encryption_key_filename') %> file:" + +if [ ! -d <%= p('stratos_ui.backend.encryption_key_volume') %> ]; then + echo "Encryption key volume does not exist. Creating it!" + mkdir -p <%= p('stratos_ui.backend.encryption_key_volume') %> +fi if [ ! -e <%= p('stratos_ui.backend.encryption_key_volume') %>/<%= p('stratos_ui.backend.encryption_key_filename') %> ]; then echo "-- Adding <%= p('stratos_ui.backend.encryption_key_filename') %> file to the shared volume <%= p('stratos_ui.backend.encryption_key_volume') %>." keyfile=$(openssl enc -aes-256-cbc -k secret -P -md sha1 | grep key | cut -d '=' -f2) diff --git a/deploy/stratos-ui-release/jobs/frontend/templates/nginx_ctl.erb b/deploy/stratos-ui-release/jobs/frontend/templates/nginx_ctl.erb index 0ab5b92174..2df28a7115 100644 --- a/deploy/stratos-ui-release/jobs/frontend/templates/nginx_ctl.erb +++ b/deploy/stratos-ui-release/jobs/frontend/templates/nginx_ctl.erb @@ -1,5 +1,5 @@ -#!/bin/bash -e +#!/bin/bash RUN_DIR="/var/vcap/sys/run/nginx" LOG_DIR="/var/vcap/sys/log/nginx" diff --git a/deploy/stratos-ui-release/jobs/global-properties/monit b/deploy/stratos-ui-release/jobs/global-properties/monit new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deploy/stratos-ui-release/jobs/global-properties/spec b/deploy/stratos-ui-release/jobs/global-properties/spec new file mode 100644 index 0000000000..e2812e0d88 --- /dev/null +++ b/deploy/stratos-ui-release/jobs/global-properties/spec @@ -0,0 +1,18 @@ +--- +name: global-properties +description: Dummy BOSH job used to host global parameters that are required to configure SCF / fissile + +templates: + run.erb: bin/run + +packages: [] + +properties: + fissile.monit.password: + description: "Password used for the monit API" + + fissile.monit.port: + description: "Port used for the monit API" + + fissile.monit.user: + description: "Username for the monit API" \ No newline at end of file diff --git a/deploy/stratos-ui-release/jobs/global-properties/templates/run.erb b/deploy/stratos-ui-release/jobs/global-properties/templates/run.erb new file mode 100644 index 0000000000..03538c00a8 --- /dev/null +++ b/deploy/stratos-ui-release/jobs/global-properties/templates/run.erb @@ -0,0 +1,2 @@ +#!/bin/sh +exit 0 \ No newline at end of file From 1425e8a5671c4c4fa1860093c4f5bea22832aec4 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Thu, 14 Sep 2017 14:56:45 +0100 Subject: [PATCH 03/39] Removed all properties from dark opinions --- deploy/fissile/dark-opinions.yml | 108 +------------------------------ 1 file changed, 1 insertion(+), 107 deletions(-) diff --git a/deploy/fissile/dark-opinions.yml b/deploy/fissile/dark-opinions.yml index ac9c1a3458..c59ab9e816 100644 --- a/deploy/fissile/dark-opinions.yml +++ b/deploy/fissile/dark-opinions.yml @@ -1,108 +1,2 @@ --- -properties: - stratos_ui: - backend: - session_store_secret: foo - ssl_cert: | - -----BEGIN CERTIFICATE----- - MIIDXTCCAkWgAwIBAgIJAJooOiQWl1v1MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV - BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX - aWRnaXRzIFB0eSBMdGQwHhcNMTcwNjIzMTQ1MDM5WhcNMTgwNjIzMTQ1MDM5WjBF - MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50 - ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB - CgKCAQEA1ffskodMWczONUmpW35pNXFsFD/UGEvzCsXHme64f62JaEWYiK/WoDhy - gjUnRU0m/UU03+5nBRj3T10ONrjq85Vbvz3itR5b9rRH+8xQTJstHRFgdz5B9pLx - 43GExyBwuAqcu7fSkZUQkN8gBjyxcwrKYM9So/IBLtf7Rhejg6/qr3WNnfAVUQhK - qywBXnxCgA4kIRJKxbQY83XPBXIBcdRH5xsBDX0d9Tsre/v9G/BaiU//CvhpVzEJ - iTzRDjca2C/v8Q7MxcPwInAFM9Vz+iKsu6+grDFoiNh3hql+meET1nmSE7q+dIOA - Z58Enk5BYsOxJN/fmyuesIL0S3CKSwIDAQABo1AwTjAdBgNVHQ4EFgQUXucATEFh - 8s94Mg1+J/aP8potwhMwHwYDVR0jBBgwFoAUXucATEFh8s94Mg1+J/aP8potwhMw - DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAGroqi6rKMjw3mCtr6dAU - WgGXiO96ADRzRchdp+gpHTVtybKAa1n13MAs/tl7HKUBQWwvDqPlqAAmBtCDKhfh - N8SiI8PxScaCE2NcJCJDHwxs2CucUSAIf99w+WIZ0pF2IC+73GTCR+p9Kwb5bN04 - 8vN/7YQTMwNk7GxkKas9QPR9/6rvPHLGPYvPx8mOW6HbYaWdPavJAI/XAYPxnfid - uQuNfXXbhJyxN1BUi1Kt+KkVCyG+CY0jJNbO7lTsiJSzcstLykSxTX1bw0jIvEWa - LdXmd/Dyu/EVzgOYnEPiZmHbha4KuVsb0dtAQIT8hmVRXIIOIbndERBduxeVMkLm - fw== - -----END CERTIFICATE----- - ssl_cert_key: | - -----BEGIN PRIVATE KEY----- - MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41 - Salbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP - XQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ - 3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz - dc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai - cAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w - gvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q - A+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T - /vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA - +y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7 - M2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4 - 7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep - 0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk - x3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp - u+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV - k/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd - 2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH - pj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P - sG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2 - 6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb - nV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF - ZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6 - PQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z - 9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr - 42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd - mEVvEQxyBz3V1fZ0Yz246W60 - -----END PRIVATE KEY----- - frontend: - ssl_cert: | - -----BEGIN CERTIFICATE----- - MIIDXTCCAkWgAwIBAgIJAJooOiQWl1v1MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV - BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX - aWRnaXRzIFB0eSBMdGQwHhcNMTcwNjIzMTQ1MDM5WhcNMTgwNjIzMTQ1MDM5WjBF - MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50 - ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB - CgKCAQEA1ffskodMWczONUmpW35pNXFsFD/UGEvzCsXHme64f62JaEWYiK/WoDhy - gjUnRU0m/UU03+5nBRj3T10ONrjq85Vbvz3itR5b9rRH+8xQTJstHRFgdz5B9pLx - 43GExyBwuAqcu7fSkZUQkN8gBjyxcwrKYM9So/IBLtf7Rhejg6/qr3WNnfAVUQhK - qywBXnxCgA4kIRJKxbQY83XPBXIBcdRH5xsBDX0d9Tsre/v9G/BaiU//CvhpVzEJ - iTzRDjca2C/v8Q7MxcPwInAFM9Vz+iKsu6+grDFoiNh3hql+meET1nmSE7q+dIOA - Z58Enk5BYsOxJN/fmyuesIL0S3CKSwIDAQABo1AwTjAdBgNVHQ4EFgQUXucATEFh - 8s94Mg1+J/aP8potwhMwHwYDVR0jBBgwFoAUXucATEFh8s94Mg1+J/aP8potwhMw - DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAGroqi6rKMjw3mCtr6dAU - WgGXiO96ADRzRchdp+gpHTVtybKAa1n13MAs/tl7HKUBQWwvDqPlqAAmBtCDKhfh - N8SiI8PxScaCE2NcJCJDHwxs2CucUSAIf99w+WIZ0pF2IC+73GTCR+p9Kwb5bN04 - 8vN/7YQTMwNk7GxkKas9QPR9/6rvPHLGPYvPx8mOW6HbYaWdPavJAI/XAYPxnfid - uQuNfXXbhJyxN1BUi1Kt+KkVCyG+CY0jJNbO7lTsiJSzcstLykSxTX1bw0jIvEWa - LdXmd/Dyu/EVzgOYnEPiZmHbha4KuVsb0dtAQIT8hmVRXIIOIbndERBduxeVMkLm - fw== - -----END CERTIFICATE----- - ssl_cert_key: | - -----BEGIN PRIVATE KEY----- - MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41 - Salbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP - XQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ - 3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz - dc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai - cAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w - gvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q - A+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T - /vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA - +y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7 - M2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4 - 7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep - 0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk - x3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp - u+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV - k/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd - 2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH - pj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P - sG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2 - 6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb - nV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF - ZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6 - PQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z - 9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr - 42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd - mEVvEQxyBz3V1fZ0Yz246W60 - -----END PRIVATE KEY----- +properties: {} \ No newline at end of file From a681abee6d66263109cd367ef41e0770fccd183c Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Thu, 14 Sep 2017 15:00:17 +0100 Subject: [PATCH 04/39] Delete invalid file --- defaults.txt | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 defaults.txt diff --git a/defaults.txt b/defaults.txt deleted file mode 100644 index 514e052c7f..0000000000 --- a/defaults.txt +++ /dev/null @@ -1,5 +0,0 @@ -STRATOS_UI_BACKEND_SSL_CERT_KEY="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41\nSalbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP\nXQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ\n3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz\ndc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai\ncAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w\ngvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q\nA+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T\n/vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA\n+y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7\nM2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4\n7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep\n0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk\nx3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp\nu+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV\nk/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd\n2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH\npj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P\nsG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2\n6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb\nnV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF\nZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6\nPQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z\n9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr\n42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd\nmEVvEQxyBz3V1fZ0Yz246W60\n-----END PRIVATE KEY-----" BACKEND_SSL_CERT="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41\nSalbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP\nXQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ\n3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz\ndc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai\ncAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w\ngvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q\nA+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T\n/vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA\n+y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7\nM2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4\n7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep\n0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk\nx3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp\nu+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV\nk/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd\n2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH\npj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P\nsG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2\n6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb\nnV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF\nZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6\nPQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z\n9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr\n42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd\nmEVvEQxyBz3V1fZ0Yz246W60\n-----END PRIVATE KEY-----" -STRATOS_UI_BACKEND_SSL_CERT="-----BEGIN CERTIFICATE-----\nMIIDXTCCAkWgAwIBAgIJAJooOiQWl1v1MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcwNjIzMTQ1MDM5WhcNMTgwNjIzMTQ1MDM5WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEA1ffskodMWczONUmpW35pNXFsFD/UGEvzCsXHme64f62JaEWYiK/WoDhy\ngjUnRU0m/UU03+5nBRj3T10ONrjq85Vbvz3itR5b9rRH+8xQTJstHRFgdz5B9pLx\n43GExyBwuAqcu7fSkZUQkN8gBjyxcwrKYM9So/IBLtf7Rhejg6/qr3WNnfAVUQhK\nqywBXnxCgA4kIRJKxbQY83XPBXIBcdRH5xsBDX0d9Tsre/v9G/BaiU//CvhpVzEJ\niTzRDjca2C/v8Q7MxcPwInAFM9Vz+iKsu6+grDFoiNh3hql+meET1nmSE7q+dIOA\nZ58Enk5BYsOxJN/fmyuesIL0S3CKSwIDAQABo1AwTjAdBgNVHQ4EFgQUXucATEFh\n8s94Mg1+J/aP8potwhMwHwYDVR0jBBgwFoAUXucATEFh8s94Mg1+J/aP8potwhMw\nDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAGroqi6rKMjw3mCtr6dAU\nWgGXiO96ADRzRchdp+gpHTVtybKAa1n13MAs/tl7HKUBQWwvDqPlqAAmBtCDKhfh\nN8SiI8PxScaCE2NcJCJDHwxs2CucUSAIf99w+WIZ0pF2IC+73GTCR+p9Kwb5bN04\n8vN/7YQTMwNk7GxkKas9QPR9/6rvPHLGPYvPx8mOW6HbYaWdPavJAI/XAYPxnfid\nuQuNfXXbhJyxN1BUi1Kt+KkVCyG+CY0jJNbO7lTsiJSzcstLykSxTX1bw0jIvEWa\nLdXmd/Dyu/EVzgOYnEPiZmHbha4KuVsb0dtAQIT8hmVRXIIOIbndERBduxeVMkLm\nfw==\n-----END CERTIFICATE----- -STRATOS_UI_FRONTEND_SSL_CERT_KEY="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41\nSalbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP\nXQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ\n3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz\ndc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai\ncAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w\ngvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q\nA+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T\n/vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA\n+y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7\nM2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4\n7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep\n0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk\nx3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp\nu+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV\nk/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd\n2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH\npj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P\nsG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2\n6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb\nnV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF\nZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6\nPQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z\n9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr\n42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd\nmEVvEQxyBz3V1fZ0Yz246W60\n-----END PRIVATE KEY-----" BACKEND_SSL_CERT="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41\nSalbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP\nXQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ\n3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz\ndc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai\ncAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w\ngvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q\nA+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T\n/vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA\n+y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7\nM2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4\n7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep\n0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk\nx3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp\nu+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV\nk/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd\n2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH\npj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P\nsG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2\n6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb\nnV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF\nZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6\nPQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z\n9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr\n42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd\nmEVvEQxyBz3V1fZ0Yz246W60\n-----END PRIVATE KEY-----" -STRATOS_UI_FRONTEND_SSL_CERT="-----BEGIN CERTIFICATE-----\nMIIDXTCCAkWgAwIBAgIJAJooOiQWl1v1MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcwNjIzMTQ1MDM5WhcNMTgwNjIzMTQ1MDM5WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEA1ffskodMWczONUmpW35pNXFsFD/UGEvzCsXHme64f62JaEWYiK/WoDhy\ngjUnRU0m/UU03+5nBRj3T10ONrjq85Vbvz3itR5b9rRH+8xQTJstHRFgdz5B9pLx\n43GExyBwuAqcu7fSkZUQkN8gBjyxcwrKYM9So/IBLtf7Rhejg6/qr3WNnfAVUQhK\nqywBXnxCgA4kIRJKxbQY83XPBXIBcdRH5xsBDX0d9Tsre/v9G/BaiU//CvhpVzEJ\niTzRDjca2C/v8Q7MxcPwInAFM9Vz+iKsu6+grDFoiNh3hql+meET1nmSE7q+dIOA\nZ58Enk5BYsOxJN/fmyuesIL0S3CKSwIDAQABo1AwTjAdBgNVHQ4EFgQUXucATEFh\n8s94Mg1+J/aP8potwhMwHwYDVR0jBBgwFoAUXucATEFh8s94Mg1+J/aP8potwhMw\nDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAGroqi6rKMjw3mCtr6dAU\nWgGXiO96ADRzRchdp+gpHTVtybKAa1n13MAs/tl7HKUBQWwvDqPlqAAmBtCDKhfh\nN8SiI8PxScaCE2NcJCJDHwxs2CucUSAIf99w+WIZ0pF2IC+73GTCR+p9Kwb5bN04\n8vN/7YQTMwNk7GxkKas9QPR9/6rvPHLGPYvPx8mOW6HbYaWdPavJAI/XAYPxnfid\nuQuNfXXbhJyxN1BUi1Kt+KkVCyG+CY0jJNbO7lTsiJSzcstLykSxTX1bw0jIvEWa\nLdXmd/Dyu/EVzgOYnEPiZmHbha4KuVsb0dtAQIT8hmVRXIIOIbndERBduxeVMkLm\nfw==\n-----END CERTIFICATE----- -STRATOS_UI_SESSION_STORE_SECRET=foo \ No newline at end of file From 5e416ff88e0f92ad1d1a3d54ebcd26eb21436b08 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Thu, 14 Sep 2017 15:01:14 +0100 Subject: [PATCH 05/39] Update spec --- deploy/stratos-ui-release/jobs/global-properties/spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/stratos-ui-release/jobs/global-properties/spec b/deploy/stratos-ui-release/jobs/global-properties/spec index e2812e0d88..0a980f7afb 100644 --- a/deploy/stratos-ui-release/jobs/global-properties/spec +++ b/deploy/stratos-ui-release/jobs/global-properties/spec @@ -1,6 +1,6 @@ --- name: global-properties -description: Dummy BOSH job used to host global parameters that are required to configure SCF / fissile +description: Dummy BOSH job used to host global parameters that are required to configure fissile templates: run.erb: bin/run @@ -15,4 +15,4 @@ properties: description: "Port used for the monit API" fissile.monit.user: - description: "Username for the monit API" \ No newline at end of file + description: "Username for the monit API" From 43fe5590db409d3bf9d25b1d573f6a2eeb63fc39 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Mon, 18 Sep 2017 15:19:34 +0100 Subject: [PATCH 06/39] Rename variable --- deploy/fissile/build-release.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/fissile/build-release.sh b/deploy/fissile/build-release.sh index cbd65ab5f3..256251eb9c 100755 --- a/deploy/fissile/build-release.sh +++ b/deploy/fissile/build-release.sh @@ -63,7 +63,7 @@ popd pushd fissile-console KUBE_EXTERNAL_IP=${KUBE_EXTERNAL_IP:-"127.0.0.1"} -sed -i 's@192.168.77.77@'${MINIKUBE_IP}'@g' values.yaml +sed -i 's@192.168.77.77@'${KUBE_EXTERNAL_IP}'@g' values.yaml sed -i 's@persistent: persistent@persistent: standard@g' values.yaml sed -i 's@FISSILE_MONIT_PASSWORD: ~@FISSILE_MONIT_PASSWORD: monit@g' values.yaml sed -i 's@FISSILE_MONIT_PORT: ~@FISSILE_MONIT_PORT: 2812@g' values.yaml From fa6a9a1c2191c5f7966eda9dd2eeafbb7f1bb824 Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Wed, 8 Nov 2017 13:27:39 +0000 Subject: [PATCH 07/39] Use existing build backend task --- build/bk-build.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/build/bk-build.js b/build/bk-build.js index 5978e1d04f..cba35db9e4 100644 --- a/build/bk-build.js +++ b/build/bk-build.js @@ -303,11 +303,7 @@ // Doesn't perform a `go build -i` buiild prepareBuild.setNoGoInstall(true); return runSequence( - 'init-build', - 'dedup-vendor', - 'write-plugins-yaml', - 'delete-temp', - 'local-dev-build' + 'build-backend' ); }); From f0ce28cc3359ab83e1e4145a5303d6c8147ad046 Mon Sep 17 00:00:00 2001 From: concourse Date: Thu, 9 Nov 2017 11:58:42 +0000 Subject: [PATCH 08/39] Helm repository updated for tag: 0.9.7 --- index.yaml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/index.yaml b/index.yaml index f6c4e88a2a..b090530216 100755 --- a/index.yaml +++ b/index.yaml @@ -1,6 +1,14 @@ apiVersion: v1 entries: console: + - apiVersion: v1 + created: 2017-11-09T11:58:41.085073375Z + description: A Helm chart for deploying Stratos UI Console + digest: 1a297cebb9bf8d34fe4d679203082fb89894d9b90583988fb0a1349a27dde920 + name: console + urls: + - https://github.com/SUSE/stratos-ui/releases/download/0.9.7/console-helm-chart-0.9.7.tgz + version: 0.9.7 - apiVersion: v1 created: 2017-11-01T11:57:35.330202636Z description: A Helm chart for deploying Stratos UI Console @@ -41,4 +49,4 @@ entries: urls: - https://github.com/suse/stratos-ui/releases/download/0.9.0/console-helm-chart-0.9.0.tgz version: 0.9.0 -generated: 2017-11-01T11:57:35.328866653Z +generated: 2017-11-09T11:58:41.083800584Z From ae297f5c5d5d0b7ea5455348bc030b6173543931 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Thu, 9 Nov 2017 13:06:28 +0000 Subject: [PATCH 09/39] Fix leak of Persistent volume claims when deleting Helm deployed release --- deploy/kubernetes/console/templates/pre-install.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/deploy/kubernetes/console/templates/pre-install.yaml b/deploy/kubernetes/console/templates/pre-install.yaml index 1994bf78fc..68e08c5458 100644 --- a/deploy/kubernetes/console/templates/pre-install.yaml +++ b/deploy/kubernetes/console/templates/pre-install.yaml @@ -13,8 +13,10 @@ metadata: {{- else }} volume.alpha.kubernetes.io/storage-class: default {{- end }} + {{- if not .Values.noShared }} "helm.sh/hook": pre-install "helm.sh/hook-weight": "-1" + {{- end }} spec: accessModes: {{- if .Values.noShared }} @@ -65,8 +67,10 @@ metadata: {{- else }} volume.alpha.kubernetes.io/storage-class: default {{- end }} + {{- if not .Values.noShared }} "helm.sh/hook": pre-install "helm.sh/hook-weight": "-1" + {{- end }} spec: accessModes: {{- if .Values.noShared }} From 1920af965bf914b1c4772434d0bec31024920157 Mon Sep 17 00:00:00 2001 From: Richard Cox Date: Thu, 9 Nov 2017 13:38:28 +0000 Subject: [PATCH 10/39] Fix link shown on cf dashboard when no endpoints connected - Also fix not used link in avatar directive and unused e2e helper function --- .../src/view/navbar/avatar/account-actions/account-actions.html | 2 +- components/cloud-foundry/frontend/i18n/en_US/errors.json | 2 +- .../frontend/test/e2e/po/applications/application.po.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/components/app-core/frontend/src/view/navbar/avatar/account-actions/account-actions.html b/components/app-core/frontend/src/view/navbar/avatar/account-actions/account-actions.html index 7089fc9c14..884def11eb 100644 --- a/components/app-core/frontend/src/view/navbar/avatar/account-actions/account-actions.html +++ b/components/app-core/frontend/src/view/navbar/avatar/account-actions/account-actions.html @@ -11,7 +11,7 @@
- + info_outline
About diff --git a/components/cloud-foundry/frontend/i18n/en_US/errors.json b/components/cloud-foundry/frontend/i18n/en_US/errors.json index 8846ca9ad1..a9ae445909 100644 --- a/components/cloud-foundry/frontend/i18n/en_US/errors.json +++ b/components/cloud-foundry/frontend/i18n/en_US/errors.json @@ -1,7 +1,7 @@ { "errors": { "no-cf-connected": "No connected [[@:cloud-foundry]] endpoints.", - "no-cf-connected-text": "Use the Endpoints Dashboard to fix your connections or connect to new endpoints.", + "no-cf-connected-text": "Use the Endpoints Dashboard to fix your connections or connect to new endpoints.", "no-cf-connected-cant-fix-text": "Please contact your administrator." } } diff --git a/components/cloud-foundry/frontend/test/e2e/po/applications/application.po.js b/components/cloud-foundry/frontend/test/e2e/po/applications/application.po.js index 7b7843bf9b..665f16cf2d 100644 --- a/components/cloud-foundry/frontend/test/e2e/po/applications/application.po.js +++ b/components/cloud-foundry/frontend/test/e2e/po/applications/application.po.js @@ -35,7 +35,7 @@ }; function goToApp(clusterGuid, appGuid) { - var url = helpers.getHost() + '/#/cf/applications/' + clusterGuid + '/app/' + appGuid + '/summary'; + var url = helpers.getHost() + '/#!/cf/applications/' + clusterGuid + '/app/' + appGuid + '/summary'; return browser.get(url) .then(function () { return browser.getCurrentUrl(); From 416cb4aae15a3b28dae68e6be3eb33a22b567d3b Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Thu, 9 Nov 2017 22:00:58 +0000 Subject: [PATCH 11/39] CI Bump --- deploy/fissile/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/fissile/README.md b/deploy/fissile/README.md index 74fb470bc8..82bb1a0850 100644 --- a/deploy/fissile/README.md +++ b/deploy/fissile/README.md @@ -8,10 +8,10 @@ To use the script, specify the external IP of your Kubernetes cluster so that yo $ KUBE_EXTERNAL_IP=10.10.10.11 ./build-release.sh ``` -This will create a folder called `fissile-console` which contains the generated Helm chart. To dpeloy it in your cluster, install it with helm. +This will create a folder called `fissile-console` which contains the generated Helm chart. To dpeloy it in your cluster, install it with Helm. ``` $ helm install ./fissile-console --namespace console ``` -After deployment, the instance will be available at `https://YOUR_KUBE_EXTERNAL_IP:4443` \ No newline at end of file +After deployment, the instance will be available at `https://YOUR_KUBE_EXTERNAL_IP:4443` From cb45a684a92ee225d094efa83711ac210bca0cf2 Mon Sep 17 00:00:00 2001 From: Richard Cox Date: Fri, 10 Nov 2017 10:59:41 +0000 Subject: [PATCH 12/39] Remove the yellow autocomplete background in dark form fields --- components/suse-branding/src/dark-form.scss | 22 ++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/components/suse-branding/src/dark-form.scss b/components/suse-branding/src/dark-form.scss index 38849bce5f..76c691a641 100644 --- a/components/suse-branding/src/dark-form.scss +++ b/components/suse-branding/src/dark-form.scss @@ -1,31 +1,35 @@ @mixin dark-form() { .form-group { - background-color: $suse-secondary; - // We override the border color in all cases, so we also need to ensure the focus z-index overrides the - // error z-index (see focus below) + background-color: $suse-secondary; // We override the border color in all cases, so we also need to ensure the focus z-index overrides the error z-index (see focus below) border-color: $login-form-border-color; color: $suse-text; - &.focus { border-color: $suse-primary; } - - .control-label, .checkbox-input, .checkbox-input.checked .checkbox-input-label { + .control-label, + .checkbox-input, + .checkbox-input.checked .checkbox-input-label { color: darken($suse-text, 10%); } - input { color: $suse-text; text-shadow: 0 0 0 $suse-text; -webkit-text-fill-color: $suse-text; } - search-box { .dropdown-menu { border-color: $login-form-border-color; background: $suse-secondary; } } + input, // include base elements to avoid blip when selecting autocomplete value from drop down + textarea, + select, + :-webkit-autofill, + :-webkit-autofill:hover, + :-webkit-autofill:focus { + box-shadow: 0 0 0px 1000px $suse-secondary inset !important; + -webkit-box-shadow: 0 0 0px 1000px $suse-secondary inset !important; + } } } - From 93a89baa328ab6a55138a3399a9a245d0c9153d4 Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Fri, 10 Nov 2017 13:54:05 +0000 Subject: [PATCH 13/39] CI Bump --- components/suse-branding/src/dark-form.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/suse-branding/src/dark-form.scss b/components/suse-branding/src/dark-form.scss index 76c691a641..204b116519 100644 --- a/components/suse-branding/src/dark-form.scss +++ b/components/suse-branding/src/dark-form.scss @@ -22,7 +22,7 @@ background: $suse-secondary; } } - input, // include base elements to avoid blip when selecting autocomplete value from drop down + input, // include base elements to avoid blip when selecting auto-complete value from drop down textarea, select, :-webkit-autofill, From 64938c7e601c63795a9b6b65060dbe577922702b Mon Sep 17 00:00:00 2001 From: Richard Cox Date: Fri, 10 Nov 2017 15:13:47 +0000 Subject: [PATCH 14/39] Fix lint error from master --- .../frontend/src/view/applications/list/list.module.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/cloud-foundry/frontend/src/view/applications/list/list.module.js b/components/cloud-foundry/frontend/src/view/applications/list/list.module.js index fd3f4066eb..b38722456e 100644 --- a/components/cloud-foundry/frontend/src/view/applications/list/list.module.js +++ b/components/cloud-foundry/frontend/src/view/applications/list/list.module.js @@ -33,7 +33,7 @@ * deploy, etc) * @param {appLocalStorage} appLocalStorage - service provides access to the local storage facility of the web browser * @param {appBusyService} appBusyService - the application busy service - * + * */ function ApplicationsListController($scope, $translate, $state, $timeout, $q, $window, modelManager, appErrorService, appUtilsService, cfOrganizationModel, cfAppWallActions, appLocalStorage, appBusyService) { From f4ba7b1291a410bf129c2b9c0e3ffe290a2cabfc Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Mon, 13 Nov 2017 09:38:46 +0000 Subject: [PATCH 15/39] Move from `ngrok` to `ci-registry.capbristol.com` --- deploy/ci/scripts/build_bk_concourse_image.sh | 4 ++-- deploy/ci/scripts/build_dcind_image.sh | 2 +- deploy/ci/scripts/daemon.json | 2 +- deploy/ci/tasks/build-images/build-dc.yml | 6 +++--- deploy/ci/tasks/build-images/build-helm.yml | 4 ++-- deploy/ci/tasks/build-images/generate-certs.yml | 4 ++-- deploy/ci/tasks/portal-proxy/run-unit-tests.yml | 4 ++-- deploy/ci/tasks/release/build-helm.yml | 4 ++-- deploy/ci/tasks/release/create-chart-sle.yml | 4 ++-- deploy/ci/tasks/release/create-chart.yml | 4 ++-- deploy/ci/tasks/release/update-gh-release.yml | 4 ++-- deploy/ci/tasks/stratos-ui/prep-proxy-image.yml | 4 ++-- deploy/ci/tasks/stratos-ui/run-tests.yml | 4 ++-- deploy/ci/tasks/stratos-ui/run-unit-tests.yml | 4 ++-- .../ci/tasks/update-images/update-bk-concourse-image.yml | 8 ++++---- deploy/ci/tasks/update-images/update-concourse-image.yml | 8 ++++---- 16 files changed, 35 insertions(+), 35 deletions(-) diff --git a/deploy/ci/scripts/build_bk_concourse_image.sh b/deploy/ci/scripts/build_bk_concourse_image.sh index aafd4d42ff..71e9691b3b 100755 --- a/deploy/ci/scripts/build_bk_concourse_image.sh +++ b/deploy/ci/scripts/build_bk_concourse_image.sh @@ -20,11 +20,11 @@ glide --yaml ${yaml} install; done EOF chmod +x init-glide.sh -# ci-registry.ngrok.io:80/concourse-go-glide is fabiorphp/golang-glide:latest +# ci-registry.capbristol.com:5000/concourse-go-glide is fabiorphp/golang-glide:latest mkdir cache ls -l $PWD whoami -docker run -v ${PWD}/:/root -v ${PWD}/cache:/.glide/cache -e GLIDE_HOME=/.glide ci-registry.ngrok.io:80/concourse-go-glide /root/init-glide.sh +docker run -v ${PWD}/:/root -v ${PWD}/cache:/.glide/cache -e GLIDE_HOME=/.glide ci-registry.capbristol.com:5000/concourse-go-glide /root/init-glide.sh docker build -f deploy/ci/Dockerfile.bk.concourse ./ -t ${DOCKER_REGISTRY}/${DOCKER_ORG}/stratos-bk-concourse:${TAG} \ ${BUILD_ARGS} diff --git a/deploy/ci/scripts/build_dcind_image.sh b/deploy/ci/scripts/build_dcind_image.sh index 07ed65050c..064936c4e4 100755 --- a/deploy/ci/scripts/build_dcind_image.sh +++ b/deploy/ci/scripts/build_dcind_image.sh @@ -1,7 +1,7 @@ #!/bin/bash DIRPATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -DOCKER_REGISTRY=ci-registry.ngrok.io:80 +DOCKER_REGISTRY=ci-registry.capbristol.com:5000 TAG=${TAG:-latest} REGISTRY_ADDRESS=${REGISTRY_ADDRESS:-ci-registry.ngrok.io} REGISTRY_USER=${REGISTRY_USER:-ubuntu} diff --git a/deploy/ci/scripts/daemon.json b/deploy/ci/scripts/daemon.json index 598cbe7f43..09c50804f4 100644 --- a/deploy/ci/scripts/daemon.json +++ b/deploy/ci/scripts/daemon.json @@ -1,2 +1,2 @@ -{ "insecure-registries": ["ci-registry.ngrok.io:80"]} +{ "insecure-registries": ["ci-registry.capbristol.com:5000"]} diff --git a/deploy/ci/tasks/build-images/build-dc.yml b/deploy/ci/tasks/build-images/build-dc.yml index 7d0d35ec4d..8e09934a37 100644 --- a/deploy/ci/tasks/build-images/build-dc.yml +++ b/deploy/ci/tasks/build-images/build-dc.yml @@ -6,9 +6,9 @@ inputs: image_resource: type: docker-image source: - repository: ci-registry.ngrok.io:80/concourse-dcind + repository: ci-registry.capbristol.com:5000/concourse-dcind tag: "latest" - insecure_registries: [ "ci-registry.ngrok.io:80" ] + insecure_registries: [ "ci-registry.capbristol.com:5000" ] run: path: sh @@ -21,4 +21,4 @@ run: ls . mv dev-certs-output/dev-certs stratos-ui/dev-certs cd stratos-ui/deploy/docker-compose/ - ./build.sh -t test -r ci-registry.ngrok.io:80 + ./build.sh -t test -r ci-registry.capbristol.com:5000 diff --git a/deploy/ci/tasks/build-images/build-helm.yml b/deploy/ci/tasks/build-images/build-helm.yml index 5e93f03b5c..33a6722fb7 100644 --- a/deploy/ci/tasks/build-images/build-helm.yml +++ b/deploy/ci/tasks/build-images/build-helm.yml @@ -6,9 +6,9 @@ inputs: image_resource: type: docker-image source: - repository: ci-registry.ngrok.io:80/concourse-dcind + repository: ci-registry.capbristol.com:5000/concourse-dcind tag: "latest" - insecure_registries: [ "ci-registry.ngrok.io:80" ] + insecure_registries: [ "ci-registry.capbristol.com:5000" ] run: path: sh diff --git a/deploy/ci/tasks/build-images/generate-certs.yml b/deploy/ci/tasks/build-images/generate-certs.yml index d5485d68de..5180b25e3f 100644 --- a/deploy/ci/tasks/build-images/generate-certs.yml +++ b/deploy/ci/tasks/build-images/generate-certs.yml @@ -3,9 +3,9 @@ platform: linux image_resource: type: docker-image source: - repository: ci-registry.ngrok.io:80/opensuse + repository: ci-registry.capbristol.com:5000/opensuse tag: latest - insecure_registries: [ "ci-registry.ngrok.io:80" ] + insecure_registries: [ "ci-registry.capbristol.com:5000" ] inputs: - name: stratos-ui diff --git a/deploy/ci/tasks/portal-proxy/run-unit-tests.yml b/deploy/ci/tasks/portal-proxy/run-unit-tests.yml index 09a0782d10..52cc073d7a 100644 --- a/deploy/ci/tasks/portal-proxy/run-unit-tests.yml +++ b/deploy/ci/tasks/portal-proxy/run-unit-tests.yml @@ -5,9 +5,9 @@ inputs: image_resource: type: docker-image source: - repository: ci-registry.ngrok.io:80/splatform/stratos-bk-concourse + repository: ci-registry.capbristol.com:5000/splatform/stratos-bk-concourse tag: "latest" - insecure_registries: [ "ci-registry.ngrok.io:80" ] + insecure_registries: [ "ci-registry.capbristol.com:5000" ] run: path: sh diff --git a/deploy/ci/tasks/release/build-helm.yml b/deploy/ci/tasks/release/build-helm.yml index 9948d473c8..24df6808b5 100644 --- a/deploy/ci/tasks/release/build-helm.yml +++ b/deploy/ci/tasks/release/build-helm.yml @@ -8,9 +8,9 @@ outputs: image_resource: type: docker-image source: - repository: ci-registry.ngrok.io:80/concourse-dcind + repository: ci-registry.capbristol.com:5000/concourse-dcind tag: "latest" - insecure_registries: [ "ci-registry.ngrok.io:80" ] + insecure_registries: [ "ci-registry.capbristol.com:5000" ] run: path: sh diff --git a/deploy/ci/tasks/release/create-chart-sle.yml b/deploy/ci/tasks/release/create-chart-sle.yml index a34eaacbcf..e84223bc4a 100644 --- a/deploy/ci/tasks/release/create-chart-sle.yml +++ b/deploy/ci/tasks/release/create-chart-sle.yml @@ -10,9 +10,9 @@ image_resource: type: docker-image source: # Generated using Dockerfile.stratos-helm - repository: ci-registry.ngrok.io:80/stratos-helm + repository: ci-registry.capbristol.com:5000/stratos-helm tag: "latest" - insecure_registries: [ "ci-registry.ngrok.io:80" ] + insecure_registries: [ "ci-registry.capbristol.com:5000" ] run: path: sh diff --git a/deploy/ci/tasks/release/create-chart.yml b/deploy/ci/tasks/release/create-chart.yml index b98bf77d57..2e4642c572 100644 --- a/deploy/ci/tasks/release/create-chart.yml +++ b/deploy/ci/tasks/release/create-chart.yml @@ -10,9 +10,9 @@ image_resource: type: docker-image source: # Generated using Dockerfile.stratos-helm - repository: ci-registry.ngrok.io:80/stratos-helm + repository: ci-registry.capbristol.com:5000/stratos-helm tag: "latest" - insecure_registries: [ "ci-registry.ngrok.io:80" ] + insecure_registries: [ "ci-registry.capbristol.com:5000" ] run: path: sh diff --git a/deploy/ci/tasks/release/update-gh-release.yml b/deploy/ci/tasks/release/update-gh-release.yml index e2fb8300cd..3814fb0a6e 100644 --- a/deploy/ci/tasks/release/update-gh-release.yml +++ b/deploy/ci/tasks/release/update-gh-release.yml @@ -6,9 +6,9 @@ inputs: image_resource: type: docker-image source: - repository: ci-registry.ngrok.io:80/github-release + repository: ci-registry.capbristol.com:5000/github-release tag: "latest" - insecure_registries: [ "ci-registry.ngrok.io:80" ] + insecure_registries: [ "ci-registry.capbristol.com:5000" ] run: path: sh diff --git a/deploy/ci/tasks/stratos-ui/prep-proxy-image.yml b/deploy/ci/tasks/stratos-ui/prep-proxy-image.yml index 5dcf959750..e0132e97b0 100644 --- a/deploy/ci/tasks/stratos-ui/prep-proxy-image.yml +++ b/deploy/ci/tasks/stratos-ui/prep-proxy-image.yml @@ -3,9 +3,9 @@ platform: linux image_resource: type: docker-image source: - repository: ci-registry.ngrok.io:80/splatform/stratos-proxy-builder + repository: ci-registry.capbristol.com:5000/splatform/stratos-proxy-builder tag: "opensuse" - insecure_registries: [ "ci-registry.ngrok.io:80" ] + insecure_registries: [ "ci-registry.capbristol.com:5000" ] inputs: - name: stratos-ui diff --git a/deploy/ci/tasks/stratos-ui/run-tests.yml b/deploy/ci/tasks/stratos-ui/run-tests.yml index 4f9b4d3a78..f60731ffba 100644 --- a/deploy/ci/tasks/stratos-ui/run-tests.yml +++ b/deploy/ci/tasks/stratos-ui/run-tests.yml @@ -8,9 +8,9 @@ inputs: image_resource: type: docker-image source: - repository: ci-registry.ngrok.io:80/concourse-dcind + repository: ci-registry.capbristol.com:5000/concourse-dcind tag: "latest" - insecure_registries: [ "ci-registry.ngrok.io:80" ] + insecure_registries: [ "ci-registry.capbristol.com:5000" ] run: path: sh diff --git a/deploy/ci/tasks/stratos-ui/run-unit-tests.yml b/deploy/ci/tasks/stratos-ui/run-unit-tests.yml index 05580bd1b4..39195420e5 100644 --- a/deploy/ci/tasks/stratos-ui/run-unit-tests.yml +++ b/deploy/ci/tasks/stratos-ui/run-unit-tests.yml @@ -7,9 +7,9 @@ inputs: image_resource: type: docker-image source: - repository: ci-registry.ngrok.io:80/splatform/stratos-concourse + repository: ci-registry.capbristol.com:5000/splatform/stratos-concourse tag: "latest" - insecure_registries: [ "ci-registry.ngrok.io:80" ] + insecure_registries: [ "ci-registry.capbristol.com:5000" ] run: path: sh diff --git a/deploy/ci/tasks/update-images/update-bk-concourse-image.yml b/deploy/ci/tasks/update-images/update-bk-concourse-image.yml index 15f5ca2754..aadad7b0ba 100644 --- a/deploy/ci/tasks/update-images/update-bk-concourse-image.yml +++ b/deploy/ci/tasks/update-images/update-bk-concourse-image.yml @@ -5,9 +5,9 @@ inputs: image_resource: type: docker-image source: - repository: ci-registry.ngrok.io:80/concourse-dcind + repository: ci-registry.capbristol.com:5000/concourse-dcind tag: "latest" - insecure_registries: [ "ci-registry.ngrok.io:80" ] + insecure_registries: [ "ci-registry.capbristol.com:5000" ] run: path: sh @@ -21,7 +21,7 @@ run: ./build_bk_concourse_image.sh - docker tag docker.io/splatform/stratos-bk-concourse:${TAG} ci-registry.ngrok.io:80/splatform/stratos-bk-concourse:latest - docker push ci-registry.ngrok.io:80/splatform/stratos-bk-concourse:latest + docker tag docker.io/splatform/stratos-bk-concourse:${TAG} ci-registry.capbristol.com:5000/splatform/stratos-bk-concourse:latest + docker push ci-registry.capbristol.com:5000/splatform/stratos-bk-concourse:latest diff --git a/deploy/ci/tasks/update-images/update-concourse-image.yml b/deploy/ci/tasks/update-images/update-concourse-image.yml index 506bc06a46..fd26464f72 100644 --- a/deploy/ci/tasks/update-images/update-concourse-image.yml +++ b/deploy/ci/tasks/update-images/update-concourse-image.yml @@ -5,9 +5,9 @@ inputs: image_resource: type: docker-image source: - repository: ci-registry.ngrok.io:80/concourse-dcind + repository: ci-registry.capbristol.com:5000/concourse-dcind tag: "latest" - insecure_registries: [ "ci-registry.ngrok.io:80" ] + insecure_registries: [ "ci-registry.capbristol.com:5000" ] run: path: sh @@ -20,5 +20,5 @@ run: docker login -u ${DOCKER_USERNAME} -p ${DOCKER_PASSWORD} ./build_concourse_image.sh - docker tag docker.io/splatform/stratos-concourse:${TAG} ci-registry.ngrok.io:80/splatform/stratos-concourse:latest - docker push ci-registry.ngrok.io:80/splatform/stratos-concourse:latest + docker tag docker.io/splatform/stratos-concourse:${TAG} ci-registry.capbristol.com:5000/splatform/stratos-concourse:latest + docker push ci-registry.capbristol.com:5000/splatform/stratos-concourse:latest From 25129626a8fba304a425b356d6ce20ff449780b9 Mon Sep 17 00:00:00 2001 From: Richard Cox Date: Mon, 13 Nov 2017 18:10:31 +0000 Subject: [PATCH 16/39] CI bump for change in registry url --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c0dee45ca8..9769702953 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ Stratos UI can be deployed in the following environments: 3. Docker, using docker compose. See [guide](deploy/docker-compose) 4. Docker, single container deploying all components. See [guide](deploy/all-in-one) + ## Quick Start To get started quickly, we recommend following the steps to deploy the Stratos UI Console as a Cloud Foundry Application - see [here](deploy/cloud-foundry). From 85d80f8f919564976485999f184561e7dbd37f41 Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Tue, 14 Nov 2017 09:21:49 +0000 Subject: [PATCH 17/39] line endings --- .../frontend/i18n/en_US/endpoints.json | 72 ++++---- .../app-core/frontend/i18n/en_US/locales.json | 12 +- .../app-core/frontend/i18n/en_US/login.json | 42 ++--- .../app-core/frontend/src/app-core.scss | 12 +- components/app-core/frontend/src/app_ie.scss | 60 +++---- .../app-core/frontend/src/variables.scss | 6 +- .../src/view/language/select-language.html | 22 +-- .../src/view/mixins/responsive-block.scss | 164 +++++++++--------- .../json-tree-view/json-tree-view.html | 40 ++--- .../json-tree-view/json-tree-view.scss | 64 +++---- .../fonts/iconfont/MaterialIcons-Regular.eot | Bin 143258 -> 143254 bytes .../fonts/iconfont/MaterialIcons-Regular.ttf | Bin 128180 -> 128176 bytes .../app-theme/src/scss/style/_ie_fixes.scss | 30 ++-- .../scss/theme/components/_detail_view.scss | 2 +- .../view/applications/list/_list_mobile.scss | 112 ++++++------ .../add-app-workflow/add-app-dialog.html | 2 +- .../delete-app-workflow.scss | 6 +- .../suse-branding/i18n/en_US/product.json | 74 ++++---- 18 files changed, 360 insertions(+), 360 deletions(-) diff --git a/components/app-core/frontend/i18n/en_US/endpoints.json b/components/app-core/frontend/i18n/en_US/endpoints.json index c0aaa873b0..9007259ff8 100644 --- a/components/app-core/frontend/i18n/en_US/endpoints.json +++ b/components/app-core/frontend/i18n/en_US/endpoints.json @@ -1,37 +1,37 @@ -{ - "endpoints": { - "unknown": "Unknown", - "unregister": { - "unregister": "Unregister", - "title": "Unregister Endpoint", - "confirm": "Are you sure you want to unregister endpoint '{{name}}'?", - "error": "Failed to unregister endpoint", - "success": "Successfully unregistered endpoint '{{name}}'" - }, - "connect": { - "connect-action": "Connect", - "title": "Provide Credentials", - "description": "Enter your username and password to connect to the endpoint below.", - "service-label": "Service", - "url-label": "URL", - "username-label": "Username", - "password-label": "Password", - "connect-button": "Connect", - "success-notification": "Successfully connected to '{{name}}'", - "error-no-connect": "The authentication server failed to respond. Please try again. If this error persists, please contact the administrator.", - "error-server-failure": "A server error occurred when attempting to register your service. Please try again. If this error persists, please contact the administrator.", - "error-user-input": "The username and password combination you used are incorrect. Please try again." - }, - "disconnect": { - "disconnect": "Disconnect", - "success": "Successfully disconnected endpoint '{{name}}'", - "error": "Failed to disconnect endpoint '{{name}}'" - }, - "errors": { - "unavailable": "The Console could not contact the endpoint named '{{name}}'. Try reconnecting to this endpoint to resolve this problem.", - "multiple": "The Console could not contact multiple endpoints", - "contact": "The Console could not contact this endpoint. Try reconnecting to this endpoint to resolve this problem.", - "expired": "Token has expired. Try reconnecting to this endpoint to resolve this problem." - } - } +{ + "endpoints": { + "unknown": "Unknown", + "unregister": { + "unregister": "Unregister", + "title": "Unregister Endpoint", + "confirm": "Are you sure you want to unregister endpoint '{{name}}'?", + "error": "Failed to unregister endpoint", + "success": "Successfully unregistered endpoint '{{name}}'" + }, + "connect": { + "connect-action": "Connect", + "title": "Provide Credentials", + "description": "Enter your username and password to connect to the endpoint below.", + "service-label": "Service", + "url-label": "URL", + "username-label": "Username", + "password-label": "Password", + "connect-button": "Connect", + "success-notification": "Successfully connected to '{{name}}'", + "error-no-connect": "The authentication server failed to respond. Please try again. If this error persists, please contact the administrator.", + "error-server-failure": "A server error occurred when attempting to register your service. Please try again. If this error persists, please contact the administrator.", + "error-user-input": "The username and password combination you used are incorrect. Please try again." + }, + "disconnect": { + "disconnect": "Disconnect", + "success": "Successfully disconnected endpoint '{{name}}'", + "error": "Failed to disconnect endpoint '{{name}}'" + }, + "errors": { + "unavailable": "The Console could not contact the endpoint named '{{name}}'. Try reconnecting to this endpoint to resolve this problem.", + "multiple": "The Console could not contact multiple endpoints", + "contact": "The Console could not contact this endpoint. Try reconnecting to this endpoint to resolve this problem.", + "expired": "Token has expired. Try reconnecting to this endpoint to resolve this problem." + } + } } \ No newline at end of file diff --git a/components/app-core/frontend/i18n/en_US/locales.json b/components/app-core/frontend/i18n/en_US/locales.json index c4ad1df26e..423acde298 100644 --- a/components/app-core/frontend/i18n/en_US/locales.json +++ b/components/app-core/frontend/i18n/en_US/locales.json @@ -1,7 +1,7 @@ -{ - "locales": { - "locales": "en_US,en_GB", - "en_US": "English (US)", - "en_GB": "English (UK)" - } +{ + "locales": { + "locales": "en_US,en_GB", + "en_US": "English (US)", + "en_GB": "English (UK)" + } } \ No newline at end of file diff --git a/components/app-core/frontend/i18n/en_US/login.json b/components/app-core/frontend/i18n/en_US/login.json index e476531446..adeeafc7d6 100644 --- a/components/app-core/frontend/i18n/en_US/login.json +++ b/components/app-core/frontend/i18n/en_US/login.json @@ -1,22 +1,22 @@ -{ - "login": { - "login": "Login", - "console": "@:product.console", - "logo": "", - "title": "[[@:product.name]] [[@:product.version]]", - "username": "@:auth.username", - "password": "@:auth.password", - "authenticating": "Authenticating Credentials", - "welcome": "Use the [[@:product.console]] to develop, compose, and manage Cloud Native workloads.", - "error": { - "credentials": "The login and password combination you used are incorrect. Please try again.", - "server": "A server error occurred when attempting to log you in. Please try again. If this error persists, please contact the administrator.", - "no-response": "The authentication server failed to respond. Please try again. If this error persists, please contact the administrator." - }, - "timeout": { - "prompt": "Are you still there?", - "notice": "You have been inactive for a while. For your protection, we will automatically log you out in {{timeout}}", - "confirm": "I am still here" - } - } +{ + "login": { + "login": "Login", + "console": "@:product.console", + "logo": "", + "title": "[[@:product.name]] [[@:product.version]]", + "username": "@:auth.username", + "password": "@:auth.password", + "authenticating": "Authenticating Credentials", + "welcome": "Use the [[@:product.console]] to develop, compose, and manage Cloud Native workloads.", + "error": { + "credentials": "The login and password combination you used are incorrect. Please try again.", + "server": "A server error occurred when attempting to log you in. Please try again. If this error persists, please contact the administrator.", + "no-response": "The authentication server failed to respond. Please try again. If this error persists, please contact the administrator." + }, + "timeout": { + "prompt": "Are you still there?", + "notice": "You have been inactive for a while. For your protection, we will automatically log you out in {{timeout}}", + "confirm": "I am still here" + } + } } \ No newline at end of file diff --git a/components/app-core/frontend/src/app-core.scss b/components/app-core/frontend/src/app-core.scss index 609b6d0355..5756e760c4 100644 --- a/components/app-core/frontend/src/app-core.scss +++ b/components/app-core/frontend/src/app-core.scss @@ -1,6 +1,6 @@ -// Application mixins -@import "view/mixins/mixins"; - -// App -@import "app"; - +// Application mixins +@import "view/mixins/mixins"; + +// App +@import "app"; + diff --git a/components/app-core/frontend/src/app_ie.scss b/components/app-core/frontend/src/app_ie.scss index e465e1e341..fa9c048f4e 100644 --- a/components/app-core/frontend/src/app_ie.scss +++ b/components/app-core/frontend/src/app_ie.scss @@ -1,31 +1,31 @@ -@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { - - .detail-view-container.detail-view-open .modal.detail-view .detail-view-content ng-include { - flex: 1 1 auto; - } - - service-card .service-card .service-block { - .service-title .service-text, .service-action-block .service-attached-msg { - flex: 1 1 auto; - } - - } - - .cluster-gallery-card-container .cluster-gallery-card-parent { - padding-left: 10px !important; - padding-right: 10px !important; - } - - app-error-bar.errorbar-without-navbar, app-error-bar.errorbar-with-navbar { - .app-error-bar .app-error-bar-icon { - line-height: 48px; - vertical-align: middle; - } - - .app-error-bar { - display: inline; - } - } - - +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + + .detail-view-container.detail-view-open .modal.detail-view .detail-view-content ng-include { + flex: 1 1 auto; + } + + service-card .service-card .service-block { + .service-title .service-text, .service-action-block .service-attached-msg { + flex: 1 1 auto; + } + + } + + .cluster-gallery-card-container .cluster-gallery-card-parent { + padding-left: 10px !important; + padding-right: 10px !important; + } + + app-error-bar.errorbar-without-navbar, app-error-bar.errorbar-with-navbar { + .app-error-bar .app-error-bar-icon { + line-height: 48px; + vertical-align: middle; + } + + .app-error-bar { + display: inline; + } + } + + } \ No newline at end of file diff --git a/components/app-core/frontend/src/variables.scss b/components/app-core/frontend/src/variables.scss index ae69c5b89b..a49a3d8190 100644 --- a/components/app-core/frontend/src/variables.scss +++ b/components/app-core/frontend/src/variables.scss @@ -1,4 +1,4 @@ -$main-nav-width: 236px; -$main-nav-title-height: $console-unit-space * 3; -$main-nav-icons-width: 70px; +$main-nav-width: 236px; +$main-nav-title-height: $console-unit-space * 3; +$main-nav-icons-width: 70px; $main-nav-label-size: 15px; \ No newline at end of file diff --git a/components/app-core/frontend/src/view/language/select-language.html b/components/app-core/frontend/src/view/language/select-language.html index 85dc51d754..ffae8e8395 100644 --- a/components/app-core/frontend/src/view/language/select-language.html +++ b/components/app-core/frontend/src/view/language/select-language.html @@ -1,11 +1,11 @@ -
-
- - - -
-
+
+
+ + + +
+
diff --git a/components/app-core/frontend/src/view/mixins/responsive-block.scss b/components/app-core/frontend/src/view/mixins/responsive-block.scss index 82d6daf5ee..77e6ca652e 100644 --- a/components/app-core/frontend/src/view/mixins/responsive-block.scss +++ b/components/app-core/frontend/src/view/mixins/responsive-block.scss @@ -1,82 +1,82 @@ -// Helper mixin for responsive layouts that take the menu bar into account - -$responsive-mobile-cutoff: 479px; -$responsive-tablet-portrait-cutoff: 767px; -$responsive-tablet-landscape-cutoff: 1023px; - -@mixin responsive-block($min, $max) { - // No menu bar - @media (max-width: $max) and (min-width: $min + 1) { - @content; - } - // With icons only - @media (max-width: $max + $main-nav-icons-width) and (min-width: $min + 1 + $main-nav-icons-width) { - .navbar-icons-only { - @content; - } - } - // With wide menu bar - @media (max-width: $max + $main-nav-width) and (min-width: $min + 1 + $main-nav-width) { - .navbar-normal { - @content; - } - } -} - - -@mixin responsive-mobile() { - // Mobile - no menu bar - @media (max-width: $responsive-mobile-cutoff) { - @content; - } - // Mobile with icons only - @media (max-width: $responsive-mobile-cutoff + $main-nav-icons-width) { - .navbar-icons-only { - @content; - } - } - // Mobile with wide menu bar - @media (max-width: $responsive-mobile-cutoff + $main-nav-width) { - .navbar-normal { - @content; - } - } -} - -@mixin responsive-tablet-portrait() { - // Mobile - no menu bar - @media (max-width: $responsive-tablet-portrait-cutoff) and (min-width: $responsive-mobile-cutoff + 1) { - @content; - } - // Mobile with icons only - @media (max-width: $responsive-tablet-portrait-cutoff + $main-nav-icons-width) and (min-width: $responsive-mobile-cutoff + 1 + $main-nav-icons-width) { - .navbar-icons-only { - @content; - } - } - // Mobile with wide menu bar - @media (max-width: $responsive-tablet-portrait-cutoff + $main-nav-width) and (min-width: $responsive-mobile-cutoff + 1 + $main-nav-width) { - .navbar-normal { - @content; - } - } -} - -@mixin responsive-tablet-landscape() { - // Mobile - no menu bar - @media (max-width: $responsive-tablet-landscape-cutoff) and (min-width: $responsive-tablet-portrait-cutoff + 1) { - @content; - } - // Mobile with icons only - @media (max-width: $responsive-tablet-landscape-cutoff + $main-nav-icons-width) and (min-width: $responsive-tablet-portrait-cutoff + 1 + $main-nav-icons-width) { - .navbar-icons-only { - @content; - } - } - // Mobile with wide menu bar - @media (max-width: $responsive-tablet-landscape-cutoff + $main-nav-width) and (min-width: $responsive-tablet-portrait-cutoff + 1 + $main-nav-width) { - .navbar-normal { - @content; - } - } -} +// Helper mixin for responsive layouts that take the menu bar into account + +$responsive-mobile-cutoff: 479px; +$responsive-tablet-portrait-cutoff: 767px; +$responsive-tablet-landscape-cutoff: 1023px; + +@mixin responsive-block($min, $max) { + // No menu bar + @media (max-width: $max) and (min-width: $min + 1) { + @content; + } + // With icons only + @media (max-width: $max + $main-nav-icons-width) and (min-width: $min + 1 + $main-nav-icons-width) { + .navbar-icons-only { + @content; + } + } + // With wide menu bar + @media (max-width: $max + $main-nav-width) and (min-width: $min + 1 + $main-nav-width) { + .navbar-normal { + @content; + } + } +} + + +@mixin responsive-mobile() { + // Mobile - no menu bar + @media (max-width: $responsive-mobile-cutoff) { + @content; + } + // Mobile with icons only + @media (max-width: $responsive-mobile-cutoff + $main-nav-icons-width) { + .navbar-icons-only { + @content; + } + } + // Mobile with wide menu bar + @media (max-width: $responsive-mobile-cutoff + $main-nav-width) { + .navbar-normal { + @content; + } + } +} + +@mixin responsive-tablet-portrait() { + // Mobile - no menu bar + @media (max-width: $responsive-tablet-portrait-cutoff) and (min-width: $responsive-mobile-cutoff + 1) { + @content; + } + // Mobile with icons only + @media (max-width: $responsive-tablet-portrait-cutoff + $main-nav-icons-width) and (min-width: $responsive-mobile-cutoff + 1 + $main-nav-icons-width) { + .navbar-icons-only { + @content; + } + } + // Mobile with wide menu bar + @media (max-width: $responsive-tablet-portrait-cutoff + $main-nav-width) and (min-width: $responsive-mobile-cutoff + 1 + $main-nav-width) { + .navbar-normal { + @content; + } + } +} + +@mixin responsive-tablet-landscape() { + // Mobile - no menu bar + @media (max-width: $responsive-tablet-landscape-cutoff) and (min-width: $responsive-tablet-portrait-cutoff + 1) { + @content; + } + // Mobile with icons only + @media (max-width: $responsive-tablet-landscape-cutoff + $main-nav-icons-width) and (min-width: $responsive-tablet-portrait-cutoff + 1 + $main-nav-icons-width) { + .navbar-icons-only { + @content; + } + } + // Mobile with wide menu bar + @media (max-width: $responsive-tablet-landscape-cutoff + $main-nav-width) and (min-width: $responsive-tablet-portrait-cutoff + 1 + $main-nav-width) { + .navbar-normal { + @content; + } + } +} diff --git a/components/app-framework/src/widgets/json-tree-view/json-tree-view.html b/components/app-framework/src/widgets/json-tree-view/json-tree-view.html index a74370b799..3a629af310 100644 --- a/components/app-framework/src/widgets/json-tree-view/json-tree-view.html +++ b/components/app-framework/src/widgets/json-tree-view/json-tree-view.html @@ -1,21 +1,21 @@ -
- {{key}} : -
-
- { - -
}
-
-
-
- [ - -
]
-
- [] -
- {{ value }} - {{ value }} - "{{ value }}" -
+
+ {{key}} : +
+
+ { + +
}
+
+
+
+ [ + +
]
+
+ [] +
+ {{ value }} + {{ value }} + "{{ value }}" +
\ No newline at end of file diff --git a/components/app-framework/src/widgets/json-tree-view/json-tree-view.scss b/components/app-framework/src/widgets/json-tree-view/json-tree-view.scss index b7410fe531..1e63f234ac 100644 --- a/components/app-framework/src/widgets/json-tree-view/json-tree-view.scss +++ b/components/app-framework/src/widgets/json-tree-view/json-tree-view.scss @@ -1,33 +1,33 @@ -json-tree-view { - font-size: 11pt; - font-family: "Source Code Pro", monospace; -} - -.json-view-item, .json-view-array, .json-view-object { - display: inline; - - json-tree-view { - display: block; - margin-left: 12px; - } -} - -.json-view-key { - color: #007B47; -} - -.json-view-string { - color: red; -} - -.json-view-number { - color: #0000DD; -} - -.json-view-bool { - color: #0000DD; -} - -.json-view-array-wtih-values { - display: inline; +json-tree-view { + font-size: 11pt; + font-family: "Source Code Pro", monospace; +} + +.json-view-item, .json-view-array, .json-view-object { + display: inline; + + json-tree-view { + display: block; + margin-left: 12px; + } +} + +.json-view-key { + color: #007B47; +} + +.json-view-string { + color: red; +} + +.json-view-number { + color: #0000DD; +} + +.json-view-bool { + color: #0000DD; +} + +.json-view-array-wtih-values { + display: inline; } \ No newline at end of file diff --git a/components/app-theme/assets/fonts/iconfont/MaterialIcons-Regular.eot b/components/app-theme/assets/fonts/iconfont/MaterialIcons-Regular.eot index 70508ebabc9992e64f1314f866b2d7ab90438c58..9fcecb1d3d93541eb0528b3e9a4004f2536dea2a 100644 GIT binary patch delta 35 rcmbPrpJUp6j)pCa=ef6E;AZS)+a4#xIMI9ihgil!-R();j224(5Frj+ delta 43 tcmbPspJUd2j)pCa=eZeqw*!e@HXt1%#5mC#NWYC`EYtIi$p8QV diff --git a/components/app-theme/src/scss/style/_ie_fixes.scss b/components/app-theme/src/scss/style/_ie_fixes.scss index 4fc93c1f60..858e8d5bdd 100644 --- a/components/app-theme/src/scss/style/_ie_fixes.scss +++ b/components/app-theme/src/scss/style/_ie_fixes.scss @@ -1,16 +1,16 @@ -@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { - - ring-chart div.ring-chart-chart .ring-chart-total > div { - height: 60px; - } - - #toast-container div[toast] { - .toast-body, .toast-icon { - flex-direction: column; - } - } - - .modal.detail-view .detail-view-content .detail-view-header { - max-height: $console-unit-space * 4; - } +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + + ring-chart div.ring-chart-chart .ring-chart-total > div { + height: 60px; + } + + #toast-container div[toast] { + .toast-body, .toast-icon { + flex-direction: column; + } + } + + .modal.detail-view .detail-view-content .detail-view-header { + max-height: $console-unit-space * 4; + } } \ No newline at end of file diff --git a/components/app-theme/src/scss/theme/components/_detail_view.scss b/components/app-theme/src/scss/theme/components/_detail_view.scss index 94a80aaedf..94b4735045 100644 --- a/components/app-theme/src/scss/theme/components/_detail_view.scss +++ b/components/app-theme/src/scss/theme/components/_detail_view.scss @@ -1,2 +1,2 @@ -$detail_view_thin_width: $console-unit-space * 10 + 324px; +$detail_view_thin_width: $console-unit-space * 10 + 324px; $detail_view_two_fields_width: $console-unit-space * 8 + 648px; \ No newline at end of file diff --git a/components/cloud-foundry/frontend/src/view/applications/list/_list_mobile.scss b/components/cloud-foundry/frontend/src/view/applications/list/_list_mobile.scss index 67e719ef95..271cbe6e1e 100644 --- a/components/cloud-foundry/frontend/src/view/applications/list/_list_mobile.scss +++ b/components/cloud-foundry/frontend/src/view/applications/list/_list_mobile.scss @@ -1,56 +1,56 @@ -.application-control-bar { - .application-main-controls { - .application-search-box { - flex: 0 1 auto; - width: calc(100% - 36px); - } - - .app-total-control { - margin-top: 4px; - .form-group { - border-color: transparent; - padding: 0; - height: auto; - - label { - font-size: 14px; - font-weight: 600; - margin-right: 4px; - } - .app-count { - display: inline-block; - .app-count-number, .app-count-reset { - display: inline-block; - font-size: 14px; - } - } - } - } - - .view-buttons { - position: absolute; - margin: 0; - right: $console-unit-space * 3; - margin-top: -15px; - } - - .application-options-control { - flex: 1 1 auto; - text-align: right; - font-size: 14px; - } - } - .applications-filter { - flex-direction: column; - - .application-cf-filters { - .form-group { - margin-right: 0; - max-width: 100%; - } - } - .apps-sorting { - max-width: 100%; - } - } -} +.application-control-bar { + .application-main-controls { + .application-search-box { + flex: 0 1 auto; + width: calc(100% - 36px); + } + + .app-total-control { + margin-top: 4px; + .form-group { + border-color: transparent; + padding: 0; + height: auto; + + label { + font-size: 14px; + font-weight: 600; + margin-right: 4px; + } + .app-count { + display: inline-block; + .app-count-number, .app-count-reset { + display: inline-block; + font-size: 14px; + } + } + } + } + + .view-buttons { + position: absolute; + margin: 0; + right: $console-unit-space * 3; + margin-top: -15px; + } + + .application-options-control { + flex: 1 1 auto; + text-align: right; + font-size: 14px; + } + } + .applications-filter { + flex-direction: column; + + .application-cf-filters { + .form-group { + margin-right: 0; + max-width: 100%; + } + } + .apps-sorting { + max-width: 100%; + } + } +} diff --git a/components/cloud-foundry/frontend/src/view/applications/workflows/add-app-workflow/add-app-dialog.html b/components/cloud-foundry/frontend/src/view/applications/workflows/add-app-workflow/add-app-dialog.html index efe32e60f2..81669c1237 100644 --- a/components/cloud-foundry/frontend/src/view/applications/workflows/add-app-workflow/add-app-dialog.html +++ b/components/cloud-foundry/frontend/src/view/applications/workflows/add-app-workflow/add-app-dialog.html @@ -1 +1 @@ - + diff --git a/components/cloud-foundry/frontend/src/view/applications/workflows/delete-app-workflow/delete-app-workflow.scss b/components/cloud-foundry/frontend/src/view/applications/workflows/delete-app-workflow/delete-app-workflow.scss index 71421a093d..f94d6cc1be 100644 --- a/components/cloud-foundry/frontend/src/view/applications/workflows/delete-app-workflow/delete-app-workflow.scss +++ b/components/cloud-foundry/frontend/src/view/applications/workflows/delete-app-workflow/delete-app-workflow.scss @@ -1,3 +1,3 @@ -delete-app-workflow { - height: 100%; -} +delete-app-workflow { + height: 100%; +} diff --git a/components/suse-branding/i18n/en_US/product.json b/components/suse-branding/i18n/en_US/product.json index 647b440870..d370976cc8 100644 --- a/components/suse-branding/i18n/en_US/product.json +++ b/components/suse-branding/i18n/en_US/product.json @@ -1,37 +1,37 @@ -{ - "product": { - "name": "SUSE Cloud Foundry", - "console": "SUSE Cloud Foundry Console", - "cf": "Cloud Foundry", - "ce": "Code Engine" - }, - "company": { - "name": "SUSE", - "terms": "Legal", - "terms.href": "https://www.suse.com/company/legal/", - "PRIVACY_HREF": "", - "PRODUCT_FAMILY_HREF": "", - "www-link": "http://www.suse.com" - }, - "about": { - "footer": { - "company.logo": "images/suse_logo_light_bg.png", - "company.terms-href": "", - "company.privacy-href": "" - } - }, - "navbar": { - "title": "@:product.name", - "logo": "svg:SUSE_Geeko.svg" - }, - "login": { - "title":"Sign in", - "console": "SUSE
Cloud Foundry Console" - }, - "landing": { - "footer": { - "company.terms-href": "", - "company.privacy-href": "" - } - } -} +{ + "product": { + "name": "SUSE Cloud Foundry", + "console": "SUSE Cloud Foundry Console", + "cf": "Cloud Foundry", + "ce": "Code Engine" + }, + "company": { + "name": "SUSE", + "terms": "Legal", + "terms.href": "https://www.suse.com/company/legal/", + "PRIVACY_HREF": "", + "PRODUCT_FAMILY_HREF": "", + "www-link": "http://www.suse.com" + }, + "about": { + "footer": { + "company.logo": "images/suse_logo_light_bg.png", + "company.terms-href": "", + "company.privacy-href": "" + } + }, + "navbar": { + "title": "@:product.name", + "logo": "svg:SUSE_Geeko.svg" + }, + "login": { + "title":"Sign in", + "console": "SUSE
Cloud Foundry Console" + }, + "landing": { + "footer": { + "company.terms-href": "", + "company.privacy-href": "" + } + } +} From 0dbba02d14e4ab70f9080be0ce806a727c16d029 Mon Sep 17 00:00:00 2001 From: Richard Cox Date: Tue, 14 Nov 2017 10:53:15 +0000 Subject: [PATCH 18/39] CI bump - e2e tests passing locally --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 9769702953..c0dee45ca8 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,6 @@ Stratos UI can be deployed in the following environments: 3. Docker, using docker compose. See [guide](deploy/docker-compose) 4. Docker, single container deploying all components. See [guide](deploy/all-in-one) - ## Quick Start To get started quickly, we recommend following the steps to deploy the Stratos UI Console as a Cloud Foundry Application - see [here](deploy/cloud-foundry). From 4738bbc0ecaa88a435d8bdbc07f3320a3ed5a575 Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Thu, 16 Nov 2017 11:25:50 +0000 Subject: [PATCH 19/39] Pin smart table to exact version - newer one breaks things for us (#1376) --- components/app-core/bower.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/app-core/bower.json b/components/app-core/bower.json index d3c713df3a..2b0376c053 100644 --- a/components/app-core/bower.json +++ b/components/app-core/bower.json @@ -14,7 +14,7 @@ "dependencies": { "angular": "~1.6.6", "angular-sanitize": "~1.6.6", - "angular-smart-table": "~2.1.8", + "angular-smart-table": "2.1.8", "angular-ui-router": "~0.4.2", "angular-translate": "~2.15.2", "angular-translate-loader-static-files": "~2.15.2", From 9bf3baca348de82ac410038c4139d23ccc5f71ce Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Fri, 17 Nov 2017 14:18:52 +0000 Subject: [PATCH 20/39] Fix build-images pipeline --- deploy/ci/build-images.yml | 3 +++ deploy/ci/tasks/build-images/build-dc.yml | 6 +++--- deploy/docker-compose/build.sh | 24 +++++++++++++++++------ deploy/docker-compose/docker-compose.yml | 15 ++++++++++---- 4 files changed, 35 insertions(+), 13 deletions(-) diff --git a/deploy/ci/build-images.yml b/deploy/ci/build-images.yml index a5301a8bdb..92b48264c7 100644 --- a/deploy/ci/build-images.yml +++ b/deploy/ci/build-images.yml @@ -55,6 +55,9 @@ jobs: privileged: true timeout: 30m file: stratos-ui/deploy/ci/tasks/build-images/build-dc.yml + params: + DOCKER_USERNAME: {{docker-username}} + DOCKER_PASSWORD: {{docker-password}} - name: build-aio-image public: true diff --git a/deploy/ci/tasks/build-images/build-dc.yml b/deploy/ci/tasks/build-images/build-dc.yml index 8e09934a37..23d4bf829e 100644 --- a/deploy/ci/tasks/build-images/build-dc.yml +++ b/deploy/ci/tasks/build-images/build-dc.yml @@ -17,8 +17,8 @@ run: - | source /docker-lib.sh start_docker - # Move dev-certs - ls . + docker login -u ${DOCKER_USERNAME} -p ${DOCKER_PASSWORD} mv dev-certs-output/dev-certs stratos-ui/dev-certs cd stratos-ui/deploy/docker-compose/ - ./build.sh -t test -r ci-registry.capbristol.com:5000 + ./build.sh -l -t test + diff --git a/deploy/docker-compose/build.sh b/deploy/docker-compose/build.sh index 4bade6ba07..03dfca96b4 100755 --- a/deploy/docker-compose/build.sh +++ b/deploy/docker-compose/build.sh @@ -8,7 +8,7 @@ DOCKER_ORG=splatform TAG=$(date -u +"%Y%m%dT%H%M%SZ") -while getopts ":ho:r:t:d" opt; do +while getopts ":ho:r:t:dl" opt; do case $opt in h) echo @@ -27,6 +27,9 @@ while getopts ":ho:r:t:d" opt; do t) TAG="${OPTARG}" ;; + l) + TAG_LATEST="true" + ;; d) BUILD_DOCKER_COMPOSE_IMAGES="true" ;; @@ -102,6 +105,10 @@ function buildAndPublishImage { echo Pushing Docker Image ${IMAGE_URL} docker push ${IMAGE_URL} + if [ "${TAG_LATEST}" = "true" ]; then + docker tag ${IMAGE_URL} ${DOCKER_REGISTRY}/${DOCKER_ORG}/${NAME}:latest + docker push ${DOCKER_REGISTRY}/${DOCKER_ORG}/${NAME}:latest + fi # Update values.yaml @@ -190,8 +197,7 @@ function buildGoose { # Build the postflight container echo echo "-- Build & publish the runtime container image for the postflight job" - buildAndPublishImage stratos-dc-goose ./db/Dockerfile.goose.dev ${STRATOS_UI_PATH}/deploy - rm -f ${STRATOS_UI_PATH}/goose + buildAndPublishImage stratos-dc-goose deploy/db/Dockerfile.goose.dev ${STRATOS_UI_PATH} } function buildUI { @@ -199,7 +205,6 @@ function buildUI { CURRENT_USER=$ echo echo "-- Provision the UI" - preloadImage splatform/stratos-nginx-base:opensuse docker run --rm \ ${RUN_ARGS} \ -v ${STRATOS_UI_PATH}:/usr/src/app \ @@ -208,7 +213,7 @@ function buildUI { -e USER_ID=$(id -u) \ -e GROUP_ID=$(id -g) \ -w /usr/src/app \ - splatform/stratos-nginx-base:opensuse \ + splatform/stratos-ui-build-base:opensuse \ /bin/bash ./deploy/provision.sh # Copy the artifacts from the above to the nginx container @@ -219,10 +224,16 @@ function buildUI { # Build and push an image based on the nginx container echo echo "-- Building/publishing the runtime container image for the Console web server" - preloadImage splatform/stratos-nginx-base:opensuse buildAndPublishImage stratos-dc-console Dockerfile.dc ${STRATOS_UI_PATH}/deploy/containers/nginx } +function buildMariaDb { + echo + echo "-- Building/publishing MariaDB" + # Download and retag image to save bandwidth + buildAndPublishImage stratos-dc-mariadb Dockerfile.mariadb ${STRATOS_UI_PATH}/deploy/db +} + # MAIN ------------------------------------------------------ # @@ -238,6 +249,7 @@ updateTagForRelease buildProxy buildGoose buildUI +buildMariaDb # Done echo diff --git a/deploy/docker-compose/docker-compose.yml b/deploy/docker-compose/docker-compose.yml index 76cc11a904..bc43ba30ee 100644 --- a/deploy/docker-compose/docker-compose.yml +++ b/deploy/docker-compose/docker-compose.yml @@ -1,13 +1,19 @@ version: '2' services: - postgres: - extends: - file: ../common.yml - service: postgres + mariadb: + image: splatform/stratos-dc-mariadb:latest + env_file: + ../mariadb.env goose: image: splatform/stratos-dc-goose:latest + env_file: + ../mariadb.env + links: + - mariadb:mariadb + ports: + - "3306:3306" proxy: image: splatform/stratos-dc-proxy:latest @@ -18,6 +24,7 @@ services: links: - goose:goose - uaa:uaa + - mariadb:mariadb nginx: image: splatform/stratos-dc-console:latest From f8feb44d4731ca4e166d88e0506dccd9e4e4eda4 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Mon, 20 Nov 2017 10:54:58 +0000 Subject: [PATCH 21/39] Fix unsafe casting for mysql Service (#1381) --- .../backend/datastore/database_cf_config.go | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/components/app-core/backend/datastore/database_cf_config.go b/components/app-core/backend/datastore/database_cf_config.go index 8f8b0f02b9..f34665eb7f 100644 --- a/components/app-core/backend/datastore/database_cf_config.go +++ b/components/app-core/backend/datastore/database_cf_config.go @@ -64,31 +64,24 @@ func findDatabaseConfig(vcapServices map[string][]VCAPService, db *DatabaseConfi // If we found a service, then use it if len(service.Name) > 0 { + dbCredentials := service.Credentials + db.Username = fmt.Sprintf("%v", dbCredentials["username"]) + db.Password = fmt.Sprintf("%v", dbCredentials["password"]) + db.Host = fmt.Sprintf("%v", dbCredentials["hostname"]) + db.SSLMode = "disable" + db.Port, _ = strconv.Atoi(fmt.Sprintf("%v", dbCredentials["port"])) if isPostgresService(service) { - dbCredentials := service.Credentials db.DatabaseProvider = "pgsql" - db.Username = fmt.Sprintf("%v", dbCredentials["username"]) - db.Password = fmt.Sprintf("%v", dbCredentials["password"]) db.Database = fmt.Sprintf("%v", dbCredentials["dbname"]) - db.Host = fmt.Sprintf("%v", dbCredentials["hostname"]) - db.Port, _ = strconv.Atoi(fmt.Sprintf("%v", dbCredentials["port"])) - db.SSLMode = "disable" log.Infof("Discovered Cloud Foundry postgres service and applied config") return true } else if isMySQLService(service) { - dbCredentials := service.Credentials db.DatabaseProvider = "mysql" - db.Username = fmt.Sprintf("%v", dbCredentials["username"]) - db.Password = fmt.Sprintf("%v", dbCredentials["password"]) db.Database = fmt.Sprintf("%v", dbCredentials["name"]) - db.Host = fmt.Sprintf("%v", dbCredentials["hostname"]) - db.Port = (int)(dbCredentials["port"].(float64)) - db.SSLMode = "disable" log.Infof("Discovered Cloud Foundry mysql service and applied config") return true } } - return false } From eaadf459a67d8f1e775fd198f261ec271f3a74ee Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Tue, 21 Nov 2017 10:47:09 +0000 Subject: [PATCH 22/39] Turn off secure Cookie for CF --- components/app-core/backend/main.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/components/app-core/backend/main.go b/components/app-core/backend/main.go index 4c6ac079e2..fd110b29cc 100644 --- a/components/app-core/backend/main.go +++ b/components/app-core/backend/main.go @@ -41,6 +41,7 @@ const ( SessionExpiry = 20 * 60 // Session cookies expire after 20 minutes UpgradeVolume = "UPGRADE_VOLUME" UpgradeLockFileName = "UPGRADE_LOCK_FILENAME" + VCapApplication = "VCAP_APPLICATION" ) var appVersion string @@ -119,7 +120,7 @@ func main() { }() log.Info("Proxy database connection pool created.") - // Initialize the Postgres backed session store for Gorilla sessions + // Initialize session store for Gorilla sessions sessionStore, err := initSessionStore(databaseConnectionPool, dc.DatabaseProvider, portalConfig, SessionExpiry) if err != nil { log.Fatal(err) @@ -276,6 +277,11 @@ func initSessionStore(db *sql.DB, databaseProvider string, pc interfaces.PortalC log.Debug("initSessionStore") sessionsTable := "sessions" + setSecureCookie := true + + if config.IsSet(VCapApplication) { + setSecureCookie = false + } // Store depends on the DB Type if databaseProvider == datastore.PGSQL { @@ -284,7 +290,7 @@ func initSessionStore(db *sql.DB, databaseProvider string, pc interfaces.PortalC // Setup cookie-store options sessionStore.Options.MaxAge = sessionExpiry sessionStore.Options.HttpOnly = true - sessionStore.Options.Secure = true + sessionStore.Options.Secure = setSecureCookie return sessionStore, err } // Store depends on the DB Type @@ -294,7 +300,7 @@ func initSessionStore(db *sql.DB, databaseProvider string, pc interfaces.PortalC // Setup cookie-store options sessionStore.Options.MaxAge = sessionExpiry sessionStore.Options.HttpOnly = true - sessionStore.Options.Secure = true + sessionStore.Options.Secure = setSecureCookie return sessionStore, err } @@ -303,7 +309,7 @@ func initSessionStore(db *sql.DB, databaseProvider string, pc interfaces.PortalC // Setup cookie-store options sessionStore.Options.MaxAge = sessionExpiry sessionStore.Options.HttpOnly = true - sessionStore.Options.Secure = true + sessionStore.Options.Secure = setSecureCookie return sessionStore, err } From 2ecc237bee5cab1c20e646fb70d5a7d6a8142e82 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Tue, 21 Nov 2017 11:52:55 +0000 Subject: [PATCH 23/39] Helm Chart: Remove `shared` mode --- .../console/templates/deployment.yaml | 6 - .../console/templates/post-delete.yaml | 34 ------ .../console/templates/post-install.yaml | 80 ------------- .../console/templates/pre-install.yaml | 113 +----------------- deploy/kubernetes/console/values.yaml | 1 - 5 files changed, 1 insertion(+), 233 deletions(-) delete mode 100644 deploy/kubernetes/console/templates/post-delete.yaml delete mode 100644 deploy/kubernetes/console/templates/post-install.yaml diff --git a/deploy/kubernetes/console/templates/deployment.yaml b/deploy/kubernetes/console/templates/deployment.yaml index 78b718b8e5..4aa37d5996 100644 --- a/deploy/kubernetes/console/templates/deployment.yaml +++ b/deploy/kubernetes/console/templates/deployment.yaml @@ -32,7 +32,6 @@ spec: - containerPort: 443 name: https protocol: TCP - {{- if .Values.noShared }} - image: {{.Values.dockerRegistry}}/{{.Values.dockerOrg}}/{{.Values.images.postflight}}:{{.Values.consoleVersion}} name: "postflight" env: @@ -83,7 +82,6 @@ spec: name: "{{ .Release.Name }}-upgrade-volume" - mountPath: /etc/secrets/ name: "{{ .Release.Name }}-secret" - {{- end }} - image: {{.Values.dockerRegistry}}/{{.Values.dockerOrg}}/{{.Values.images.proxy}}:{{.Values.consoleVersion}} name: proxy env: @@ -123,7 +121,6 @@ spec: value: "{{ .Release.Name }}-encryption-key-volume" - name: ENCRYPTION_KEY_FILENAME value: key - {{- if .Values.noShared }} {{- if .Values.consoleCert }} - name: CONSOLE_CERT value: | @@ -133,16 +130,13 @@ spec: - name: CONSOLE_CERT_KEY value: | {{ .Values.consoleCertKey | indent 12 }} - {{- end }} {{- end }} - name: CONSOLE_PROXY_CERT_PATH value: "/{{ .Release.Name }}-encryption-key-volume/console.crt" - name: CONSOLE_PROXY_CERT_KEY_PATH value: "/{{ .Release.Name }}-encryption-key-volume/console.key" - name: NO_SHARED_MODE - {{- if .Values.noShared }} value: "true" - {{- end }} - name: HTTP_PROXY {{- if .Values.httpProxy }} value: {{.Values.httpProxy}} diff --git a/deploy/kubernetes/console/templates/post-delete.yaml b/deploy/kubernetes/console/templates/post-delete.yaml deleted file mode 100644 index 7b8aae76e3..0000000000 --- a/deploy/kubernetes/console/templates/post-delete.yaml +++ /dev/null @@ -1,34 +0,0 @@ -{{- if not .Values.noShared }} ---- -apiVersion: batch/v1 -kind: Job -metadata: - name: "{{ .Release.Name }}-delete-job" - labels: - app: "{{ .Release.Name }}-post-delete" - annotations: - "helm.sh/hook": post-delete -spec: - template: - metadata: - name: "{{ .Release.Name }}-delete-job" - labels: - app: "{{ .Release.Name }}-post-delete" - spec: - restartPolicy: OnFailure - volumes: - - name: kubectl - hostPath: - path: /usr/bin/kubectl - - containers: - - name: post-install-job - image: "lachlanevenson/k8s-kubectl:v1.6.0" - volumeMounts: - - name: kubectl - mountPath: /kubectl - command: - - sh - - -c - - "kubectl delete pvc,job,po --namespace {{ .Release.Namespace }} -l app={{ .Release.Name }} && kubectl delete job --namespace {{ .Release.Namespace }} -l app={{ .Release.Name }}-post-delete" -{{- end}} \ No newline at end of file diff --git a/deploy/kubernetes/console/templates/post-install.yaml b/deploy/kubernetes/console/templates/post-install.yaml deleted file mode 100644 index 77dc5ce0fe..0000000000 --- a/deploy/kubernetes/console/templates/post-install.yaml +++ /dev/null @@ -1,80 +0,0 @@ -{{- if not .Values.noShared }} ---- -apiVersion: batch/v1 -kind: Job -metadata: - labels: - app: "{{ .Release.Name }}" - annotations: - "helm.sh/hook": post-install, post-upgrade - name: "{{ .Release.Name }}-postflight-job" - -spec: - template: - metadata: - labels: - app: "{{ .Release.Name }}" - job: postflight - spec: - containers: - - env: - - name: DB_HOST - value: "{{ .Release.Name }}-mariadb" - - name: DB_PORT - value: "3306" - - name: DB_ADMIN_USER - value: "{{ .Values.mariadb.adminUser }}" - - name: DB_ADMIN_PASSWORD - value: "{{ .Values.mariadb.mariadbRootPassword }}" - - name: DATABASE_PROVIDER - value: "{{ .Values.dbProvider }}" - - name: DB_PASSWORD - value: "{{ .Values.mariadb.mariadbPassword }}" - - name: DB_USER - value: "{{ .Values.mariadb.mariadbUser }}" - - name: DB_DATABASE_NAME - value: "{{ .Values.mariadb.mariadbDatabase }}" - - name: UPGRADE_VOLUME - value: "{{ .Release.Name }}-upgrade-volume" - - name: UPGRADE_LOCK_FILENAME - value: upgrade.lock - - name: HTTP_PROXY - {{- if .Values.httpProxy }} - value: {{.Values.httpProxy}} - {{- end }} - - name: HTTPS_PROXY - {{- if .Values.httpsProxy }} - value: {{.Values.httpsProxy}} - {{- end }} - - name: NO_PROXY - {{- if .Values.noProxy }} - value: {{.Values.noProxy}} - {{- end }} - - name: FTP_PROXY - {{- if .Values.ftpProxy }} - value: {{.Values.ftpProxy}} - {{- end }} - - name: SOCKS_PROXY - {{- if .Values.socksProxy }} - value: {{.Values.socksProxy}} - {{- end }} - image: {{.Values.dockerRegistry}}/{{.Values.dockerOrg}}/{{.Values.images.postflight}}:{{.Values.consoleVersion}} - name: "{{ .Release.Name }}-postflight-job" - volumeMounts: - - mountPath: "/{{ .Release.Name }}-upgrade-volume" - name: "{{ .Release.Name }}-upgrade-volume" - - mountPath: /etc/secrets/ - name: "{{ .Release.Name }}-secret" - restartPolicy: OnFailure - {{- if .Values.dockerRegistrySecret }} - imagePullSecrets: - - name: {{.Values.dockerRegistrySecret}} - {{- end }} - volumes: - - name: "{{ .Release.Name }}-upgrade-volume" - persistentVolumeClaim: - claimName: "{{ .Release.Name }}-upgrade-volume" - - name: "{{ .Release.Name }}-secret" - secret: - secretName: "{{ .Release.Name }}-secret" -{{- end }} diff --git a/deploy/kubernetes/console/templates/pre-install.yaml b/deploy/kubernetes/console/templates/pre-install.yaml index 68e08c5458..f074fa3b33 100644 --- a/deploy/kubernetes/console/templates/pre-install.yaml +++ b/deploy/kubernetes/console/templates/pre-install.yaml @@ -13,17 +13,9 @@ metadata: {{- else }} volume.alpha.kubernetes.io/storage-class: default {{- end }} - {{- if not .Values.noShared }} - "helm.sh/hook": pre-install - "helm.sh/hook-weight": "-1" - {{- end }} spec: accessModes: -{{- if .Values.noShared }} - ReadWriteOnce -{{- else }} - - ReadWriteMany -{{- end }} resources: requests: storage: 1Mi @@ -67,112 +59,9 @@ metadata: {{- else }} volume.alpha.kubernetes.io/storage-class: default {{- end }} - {{- if not .Values.noShared }} - "helm.sh/hook": pre-install - "helm.sh/hook-weight": "-1" - {{- end }} spec: accessModes: -{{- if .Values.noShared }} - ReadWriteOnce -{{- else }} - - ReadWriteMany -{{- end }} resources: requests: - storage: 1Mi - -{{- if not .Values.noShared }} ---- -apiVersion: batch/v1 -kind: Job -metadata: - labels: - app: "{{ .Release.Name }}" - name: "{{ .Release.Name }}-preflight-job" - annotations: - "helm.sh/hook": pre-install, pre-upgrade - "helm.sh/hook-weight": "0" -spec: - template: - metadata: - labels: - app: "{{ .Release.Name }}" - component: preflight - spec: - containers: - - env: - - name: UPGRADE_VOLUME - value: "{{ .Release.Name }}-upgrade-volume" - - name: UPGRADE_LOCK_FILENAME - value: upgrade.lock - - name: ENCRYPTION_KEY_VOLUME - value: "{{ .Release.Name }}-encryption-key-volume" - - name: CERTS_PATH - value: "{{ .Release.Name }}-encryption-key-volume" - - name: ENCRYPTION_KEY_FILENAME - value: key - {{- if .Values.consoleCert }} - - name: CONSOLE_CERT - value: | -{{ .Values.consoleCert | indent 12 }} - {{- end }} - {{- if .Values.consoleCertKey }} - - name: CONSOLE_CERT_KEY - value: | -{{ .Values.consoleCertKey | indent 12 }} - {{- end }} - image: {{.Values.dockerRegistry}}/{{.Values.dockerOrg}}/{{.Values.images.preflight}}:{{.Values.consoleVersion}} - name: "{{ .Release.Name }}-preflight-job" - volumeMounts: - - mountPath: "/{{ .Release.Name }}-upgrade-volume" - name: "{{ .Release.Name }}-upgrade-volume" - - mountPath: "/{{ .Release.Name }}-encryption-key-volume" - name: "{{ .Release.Name }}-encryption-key-volume" - restartPolicy: Never - {{- if .Values.dockerRegistrySecret }} - imagePullSecrets: - - nane: {{.Values.dockerRegistrySecret}} - {{- end }} - volumes: - - name: "{{ .Release.Name }}-upgrade-volume" - persistentVolumeClaim: - claimName: "{{ .Release.Name }}-upgrade-volume" - - name: "{{ .Release.Name }}-encryption-key-volume" - persistentVolumeClaim: - claimName: "{{ .Release.Name }}-encryption-key-volume" ---- -apiVersion: batch/v1 -kind: Job -metadata: - name: "{{ .Release.Name }}-upgrade-job" - labels: - app: "{{ .Release.Name }}" - annotations: - "helm.sh/hook": pre-upgrade - "helm.sh/hook-weight": "-5" -spec: - template: - metadata: - name: "{{ .Release.Name }}-upgrade-job" - labels: - app: "{{ .Release.Name }}" - component: upgrade-job - spec: - restartPolicy: OnFailure - volumes: - - name: kubectl - hostPath: - path: /usr/bin/kubectl - - containers: - - name: post-install-job - image: "lachlanevenson/k8s-kubectl:v1.6.0" - volumeMounts: - - name: kubectl - mountPath: /kubectl - command: - - sh - - -c - - "kubectl delete job --namespace {{ .Release.Namespace }} -l app={{ .Release.Name }}" -{{- end }} + storage: 1Mi \ No newline at end of file diff --git a/deploy/kubernetes/console/values.yaml b/deploy/kubernetes/console/values.yaml index 4bd912d32f..5b61f52b5a 100644 --- a/deploy/kubernetes/console/values.yaml +++ b/deploy/kubernetes/console/values.yaml @@ -17,7 +17,6 @@ useLb: false console: port: 443 # externalIP: 127.0.0.1 -noShared: true images: console: stratos-console proxy: stratos-proxy From 6de695cfccc045e78e681131e2cf359bd1b76681 Mon Sep 17 00:00:00 2001 From: Richard Cox Date: Tue, 21 Nov 2017 15:30:15 +0000 Subject: [PATCH 24/39] Imporve the accuracy of the bytes filter - For large disparity used / total bytes the used value would show 0 - Now, for large disparities show smaller units for used instead of same units as total Previously... 0 / 1 GB, Now... 20MB / 1GB --- .../src/filters/math/bytes.filter.js | 19 +++++++++++++++++-- .../instance-selector/instance-selector.html | 2 +- .../application/summary/summary.html | 2 +- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/components/app-framework/src/filters/math/bytes.filter.js b/components/app-framework/src/filters/math/bytes.filter.js index de3fc1ee4e..50af182dee 100644 --- a/components/app-framework/src/filters/math/bytes.filter.js +++ b/components/app-framework/src/filters/math/bytes.filter.js @@ -6,7 +6,7 @@ // Private utility functions function getDefaultPrecision(precision) { if (_.isUndefined(precision)) { - precision = 1; + precision = 0; } return precision; } @@ -50,12 +50,27 @@ total === 0) { return '-'; } + + // Precision usedPrecision = getDefaultPrecision(usedPrecision); totalPrecision = _.isUndefined(totalPrecision) ? 0 : totalPrecision; + + // Units var number = getNumber(total); + var usedNumber = null; + + // Values to display var totalDisplay = getReducedValue(total, number, totalPrecision); var usedDisplay = getReducedValue(used, number, usedPrecision); - return usedDisplay + ' / ' + totalDisplay + ' ' + units[number]; + + // Is the used value too small to be accurate (for instance 20M consumed of 1GB would show as 0 of 1GB)? + if (usedPrecision === 0 && usedDisplay < 1) { + // Use the units relative to the used value instead of total (20MB of 1GB instead of 0 of 1GB) + usedNumber = getNumber(used); + usedDisplay = getReducedValue(used, usedNumber, usedPrecision); + } + + return usedDisplay + (usedNumber ? ' ' + units[usedNumber] : '') + ' / ' + totalDisplay + ' ' + units[number]; }; } })(); diff --git a/components/cf-app-ssh/frontend/src/view/instance-selector/instance-selector.html b/components/cf-app-ssh/frontend/src/view/instance-selector/instance-selector.html index d73d85a4d4..1d0908b9d2 100644 --- a/components/cf-app-ssh/frontend/src/view/instance-selector/instance-selector.html +++ b/components/cf-app-ssh/frontend/src/view/instance-selector/instance-selector.html @@ -21,7 +21,7 @@

cf.app-ssh.select-instance

{{ instance.state }} + value-text="{{ [instance.stats.usage.mem, instance.stats.mem_quota] | usageBytes }}"/> {{ instance.state }} + value-text="{{ [instance.stats.usage.mem, instance.stats.mem_quota] | usageBytes }}"/> Date: Tue, 21 Nov 2017 15:57:42 +0000 Subject: [PATCH 25/39] Helm Chart: Create Image pull secret for secure repositories --- deploy/kubernetes/README.md | 17 +++++++++++++++++ .../kubernetes/console/templates/__helpers.tpl | 7 +++++++ .../console/templates/deployment.yaml | 4 ++-- .../console/templates/post-install.yaml | 2 +- .../console/templates/pre-install.yaml | 2 +- deploy/kubernetes/console/templates/secrets.yml | 14 +++++++++++++- deploy/kubernetes/console/values.yaml | 10 ++++++++-- 7 files changed, 49 insertions(+), 7 deletions(-) create mode 100644 deploy/kubernetes/console/templates/__helpers.tpl diff --git a/deploy/kubernetes/README.md b/deploy/kubernetes/README.md index 2c1fe5a0f7..3c8eb8732b 100644 --- a/deploy/kubernetes/README.md +++ b/deploy/kubernetes/README.md @@ -21,6 +21,7 @@ The following guide details how to deploy the Stratos UI Console in Kubernetes. + [Providing Storage Class override](#providing-storage-class-override) + [Create a default Storage Class](#create-a-default-storage-class) * [Deploying Stratos UI with your own TLS certificates](#deploying-stratos-ui-with-your-own-tls-certificates) + * [Using with a Secure Image Repostiory](#using-with-a-secure-image-repository) ## Requirements @@ -301,3 +302,19 @@ Assuming the above is stored in a file called `override-ssl.yaml`, install the c ``` helm install -f override-ssl.yaml stratos-ui/console --namespace console ``` + +### Using with a Secure Image Repository +If you are deploying the helm chart against images that are hosted in a secure image repository provide the following parameters ( store the following to a file called `docker-registry-secrets.yaml`). + + +``` +dockerRegistry: mysecure-dockerregistry.io +dockerRegistryUserName: john.appleseed +dockerRegistryPassword: sup3rs3cur3 +dockerRegistryEmail: john.appleseed@foobar.com +``` + +Deploy the chart with the provided parameters: +``` +helm install -f docker-registry-secrets.yaml stratos-ui/console +``` \ No newline at end of file diff --git a/deploy/kubernetes/console/templates/__helpers.tpl b/deploy/kubernetes/console/templates/__helpers.tpl new file mode 100644 index 0000000000..15f9e6e33c --- /dev/null +++ b/deploy/kubernetes/console/templates/__helpers.tpl @@ -0,0 +1,7 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Image pull secret +*/}} +{{- define "imagePullSecret" }} +{{- printf "{\"%s\":{\"username\": \"%s\",\"password\":\"%s\",\"email\":\"%s\",\"auth\": \"%s\"}}" .Values.dockerRegistry .Values.dockerRegistryUserName .Values.dockerRegistryPassword .Values.dockerRegistryEmail (printf "%s:%s" .Values.dockerRegistryUserName .Values.dockerRegistryPassword | b64enc) | b64enc }} +{{- end }} \ No newline at end of file diff --git a/deploy/kubernetes/console/templates/deployment.yaml b/deploy/kubernetes/console/templates/deployment.yaml index 78b718b8e5..5d16f4a0c2 100644 --- a/deploy/kubernetes/console/templates/deployment.yaml +++ b/deploy/kubernetes/console/templates/deployment.yaml @@ -200,7 +200,7 @@ spec: - mountPath: /etc/secrets/ name: "{{ .Release.Name }}-secret" readOnly: true - {{- if .Values.dockerRegistrySecret }} + {{- if and .Values.dockerRegistryUserName .Values.dockerRegistryPassword }} imagePullSecrets: - name: {{.Values.dockerRegistrySecret}} {{- end }} @@ -274,7 +274,7 @@ spec: volumeMounts: - name: data mountPath: /var/lib/mysql - {{- if .Values.dockerRegistrySecret }} + {{- if and .Values.dockerRegistryUserName .Values.dockerRegistryPassword }} imagePullSecrets: - name: {{.Values.dockerRegistrySecret}} {{- end }} diff --git a/deploy/kubernetes/console/templates/post-install.yaml b/deploy/kubernetes/console/templates/post-install.yaml index 77dc5ce0fe..79d81b9701 100644 --- a/deploy/kubernetes/console/templates/post-install.yaml +++ b/deploy/kubernetes/console/templates/post-install.yaml @@ -66,7 +66,7 @@ spec: - mountPath: /etc/secrets/ name: "{{ .Release.Name }}-secret" restartPolicy: OnFailure - {{- if .Values.dockerRegistrySecret }} + {{- if and .Values.dockerRegistryUserName .Values.dockerRegistryPassword }} imagePullSecrets: - name: {{.Values.dockerRegistrySecret}} {{- end }} diff --git a/deploy/kubernetes/console/templates/pre-install.yaml b/deploy/kubernetes/console/templates/pre-install.yaml index 68e08c5458..1fcde72490 100644 --- a/deploy/kubernetes/console/templates/pre-install.yaml +++ b/deploy/kubernetes/console/templates/pre-install.yaml @@ -130,7 +130,7 @@ spec: - mountPath: "/{{ .Release.Name }}-encryption-key-volume" name: "{{ .Release.Name }}-encryption-key-volume" restartPolicy: Never - {{- if .Values.dockerRegistrySecret }} + {{- if and .Values.dockerRegistryUserName .Values.dockerRegistryPassword }} imagePullSecrets: - nane: {{.Values.dockerRegistrySecret}} {{- end }} diff --git a/deploy/kubernetes/console/templates/secrets.yml b/deploy/kubernetes/console/templates/secrets.yml index ec773654d8..cd3ab12638 100644 --- a/deploy/kubernetes/console/templates/secrets.yml +++ b/deploy/kubernetes/console/templates/secrets.yml @@ -10,7 +10,7 @@ data: stolon: {{ .Values.dbPassword | b64enc }} db-password: {{ .Values.mariadb.mariadbPassword | b64enc }} --- -{{- if .Values.mariadb.usePassword -}} +{{- if .Values.mariadb.usePassword }} apiVersion: v1 kind: Secret metadata: @@ -29,4 +29,16 @@ data: {{- else }} mariadb-password: {{ randAlphaNum 10 | b64enc | quote }} {{- end }} +{{- end}} +{{- if and .Values.dockerRegistryUserName .Values.dockerRegistryPassword }} +--- +apiVersion: v1 +kind: Secret +type: kubernetes.io/dockercfg +metadata: + name: regsecret + labels: + app: "{{ .Release.Name }}" +data: + .dockercfg: {{ template "imagePullSecret" . }} {{- end}} \ No newline at end of file diff --git a/deploy/kubernetes/console/values.yaml b/deploy/kubernetes/console/values.yaml index 4bd912d32f..785e93621c 100644 --- a/deploy/kubernetes/console/values.yaml +++ b/deploy/kubernetes/console/values.yaml @@ -4,6 +4,13 @@ consoleVersion: latest dockerOrg: splatform # Docker Registry where images are available dockerRegistry: docker.io +# Username in case Docker registry is secured +dockerRegistryUserName: +# Password Docker registry is secured +dockerRegistryPassword: +# Email Docker registry is secured +dockerRegistryEmail: +dockerRegistrySecret: regsecret # Specify default DB password dbPassword: changeme dbProvider: mysql @@ -73,5 +80,4 @@ env: kube: external_console_https_port: 8443 storage_class: - persistent: -dockerRegistrySecret: + persistent: \ No newline at end of file From 43024a09d0ed9de8507cd93c06bae0fa30b461a3 Mon Sep 17 00:00:00 2001 From: Richard Cox Date: Tue, 21 Nov 2017 16:02:45 +0000 Subject: [PATCH 26/39] Test fixes, exclude backend from frontend linting --- build/gulp.config.js | 1 + .../src/filters/math/bytes.filter.js | 2 +- .../test/unit/filters/bytes.filter.spec.js | 32 +++++++++++-------- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/build/gulp.config.js b/build/gulp.config.js index 0e12d6e45b..073b50c706 100644 --- a/build/gulp.config.js +++ b/build/gulp.config.js @@ -79,6 +79,7 @@ // Files that should be run through the linter lintFiles: [ paths.components + '**/*.js', + '!' + paths.components + '**/backend/**', '!' + paths.components + '**/*.mock.js', paths.build + '*.js', paths.e2e + '**/*.js' diff --git a/components/app-framework/src/filters/math/bytes.filter.js b/components/app-framework/src/filters/math/bytes.filter.js index 50af182dee..2041ec44a5 100644 --- a/components/app-framework/src/filters/math/bytes.filter.js +++ b/components/app-framework/src/filters/math/bytes.filter.js @@ -64,7 +64,7 @@ var usedDisplay = getReducedValue(used, number, usedPrecision); // Is the used value too small to be accurate (for instance 20M consumed of 1GB would show as 0 of 1GB)? - if (usedPrecision === 0 && usedDisplay < 1) { + if (used !== 0 && usedPrecision === 0 && usedDisplay < 1) { // Use the units relative to the used value instead of total (20MB of 1GB instead of 0 of 1GB) usedNumber = getNumber(used); usedDisplay = getReducedValue(used, usedNumber, usedPrecision); diff --git a/components/app-framework/test/unit/filters/bytes.filter.spec.js b/components/app-framework/test/unit/filters/bytes.filter.spec.js index 887199cd58..97cb75f0e4 100644 --- a/components/app-framework/test/unit/filters/bytes.filter.spec.js +++ b/components/app-framework/test/unit/filters/bytes.filter.spec.js @@ -10,7 +10,7 @@ })); it('should return a unit of bytes for a number < 1024', function () { - expect(bytesFilter(42)).toBe('42.0 bytes'); + expect(bytesFilter(42)).toBe('42 bytes'); }); it('should return a whole-number of bytes if precision is 0', function () { @@ -26,27 +26,27 @@ }); it('should return a unit of kB for a number between 1024 and 1024^2', function () { - expect(bytesFilter(4096)).toBe('4.0 kB'); + expect(bytesFilter(4096, 1)).toBe('4.0 kB'); }); it('should return a unit of MB for a number between 1024^2 and 1024^3', function () { - expect(bytesFilter(5.5 * 1024 * 1024)).toBe('5.5 MB'); + expect(bytesFilter(5.5 * 1024 * 1024, 1)).toBe('5.5 MB'); }); it('should return a unit of GB for a number between 1024^3 and 1024^4', function () { - expect(bytesFilter(6.6 * 1024 * 1024 * 1024)).toBe('6.6 GB'); + expect(bytesFilter(6.6 * 1024 * 1024 * 1024, 1)).toBe('6.6 GB'); }); it('should return a unit of TB for a number between 1024^4 and 1024^5', function () { - expect(bytesFilter(7.7 * Math.pow(1024, 4))).toBe('7.7 TB'); + expect(bytesFilter(7.7 * Math.pow(1024, 4), 1)).toBe('7.7 TB'); }); it('should return a unit of PB for a number between 1024^5 and 1024^6', function () { - expect(bytesFilter(8.8 * Math.pow(1024, 5))).toBe('8.8 PB'); + expect(bytesFilter(8.8 * Math.pow(1024, 5), 1)).toBe('8.8 PB'); }); it('should return 0 bytes for a number of 0', function () { - expect(bytesFilter(0)).toBe('0.0 bytes'); + expect(bytesFilter(0)).toBe('0 bytes'); }); it('should return "-" for non-numeric numbers', function () { @@ -67,7 +67,7 @@ }); it('should return values with the correct number of digits', function () { - expect(usageBytesFilter([1, 42])).toBe('1.0 / 42 bytes'); + expect(usageBytesFilter([1, 42])).toBe('1 / 42 bytes'); }); it('should display the correct precision for the total if specified', function () { @@ -79,11 +79,11 @@ }); it('should select the unit based on the total', function () { - expect(usageBytesFilter([512, 4096])).toBe('0.5 / 4 kB'); + expect(usageBytesFilter([512, 4096], 1)).toBe('0.5 / 4 kB'); }); it('should handle a used value of zero', function () { - expect(usageBytesFilter([0, 4096])).toBe('0.0 / 4 kB'); + expect(usageBytesFilter([0, 4096])).toBe('0 / 4 kB'); }); it('should return "-" for any non-numeric value', function () { @@ -96,19 +96,23 @@ }); it('should display a unit of MB for a total between 1024^2 and 1024^3', function () { - expect(usageBytesFilter([2 * Math.pow(1024, 2), 40 * Math.pow(1024, 2)])).toBe('2.0 / 40 MB'); + expect(usageBytesFilter([2 * Math.pow(1024, 2), 40 * Math.pow(1024, 2)])).toBe('2 / 40 MB'); }); it('should display a unit of GB for a total between 1024^3 and 1024^4', function () { - expect(usageBytesFilter([2 * Math.pow(1024, 3), 40 * Math.pow(1024, 3)])).toBe('2.0 / 40 GB'); + expect(usageBytesFilter([2 * Math.pow(1024, 3), 40 * Math.pow(1024, 3)])).toBe('2 / 40 GB'); }); it('should display a unit of TB for a total between 1024^4 and 1024^5', function () { - expect(usageBytesFilter([2 * Math.pow(1024, 4), 40 * Math.pow(1024, 4)])).toBe('2.0 / 40 TB'); + expect(usageBytesFilter([2 * Math.pow(1024, 4), 40 * Math.pow(1024, 4)])).toBe('2 / 40 TB'); }); it('should display a unit of PB for a total between 1024^5 and 1024^6', function () { - expect(usageBytesFilter([2 * Math.pow(1024, 5), 40 * Math.pow(1024, 5)])).toBe('2.0 / 40 PB'); + expect(usageBytesFilter([2 * Math.pow(1024, 5), 40 * Math.pow(1024, 5)])).toBe('2 / 40 PB'); + }); + + it('should display a unit of used different to the total', function () { + expect(usageBytesFilter([21934080, 1073741824])).toBe('21 MB / 1 GB'); }); }); From 64e4fb3154f7475cd6773890dcaef2ef99243afa Mon Sep 17 00:00:00 2001 From: Richard Cox Date: Tue, 21 Nov 2017 16:22:40 +0000 Subject: [PATCH 27/39] Updatated issue template and added pull request template --- docs/issue_template.md | 14 ++++++++++++++ docs/pull_request_template.md | 28 ++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 docs/pull_request_template.md diff --git a/docs/issue_template.md b/docs/issue_template.md index f496c5052f..29231c2d56 100644 --- a/docs/issue_template.md +++ b/docs/issue_template.md @@ -1,4 +1,6 @@ + ### Deployment type +(select the type below by replacing the space with an `x`) * [ ] Cloud Foundry Application (cf push) * [ ] Kubernetes, using a helm chart * [ ] Docker, using docker compose @@ -15,3 +17,15 @@ ``` Insert log here ``` + + + +### Detailed Description + + +### Context + + + +### Possible Implementation + \ No newline at end of file diff --git a/docs/pull_request_template.md b/docs/pull_request_template.md new file mode 100644 index 0000000000..e651b7af6d --- /dev/null +++ b/docs/pull_request_template.md @@ -0,0 +1,28 @@ + + +## Description + + +## Motivation and Context + + + +## How Has This Been Tested? + + + + +## Types of changes + +- [ ] Bug fix (non-breaking change which fixes an issue) +- [ ] Docs update +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) + +## Checklist: + + +- [ ] My code follows the code style of this project. +- [ ] My change requires a change to the documentation. +- [ ] I have updated the documentation accordingly. +- [ ] I have followed the guidelines in CONTRIBUTING.md, including the required formatting of the commit message \ No newline at end of file From bceaeb90af22c4af350650f0d1c30a88466a2a96 Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Wed, 22 Nov 2017 11:43:40 +0000 Subject: [PATCH 28/39] Fix for log stream testing failing it a different timezone is used --- .../applications/application/cf-log-viewer.spec.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/components/cloud-foundry/frontend/test/unit/view/applications/application/cf-log-viewer.spec.js b/components/cloud-foundry/frontend/test/unit/view/applications/application/cf-log-viewer.spec.js index d925907489..39b02284d9 100644 --- a/components/cloud-foundry/frontend/test/unit/view/applications/application/cf-log-viewer.spec.js +++ b/components/cloud-foundry/frontend/test/unit/view/applications/application/cf-log-viewer.spec.js @@ -36,6 +36,11 @@ expect(logViewerCtrl.webSocketUrl).toEqual(webSocketUrl); }); + function formatTimeStamp(epoch) { + var d = moment(Math.round(epoch / 1000000)); + return d.format('HH:mm:ss.SSS'); + } + it('should correctly parse APP messages', function () { var yellow = '\x1B[1;32m'; var reset = '\x1B[0m'; @@ -44,14 +49,13 @@ var filtered = logViewerCtrl.jsonFilter(jsonMessage); // Message date should be blue - var expected = '17:00:58.341: '; + var expected = formatTimeStamp(1477324858341484766) + ': '; // Message source should be yellow expected += yellow + '[APP.0]' + reset; // Message should be default colour expected += ' Party car character suddenly chair large party meat\n'; - expect(filtered).toBe(expected); }); @@ -63,7 +67,7 @@ var filtered = logViewerCtrl.jsonFilter(jsonMessage); // Message date should be blue - var expected = '17:18:13.419: '; + var expected = formatTimeStamp(1477325893418618476) + ': '; // Message source should be red expected += yellow + '[CELL.0]' + reset; From c61ec4bb6f4b5a1c0daacb8bff332b3132f3ca8a Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Wed, 22 Nov 2017 11:54:35 +0000 Subject: [PATCH 29/39] Use docker reg secret value --- deploy/kubernetes/console/templates/secrets.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/kubernetes/console/templates/secrets.yml b/deploy/kubernetes/console/templates/secrets.yml index cd3ab12638..5b42bb7e00 100644 --- a/deploy/kubernetes/console/templates/secrets.yml +++ b/deploy/kubernetes/console/templates/secrets.yml @@ -36,9 +36,9 @@ apiVersion: v1 kind: Secret type: kubernetes.io/dockercfg metadata: - name: regsecret + name: {{ .Values.dockerRegistrySecret }} labels: app: "{{ .Release.Name }}" data: .dockercfg: {{ template "imagePullSecret" . }} -{{- end}} \ No newline at end of file +{{- end}} From cfb112fa0c59f100057da1f7adc78155f225166d Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Tue, 21 Nov 2017 11:52:55 +0000 Subject: [PATCH 30/39] Helm Chart: Remove `shared` mode --- .../console/templates/deployment.yaml | 6 - .../console/templates/post-delete.yaml | 34 ------ .../console/templates/post-install.yaml | 80 ------------- .../console/templates/pre-install.yaml | 111 ------------------ deploy/kubernetes/console/values.yaml | 1 - 5 files changed, 232 deletions(-) delete mode 100644 deploy/kubernetes/console/templates/post-delete.yaml delete mode 100644 deploy/kubernetes/console/templates/post-install.yaml diff --git a/deploy/kubernetes/console/templates/deployment.yaml b/deploy/kubernetes/console/templates/deployment.yaml index 5d16f4a0c2..01c97dab7f 100644 --- a/deploy/kubernetes/console/templates/deployment.yaml +++ b/deploy/kubernetes/console/templates/deployment.yaml @@ -32,7 +32,6 @@ spec: - containerPort: 443 name: https protocol: TCP - {{- if .Values.noShared }} - image: {{.Values.dockerRegistry}}/{{.Values.dockerOrg}}/{{.Values.images.postflight}}:{{.Values.consoleVersion}} name: "postflight" env: @@ -83,7 +82,6 @@ spec: name: "{{ .Release.Name }}-upgrade-volume" - mountPath: /etc/secrets/ name: "{{ .Release.Name }}-secret" - {{- end }} - image: {{.Values.dockerRegistry}}/{{.Values.dockerOrg}}/{{.Values.images.proxy}}:{{.Values.consoleVersion}} name: proxy env: @@ -123,7 +121,6 @@ spec: value: "{{ .Release.Name }}-encryption-key-volume" - name: ENCRYPTION_KEY_FILENAME value: key - {{- if .Values.noShared }} {{- if .Values.consoleCert }} - name: CONSOLE_CERT value: | @@ -133,16 +130,13 @@ spec: - name: CONSOLE_CERT_KEY value: | {{ .Values.consoleCertKey | indent 12 }} - {{- end }} {{- end }} - name: CONSOLE_PROXY_CERT_PATH value: "/{{ .Release.Name }}-encryption-key-volume/console.crt" - name: CONSOLE_PROXY_CERT_KEY_PATH value: "/{{ .Release.Name }}-encryption-key-volume/console.key" - name: NO_SHARED_MODE - {{- if .Values.noShared }} value: "true" - {{- end }} - name: HTTP_PROXY {{- if .Values.httpProxy }} value: {{.Values.httpProxy}} diff --git a/deploy/kubernetes/console/templates/post-delete.yaml b/deploy/kubernetes/console/templates/post-delete.yaml deleted file mode 100644 index 7b8aae76e3..0000000000 --- a/deploy/kubernetes/console/templates/post-delete.yaml +++ /dev/null @@ -1,34 +0,0 @@ -{{- if not .Values.noShared }} ---- -apiVersion: batch/v1 -kind: Job -metadata: - name: "{{ .Release.Name }}-delete-job" - labels: - app: "{{ .Release.Name }}-post-delete" - annotations: - "helm.sh/hook": post-delete -spec: - template: - metadata: - name: "{{ .Release.Name }}-delete-job" - labels: - app: "{{ .Release.Name }}-post-delete" - spec: - restartPolicy: OnFailure - volumes: - - name: kubectl - hostPath: - path: /usr/bin/kubectl - - containers: - - name: post-install-job - image: "lachlanevenson/k8s-kubectl:v1.6.0" - volumeMounts: - - name: kubectl - mountPath: /kubectl - command: - - sh - - -c - - "kubectl delete pvc,job,po --namespace {{ .Release.Namespace }} -l app={{ .Release.Name }} && kubectl delete job --namespace {{ .Release.Namespace }} -l app={{ .Release.Name }}-post-delete" -{{- end}} \ No newline at end of file diff --git a/deploy/kubernetes/console/templates/post-install.yaml b/deploy/kubernetes/console/templates/post-install.yaml deleted file mode 100644 index 79d81b9701..0000000000 --- a/deploy/kubernetes/console/templates/post-install.yaml +++ /dev/null @@ -1,80 +0,0 @@ -{{- if not .Values.noShared }} ---- -apiVersion: batch/v1 -kind: Job -metadata: - labels: - app: "{{ .Release.Name }}" - annotations: - "helm.sh/hook": post-install, post-upgrade - name: "{{ .Release.Name }}-postflight-job" - -spec: - template: - metadata: - labels: - app: "{{ .Release.Name }}" - job: postflight - spec: - containers: - - env: - - name: DB_HOST - value: "{{ .Release.Name }}-mariadb" - - name: DB_PORT - value: "3306" - - name: DB_ADMIN_USER - value: "{{ .Values.mariadb.adminUser }}" - - name: DB_ADMIN_PASSWORD - value: "{{ .Values.mariadb.mariadbRootPassword }}" - - name: DATABASE_PROVIDER - value: "{{ .Values.dbProvider }}" - - name: DB_PASSWORD - value: "{{ .Values.mariadb.mariadbPassword }}" - - name: DB_USER - value: "{{ .Values.mariadb.mariadbUser }}" - - name: DB_DATABASE_NAME - value: "{{ .Values.mariadb.mariadbDatabase }}" - - name: UPGRADE_VOLUME - value: "{{ .Release.Name }}-upgrade-volume" - - name: UPGRADE_LOCK_FILENAME - value: upgrade.lock - - name: HTTP_PROXY - {{- if .Values.httpProxy }} - value: {{.Values.httpProxy}} - {{- end }} - - name: HTTPS_PROXY - {{- if .Values.httpsProxy }} - value: {{.Values.httpsProxy}} - {{- end }} - - name: NO_PROXY - {{- if .Values.noProxy }} - value: {{.Values.noProxy}} - {{- end }} - - name: FTP_PROXY - {{- if .Values.ftpProxy }} - value: {{.Values.ftpProxy}} - {{- end }} - - name: SOCKS_PROXY - {{- if .Values.socksProxy }} - value: {{.Values.socksProxy}} - {{- end }} - image: {{.Values.dockerRegistry}}/{{.Values.dockerOrg}}/{{.Values.images.postflight}}:{{.Values.consoleVersion}} - name: "{{ .Release.Name }}-postflight-job" - volumeMounts: - - mountPath: "/{{ .Release.Name }}-upgrade-volume" - name: "{{ .Release.Name }}-upgrade-volume" - - mountPath: /etc/secrets/ - name: "{{ .Release.Name }}-secret" - restartPolicy: OnFailure - {{- if and .Values.dockerRegistryUserName .Values.dockerRegistryPassword }} - imagePullSecrets: - - name: {{.Values.dockerRegistrySecret}} - {{- end }} - volumes: - - name: "{{ .Release.Name }}-upgrade-volume" - persistentVolumeClaim: - claimName: "{{ .Release.Name }}-upgrade-volume" - - name: "{{ .Release.Name }}-secret" - secret: - secretName: "{{ .Release.Name }}-secret" -{{- end }} diff --git a/deploy/kubernetes/console/templates/pre-install.yaml b/deploy/kubernetes/console/templates/pre-install.yaml index 1fcde72490..69b951763b 100644 --- a/deploy/kubernetes/console/templates/pre-install.yaml +++ b/deploy/kubernetes/console/templates/pre-install.yaml @@ -13,17 +13,9 @@ metadata: {{- else }} volume.alpha.kubernetes.io/storage-class: default {{- end }} - {{- if not .Values.noShared }} - "helm.sh/hook": pre-install - "helm.sh/hook-weight": "-1" - {{- end }} spec: accessModes: -{{- if .Values.noShared }} - ReadWriteOnce -{{- else }} - - ReadWriteMany -{{- end }} resources: requests: storage: 1Mi @@ -67,112 +59,9 @@ metadata: {{- else }} volume.alpha.kubernetes.io/storage-class: default {{- end }} - {{- if not .Values.noShared }} - "helm.sh/hook": pre-install - "helm.sh/hook-weight": "-1" - {{- end }} spec: accessModes: -{{- if .Values.noShared }} - ReadWriteOnce -{{- else }} - - ReadWriteMany -{{- end }} resources: requests: storage: 1Mi - -{{- if not .Values.noShared }} ---- -apiVersion: batch/v1 -kind: Job -metadata: - labels: - app: "{{ .Release.Name }}" - name: "{{ .Release.Name }}-preflight-job" - annotations: - "helm.sh/hook": pre-install, pre-upgrade - "helm.sh/hook-weight": "0" -spec: - template: - metadata: - labels: - app: "{{ .Release.Name }}" - component: preflight - spec: - containers: - - env: - - name: UPGRADE_VOLUME - value: "{{ .Release.Name }}-upgrade-volume" - - name: UPGRADE_LOCK_FILENAME - value: upgrade.lock - - name: ENCRYPTION_KEY_VOLUME - value: "{{ .Release.Name }}-encryption-key-volume" - - name: CERTS_PATH - value: "{{ .Release.Name }}-encryption-key-volume" - - name: ENCRYPTION_KEY_FILENAME - value: key - {{- if .Values.consoleCert }} - - name: CONSOLE_CERT - value: | -{{ .Values.consoleCert | indent 12 }} - {{- end }} - {{- if .Values.consoleCertKey }} - - name: CONSOLE_CERT_KEY - value: | -{{ .Values.consoleCertKey | indent 12 }} - {{- end }} - image: {{.Values.dockerRegistry}}/{{.Values.dockerOrg}}/{{.Values.images.preflight}}:{{.Values.consoleVersion}} - name: "{{ .Release.Name }}-preflight-job" - volumeMounts: - - mountPath: "/{{ .Release.Name }}-upgrade-volume" - name: "{{ .Release.Name }}-upgrade-volume" - - mountPath: "/{{ .Release.Name }}-encryption-key-volume" - name: "{{ .Release.Name }}-encryption-key-volume" - restartPolicy: Never - {{- if and .Values.dockerRegistryUserName .Values.dockerRegistryPassword }} - imagePullSecrets: - - nane: {{.Values.dockerRegistrySecret}} - {{- end }} - volumes: - - name: "{{ .Release.Name }}-upgrade-volume" - persistentVolumeClaim: - claimName: "{{ .Release.Name }}-upgrade-volume" - - name: "{{ .Release.Name }}-encryption-key-volume" - persistentVolumeClaim: - claimName: "{{ .Release.Name }}-encryption-key-volume" ---- -apiVersion: batch/v1 -kind: Job -metadata: - name: "{{ .Release.Name }}-upgrade-job" - labels: - app: "{{ .Release.Name }}" - annotations: - "helm.sh/hook": pre-upgrade - "helm.sh/hook-weight": "-5" -spec: - template: - metadata: - name: "{{ .Release.Name }}-upgrade-job" - labels: - app: "{{ .Release.Name }}" - component: upgrade-job - spec: - restartPolicy: OnFailure - volumes: - - name: kubectl - hostPath: - path: /usr/bin/kubectl - - containers: - - name: post-install-job - image: "lachlanevenson/k8s-kubectl:v1.6.0" - volumeMounts: - - name: kubectl - mountPath: /kubectl - command: - - sh - - -c - - "kubectl delete job --namespace {{ .Release.Namespace }} -l app={{ .Release.Name }}" -{{- end }} diff --git a/deploy/kubernetes/console/values.yaml b/deploy/kubernetes/console/values.yaml index 785e93621c..a011764726 100644 --- a/deploy/kubernetes/console/values.yaml +++ b/deploy/kubernetes/console/values.yaml @@ -24,7 +24,6 @@ useLb: false console: port: 443 # externalIP: 127.0.0.1 -noShared: true images: console: stratos-console proxy: stratos-proxy From 05212457dd1481d2d2357aa8209941e46faf1c46 Mon Sep 17 00:00:00 2001 From: Richard Cox Date: Tue, 21 Nov 2017 16:22:40 +0000 Subject: [PATCH 31/39] Updatated issue template and added pull request template --- docs/issue_template.md | 14 ++++++++++++++ docs/pull_request_template.md | 28 ++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 docs/pull_request_template.md diff --git a/docs/issue_template.md b/docs/issue_template.md index f496c5052f..29231c2d56 100644 --- a/docs/issue_template.md +++ b/docs/issue_template.md @@ -1,4 +1,6 @@ + ### Deployment type +(select the type below by replacing the space with an `x`) * [ ] Cloud Foundry Application (cf push) * [ ] Kubernetes, using a helm chart * [ ] Docker, using docker compose @@ -15,3 +17,15 @@ ``` Insert log here ``` + + + +### Detailed Description + + +### Context + + + +### Possible Implementation + \ No newline at end of file diff --git a/docs/pull_request_template.md b/docs/pull_request_template.md new file mode 100644 index 0000000000..e651b7af6d --- /dev/null +++ b/docs/pull_request_template.md @@ -0,0 +1,28 @@ + + +## Description + + +## Motivation and Context + + + +## How Has This Been Tested? + + + + +## Types of changes + +- [ ] Bug fix (non-breaking change which fixes an issue) +- [ ] Docs update +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) + +## Checklist: + + +- [ ] My code follows the code style of this project. +- [ ] My change requires a change to the documentation. +- [ ] I have updated the documentation accordingly. +- [ ] I have followed the guidelines in CONTRIBUTING.md, including the required formatting of the commit message \ No newline at end of file From 0984b5873362e98d066e303e989fa1b04a8df4a1 Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Wed, 22 Nov 2017 11:43:40 +0000 Subject: [PATCH 32/39] Fix for log stream testing failing it a different timezone is used --- .../applications/application/cf-log-viewer.spec.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/components/cloud-foundry/frontend/test/unit/view/applications/application/cf-log-viewer.spec.js b/components/cloud-foundry/frontend/test/unit/view/applications/application/cf-log-viewer.spec.js index d925907489..39b02284d9 100644 --- a/components/cloud-foundry/frontend/test/unit/view/applications/application/cf-log-viewer.spec.js +++ b/components/cloud-foundry/frontend/test/unit/view/applications/application/cf-log-viewer.spec.js @@ -36,6 +36,11 @@ expect(logViewerCtrl.webSocketUrl).toEqual(webSocketUrl); }); + function formatTimeStamp(epoch) { + var d = moment(Math.round(epoch / 1000000)); + return d.format('HH:mm:ss.SSS'); + } + it('should correctly parse APP messages', function () { var yellow = '\x1B[1;32m'; var reset = '\x1B[0m'; @@ -44,14 +49,13 @@ var filtered = logViewerCtrl.jsonFilter(jsonMessage); // Message date should be blue - var expected = '17:00:58.341: '; + var expected = formatTimeStamp(1477324858341484766) + ': '; // Message source should be yellow expected += yellow + '[APP.0]' + reset; // Message should be default colour expected += ' Party car character suddenly chair large party meat\n'; - expect(filtered).toBe(expected); }); @@ -63,7 +67,7 @@ var filtered = logViewerCtrl.jsonFilter(jsonMessage); // Message date should be blue - var expected = '17:18:13.419: '; + var expected = formatTimeStamp(1477325893418618476) + ': '; // Message source should be red expected += yellow + '[CELL.0]' + reset; From 3244c8684e7c99fc3ab488765f4358c629dc91af Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Wed, 22 Nov 2017 12:23:28 +0000 Subject: [PATCH 33/39] Use `scf values` schema --- deploy/kubernetes/README.md | 11 +++++++---- deploy/kubernetes/build.sh | 4 ++-- .../kubernetes/console/templates/__helpers.tpl | 2 +- .../console/templates/deployment.yaml | 12 ++++++------ .../kubernetes/console/templates/secrets.yml | 2 +- deploy/kubernetes/console/values.yaml | 18 +++++++----------- deploy/kubernetes/values.yaml.tmpl | 6 ++++-- 7 files changed, 28 insertions(+), 27 deletions(-) diff --git a/deploy/kubernetes/README.md b/deploy/kubernetes/README.md index 3c8eb8732b..fa0c303108 100644 --- a/deploy/kubernetes/README.md +++ b/deploy/kubernetes/README.md @@ -308,10 +308,13 @@ If you are deploying the helm chart against images that are hosted in a secure i ``` -dockerRegistry: mysecure-dockerregistry.io -dockerRegistryUserName: john.appleseed -dockerRegistryPassword: sup3rs3cur3 -dockerRegistryEmail: john.appleseed@foobar.com +kube: + registry: + hostname: mysecure-dockerregistry.io + username: john.appleseed + password: sup3rs3cur3 + # `email` is an optional field + email: john.appleseed@foobar.com ``` Deploy the chart with the provided parameters: diff --git a/deploy/kubernetes/build.sh b/deploy/kubernetes/build.sh index 45271d8904..89b5d2f84b 100755 --- a/deploy/kubernetes/build.sh +++ b/deploy/kubernetes/build.sh @@ -331,8 +331,8 @@ if [ ${CONCOURSE_BUILD:-"not-set"} == "not-set" ]; then sed -i -e 's/DOCKER_ORGANISATION/'"${DOCKER_ORG}"'/g' values.yaml else sed -i -e 's/consoleVersion: latest/consoleVersion: '"${TAG}"'/g' console/values.yaml - sed -i -e 's/dockerOrg: splatform/dockerOrg: '"${DOCKER_ORG}"'/g' console/values.yaml - sed -i -e 's/dockerRegistry: docker.io/dockerRegistry: '"${DOCKER_REGISTRY}"'/g' console/values.yaml + sed -i -e 's/organization: splatform/organization: '"${DOCKER_ORG}"'/g' console/values.yaml + sed -i -e 's/hostname: docker.io/hostname: '"${DOCKER_REGISTRY}"'/g' console/values.yaml sed -i -e 's/version: 0.1.0/version: '"${RELEASE_TAG}"'/g' console/Chart.yaml fi diff --git a/deploy/kubernetes/console/templates/__helpers.tpl b/deploy/kubernetes/console/templates/__helpers.tpl index 15f9e6e33c..ab5182a428 100644 --- a/deploy/kubernetes/console/templates/__helpers.tpl +++ b/deploy/kubernetes/console/templates/__helpers.tpl @@ -3,5 +3,5 @@ Image pull secret */}} {{- define "imagePullSecret" }} -{{- printf "{\"%s\":{\"username\": \"%s\",\"password\":\"%s\",\"email\":\"%s\",\"auth\": \"%s\"}}" .Values.dockerRegistry .Values.dockerRegistryUserName .Values.dockerRegistryPassword .Values.dockerRegistryEmail (printf "%s:%s" .Values.dockerRegistryUserName .Values.dockerRegistryPassword | b64enc) | b64enc }} +{{- printf "{\"%s\":{\"username\": \"%s\",\"password\":\"%s\",\"email\":\"%s\",\"auth\": \"%s\"}}" .Values.kube.registry.hostname .Values.kube.registry.username .Values.kube.registry.password .Values.kube.registry.email (printf "%s:%s" .Values.kube.registry.username .Values.kube.registry.password | b64enc) | b64enc }} {{- end }} \ No newline at end of file diff --git a/deploy/kubernetes/console/templates/deployment.yaml b/deploy/kubernetes/console/templates/deployment.yaml index 01c97dab7f..0338a72796 100644 --- a/deploy/kubernetes/console/templates/deployment.yaml +++ b/deploy/kubernetes/console/templates/deployment.yaml @@ -13,7 +13,7 @@ spec: component: "console" spec: containers: - - image: {{.Values.dockerRegistry}}/{{.Values.dockerOrg}}/{{.Values.images.console}}:{{.Values.consoleVersion}} + - image: {{.Values.kube.registry.hostname}}/{{.Values.kube.organization}}/{{.Values.images.console}}:{{.Values.consoleVersion}} name: ui env: - name: ENCRYPTION_KEY_VOLUME @@ -32,7 +32,7 @@ spec: - containerPort: 443 name: https protocol: TCP - - image: {{.Values.dockerRegistry}}/{{.Values.dockerOrg}}/{{.Values.images.postflight}}:{{.Values.consoleVersion}} + - image: {{.Values.kube.registry.hostname}}/{{.Values.kube.organization}}/{{.Values.images.postflight}}:{{.Values.consoleVersion}} name: "postflight" env: - name: DB_HOST @@ -82,7 +82,7 @@ spec: name: "{{ .Release.Name }}-upgrade-volume" - mountPath: /etc/secrets/ name: "{{ .Release.Name }}-secret" - - image: {{.Values.dockerRegistry}}/{{.Values.dockerOrg}}/{{.Values.images.proxy}}:{{.Values.consoleVersion}} + - image: {{.Values.kube.registry.hostname}}/{{.Values.kube.organization}}/{{.Values.images.proxy}}:{{.Values.consoleVersion}} name: proxy env: - name: DB_USER @@ -194,7 +194,7 @@ spec: - mountPath: /etc/secrets/ name: "{{ .Release.Name }}-secret" readOnly: true - {{- if and .Values.dockerRegistryUserName .Values.dockerRegistryPassword }} + {{- if and .Values.kube.registry.username .Values.kube.registry.password }} imagePullSecrets: - name: {{.Values.dockerRegistrySecret}} {{- end }} @@ -223,7 +223,7 @@ spec: spec: containers: - name: mariadb - image: {{.Values.dockerRegistry}}/{{.Values.dockerOrg}}/{{.Values.images.mariadb}}:{{.Values.consoleVersion}} + image: {{.Values.kube.registry.hostname}}/{{.Values.kube.organization}}/{{.Values.images.mariadb}}:{{.Values.consoleVersion}} env: {{- if .Values.mariadb.usePassword }} - name: MYSQL_ROOT_PASSWORD @@ -268,7 +268,7 @@ spec: volumeMounts: - name: data mountPath: /var/lib/mysql - {{- if and .Values.dockerRegistryUserName .Values.dockerRegistryPassword }} + {{- if and .Values.kube.registry.username .Values.kube.registry.password }} imagePullSecrets: - name: {{.Values.dockerRegistrySecret}} {{- end }} diff --git a/deploy/kubernetes/console/templates/secrets.yml b/deploy/kubernetes/console/templates/secrets.yml index 5b42bb7e00..da0288fc60 100644 --- a/deploy/kubernetes/console/templates/secrets.yml +++ b/deploy/kubernetes/console/templates/secrets.yml @@ -30,7 +30,7 @@ data: mariadb-password: {{ randAlphaNum 10 | b64enc | quote }} {{- end }} {{- end}} -{{- if and .Values.dockerRegistryUserName .Values.dockerRegistryPassword }} +{{- if and .Values.kube.registry.username .Values.kube.registry.password }} --- apiVersion: v1 kind: Secret diff --git a/deploy/kubernetes/console/values.yaml b/deploy/kubernetes/console/values.yaml index a011764726..e023e0999a 100644 --- a/deploy/kubernetes/console/values.yaml +++ b/deploy/kubernetes/console/values.yaml @@ -1,15 +1,5 @@ # Tag for images consoleVersion: latest -# Docker Org -dockerOrg: splatform -# Docker Registry where images are available -dockerRegistry: docker.io -# Username in case Docker registry is secured -dockerRegistryUserName: -# Password Docker registry is secured -dockerRegistryPassword: -# Email Docker registry is secured -dockerRegistryEmail: dockerRegistrySecret: regsecret # Specify default DB password dbPassword: changeme @@ -79,4 +69,10 @@ env: kube: external_console_https_port: 8443 storage_class: - persistent: \ No newline at end of file + persistent: + organization: splatform + registry: + hostname: docker.io + username: + password: + email: default \ No newline at end of file diff --git a/deploy/kubernetes/values.yaml.tmpl b/deploy/kubernetes/values.yaml.tmpl index add87cf80e..c074ba9fdd 100644 --- a/deploy/kubernetes/values.yaml.tmpl +++ b/deploy/kubernetes/values.yaml.tmpl @@ -1,3 +1,5 @@ consoleVersion: CONSOLE_VERSION -dockerRegistry: DOCKER_REGISTRY -dockerOrg: DOCKER_ORGANISATION +kube: + organization: DOCKER_ORGANISATION + registry: + hostname: DOCKER_REGISTRY From 1d38249d78296392c146f5ea4fe76624fffdc448 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Wed, 22 Nov 2017 16:08:07 +0000 Subject: [PATCH 34/39] Remove legacy images --- deploy/db/Dockerfile.preflight-job | 4 ---- deploy/kubernetes/build.sh | 9 --------- deploy/kubernetes/console/values.yaml | 2 -- 3 files changed, 15 deletions(-) delete mode 100644 deploy/db/Dockerfile.preflight-job diff --git a/deploy/db/Dockerfile.preflight-job b/deploy/db/Dockerfile.preflight-job deleted file mode 100644 index 0d10115ff2..0000000000 --- a/deploy/db/Dockerfile.preflight-job +++ /dev/null @@ -1,4 +0,0 @@ -FROM splatform/stratos-preflight-base:opensuse -COPY /deploy/db/scripts/run-preflight-job.sh /run-preflight-job.sh -COPY /deploy/tools/generate_cert.sh /generate_cert.sh -CMD ["/run-preflight-job.sh"] diff --git a/deploy/kubernetes/build.sh b/deploy/kubernetes/build.sh index 89b5d2f84b..0a1845586a 100755 --- a/deploy/kubernetes/build.sh +++ b/deploy/kubernetes/build.sh @@ -241,14 +241,6 @@ function buildProxy { buildAndPublishImage stratos-proxy deploy/Dockerfile.bk.k8s ${STRATOS_UI_PATH} } - -function buildPreflightJob { - # Build the preflight container - echo - echo "-- Build & publish the runtime container image for the preflight job" - buildAndPublishImage stratos-preflight-job ./deploy/db/Dockerfile.preflight-job ${STRATOS_UI_PATH} -} - function buildPostflightJob { # Build the postflight container echo @@ -318,7 +310,6 @@ updateTagForRelease # Build all of the components that make up the Console buildProxy -buildPreflightJob buildPostflightJob buildMariaDb buildUI diff --git a/deploy/kubernetes/console/values.yaml b/deploy/kubernetes/console/values.yaml index e023e0999a..7f009d293f 100644 --- a/deploy/kubernetes/console/values.yaml +++ b/deploy/kubernetes/console/values.yaml @@ -17,8 +17,6 @@ console: images: console: stratos-console proxy: stratos-proxy - postgres: stratos-postgres - preflight: stratos-preflight-job postflight: stratos-postflight-job mariadb: stratos-mariadb From 50311f1ec91d856efcae6b312354ced79c333e0c Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Wed, 22 Nov 2017 16:09:30 +0000 Subject: [PATCH 35/39] Remove preflight base image --- .../Dockerfile.stratos-preflight-base.tmpl | 2 -- deploy/stratos-base-images/build-base-images.sh | 6 ------ 2 files changed, 8 deletions(-) delete mode 100644 deploy/stratos-base-images/Dockerfile.stratos-preflight-base.tmpl diff --git a/deploy/stratos-base-images/Dockerfile.stratos-preflight-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-preflight-base.tmpl deleted file mode 100644 index 76689eec29..0000000000 --- a/deploy/stratos-base-images/Dockerfile.stratos-preflight-base.tmpl +++ /dev/null @@ -1,2 +0,0 @@ -FROM {{BASE_IMAGE}} -WORKDIR / \ No newline at end of file diff --git a/deploy/stratos-base-images/build-base-images.sh b/deploy/stratos-base-images/build-base-images.sh index 94a9a90210..b8844138b9 100755 --- a/deploy/stratos-base-images/build-base-images.sh +++ b/deploy/stratos-base-images/build-base-images.sh @@ -104,10 +104,6 @@ build_portal_proxy_builder(){ popd } -build_preflight_job_base(){ - build_and_push_image stratos-preflight-base Dockerfile.stratos-preflight-base -} - build_mariadb_base(){ build_and_push_image stratos-db-base Dockerfile.stratos-mariadb-base } @@ -128,8 +124,6 @@ build_nginx_base; build_bk_build_base; # Used for building the backend build_portal_proxy_builder; -# Used for building the postflight job image -build_preflight_job_base; # Used for building the DB image build_mariadb_base; # Used for building the AIO image From f2d399152e4996c030946254291166b5472fe4b1 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Wed, 22 Nov 2017 16:10:47 +0000 Subject: [PATCH 36/39] Remove `postgres` scripts --- deploy/postgres.env | 8 -------- deploy/tools/connect_postgres.sh | 12 ------------ 2 files changed, 20 deletions(-) delete mode 100644 deploy/postgres.env delete mode 100755 deploy/tools/connect_postgres.sh diff --git a/deploy/postgres.env b/deploy/postgres.env deleted file mode 100644 index d22e8bd1a5..0000000000 --- a/deploy/postgres.env +++ /dev/null @@ -1,8 +0,0 @@ -# Database connectivity environment variables -POSTGRES_USER=stratos -POSTGRES_PASSWORD=strat0s -POSTGRES_DB=stratos-db -POSTGRES_HOST=localhost -POSTGRES_PORT=5432 -POSTGRES_CONNECT_TIMEOUT=5 -POSTGRES_SSL_MODE=disable diff --git a/deploy/tools/connect_postgres.sh b/deploy/tools/connect_postgres.sh deleted file mode 100755 index 05bd1dce67..0000000000 --- a/deploy/tools/connect_postgres.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -TOOLSDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -MAINDIR="$( cd "$( dirname "${TOOLSDIR}" )" && pwd )" - -pushd "${MAINDIR}" - -source postgres.env - -docker-compose -f docker-compose.development.yml exec postgres psql -U $POSTGRES_USER -d $POSTGRES_DB - -popd From bbd0fa443f6282a494c514d80142a66e0b2e743b Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Thu, 23 Nov 2017 14:16:05 +0000 Subject: [PATCH 37/39] Use getDefaultPrecision for totalPrecision as well --- components/app-framework/src/filters/math/bytes.filter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/app-framework/src/filters/math/bytes.filter.js b/components/app-framework/src/filters/math/bytes.filter.js index 2041ec44a5..2524df037c 100644 --- a/components/app-framework/src/filters/math/bytes.filter.js +++ b/components/app-framework/src/filters/math/bytes.filter.js @@ -53,7 +53,7 @@ // Precision usedPrecision = getDefaultPrecision(usedPrecision); - totalPrecision = _.isUndefined(totalPrecision) ? 0 : totalPrecision; + totalPrecision = getDefaultPrecision(totalPrecision); // Units var number = getNumber(total); From e08507fb2c962e95c037b60ae9d8c21bf067eb66 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Thu, 23 Nov 2017 14:39:07 +0000 Subject: [PATCH 38/39] Beta-3 R2 Changelog update --- CHANGELOG.md | 23 +++++++++++++++++++++++ package.json | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3beaccedcb..e5ea933c7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,27 @@ # Change Log + +## 0.9.8 Beta-3 Release 2 + +[Full Changelog](https://github.com/SUSE/stratos-ui/compare/0.9.7...0.9.8) + +**Improvements:** + +- Improve byte filter [\#1388](https://github.com/SUSE/stratos-ui/pull/1388) +- Remove the yellow autocomplete background in dark form fields [\#1372](https://github.com/SUSE/stratos-ui/pull/1372) +- Helm Chart: Create Image pull secret for secure repositories [\#1387](https://github.com/SUSE/stratos-ui/pull/1387) +- Helm Chart: Remove `shared` mode [\#1385](https://github.com/SUSE/stratos-ui/pull/1385) +- Turn off secure Cookie for CF [\#1383](https://github.com/SUSE/stratos-ui/pull/1383) + +**Fixes:** + +- Fix link shown on cf dashboard when no endpoints connected [\#1369](https://github.com/SUSE/stratos-ui/pull/1369) +- Fix leak of Persistent volume claims when deleting Helm deployed release [\#1368](https://github.com/SUSE/stratos-ui/pull/1368) +- Remove legacy images and associated files [\#1390](https://github.com/SUSE/stratos-ui/pull/1390) +- Fix unsafe casting for mysql Service [\#1381](https://github.com/SUSE/stratos-ui/pull/1381) +- Fix `build-images` pipeline [\#1379](https://github.com/SUSE/stratos-ui/pull/1379) +- Pin smart table to exact version - newer one breaks things for us [\#1376](https://github.com/SUSE/stratos-ui/pull/1376) + + ## 0.9.7 Beta-3 Release [Full Changelog](https://github.com/SUSE/stratos-ui/compare/0.9.6...0.9.7) diff --git a/package.json b/package.json index 195f53d3d0..33011cabef 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "stratos-ui", - "version": "0.9.7", + "version": "0.9.8", "description": "Stratos UI Console", "main": "index.js", "scripts": { From 6fea77d00b579f4cdf3c8d591eadfb5245689e87 Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Thu, 23 Nov 2017 15:05:11 +0000 Subject: [PATCH 39/39] Tweaked change log for Beta 3 R2 --- CHANGELOG.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e5ea933c7c..26171f98e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,13 +4,14 @@ [Full Changelog](https://github.com/SUSE/stratos-ui/compare/0.9.7...0.9.8) +This is an update of the third beta release of the Stratos UI Console. It contains the following bug fixes and improvements: + **Improvements:** -- Improve byte filter [\#1388](https://github.com/SUSE/stratos-ui/pull/1388) +- Improve display of byte usage information for small numbers [\#1388](https://github.com/SUSE/stratos-ui/pull/1388) - Remove the yellow autocomplete background in dark form fields [\#1372](https://github.com/SUSE/stratos-ui/pull/1372) - Helm Chart: Create Image pull secret for secure repositories [\#1387](https://github.com/SUSE/stratos-ui/pull/1387) - Helm Chart: Remove `shared` mode [\#1385](https://github.com/SUSE/stratos-ui/pull/1385) -- Turn off secure Cookie for CF [\#1383](https://github.com/SUSE/stratos-ui/pull/1383) **Fixes:** @@ -18,14 +19,13 @@ - Fix leak of Persistent volume claims when deleting Helm deployed release [\#1368](https://github.com/SUSE/stratos-ui/pull/1368) - Remove legacy images and associated files [\#1390](https://github.com/SUSE/stratos-ui/pull/1390) - Fix unsafe casting for mysql Service [\#1381](https://github.com/SUSE/stratos-ui/pull/1381) -- Fix `build-images` pipeline [\#1379](https://github.com/SUSE/stratos-ui/pull/1379) -- Pin smart table to exact version - newer one breaks things for us [\#1376](https://github.com/SUSE/stratos-ui/pull/1376) - ## 0.9.7 Beta-3 Release [Full Changelog](https://github.com/SUSE/stratos-ui/compare/0.9.6...0.9.7) +This is the third beta release of the Stratos UI Console. It contains the following bug fixes: + **Fixes:** - Updated Helm Chart to remove delete job when running in noShared mode [\#1364](https://github.com/SUSE/stratos-ui/pull/1364) - Updated Helm Chart to support common storage class for MariaDB and console [\#1363](https://github.com/SUSE/stratos-ui/pull/1363)