feat(manager.registry): Add external registry management

This commit is contained in:
Philipp Kunz 2024-12-28 21:39:44 +01:00
parent 7654d780b1
commit da7b866f23
7 changed files with 56 additions and 2 deletions

View File

@ -1,5 +1,12 @@
# Changelog
## 2024-12-28 - 4.8.0 - feat(manager.registry)
Add external registry management
- Introduced ExternalRegistry class for handling external registry configurations.
- Updated IExternalRegistry interface to include registry details.
- Enhanced IImage interface to support linking with external registries.
## 2024-12-28 - 4.7.1 - fix(secretmanagement)
Refactor secret bundle actions and improve authorization handling

View File

@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@serve.zone/cloudly',
version: '4.7.1',
version: '4.8.0',
description: 'A comprehensive tool for managing containerized applications across multiple cloud providers using Docker Swarmkit, featuring web, CLI, and API interfaces.'
}

View File

@ -0,0 +1,30 @@
import * as plugins from '../plugins.js';
import * as paths from '../paths.js';
import type { Cloudly } from 'ts/classes.cloudly.js';
export class ExternalRegistry extends plugins.smartdata.SmartDataDbDoc<ExternalRegistry, plugins.servezoneInterfaces.data.IExternalRegistry> {
// STATIC
public async getRegistryById(registryNameArg: string) {
this
}
// INSTANCE
public cloudlyRef: Cloudly;
public smartdataDb: plugins.smartdata.SmartdataDb;
@plugins.smartdata.svDb()
public id: string;
@plugins.smartdata.svDb()
public data: plugins.servezoneInterfaces.data.IExternalRegistry['data'];
get db() {
return this.cloudlyRef.mongodbConnector.smartdataDb;
}
constructor(cloudlyRef: Cloudly) {
super();
this.cloudlyRef = cloudlyRef;
}
}

View File

@ -0,0 +1,12 @@
import * as plugins from '../plugins.js';
export interface IExternalRegistry {
id: string;
data: {
type: 'docker' | 'npm';
name: string;
url: string;
username: string;
password: string;
};
}

View File

@ -4,6 +4,10 @@ export interface IImage {
id: string;
data: {
name: string;
external?: {
externalRegistryId: string;
imageName: string;
}
description: string;
versions: Array<{
versionString: string;

View File

@ -4,6 +4,7 @@ export * from './config.js';
export * from './deployment.js';
export * from './docker.js';
export * from './event.js';
export * from './externalregistry.js';
export * from './image.js';
export * from './secretbundle.js';
export * from './secretgroup.js'

View File

@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@serve.zone/cloudly',
version: '4.7.1',
version: '4.8.0',
description: 'A comprehensive tool for managing containerized applications across multiple cloud providers using Docker Swarmkit, featuring web, CLI, and API interfaces.'
}