Get end-to-end configuration setup working, including verification (except for Github, which is in progress)
This commit is contained in:
parent
825455ea6c
commit
63504c87fb
14 changed files with 611 additions and 206 deletions
|
@ -44,23 +44,6 @@
|
|||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Build Support:</td>
|
||||
<td colspan="2">
|
||||
<div class="co-checkbox">
|
||||
<input id="ftbs" type="checkbox" ng-model="config.FEATURE_BUILD_SUPPORT">
|
||||
<label for="ftbs">Enable Dockerfile Build</label>
|
||||
</div>
|
||||
<div class="help-text">
|
||||
If enabled, users can submit Dockerfiles to be built and pushed by the Enterprise Registry.
|
||||
</div>
|
||||
|
||||
<div ng-if="config.FEATURE_BUILD_SUPPORT" style="margin-top: 10px">
|
||||
<strong>Note: Build workers are required for this feature.</strong>
|
||||
See <a href="https://coreos.com/docs/enterprise-registry/build-support/" target="_blank">Adding Build Workers</a> for instructions on how to setup build workers.
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -155,9 +138,6 @@
|
|||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="co-panel-button-bar">
|
||||
<button class="btn btn-default"><i class="fa fa-sign-in"></i> Test Configuration</button>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- /Redis -->
|
||||
|
||||
|
@ -186,122 +166,27 @@
|
|||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Storage Path -->
|
||||
<tr>
|
||||
<td>Storage Path:</td>
|
||||
<!-- Fields -->
|
||||
<tr ng-repeat="field in STORAGE_CONFIG_FIELDS[config.DISTRIBUTED_STORAGE_CONFIG.local[0]]">
|
||||
<td>{{ field.title }}:</td>
|
||||
<td>
|
||||
<span class="config-string-field"
|
||||
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].storage_path"
|
||||
placeholder="Path under the volume or bucket"></span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- S3 -->
|
||||
<tr ng-show="config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'S3Storage'">
|
||||
<td>Access Key:</td>
|
||||
<td>
|
||||
<span class="config-string-field"
|
||||
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].s3_access_key"
|
||||
placeholder="AWS access key"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'S3Storage'">
|
||||
<td>Secret Key:</td>
|
||||
<td>
|
||||
<span class="config-string-field"
|
||||
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].s3_secret_key"
|
||||
placeholder="AWS secret key"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'S3Storage'">
|
||||
<td>Bucket Name:</td>
|
||||
<td>
|
||||
<span class="config-string-field"
|
||||
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].s3_bucket"
|
||||
placeholder="S3 bucket name"></span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- GCS -->
|
||||
<tr ng-show="config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'GoogleCloudStorage'">
|
||||
<td>Access Key:</td>
|
||||
<td>
|
||||
<span class="config-string-field"
|
||||
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].access_key"
|
||||
placeholder="GCS access key"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'GoogleCloudStorage'">
|
||||
<td>Secret Key:</td>
|
||||
<td>
|
||||
<span class="config-string-field"
|
||||
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].secret_key"
|
||||
placeholder="GCS secret key"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'GoogleCloudStorage'">
|
||||
<td>Bucket Name:</td>
|
||||
<td>
|
||||
<span class="config-string-field"
|
||||
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].bucket_name"
|
||||
placeholder="GCS bucket name"></span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- RADOS -->
|
||||
<tr ng-show="config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'RadosGWStorage'">
|
||||
<td>Hostname:</td>
|
||||
<td>
|
||||
<span class="config-string-field"
|
||||
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].hostname"
|
||||
placeholder="RADOS Hostname"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'RadosGWStorage'">
|
||||
<td>Is Secure:</td>
|
||||
<td>
|
||||
<div class="co-checkbox">
|
||||
<input id="dsc-secure" type="checkbox" ng-model="config.DISTRIBUTED_STORAGE_CONFIG.local[1].is_secure">
|
||||
<label for="dsc-secure">Requires SSL</label>
|
||||
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1][field.name]"
|
||||
placeholder="{{ field.placeholder }}"
|
||||
ng-if="field.kind == 'text'"></span>
|
||||
<div class="co-checkbox" ng-if="field.kind == 'bool'">
|
||||
<input id="dsc-{{ field.name }}" type="checkbox"
|
||||
ng-model="config.DISTRIBUTED_STORAGE_CONFIG.local[1][field.name]">
|
||||
<label for="dsc-{{ field.name }}">{{ field.placeholder }}</label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'RadosGWStorage'">
|
||||
<td>Access Key:</td>
|
||||
<td>
|
||||
<span class="config-string-field"
|
||||
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].access_key"
|
||||
placeholder="Access key"></span>
|
||||
<div class="help-text">
|
||||
See <a href="http://ceph.com/docs/master/radosgw/admin/" target="_blank">
|
||||
RADOS Documentation
|
||||
</a> for more information
|
||||
<div class="help-text" ng-if="field.help_url">
|
||||
See <a href="{{ field.help_url }}" target="_blank">Documentation</a> for more information
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'RadosGWStorage'">
|
||||
<td>Secret Key:</td>
|
||||
<td>
|
||||
<span class="config-string-field"
|
||||
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].secret_key"
|
||||
placeholder="Secret key"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'RadosGWStorage'">
|
||||
<td>Bucket Name:</td>
|
||||
<td>
|
||||
<span class="config-string-field"
|
||||
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].bucket_name"
|
||||
placeholder="Bucket name"></span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<div class="co-panel-button-bar">
|
||||
<button class="btn btn-default"><i class="fa fa-sign-in"></i> Test Configuration</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -375,7 +260,8 @@
|
|||
<tr>
|
||||
<td>Password:</td>
|
||||
<td>
|
||||
<span class="config-string-field" binding="config.MAIL_PASSWORD"
|
||||
<input class="form-control" type="password"
|
||||
ng-model="config.MAIL_PASSWORD"
|
||||
placeholder="Password for authentication"></span>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -384,9 +270,6 @@
|
|||
</tr>
|
||||
|
||||
</table>
|
||||
<div class="co-panel-button-bar" ng-show="config.FEATURE_MAILING">
|
||||
<button class="btn btn-default"><i class="fa fa-sign-in"></i> Test Configuration</button>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- /E-mail -->
|
||||
|
||||
|
@ -446,10 +329,6 @@
|
|||
<td><span class="config-list-field" item-title="RDN" binding="config.LDAP_USER_RDN"></span></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="co-panel-button-bar" ng-show="config.AUTHENTICATION_TYPE == 'LDAP'">
|
||||
<button class="btn btn-default"><i class="fa fa-sign-in"></i> Test Configuration</button>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- /Authentication -->
|
||||
|
||||
|
@ -513,11 +392,6 @@
|
|||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<div class="co-panel-button-bar" ng-show="config.FEATURE_GITHUB_LOGIN">
|
||||
<button class="btn btn-default"><i class="fa fa-sign-in"></i> Test Configuration</button>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- /Github Authentication -->
|
||||
|
||||
|
@ -562,17 +436,34 @@
|
|||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<div class="co-panel-button-bar" ng-show="config.FEATURE_GOOGLE_LOGIN">
|
||||
<button class="btn btn-default"><i class="fa fa-sign-in"></i> Test Configuration</button>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- /Google Authentication -->
|
||||
|
||||
<!-- Build Support -->
|
||||
<div class="co-panel">
|
||||
<div class="co-panel-heading">
|
||||
<i class="fa fa-tasks"></i> Dockerfile Build Support
|
||||
</div>
|
||||
<div class="co-panel-body">
|
||||
<div class="description">
|
||||
If enabled, users can submit Dockerfiles to be built and pushed by the Enterprise Registry.
|
||||
</div>
|
||||
|
||||
<div class="co-checkbox">
|
||||
<input id="ftbs" type="checkbox" ng-model="config.FEATURE_BUILD_SUPPORT">
|
||||
<label for="ftbs">Enable Dockerfile Build</label>
|
||||
</div>
|
||||
|
||||
<div ng-if="config.FEATURE_BUILD_SUPPORT" style="margin-top: 10px">
|
||||
<strong>Note: Build workers are required for this feature.</strong>
|
||||
See <a href="https://coreos.com/docs/enterprise-registry/build-support/" target="_blank">Adding Build Workers</a> for instructions on how to setup build workers.
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- /Build Support -->
|
||||
|
||||
|
||||
<!-- Github Trigger -->
|
||||
<div class="co-panel" ng-show="config.FEATURE_BUILD_SUPPORT">
|
||||
<div class="co-panel" ng-show="config.FEATURE_BUILD_SUPPORT" style="margin-top: 20px;">
|
||||
<div class="co-panel-heading">
|
||||
<i class="fa fa-github"></i> Github (Enterprise) Build Triggers
|
||||
</div>
|
||||
|
@ -631,12 +522,90 @@
|
|||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<div class="co-panel-button-bar" ng-show="config.FEATURE_GITHUB_BUILD">
|
||||
<button class="btn btn-default"><i class="fa fa-sign-in"></i> Test Configuration</button>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- /Github Trigger -->
|
||||
|
||||
<!-- Save Bar -->
|
||||
<div class="cor-floating-bottom-bar">
|
||||
<button class="btn" ng-class="mapped.$hasChanges ? 'btn-primary' : 'btn-success'"
|
||||
ng-click="validateAndSave()">
|
||||
<i class="fa fa-lg" ng-class="mapped.$hasChanges ? 'fa-dot-circle-o' : 'fa-check-circle'"></i>
|
||||
<span ng-if="mapped.$hasChanges">Save Configuration Changes</span>
|
||||
<span ng-if="!mapped.$hasChanges">Configuration Saved</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- Modal message dialog -->
|
||||
<div class="modal fade initial-setup-modal" id="validateAndSaveModal">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title"
|
||||
ng-show="mapped.$hasChanges && validationStatus(validating) == 'validating'">
|
||||
Validating Configuration... Please Wait
|
||||
</h4>
|
||||
<h4 class="modal-title"
|
||||
ng-show="mapped.$hasChanges && validationStatus(validating) == 'failed'">
|
||||
<i class="fa fa-warning"></i> Configuration Validation Failed
|
||||
</h4>
|
||||
<h4 class="modal-title"
|
||||
ng-show="mapped.$hasChanges && validationStatus(validating) == 'success'">
|
||||
<i class="fa fa-check-circle"></i> Configuration Validation Succeeded!
|
||||
</h4>
|
||||
<h4 class="modal-title" ng-show="!mapped.$hasChanges">
|
||||
Configuration Changes Saved
|
||||
</h4>
|
||||
</div>
|
||||
<div class="modal-body" ng-show="!mapped.$hasChanges">
|
||||
<div class="verified">
|
||||
<i class="fa fa-check-circle"></i> Configuration Changes Saved
|
||||
</div>
|
||||
|
||||
<p>Your configuration changes have been saved and will be applied the next time the <span class="registry-title"></span> container is restarted.</p>
|
||||
|
||||
<p>
|
||||
<strong>
|
||||
It is highly recommended that you restart your container now and test these changes!
|
||||
</strong>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="modal-body" ng-show="mapped.$hasChanges">
|
||||
<div class="service-verification">
|
||||
<div class="service-verification-row" ng-repeat="serviceInfo in validating">
|
||||
<span class="quay-spinner" ng-show="serviceInfo.status == 'validating'"></span>
|
||||
<i class="fa fa-lg fa-check-circle" ng-show="serviceInfo.status == 'success'"></i>
|
||||
<i class="fa fa-lg fa-warning" ng-show="serviceInfo.status == 'error'"></i>
|
||||
<span class="service-title">{{ serviceInfo.service.title }}</span>
|
||||
|
||||
<div class="service-verification-error" ng-show="serviceInfo.status == 'error'">{{ serviceInfo.errorMessage }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer" ng-show="!mapped.$hasChanges">
|
||||
<button class="btn btn-default" data-dismiss="modal">
|
||||
Close
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer" ng-show="mapped.$hasChanges">
|
||||
<span ng-show="validating.length == 0">Please Wait...</span>
|
||||
<button class="btn btn-primary"
|
||||
ng-show="validationStatus(validating) == 'success'"
|
||||
ng-click="saveConfiguration()"
|
||||
ng-disabled="savingConfiguration">
|
||||
<i class="fa fa-upload" style="margin-right: 10px;"></i>Save Configuration
|
||||
</button>
|
||||
<button class="btn btn-default"
|
||||
ng-show="validationStatus(validating) == 'failed'"
|
||||
data-dismiss="modal">
|
||||
Continue Editing Configuration
|
||||
</button>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
</div>
|
||||
</div>
|
Reference in a new issue