mirror of
https://github.com/goharbor/harbor.git
synced 2025-01-22 23:51:27 +01:00
Merge branch 'master' of https://github.com/vmware/harbor into breadScrumb
This commit is contained in:
commit
9082b50bb9
BIN
docs/img/read_only.png
Normal file
BIN
docs/img/read_only.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 149 KiB |
BIN
docs/img/read_only_enable.png
Normal file
BIN
docs/img/read_only_enable.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 174 KiB |
@ -15,6 +15,7 @@ This guide walks you through the fundamentals of using Harbor. You'll learn how
|
||||
* [Manage project creation.](#managing-project-creation)
|
||||
* [Manage self-registration.](#managing-self-registration)
|
||||
* [Manage email settings.](#managing-email-settings)
|
||||
* [Manage registry read only.](#managing-registry-read-only)
|
||||
* [Pull and push images using Docker client.](#pulling-and-pushing-images-using-docker-client)
|
||||
* [Add description to repositories](#add-description-to-repositories)
|
||||
* [Delete repositories and images.](#deleting-repositories)
|
||||
@ -225,6 +226,20 @@ You can manage whether a user can sign up for a new account. This option is not
|
||||
You can change Harbor's email settings, the mail server is used to send out responses to users who request to reset their password.
|
||||
![browse project](img/new_config_email.png)
|
||||
|
||||
### Managing registry read only
|
||||
You can change Harbor's registry read only settings, read only mode will allow 'docker pull' while preventing 'docker push' and the deletion of repository and tag.
|
||||
![browse project](img/read_only.png)
|
||||
|
||||
If it set to true, deleting repository, tag and pushing image will be disabled.
|
||||
![browse project](img/read_only_enable.png)
|
||||
|
||||
```
|
||||
$ docker push 10.117.169.182/demo/ubuntu:14.04
|
||||
The push refers to a repository [10.117.169.182/demo/ubuntu]
|
||||
0271b8eebde3: Preparing
|
||||
denied: The system is in read only mode. Any modification is prohibited.
|
||||
```
|
||||
|
||||
## Pulling and pushing images using Docker client
|
||||
|
||||
**NOTE: Harbor only supports Registry V2 API. You need to use Docker client 1.6.0 or higher.**
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "harbor-ui",
|
||||
"version": "0.7.1",
|
||||
"version": "0.7.2",
|
||||
"description": "Harbor shared UI components based on Clarity and Angular4",
|
||||
"scripts": {
|
||||
"start": "ng serve --host 0.0.0.0 --port 4500 --proxy-config proxy.config.json",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "harbor-ui",
|
||||
"version": "0.7.1",
|
||||
"version": "0.7.2",
|
||||
"description": "Harbor shared UI components based on Clarity and Angular4",
|
||||
"author": "VMware",
|
||||
"module": "index.js",
|
||||
|
@ -36,16 +36,20 @@ export const REPOSITORY_GRIDVIEW_STYLE = `
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
|
||||
.card-media-block {
|
||||
margin-top: 12px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.card-media-block > img {
|
||||
height: 45px;
|
||||
width: 45px;
|
||||
}
|
||||
|
||||
.card-media-title {
|
||||
overflow: hidden;
|
||||
height: 24px;
|
||||
}
|
||||
.card-media-text {
|
||||
overflow: hidden;
|
||||
height: 21px
|
||||
}
|
||||
|
||||
.card-media-description {
|
||||
height: 45px;
|
||||
}
|
||||
|
@ -50,12 +50,10 @@ export const REPOSITORY_GRIDVIEW_TEMPLATE = `
|
||||
<ng-template let-item="item">
|
||||
<a class="card clickable" (click)="watchRepoClickEvt(item)">
|
||||
<div class="card-header">
|
||||
<div [ngClass]="{'card-media-block': withAdmiral, 'card-media-block wrap': !withAdmiral }">
|
||||
<div [ngClass]="{'card-media-block': true, 'wrap': !withAdmiral }">
|
||||
<img *ngIf="withAdmiral" [src]="getImgLink(item)"/>
|
||||
<div class="card-media-description">
|
||||
<span class="card-media-title">
|
||||
{{ (item.name?.length>29) ? (item.name | slice:0:29) + '...' : (item.name)}}
|
||||
</span>
|
||||
<span class="card-media-title">{{item.name}}</span>
|
||||
<p class="card-media-text">{{registryUrl}}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -32,6 +32,7 @@ export class RepositoryGridviewComponent implements OnChanges, OnInit {
|
||||
@Input() urlPrefix: string;
|
||||
@Input() hasSignedIn: boolean;
|
||||
@Input() hasProjectAdminRole: boolean;
|
||||
@Input() mode = 'admiral';
|
||||
@Output() repoClickEvent = new EventEmitter<RepositoryItem>();
|
||||
@Output() repoProvisionEvent = new EventEmitter<RepositoryItem>();
|
||||
@Output() addInfoEvent = new EventEmitter<RepositoryItem>();
|
||||
@ -87,7 +88,7 @@ export class RepositoryGridviewComponent implements OnChanges, OnInit {
|
||||
}
|
||||
|
||||
public get withAdmiral(): boolean {
|
||||
return this.systemInfo ? this.systemInfo.with_admiral : false;
|
||||
return this.mode === 'admiral'
|
||||
}
|
||||
|
||||
public get showDBStatusWarning(): boolean {
|
||||
@ -106,7 +107,7 @@ export class RepositoryGridviewComponent implements OnChanges, OnInit {
|
||||
.then(systemInfo => this.systemInfo = systemInfo)
|
||||
.catch(error => this.errorHandler.error(error));
|
||||
|
||||
if (this.withAdmiral) {
|
||||
if (this.mode === 'admiral') {
|
||||
this.isCardView = true;
|
||||
} else {
|
||||
this.isCardView = false;
|
||||
|
@ -30,7 +30,7 @@
|
||||
"clarity-icons": "0.10.24",
|
||||
"clarity-ui": "0.10.24",
|
||||
"core-js": "^2.4.1",
|
||||
"harbor-ui": "0.6.83",
|
||||
"harbor-ui": "0.7.2",
|
||||
"intl": "^1.2.5",
|
||||
"mutationobserver-shim": "^0.3.2",
|
||||
"ngx-cookie": "^1.0.0",
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div style="margin-top: 4px;">
|
||||
<hbr-repository-gridview [projectId]="projectId" [projectName]="projectName" [hasSignedIn]="hasSignedIn"
|
||||
[hasProjectAdminRole]="hasProjectAdminRole"
|
||||
[hasProjectAdminRole]="hasProjectAdminRole" [mode]="mode"
|
||||
(repoClickEvent)="watchRepoClickEvent($event)"></hbr-repository-gridview>
|
||||
</div>
|
@ -28,6 +28,7 @@ export class RepositoryPageComponent implements OnInit {
|
||||
hasProjectAdminRole: boolean;
|
||||
hasSignedIn: boolean;
|
||||
projectName: string;
|
||||
mode = 'standalone';
|
||||
|
||||
constructor(
|
||||
private route: ActivatedRoute,
|
||||
|
Loading…
Reference in New Issue
Block a user