1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-25 08:19:40 +02:00

fix(podman): ensure initial env type matches container runtime [r8s-98] (#12259)
Some checks are pending
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
ci / build_images (map[arch:arm platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Waiting to run
ci / build_manifests (push) Blocked by required conditions
/ triage (push) Waiting to run
Lint / Run linters (push) Waiting to run
Test / test-client (push) Waiting to run
Test / test-server (map[arch:amd64 platform:linux]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
Test / test-server (map[arch:arm64 platform:linux]) (push) Waiting to run

This commit is contained in:
Ali 2024-09-30 09:16:24 +13:00 committed by GitHub
parent 32e94d4e4e
commit da010f3d08
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 32 additions and 1 deletions

View file

@ -219,6 +219,10 @@ func (service *Service) snapshotDockerEndpoint(endpoint *portainer.Endpoint) err
return err
}
if err := validateContainerEngineCompatibility(endpoint, dockerSnapshot); err != nil {
return err
}
if dockerSnapshot != nil {
snapshot := &portainer.Snapshot{EndpointID: endpoint.ID, Docker: dockerSnapshot}
@ -228,6 +232,20 @@ func (service *Service) snapshotDockerEndpoint(endpoint *portainer.Endpoint) err
return nil
}
func validateContainerEngineCompatibility(endpoint *portainer.Endpoint, dockerSnapshot *portainer.DockerSnapshot) error {
if endpoint.ContainerEngine == portainer.ContainerEngineDocker && dockerSnapshot.IsPodman {
err := errors.New("the Docker environment option doesn't support Podman environments. Please select the Podman option instead.")
log.Error().Err(err).Str("endpoint", endpoint.Name).Msg(err.Error())
return err
}
if endpoint.ContainerEngine == portainer.ContainerEnginePodman && !dockerSnapshot.IsPodman {
err := errors.New("the Podman environment option doesn't support Docker environments. Please select the Docker option instead.")
log.Error().Err(err).Str("endpoint", endpoint.Name).Msg(err.Error())
return err
}
return nil
}
func (service *Service) startSnapshotLoop() {
ticker := time.NewTicker(time.Duration(service.snapshotIntervalInSeconds) * time.Second)