Skip to content

Latest commit

 

History

History
37 lines (30 loc) · 4.11 KB

README.md

File metadata and controls

37 lines (30 loc) · 4.11 KB

Image Remover

Назначение программы

Данное приложение предназначено для удаления образов из докер реджистри. Предварительно программа получает список образов из кластера Kubernetes, для того чтобы не удалять из реджистри образы, используемые в Kubernetes.

Программа работает следующим образом:

Читает конфигурационный файл с именем "config.yaml" с помощью функции config.ReadConfig(). Если происходит ошибка при чтении файла, программа вызывает панику. Получает образы из кластера Kubernetes с помощью функции kube.GetImages() и из докер реджистри с помощью функции registry.GetImages() на основе конфигурации. Вычисляет различия между этими списками с помощью функции diffMap(). C помощью функции registry.DeleteImages() удаляет все образы из реестра, расположенные в указанной папке, кроме образов, используемых в Kubernetes.

Конфигурирование

Приложение имеет конфиг вида:

KubeCluster:
  # Массив из одного и более элементов с настроками Kubernetes.
  - ServerUrl: https://localhost:52395  # URL-адрес сервера Kubernetes.
    Namespace: afdev                    # Пространство имен, в котором хранятся образы в Kubernetes.
    Token: token                        # Токен для аутентификации в Kubernetes в формате JSON Web Token (JWT).
DockerRegistry:
  # Массив из одного и более элементов с настроками Docker реестра.
  - ServerUrl: http://localhost:6000    # URL-адрес сервера Docker реестра
    Nexus:
      Url: http://localhost:8081        # URL-адрес сервера Nexus
      RepositoryName: docker-registry   # Имя репозитория в Nexus
    Folder: folderName                  # Папка в Docker реестре, в которой хранятся образы. 
    User: ""                            # Имя пользователя для аутентификации в Docker реестре. Пустое значение указывает на отсутствие аутентификации.
    Password: ""                        # Пароль пользователя для аутентификации в Docker реестре. Пустое значение указывает на отсутствие аутентификации.
    DeleteImages: true                  # Флаг, указывающий, нужно ли удалять образы из Docker реестра.
Output:
  WriteToTXT: true                      # Флаг, указывающий, нужно ли записывать результаты в текстовые файлы.
  RegistryFileName: registry.txt        # Имя файла, в который записываются найденные в Docker реестре образы.
  KubeFileName: kube.txt                # Имя файла, в который записываются найденные обрызы в деплойментах Kubernetes.
  DiffFileName: diff.txt                # Имя файла, в который записывается различия, то есть подлежащие удалению образы.

Эти параметры конфигурации позволяют программе настраивать соединение с Kubernetes и Docker реестром, указывать папки, пользователей и пароли, а также определять, нужно ли сохранять результаты в файлы.