diff --git a/README.md b/README.md index e89024bae..e8163fb96 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,102 @@ -# simple-python-pyinstaller-app +# Guía de Despliegue: Aplicación Python con Jenkins y Terraform -This repository is for the -[Build a Python app with PyInstaller](https://jenkins.io/doc/tutorials/build-a-python-app-with-pyinstaller/) -tutorial in the [Jenkins User Documentation](https://jenkins.io/doc/). +Este documento guía paso a paso el despliegue de una aplicación Python utilizando Jenkins como servidor de integración continua y Terraform para la infraestructura. -The repository contains a simple Python application which is a command line tool "add2vals" that outputs the addition of two values. If at least one of the -values is a string, "add2vals" treats both values as a string and instead -concatenates the values. The "add2" function in the "calc" library (which -"add2vals" imports) is accompanied by a set of unit tests. These are tested with pytest to check that this function works as expected and the results are saved -to a JUnit XML report. +--- -The delivery of the "add2vals" tool through PyInstaller converts this tool into -a standalone executable file for Linux, which you can download through Jenkins -and execute at the command line on Linux machines without Python. +## Requisitos Previos + +- Docker y Docker Compose instalados. +- Terraform instalado. +- Cuenta de GitHub con el repositorio forkeado. +- Acceso a puerto `8080` en tu máquina local + +--- + +## 1. Preparación del Repositorio + +### Fork y Configuración Inicial + +1. Realiza un *fork* del repositorio `simple-python-pyinstaller-app` en tu cuenta de GitHub. +2. Renombra la rama principal a `main` si es necesario. + +--- + +## 2. Construcción de Imagen Jenkins Personalizada + +### Crear Dockerfile + +En el directorio `/docs`, crea un archivo `Dockerfile` con las dependencias necesarias para Jenkins y Blue Ocean. + +### Construir la Imagen + +Desde la misma carpeta `/docs`, ejecuta: + +```bash +docker build -t myjenkins-blueocean . +``` +## 3. Despliegue de Infraestructura con Terraform + +### Archivo de Configuración + +Crea un archivo llamado `main.tf` en la carpeta `/docs` con tu configuración deseada. + +### Comandos para Inicializar y Aplicar +```bash +terraform init +terraform plan +terraform apply +``` +Esto levantará la infraestructura necesaria para Jenkins. +## 4. Configuración de Jenkins + +### Acceder al Panel Web + +Abre el navegador y entra a: + +`http://localhost:8080` + +### Obtener la Contraseña de Desbloqueo + +Ejecuta: + + +`docker logs jenkins-blueocean` + +Copia la contraseña que aparece en consola e introdúcela en la interfaz web para completar la configuración inicial. +## 5. Crear el Pipeline + +### Nuevo Proyecto + +1. Haz clic en `New item` desde el panel de Jenkins. + +2. Asigna un nombre y selecciona `Pipeline`. + +3. Activa la opción `SCM Polling` para habilitar la ejecución automática. + +4. Configura el origen del script: + + - SCM: `GIT` + + - URL del repositorio: + + - Rama: `*/main` + + - Ruta al Jenkinsfile: `docs/jenkinsfile` + +## 6. Ejecutar el Pipeline + +1. Desde Jenkins, inicia el pipeline manualmente o espera a que detecte cambios. + +2. El pipeline ejecutará automáticamente las siguientes etapas: + + - **Build** + + - **Test** + + - **Deliver** + +## 7. Verificar el Artefacto Generado + +Si la ejecución es exitosa, el artefacto `add2vals` será generado y almacenado. -The `jenkins` directory contains an example of the `Jenkinsfile` (i.e. Pipeline) -you'll be creating yourself during the tutorial. diff --git a/Rama_y_nombre.txt b/Rama_y_nombre.txt new file mode 100644 index 000000000..54ffa163d --- /dev/null +++ b/Rama_y_nombre.txt @@ -0,0 +1,3 @@ +Repositorio: https://github.com/Alvarogm15/simple-python-pyinstaller-app/tree/main + +Álvaro Griñon Martínez \ No newline at end of file diff --git a/docs/.terraform.lock.hcl b/docs/.terraform.lock.hcl new file mode 100644 index 000000000..43ef38278 --- /dev/null +++ b/docs/.terraform.lock.hcl @@ -0,0 +1,23 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/kreuzwerker/docker" { + version = "3.6.0" + constraints = "~> 3.0" + hashes = [ + "h1:WDcnXbeQu6aRAILPnqSM5OnFGcDPiSa5zJ/8YRdyxGA=", + "zh:1b930ce8aeeb562529383079a146ef6d8aa293a871490cabaf62cd07351f594a", + "zh:2b6285f977c5c2f43bd4640e634d3b74d32d7adf377824773e1ebf27b18d43c2", + "zh:31601af6e77cddc6c9dc9cdbcb53a18e38f35bcf4108ad4c88eb4b446b1a8100", + "zh:58b10d6923e89ac8bd7067760d5d115570ed29bd3b81c931f5ae09e2c5228d10", + "zh:62b76085922cb78370777c10286021104dde7ac7550f97bcbd5611cd7675db74", + "zh:76cacedffea6e07c35d649b79ad2a72dfe8f0c9d02c765a24162f3ebfef1f54d", + "zh:794d753e99319b42b746ba9405297049bb81b6e2d7c12496457bdf73e7d7cebe", + "zh:a8140eed5f3cf57aae4586471cf79a19babda57db9e4a29bd783e8b1fc12a2c0", + "zh:c62928bcdbf2965fd37d7b8fcb58b1e2bbecd9a393e579ac009439dbac3861cd", + "zh:c9b061d4b779cd9f833648a5220f35f027152e4ec499b7808c0e9b613dd70a87", + "zh:ce6418f00a732c9b1e2a1d250675820f7e2112923eea14e08b9dc82d187f8ea2", + "zh:df7f80e4f07d627ca2bb5586c62986e543ee89fab4c83105a8d485c3ec97007d", + "zh:e48a2416a48e22f5db90500791bc8deb72e110e141df685fe0e15266695629a9", + ] +} diff --git a/docs/.terraform/providers/registry.terraform.io/kreuzwerker/docker/3.6.0/windows_amd64/CHANGELOG.md b/docs/.terraform/providers/registry.terraform.io/kreuzwerker/docker/3.6.0/windows_amd64/CHANGELOG.md new file mode 100644 index 000000000..c8b4e895d --- /dev/null +++ b/docs/.terraform/providers/registry.terraform.io/kreuzwerker/docker/3.6.0/windows_amd64/CHANGELOG.md @@ -0,0 +1,790 @@ + + +## [v3.6.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v3.5.0...v3.6.0) (2025-05-24) + +### Feat + +* Implement correct cpu scheduler settings ([#732](https://github.com/kreuzwerker/terraform-provider-docker/issues/732)) +* Add implementaion of capabilities in docker servic ([#727](https://github.com/kreuzwerker/terraform-provider-docker/issues/727)) +* implement Buildx builder resource ([#724](https://github.com/kreuzwerker/terraform-provider-docker/issues/724)) + +### Fix + +* Implement buildx fixes for general buildkit support and platform handling ([#734](https://github.com/kreuzwerker/terraform-provider-docker/issues/734)) +* Make endpoint validation less strict ([#733](https://github.com/kreuzwerker/terraform-provider-docker/issues/733)) + + + +## [v3.5.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v3.4.0...v3.5.0) (2025-05-06) + +### Chore + +* Prepare release v3.5.0 ([#721](https://github.com/kreuzwerker/terraform-provider-docker/issues/721)) + +### Feat + +* Implement using of buildx for docker_image ([#717](https://github.com/kreuzwerker/terraform-provider-docker/issues/717)) +* Support registries that return empty auth scope [#646](https://github.com/kreuzwerker/terraform-provider-docker/issues/646) +* Implement registry_image_manifests data source ([#714](https://github.com/kreuzwerker/terraform-provider-docker/issues/714)) +* Implement healthcheck start interval ([#713](https://github.com/kreuzwerker/terraform-provider-docker/issues/713)) + + + +## [v3.4.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v3.3.0...v3.4.0) (2025-04-25) + +### Chore + +* Prepare release v3.4.0 ([#712](https://github.com/kreuzwerker/terraform-provider-docker/issues/712)) + +### Feat + +* Implement volume_options subpath ([#710](https://github.com/kreuzwerker/terraform-provider-docker/issues/710)) + +### Fix + +* Prevent recreation of image name is intentionally set to a fixed value ([#711](https://github.com/kreuzwerker/terraform-provider-docker/issues/711)) +* Improve container wait handling ([#709](https://github.com/kreuzwerker/terraform-provider-docker/issues/709)) +* Use auth_config block also for registry_image delete functionality ([#708](https://github.com/kreuzwerker/terraform-provider-docker/issues/708)) + + + +## [v3.3.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v3.2.0...v3.3.0) (2025-04-19) + +### Chore + +* Prepare release v3.3.0 ([#705](https://github.com/kreuzwerker/terraform-provider-docker/issues/705)) +* Update terraform-plugin-sdk/v2 dependency ([#699](https://github.com/kreuzwerker/terraform-provider-docker/issues/699)) +* Update docker/docker and docker/cli to newest stable ([#695](https://github.com/kreuzwerker/terraform-provider-docker/issues/695)) + +### Feat + +* Implement support for docker context ([#704](https://github.com/kreuzwerker/terraform-provider-docker/issues/704)) +* disable_docker_daemon_check for provider ([#703](https://github.com/kreuzwerker/terraform-provider-docker/issues/703)) +* Implement tag triggers for docker_tag resource ([#702](https://github.com/kreuzwerker/terraform-provider-docker/issues/702)) +* Implement auth_config for docker_registry_image ([#701](https://github.com/kreuzwerker/terraform-provider-docker/issues/701)) + +### Fix + +* Store correctly ports from server ([#698](https://github.com/kreuzwerker/terraform-provider-docker/issues/698)) + + + +## [v3.2.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v3.1.2...v3.2.0) (2025-04-16) + +### Chore + +* Prepare release v3.2.0 ([#694](https://github.com/kreuzwerker/terraform-provider-docker/issues/694)) +* Upgrade golangci-lint to next major version ([#686](https://github.com/kreuzwerker/terraform-provider-docker/issues/686)) + +### Docs + +* Consolidated update of docs from several PRs ([#691](https://github.com/kreuzwerker/terraform-provider-docker/issues/691)) + +### Feat + +* Implement upload permissions in docker_container resource ([#693](https://github.com/kreuzwerker/terraform-provider-docker/issues/693)) +* Implement docker_image timeouts ([#692](https://github.com/kreuzwerker/terraform-provider-docker/issues/692)) +* Add support for build-secrets ([#604](https://github.com/kreuzwerker/terraform-provider-docker/issues/604)) + +### Fix + +* Authentication to ECR public ([#690](https://github.com/kreuzwerker/terraform-provider-docker/issues/690)) + + + +## [v3.1.2](https://github.com/kreuzwerker/terraform-provider-docker/compare/v3.1.1...v3.1.2) (2025-04-15) + +### Chore + +* prepare release 3.1.2 ([#688](https://github.com/kreuzwerker/terraform-provider-docker/issues/688)) + + + +## [v3.1.1](https://github.com/kreuzwerker/terraform-provider-docker/compare/v3.1.0...v3.1.1) (2025-04-14) + +### Chore + +* Prepare release 3.1.1 ([#687](https://github.com/kreuzwerker/terraform-provider-docker/issues/687)) + + + +## [v3.1.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v3.0.2...v3.1.0) (2025-04-14) + +### Chore + +* Prepare release 3.1.0 ([#685](https://github.com/kreuzwerker/terraform-provider-docker/issues/685)) +* update Go version to 1.22 for consistency across workflows, jo… ([#613](https://github.com/kreuzwerker/terraform-provider-docker/issues/613)) + +### Feat + +* support setting cpu shares ([#575](https://github.com/kreuzwerker/terraform-provider-docker/issues/575)) + +### Fix + +* Use build_args everywhere and update documentation ([#681](https://github.com/kreuzwerker/terraform-provider-docker/issues/681)) +* Compress build context before sending it to Docker ([#461](https://github.com/kreuzwerker/terraform-provider-docker/issues/461)) +* Set correct default network driver and fix a test ([#677](https://github.com/kreuzwerker/terraform-provider-docker/issues/677)) + +### Typo + +* s/presend/present/ ([#606](https://github.com/kreuzwerker/terraform-provider-docker/issues/606)) + + + +## [v3.0.2](https://github.com/kreuzwerker/terraform-provider-docker/compare/v3.0.1...v3.0.2) (2023-03-17) + +### Chore + +* Prepare release v3.0.2 + +### Docs + +* correct spelling of "networks_advanced" ([#517](https://github.com/kreuzwerker/terraform-provider-docker/issues/517)) + +### Fix + +* Implement proxy support. ([#529](https://github.com/kreuzwerker/terraform-provider-docker/issues/529)) + + + +## [v3.0.1](https://github.com/kreuzwerker/terraform-provider-docker/compare/v3.0.0...v3.0.1) (2023-01-13) + +### Chore + +* Prepare release v3.0.1 + +### Fix + +* Access health of container correctly. ([#506](https://github.com/kreuzwerker/terraform-provider-docker/issues/506)) + + + +## [v3.0.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.25.0...v3.0.0) (2023-01-13) + +### Chore + +* Prepare release v3.0.0 + +### Docs + +* Update documentation. +* Add migration guide and update README ([#502](https://github.com/kreuzwerker/terraform-provider-docker/issues/502)) + +### Feat + +* Prepare v3 release ([#503](https://github.com/kreuzwerker/terraform-provider-docker/issues/503)) + + + +## [v2.25.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.24.0...v2.25.0) (2023-01-05) + +### Chore + +* Prepare release v2.25.0 + +### Docs + +* Add documentation of remote hosts. ([#498](https://github.com/kreuzwerker/terraform-provider-docker/issues/498)) + +### Feat + +* Migrate build block to `docker_image` ([#501](https://github.com/kreuzwerker/terraform-provider-docker/issues/501)) +* Add platform attribute to docker_image resource ([#500](https://github.com/kreuzwerker/terraform-provider-docker/issues/500)) +* Add sysctl implementation to container of docker_service. ([#499](https://github.com/kreuzwerker/terraform-provider-docker/issues/499)) + + + +## [v2.24.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.23.1...v2.24.0) (2022-12-23) + +### Chore + +* Prepare release v2.24.0 + +### Docs + +* Fix generated website. +* Update command typo ([#487](https://github.com/kreuzwerker/terraform-provider-docker/issues/487)) + +### Feat + +* cgroupns support ([#497](https://github.com/kreuzwerker/terraform-provider-docker/issues/497)) +* Add triggers attribute to docker_registry_image ([#496](https://github.com/kreuzwerker/terraform-provider-docker/issues/496)) +* Support registries with disabled auth ([#494](https://github.com/kreuzwerker/terraform-provider-docker/issues/494)) +* add IPAM options block for docker networks ([#491](https://github.com/kreuzwerker/terraform-provider-docker/issues/491)) + +### Fix + +* Pin data source specific tag test to older tag. + +### Tests + +* Add test for parsing auth headers. + + + +## [v2.23.1](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.23.0...v2.23.1) (2022-11-23) + +### Chore + +* Prepare release v2.23.1 + +### Fix + +* Update shasum of busybox:1.35.0 tag in test. +* Handle Auth Header Scopes ([#482](https://github.com/kreuzwerker/terraform-provider-docker/issues/482)) +* Set OS_ARCH from GOHOSTOS and GOHOSTARCH ([#477](https://github.com/kreuzwerker/terraform-provider-docker/issues/477)) + + + +## [v2.23.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.22.0...v2.23.0) (2022-11-02) + +### Chore + +* Prepare release v2.23.0 + +### Feat + +* wait container healthy state ([#467](https://github.com/kreuzwerker/terraform-provider-docker/issues/467)) +* add docker logs data source ([#471](https://github.com/kreuzwerker/terraform-provider-docker/issues/471)) + +### Fix + +* Update shasum of busybox:1.35.0 tag in test. +* Update shasum of busybox:1.35.0 tag +* Correct provider name to match the public registry ([#462](https://github.com/kreuzwerker/terraform-provider-docker/issues/462)) + + + +## [v2.22.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.21.0...v2.22.0) (2022-09-20) + +### Chore + +* Prepare release v2.22.0 + +### Feat + +* Configurable timeout for docker_container resource stateChangeConf ([#454](https://github.com/kreuzwerker/terraform-provider-docker/issues/454)) + +### Fix + +* oauth authorization support for azurecr ([#451](https://github.com/kreuzwerker/terraform-provider-docker/issues/451)) + + + +## [v2.21.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.20.3...v2.21.0) (2022-09-05) + +### Chore + +* Prepare release v2.21.0 + +### Docs + +* Fix docker config example. + +### Feat + +* Add image_id attribute to docker_image resource. ([#450](https://github.com/kreuzwerker/terraform-provider-docker/issues/450)) +* Update used goversion to 1.18. ([#449](https://github.com/kreuzwerker/terraform-provider-docker/issues/449)) + +### Fix + +* Replace deprecated .latest attribute with new image_id. ([#453](https://github.com/kreuzwerker/terraform-provider-docker/issues/453)) +* Remove reading part of docker_tag resource. ([#448](https://github.com/kreuzwerker/terraform-provider-docker/issues/448)) +* Fix repo_digest value for DockerImageDatasource test. + + + +## [v2.20.3](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.20.2...v2.20.3) (2022-08-31) + +### Chore + +* Prepare release v2.20.3 + +### Fix + +* Docker Registry Image data source use HEAD request to query image digest ([#433](https://github.com/kreuzwerker/terraform-provider-docker/issues/433)) +* Adding Support for Windows Paths in Bash ([#438](https://github.com/kreuzwerker/terraform-provider-docker/issues/438)) + + + +## [v2.20.2](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.20.1...v2.20.2) (2022-08-10) + +### Chore + +* Prepare release v2.20.2 + +### Fix + +* Check the operating system for determining the default Docker socket ([#427](https://github.com/kreuzwerker/terraform-provider-docker/issues/427)) + +### Reverts + +* fix(deps): update module github.com/golangci/golangci-lint to v1.48.0 ([#423](https://github.com/kreuzwerker/terraform-provider-docker/issues/423)) + + + +## [v2.20.1](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.20.0...v2.20.1) (2022-08-10) + +### Chore + +* Prepare release v2.20.1 +* Reduce time to setup AccTests ([#430](https://github.com/kreuzwerker/terraform-provider-docker/issues/430)) + +### Docs + +* Improve docker network usage documentation [skip-ci] + +### Feat + +* Implement triggers attribute for docker_image. ([#425](https://github.com/kreuzwerker/terraform-provider-docker/issues/425)) + +### Fix + +* Add ForceTrue to docker_image name attribute. ([#421](https://github.com/kreuzwerker/terraform-provider-docker/issues/421)) + + + +## [v2.20.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.19.0...v2.20.0) (2022-07-28) + +### Chore + +* Prepare release v2.20.0 +* Fix release targets in Makefile. + +### Feat + +* Implementation of `docker_tag` resource. ([#418](https://github.com/kreuzwerker/terraform-provider-docker/issues/418)) +* Implement support for insecure registries ([#414](https://github.com/kreuzwerker/terraform-provider-docker/issues/414)) + + + +## [v2.19.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.18.1...v2.19.0) (2022-07-15) + +### Chore + +* Prepare release v2.19.0 + +### Feat + +* Add gpu flag to docker_container resource ([#405](https://github.com/kreuzwerker/terraform-provider-docker/issues/405)) + +### Fix + +* Enable authentication to multiple registries again. ([#400](https://github.com/kreuzwerker/terraform-provider-docker/issues/400)) +* ECR authentication ([#409](https://github.com/kreuzwerker/terraform-provider-docker/issues/409)) + + + +## [v2.18.1](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.18.0...v2.18.1) (2022-07-14) + +### Chore + +* Prepare release v2.18.1 +* Automate changelog generation [skip ci] + +### Fix + +* Improve searchLocalImages error handling. ([#407](https://github.com/kreuzwerker/terraform-provider-docker/issues/407)) +* Throw errors when any part of docker config file handling goes wrong. ([#406](https://github.com/kreuzwerker/terraform-provider-docker/issues/406)) +* Enables having a Dockerfile outside the context ([#402](https://github.com/kreuzwerker/terraform-provider-docker/issues/402)) + + + +## [v2.18.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.17.0...v2.18.0) (2022-07-11) + +### Chore + +* prepare release v2.18.0 + +### Feat + +* add runtime, stop_signal and stop_timeout properties to the docker_container resource ([#364](https://github.com/kreuzwerker/terraform-provider-docker/issues/364)) + +### Fix + +* Correctly handle build files and context for docker_registry_image ([#398](https://github.com/kreuzwerker/terraform-provider-docker/issues/398)) +* Switch to proper go tools mechanism to fix website-* workflows. ([#399](https://github.com/kreuzwerker/terraform-provider-docker/issues/399)) +* compare relative paths when excluding, fixes kreuzwerker[#280](https://github.com/kreuzwerker/terraform-provider-docker/issues/280) ([#397](https://github.com/kreuzwerker/terraform-provider-docker/issues/397)) + + + +## [v2.17.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.16.0...v2.17.0) (2022-06-23) + +### Chore + +* prepare release v2.17.0 +* Exclude examples directory from renovate. +* remove the workflow to close stale issues and pull requests ([#371](https://github.com/kreuzwerker/terraform-provider-docker/issues/371)) + +### Fix + +* update go package files directly on master to fix build. +* correct authentication for ghcr.io registry([#349](https://github.com/kreuzwerker/terraform-provider-docker/issues/349)) + + + +## [v2.16.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.15.0...v2.16.0) (2022-01-24) + +### Chore + +* prepare release v2.16.0 + +### Docs + +* fix service options ([#337](https://github.com/kreuzwerker/terraform-provider-docker/issues/337)) +* update registry_image.md ([#321](https://github.com/kreuzwerker/terraform-provider-docker/issues/321)) +* fix r/registry_image truncated docs ([#304](https://github.com/kreuzwerker/terraform-provider-docker/issues/304)) + +### Feat + +* add parameter for SSH options ([#335](https://github.com/kreuzwerker/terraform-provider-docker/issues/335)) + +### Fix + +* pass container rm flag ([#322](https://github.com/kreuzwerker/terraform-provider-docker/issues/322)) +* add nil check of DriverConfig ([#315](https://github.com/kreuzwerker/terraform-provider-docker/issues/315)) +* fmt of go files for go 1.17 + + + +## [v2.15.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.14.0...v2.15.0) (2021-08-11) + +### Chore + +* prepare release v2.15.0 +* re go gets terraform-plugin-docs + +### Docs + +* corrects authentication misspell. Closes [#264](https://github.com/kreuzwerker/terraform-provider-docker/issues/264) + +### Feat + +* add container storage opts ([#258](https://github.com/kreuzwerker/terraform-provider-docker/issues/258)) + +### Fix + +* add current timestamp for file upload to container ([#259](https://github.com/kreuzwerker/terraform-provider-docker/issues/259)) + + + +## [v2.14.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.13.0...v2.14.0) (2021-07-09) + +### Chore + +* prepare release v2.14.0 + +### Docs + +* update to absolute path for registry image context ([#246](https://github.com/kreuzwerker/terraform-provider-docker/issues/246)) +* update readme with logos and subsections ([#235](https://github.com/kreuzwerker/terraform-provider-docker/issues/235)) + +### Feat + +* support terraform v1 ([#242](https://github.com/kreuzwerker/terraform-provider-docker/issues/242)) + +### Fix + +* Update the URL of the docker hub registry ([#230](https://github.com/kreuzwerker/terraform-provider-docker/issues/230)) + + + +## [v2.13.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.12.2...v2.13.0) (2021-06-22) + +### Chore + +* prepare release v2.13.0 + +### Docs + +* fix a few typos ([#216](https://github.com/kreuzwerker/terraform-provider-docker/issues/216)) +* fix typos in docker_image example usage ([#213](https://github.com/kreuzwerker/terraform-provider-docker/issues/213)) + + + +## [v2.12.2](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.12.1...v2.12.2) (2021-05-26) + +### Chore + +* prepare release v2.12.2 + + + +## [v2.12.1](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.12.0...v2.12.1) (2021-05-26) + +### Chore + +* update changelog for v2.12.1 + +### Fix + +* add service host flattener with space split ([#205](https://github.com/kreuzwerker/terraform-provider-docker/issues/205)) +* service state upgradeV2 for empty auth + + + +## [v2.12.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.11.0...v2.12.0) (2021-05-23) + +### Chore + +* update changelog for v2.12.0 +* ignore dist folder +* configure actions/stale ([#157](https://github.com/kreuzwerker/terraform-provider-docker/issues/157)) +* add the guide about Terraform Configuration in Bug Report ([#139](https://github.com/kreuzwerker/terraform-provider-docker/issues/139)) +* bump docker dependency to v20.10.5 ([#119](https://github.com/kreuzwerker/terraform-provider-docker/issues/119)) + +### Ci + +* run acceptance tests with multiple Terraform versions ([#129](https://github.com/kreuzwerker/terraform-provider-docker/issues/129)) + +### Docs + +* update for v2.12.0 +* add releasing steps +* format `Guide of Bug report` ([#159](https://github.com/kreuzwerker/terraform-provider-docker/issues/159)) +* add an example to build an image with docker_image ([#158](https://github.com/kreuzwerker/terraform-provider-docker/issues/158)) +* add a guide about writing issues to CONTRIBUTING.md ([#149](https://github.com/kreuzwerker/terraform-provider-docker/issues/149)) +* fix Github repository URL in README ([#136](https://github.com/kreuzwerker/terraform-provider-docker/issues/136)) + +### Feat + +* support darwin arm builds and golang 1.16 ([#140](https://github.com/kreuzwerker/terraform-provider-docker/issues/140)) +* migrate to terraform-sdk v2 ([#102](https://github.com/kreuzwerker/terraform-provider-docker/issues/102)) + +### Fix + +* rewriting tar header fields ([#198](https://github.com/kreuzwerker/terraform-provider-docker/issues/198)) +* test spaces for windows ([#190](https://github.com/kreuzwerker/terraform-provider-docker/issues/190)) +* replace for loops with StateChangeConf ([#182](https://github.com/kreuzwerker/terraform-provider-docker/issues/182)) +* skip sign on compile action +* assign map to rawState when it is nil to prevent panic ([#180](https://github.com/kreuzwerker/terraform-provider-docker/issues/180)) +* search local images with Docker image ID ([#151](https://github.com/kreuzwerker/terraform-provider-docker/issues/151)) +* set "ForceNew: true" to labelSchema ([#152](https://github.com/kreuzwerker/terraform-provider-docker/issues/152)) + + + +## [v2.11.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.10.0...v2.11.0) (2021-01-22) + +### Chore + +* update changelog for v2.11.0 +* updates changelog for v2.10.0 + +### Docs + +* fix legacy configuration style ([#126](https://github.com/kreuzwerker/terraform-provider-docker/issues/126)) + +### Feat + +* add properties -it (tty and stdin_opn) to docker container + + + +## [v2.10.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.9.0...v2.10.0) (2021-01-08) + +### Chore + +* updates changelog for 2.10.0 +* ignores testing folders +* adds separate bug and ft req templates + +### Ci + +* bumps to docker version 20.10.1 +* pins workflows to ubuntu:20.04 image + +### Docs + +* add labels to arguments of docker_service ([#105](https://github.com/kreuzwerker/terraform-provider-docker/issues/105)) +* cleans readme +* adds coc and contributing + +### Feat + +* supports Docker plugin ([#35](https://github.com/kreuzwerker/terraform-provider-docker/issues/35)) +* support max replicas of Docker Service Task Spec ([#112](https://github.com/kreuzwerker/terraform-provider-docker/issues/112)) +* add force_remove option to r/image ([#104](https://github.com/kreuzwerker/terraform-provider-docker/issues/104)) +* add local semantic commit validation ([#99](https://github.com/kreuzwerker/terraform-provider-docker/issues/99)) +* add ability to lint/check of links in documentation locally ([#98](https://github.com/kreuzwerker/terraform-provider-docker/issues/98)) + +### Fix + +* set "latest" to tag when tag isn't specified ([#117](https://github.com/kreuzwerker/terraform-provider-docker/issues/117)) +* image label for workflows +* remove all azure cps + +### Pull Requests + +* Merge pull request [#38](https://github.com/kreuzwerker/terraform-provider-docker/issues/38) from kreuzwerker/ci-ubuntu2004-workflow +* Merge pull request [#36](https://github.com/kreuzwerker/terraform-provider-docker/issues/36) from kreuzwerker/chore-gh-issue-tpl + + + +## [v2.9.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.8.0...v2.9.0) (2020-12-25) + +### Chore + +* updates changelog for 2.9.0 +* update changelog 2.8.0 release date +* introduces golangci-lint ([#32](https://github.com/kreuzwerker/terraform-provider-docker/issues/32)) +* fix changelog links + +### Ci + +* add gofmt's '-s' option +* remove unneeded make tasks +* fix test of website + +### Doc + +* devices is a block, not a boolean + +### Feat + +* adds support for OCI manifests ([#316](https://github.com/kreuzwerker/terraform-provider-docker/issues/316)) +* adds security_opts to container config. ([#308](https://github.com/kreuzwerker/terraform-provider-docker/issues/308)) +* adds support for init process injection for containers. ([#300](https://github.com/kreuzwerker/terraform-provider-docker/issues/300)) + +### Fix + +* changing mounts requires ForceNew ([#314](https://github.com/kreuzwerker/terraform-provider-docker/issues/314)) +* allow healthcheck to be computed as container can specify ([#312](https://github.com/kreuzwerker/terraform-provider-docker/issues/312)) +* treat null user as a no-op ([#318](https://github.com/kreuzwerker/terraform-provider-docker/issues/318)) +* workdir null behavior ([#320](https://github.com/kreuzwerker/terraform-provider-docker/issues/320)) + +### Style + +* format with gofumpt + +### Pull Requests + +* Merge pull request [#33](https://github.com/kreuzwerker/terraform-provider-docker/issues/33) from brandonros/patch-1 +* Merge pull request [#11](https://github.com/kreuzwerker/terraform-provider-docker/issues/11) from suzuki-shunsuke/format-with-gofumpt +* Merge pull request [#26](https://github.com/kreuzwerker/terraform-provider-docker/issues/26) from kreuzwerker/ci/fix-website-ci +* Merge pull request [#8](https://github.com/kreuzwerker/terraform-provider-docker/issues/8) from dubo-dubon-duponey/patch1 + + + +## v2.8.0 (2020-11-11) + +### Chore + +* updates changelog for 2.8.0 +* removes travis.yml +* deactivates travis +* removes vendor dir ([#298](https://github.com/kreuzwerker/terraform-provider-docker/issues/298)) +* bump go 115 ([#297](https://github.com/kreuzwerker/terraform-provider-docker/issues/297)) +* documentation updates ([#286](https://github.com/kreuzwerker/terraform-provider-docker/issues/286)) +* updates link syntax ([#287](https://github.com/kreuzwerker/terraform-provider-docker/issues/287)) +* fix typo ([#292](https://github.com/kreuzwerker/terraform-provider-docker/issues/292)) + +### Ci + +* reactivats all workflows +* fix website +* only run website workflow +* exports gopath manually +* fix absolute gopath for website +* make website check separate workflow +* fix workflow names +* adds website test to unit test +* adds acc test +* adds compile +* adds go version and goproxy env +* enables unit tests for master branch +* adds unit test workflow +* adds goreleaser and gh action +* bumps docker and ubuntu versions ([#241](https://github.com/kreuzwerker/terraform-provider-docker/issues/241)) +* removes debug option from acc tests +* skips test which is flaky only on travis + +### Deps + +* github.com/hashicorp/terraform[@sdk](https://github.com/sdk)-v0.11-with-go-modules Updated via: go get github.com/hashicorp/terraform[@sdk](https://github.com/sdk)-v0.11-with-go-modules and go mod tidy +* use go modules for dep mgmt run go mod tidy remove govendor from makefile and travis config set appropriate env vars for go modules + +### Docker + +* improve validation of runtime constraints + +### Docs + +* update container.html.markdown ([#278](https://github.com/kreuzwerker/terraform-provider-docker/issues/278)) +* update service.html.markdown ([#281](https://github.com/kreuzwerker/terraform-provider-docker/issues/281)) +* update restart_policy for service. Closes [#228](https://github.com/kreuzwerker/terraform-provider-docker/issues/228) +* adds new label structure. Closes [#214](https://github.com/kreuzwerker/terraform-provider-docker/issues/214) +* update anchors with -1 suffix ([#178](https://github.com/kreuzwerker/terraform-provider-docker/issues/178)) +* Fix misspelled words +* Fix exported attribute name in docker_registry_image +* Fix example for docker_registry_image ([#8308](https://github.com/kreuzwerker/terraform-provider-docker/issues/8308)) +* provider/docker - network settings attrs + +### Feat + +* conditionally adding port binding ([#293](https://github.com/kreuzwerker/terraform-provider-docker/issues/293)). +* adds docker Image build feature ([#283](https://github.com/kreuzwerker/terraform-provider-docker/issues/283)) +* adds complete support for Docker credential helpers ([#253](https://github.com/kreuzwerker/terraform-provider-docker/issues/253)) +* Expose IPv6 properties as attributes +* allow use of source file instead of content / content_base64 ([#240](https://github.com/kreuzwerker/terraform-provider-docker/issues/240)) +* supports to update docker_container ([#236](https://github.com/kreuzwerker/terraform-provider-docker/issues/236)) +* support to import some docker_container's attributes ([#234](https://github.com/kreuzwerker/terraform-provider-docker/issues/234)) +* adds config file content as plain string ([#232](https://github.com/kreuzwerker/terraform-provider-docker/issues/232)) +* make UID, GID, & mode for secrets and configs configurable ([#231](https://github.com/kreuzwerker/terraform-provider-docker/issues/231)) +* adds import for resources ([#196](https://github.com/kreuzwerker/terraform-provider-docker/issues/196)) +* add container ipc mode. ([#182](https://github.com/kreuzwerker/terraform-provider-docker/issues/182)) +* adds container working dir ([#181](https://github.com/kreuzwerker/terraform-provider-docker/issues/181)) + +### Fix + +* ignores 'remove_volumes' on container import +* duplicated buildImage function +* port objects with the same internal port but different protocol trigger recreation of container ([#274](https://github.com/kreuzwerker/terraform-provider-docker/issues/274)) +* panic to migrate schema of docker_container from v1 to v2 ([#271](https://github.com/kreuzwerker/terraform-provider-docker/issues/271)). Closes [#264](https://github.com/kreuzwerker/terraform-provider-docker/issues/264) +* pins docker registry for tests to v2.7.0 +* prevent force recreate of container about some attributes ([#269](https://github.com/kreuzwerker/terraform-provider-docker/issues/269)) +* service endpoint spec flattening +* corrects IPAM config read on the data provider ([#229](https://github.com/kreuzwerker/terraform-provider-docker/issues/229)) +* replica to 0 in current schema. Closes [#221](https://github.com/kreuzwerker/terraform-provider-docker/issues/221) +* label for network and volume after improt +* binary upload as base 64 content ([#194](https://github.com/kreuzwerker/terraform-provider-docker/issues/194)) +* service env truncation for multiple delimiters ([#193](https://github.com/kreuzwerker/terraform-provider-docker/issues/193)) +* destroy_grace_seconds are considered ([#179](https://github.com/kreuzwerker/terraform-provider-docker/issues/179)) + +### Make + +* Add website + website-test targets + +### Provider + +* Ensured Go 1.11 in TravisCI and README provider: Run go fix provider: Run go fmt provider: Encode go version 1.11.5 to .go-version file +* Require Go 1.11 in TravisCI and README provider: Run go fix provider: Run go fmt + +### Tests + +* Skip test if swap limit isn't available ([#136](https://github.com/kreuzwerker/terraform-provider-docker/issues/136)) +* Simplify Dockerfile(s) + +### Vendor + +* github.com/hashicorp/terraform/...[@v0](https://github.com/v0).10.0 +* Ignore github.com/hashicorp/terraform/backend + +### Website + +* Docs sweep for lists & maps +* note on docker +* docker docs + +### Pull Requests + +* Merge pull request [#134](https://github.com/kreuzwerker/terraform-provider-docker/issues/134) from terraform-providers/go-modules-2019-03-01 +* Merge pull request [#135](https://github.com/kreuzwerker/terraform-provider-docker/issues/135) from terraform-providers/t-simplify-dockerfile +* Merge pull request [#47](https://github.com/kreuzwerker/terraform-provider-docker/issues/47) from captn3m0/docker-link-warning +* Merge pull request [#60](https://github.com/kreuzwerker/terraform-provider-docker/issues/60) from terraform-providers/f-make-website +* Merge pull request [#23](https://github.com/kreuzwerker/terraform-provider-docker/issues/23) from JamesLaverack/patch-1 +* Merge pull request [#18](https://github.com/kreuzwerker/terraform-provider-docker/issues/18) from terraform-providers/vendor-tf-0.10 +* Merge pull request [#5046](https://github.com/kreuzwerker/terraform-provider-docker/issues/5046) from tpounds/use-built-in-schema-string-hash +* Merge pull request [#3761](https://github.com/kreuzwerker/terraform-provider-docker/issues/3761) from ryane/f-provider-docker-improvements +* Merge pull request [#3383](https://github.com/kreuzwerker/terraform-provider-docker/issues/3383) from apparentlymart/docker-container-command-docs +* Merge pull request [#1564](https://github.com/kreuzwerker/terraform-provider-docker/issues/1564) from nickryand/docker_links + diff --git a/docs/.terraform/providers/registry.terraform.io/kreuzwerker/docker/3.6.0/windows_amd64/LICENSE b/docs/.terraform/providers/registry.terraform.io/kreuzwerker/docker/3.6.0/windows_amd64/LICENSE new file mode 100644 index 000000000..a612ad981 --- /dev/null +++ b/docs/.terraform/providers/registry.terraform.io/kreuzwerker/docker/3.6.0/windows_amd64/LICENSE @@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/docs/.terraform/providers/registry.terraform.io/kreuzwerker/docker/3.6.0/windows_amd64/README.md b/docs/.terraform/providers/registry.terraform.io/kreuzwerker/docker/3.6.0/windows_amd64/README.md new file mode 100644 index 000000000..0ad003fce --- /dev/null +++ b/docs/.terraform/providers/registry.terraform.io/kreuzwerker/docker/3.6.0/windows_amd64/README.md @@ -0,0 +1,117 @@ + + Docker logo + + + Terraform logo + + + Kreuzwerker logo + + +# Terraform Provider for Docker + +[![Release](https://img.shields.io/github/v/release/kreuzwerker/terraform-provider-docker)](https://github.com/kreuzwerker/terraform-provider-docker/releases) +[![Installs](https://img.shields.io/badge/dynamic/json?logo=terraform&label=installs&query=$.data.attributes.downloads&url=https%3A%2F%2Fregistry.terraform.io%2Fv2%2Fproviders%2F713)](https://registry.terraform.io/providers/kreuzwerker/docker) +[![Registry](https://img.shields.io/badge/registry-doc%40latest-lightgrey?logo=terraform)](https://registry.terraform.io/providers/kreuzwerker/docker/latest/docs) +[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/kreuzwerker/terraform-provider-docker/blob/main/LICENSE) +[![Go Status](https://github.com/kreuzwerker/terraform-provider-docker/workflows/Acc%20Tests/badge.svg)](https://github.com/kreuzwerker/terraform-provider-docker/actions) +[![Lint Status](https://github.com/kreuzwerker/terraform-provider-docker/workflows/golangci-lint/badge.svg)](https://github.com/kreuzwerker/terraform-provider-docker/actions) +[![Go Report Card](https://goreportcard.com/badge/github.com/kreuzwerker/terraform-provider-docker)](https://goreportcard.com/report/github.com/kreuzwerker/terraform-provider-docker) + +## Documentation + +The documentation for the provider is available on the [Terraform Registry](https://registry.terraform.io/providers/kreuzwerker/docker/latest/docs). + +Do you want to migrate from `v2.x` to `v3.x`? Please read the [migration guide](docs/v2_v3_migration.md) + +## Example usage + +Take a look at the examples in the [documentation](https://registry.terraform.io/providers/kreuzwerker/docker/3.6.0/docs) of the registry +or use the following example: + + +```hcl +# Set the required provider and versions +terraform { + required_providers { + # We recommend pinning to the specific version of the Docker Provider you're using + # since new versions are released frequently + docker = { + source = "kreuzwerker/docker" + version = "3.6.0" + } + } +} + +# Configure the docker provider +provider "docker" { +} + +# Create a docker image resource +# -> docker pull nginx:latest +resource "docker_image" "nginx" { + name = "nginx:latest" + keep_locally = true +} + +# Create a docker container resource +# -> same as 'docker run --name nginx -p8080:80 -d nginx:latest' +resource "docker_container" "nginx" { + name = "nginx" + image = docker_image.nginx.image_id + + ports { + external = 8080 + internal = 80 + } +} + +# Or create a service resource +# -> same as 'docker service create -d -p 8081:80 --name nginx-service --replicas 2 nginx:latest' +resource "docker_service" "nginx_service" { + name = "nginx-service" + task_spec { + container_spec { + image = docker_image.nginx.repo_digest + } + } + + mode { + replicated { + replicas = 2 + } + } + + endpoint_spec { + ports { + published_port = 8081 + target_port = 80 + } + } +} +``` + +## Building The Provider + +[Go](https://golang.org/doc/install) 1.18.x (to build the provider plugin) + + +```sh +$ git clone git@github.com:kreuzwerker/terraform-provider-docker +$ make build +``` + +## Contributing + +The Terraform Docker Provider is the work of many of contributors. We appreciate your help! + +To contribute, please read the contribution guidelines: [Contributing to Terraform - Docker Provider](CONTRIBUTING.md) + +## License + +The Terraform Provider Docker is available to everyone under the terms of the Mozilla Public License Version 2.0. [Take a look the LICENSE file](LICENSE). + + +## Stargazers over time + +[![Stargazers over time](https://starchart.cc/kreuzwerker/terraform-provider-docker.svg)](https://starchart.cc/kreuzwerker/terraform-provider-docker) diff --git a/docs/.terraform/providers/registry.terraform.io/kreuzwerker/docker/3.6.0/windows_amd64/terraform-provider-docker_v3.6.0.exe b/docs/.terraform/providers/registry.terraform.io/kreuzwerker/docker/3.6.0/windows_amd64/terraform-provider-docker_v3.6.0.exe new file mode 100644 index 000000000..5a462bea1 Binary files /dev/null and b/docs/.terraform/providers/registry.terraform.io/kreuzwerker/docker/3.6.0/windows_amd64/terraform-provider-docker_v3.6.0.exe differ diff --git a/docs/Dockerfile b/docs/Dockerfile new file mode 100644 index 000000000..f1f598593 --- /dev/null +++ b/docs/Dockerfile @@ -0,0 +1,19 @@ +FROM jenkins/jenkins:2.479.2-jdk17 + +USER root + +RUN apt-get update && apt-get install -y lsb-release + +RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ +https://download.docker.com/linux/debian/gpg + +RUN echo "deb [arch=$(dpkg --print-architecture) \ +signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ +https://download.docker.com/linux/debian \ +$(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list + +RUN apt-get update && apt-get install -y docker-ce-cli + +USER jenkins + +RUN jenkins-plugin-cli --plugins "blueocean docker-workflow token-macro json-path-api" \ No newline at end of file diff --git a/docs/Jenkinsfile b/docs/Jenkinsfile new file mode 100644 index 000000000..51737bb61 --- /dev/null +++ b/docs/Jenkinsfile @@ -0,0 +1,55 @@ +pipeline { + agent none + options { + skipStagesAfterUnstable() + } + stages { + stage('Build') { + agent { + docker { + image 'python:3.12.0-alpine3.18' + } + } + steps { + sh 'python -m py_compile sources/add2vals.py sources/calc.py' + stash(name: 'compiled-results', includes: 'sources/*.py*') + } + } + + stage('Test') { + agent { + docker { + image 'qnib/pytest' + } + } + steps { + sh 'py.test --junit-xml test-reports/results.xml sources/test_calc.py' + } + post { + always { + junit 'test-reports/results.xml' + } + } + } + + stage('Deliver') { + agent any + environment { + VOLUME = '$(pwd)/sources:/src' + IMAGE = 'cdrx/pyinstaller-linux:python2' + } + steps { + dir(path: env.BUILD_ID) { + unstash(name: 'compiled-results') + sh "docker run --rm -v ${VOLUME} ${IMAGE} 'pyinstaller -F add2vals.py'" + } + } + post { + success { + archiveArtifacts "${env.BUILD_ID}/sources/dist/add2vals" + sh "docker run --rm -v ${VOLUME} ${IMAGE} 'rm -rf build dist'" + } + } + } + } +} \ No newline at end of file diff --git a/docs/main.tf b/docs/main.tf new file mode 100644 index 000000000..4630aa02b --- /dev/null +++ b/docs/main.tf @@ -0,0 +1,92 @@ +terraform { + required_providers { + docker = { + source = "kreuzwerker/docker" + version = "~> 3.0" + } + } +} + +provider "docker" { + host = "npipe:////.//pipe//docker_engine" +} + +resource "docker_network" "jenkins" { + name = "jenkins" +} + +resource "docker_volume" "jenkins_docker_certs" { + name = "jenkins-docker-certs" +} + +resource "docker_volume" "jenkins_data" { + name = "jenkins-data" +} + +resource "docker_container" "jenkins_docker" { + name = "jenkins-docker" + image = "docker:dind" + privileged = true + restart = "no" + + env = [ + "DOCKER_TLS_CERTDIR=/certs" + ] + + volumes { + volume_name = docker_volume.jenkins_docker_certs.name + container_path = "/certs/client" + } + + volumes { + volume_name = docker_volume.jenkins_data.name + container_path = "/var/jenkins_home" + } + + networks_advanced { + name = docker_network.jenkins.name + aliases = ["docker"] + } + + ports { + internal = 2376 + external = 2376 + } +} + +resource "docker_container" "jenkins_blueocean" { + name = "jenkins-blueocean" + image = "myjenkins-blueocean" + restart = "on-failure" + + env = [ + "DOCKER_HOST=tcp://docker:2376", + "DOCKER_CERT_PATH=/certs/client", + "DOCKER_TLS_VERIFY=1" + ] + + volumes { + volume_name = docker_volume.jenkins_data.name + container_path = "/var/jenkins_home" + } + + volumes { + volume_name = docker_volume.jenkins_docker_certs.name + container_path = "/certs/client" + read_only = true + } + + networks_advanced { + name = docker_network.jenkins.name + } + + ports { + internal = 8080 + external = 8080 + } + + ports { + internal = 50000 + external = 50000 + } +} \ No newline at end of file diff --git a/docs/terraform.tfstate b/docs/terraform.tfstate new file mode 100644 index 000000000..b86217080 --- /dev/null +++ b/docs/terraform.tfstate @@ -0,0 +1,370 @@ +{ + "version": 4, + "terraform_version": "1.10.1", + "serial": 13, + "lineage": "f3538190-3931-8953-0843-bdcbdc2e1d61", + "outputs": {}, + "resources": [ + { + "mode": "managed", + "type": "docker_container", + "name": "jenkins_blueocean", + "provider": "provider[\"registry.terraform.io/kreuzwerker/docker\"]", + "instances": [ + { + "schema_version": 2, + "attributes": { + "attach": false, + "bridge": "", + "capabilities": [], + "cgroupns_mode": null, + "command": [], + "container_logs": null, + "container_read_refresh_timeout_milliseconds": 15000, + "cpu_period": null, + "cpu_quota": null, + "cpu_set": "", + "cpu_shares": 0, + "cpus": null, + "destroy_grace_seconds": null, + "devices": [], + "dns": null, + "dns_opts": null, + "dns_search": null, + "domainname": "", + "entrypoint": [ + "/usr/bin/tini", + "--", + "/usr/local/bin/jenkins.sh" + ], + "env": [ + "DOCKER_CERT_PATH=/certs/client", + "DOCKER_HOST=tcp://docker:2376", + "DOCKER_TLS_VERIFY=1" + ], + "exit_code": null, + "gpus": null, + "group_add": null, + "healthcheck": null, + "host": [], + "hostname": "cdb00938cdb2", + "id": "cdb00938cdb20d969faffe11c916059865119ac7d2db35842a834873ae09f5ba", + "image": "myjenkins-blueocean", + "init": false, + "ipc_mode": "private", + "labels": [], + "log_driver": "json-file", + "log_opts": null, + "logs": false, + "max_retry_count": 0, + "memory": 0, + "memory_swap": 0, + "mounts": [], + "must_run": true, + "name": "jenkins-blueocean", + "network_data": [ + { + "gateway": "172.18.0.1", + "global_ipv6_address": "", + "global_ipv6_prefix_length": 0, + "ip_address": "172.18.0.3", + "ip_prefix_length": 16, + "ipv6_gateway": "", + "mac_address": "02:42:ac:12:00:03", + "network_name": "jenkins" + } + ], + "network_mode": "bridge", + "networks_advanced": [ + { + "aliases": [], + "ipv4_address": "", + "ipv6_address": "", + "name": "jenkins" + } + ], + "pid_mode": "", + "ports": [ + { + "external": 8080, + "internal": 8080, + "ip": "0.0.0.0", + "protocol": "tcp" + }, + { + "external": 50000, + "internal": 50000, + "ip": "0.0.0.0", + "protocol": "tcp" + } + ], + "privileged": false, + "publish_all_ports": false, + "read_only": false, + "remove_volumes": true, + "restart": "on-failure", + "rm": false, + "runtime": "runc", + "security_opts": [], + "shm_size": 64, + "start": true, + "stdin_open": false, + "stop_signal": "", + "stop_timeout": 0, + "storage_opts": null, + "sysctls": null, + "tmpfs": null, + "tty": false, + "ulimit": [], + "upload": [], + "user": "jenkins", + "userns_mode": "", + "volumes": [ + { + "container_path": "/certs/client", + "from_container": "", + "host_path": "", + "read_only": true, + "volume_name": "jenkins-docker-certs" + }, + { + "container_path": "/var/jenkins_home", + "from_container": "", + "host_path": "", + "read_only": null, + "volume_name": "jenkins-data" + } + ], + "wait": false, + "wait_timeout": 60, + "working_dir": "/" + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjIifQ==", + "dependencies": [ + "docker_network.jenkins", + "docker_volume.jenkins_data", + "docker_volume.jenkins_docker_certs" + ] + } + ] + }, + { + "mode": "managed", + "type": "docker_container", + "name": "jenkins_docker", + "provider": "provider[\"registry.terraform.io/kreuzwerker/docker\"]", + "instances": [ + { + "schema_version": 2, + "attributes": { + "attach": false, + "bridge": "", + "capabilities": [], + "cgroupns_mode": null, + "command": [], + "container_logs": null, + "container_read_refresh_timeout_milliseconds": 15000, + "cpu_period": null, + "cpu_quota": null, + "cpu_set": "", + "cpu_shares": 0, + "cpus": null, + "destroy_grace_seconds": null, + "devices": [], + "dns": null, + "dns_opts": null, + "dns_search": null, + "domainname": "", + "entrypoint": [ + "dockerd-entrypoint.sh" + ], + "env": [ + "DOCKER_TLS_CERTDIR=/certs" + ], + "exit_code": null, + "gpus": null, + "group_add": null, + "healthcheck": null, + "host": [], + "hostname": "868d37414b42", + "id": "868d37414b429ab272423898952372d5c69860bde0571e81f824a64fd8eafc54", + "image": "docker:dind", + "init": false, + "ipc_mode": "private", + "labels": [], + "log_driver": "json-file", + "log_opts": null, + "logs": false, + "max_retry_count": 0, + "memory": 0, + "memory_swap": 0, + "mounts": [], + "must_run": true, + "name": "jenkins-docker", + "network_data": [ + { + "gateway": "172.18.0.1", + "global_ipv6_address": "", + "global_ipv6_prefix_length": 0, + "ip_address": "172.18.0.2", + "ip_prefix_length": 16, + "ipv6_gateway": "", + "mac_address": "02:42:ac:12:00:02", + "network_name": "jenkins" + } + ], + "network_mode": "bridge", + "networks_advanced": [ + { + "aliases": [ + "docker" + ], + "ipv4_address": "", + "ipv6_address": "", + "name": "jenkins" + } + ], + "pid_mode": "", + "ports": [ + { + "external": 2376, + "internal": 2376, + "ip": "0.0.0.0", + "protocol": "tcp" + } + ], + "privileged": true, + "publish_all_ports": false, + "read_only": false, + "remove_volumes": true, + "restart": "no", + "rm": false, + "runtime": "runc", + "security_opts": [ + "label=disable" + ], + "shm_size": 64, + "start": true, + "stdin_open": false, + "stop_signal": "", + "stop_timeout": 0, + "storage_opts": null, + "sysctls": null, + "tmpfs": null, + "tty": false, + "ulimit": [], + "upload": [], + "user": "", + "userns_mode": "", + "volumes": [ + { + "container_path": "/certs/client", + "from_container": "", + "host_path": "", + "read_only": null, + "volume_name": "jenkins-docker-certs" + }, + { + "container_path": "/var/jenkins_home", + "from_container": "", + "host_path": "", + "read_only": null, + "volume_name": "jenkins-data" + } + ], + "wait": false, + "wait_timeout": 60, + "working_dir": "/" + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjIifQ==", + "dependencies": [ + "docker_network.jenkins", + "docker_volume.jenkins_data", + "docker_volume.jenkins_docker_certs" + ] + } + ] + }, + { + "mode": "managed", + "type": "docker_network", + "name": "jenkins", + "provider": "provider[\"registry.terraform.io/kreuzwerker/docker\"]", + "instances": [ + { + "schema_version": 1, + "attributes": { + "attachable": false, + "check_duplicate": null, + "driver": "bridge", + "id": "64521b487b10dcf6f0e64816c940c2c0172546d1fb4a9ed79c410abddf5af89f", + "ingress": false, + "internal": false, + "ipam_config": [ + { + "aux_address": {}, + "gateway": "172.18.0.1", + "ip_range": "", + "subnet": "172.18.0.0/16" + } + ], + "ipam_driver": "default", + "ipam_options": {}, + "ipv6": false, + "labels": [], + "name": "jenkins", + "options": {}, + "scope": "local" + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==" + } + ] + }, + { + "mode": "managed", + "type": "docker_volume", + "name": "jenkins_data", + "provider": "provider[\"registry.terraform.io/kreuzwerker/docker\"]", + "instances": [ + { + "schema_version": 1, + "attributes": { + "driver": "local", + "driver_opts": null, + "id": "jenkins-data", + "labels": [], + "mountpoint": "/var/lib/docker/volumes/jenkins-data/_data", + "name": "jenkins-data" + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==" + } + ] + }, + { + "mode": "managed", + "type": "docker_volume", + "name": "jenkins_docker_certs", + "provider": "provider[\"registry.terraform.io/kreuzwerker/docker\"]", + "instances": [ + { + "schema_version": 1, + "attributes": { + "driver": "local", + "driver_opts": null, + "id": "jenkins-docker-certs", + "labels": [], + "mountpoint": "/var/lib/docker/volumes/jenkins-docker-certs/_data", + "name": "jenkins-docker-certs" + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==" + } + ] + } + ], + "check_results": null +} diff --git a/docs/terraform.tfstate.1748854600.backup b/docs/terraform.tfstate.1748854600.backup new file mode 100644 index 000000000..3678b41fe --- /dev/null +++ b/docs/terraform.tfstate.1748854600.backup @@ -0,0 +1,370 @@ +{ + "version": 4, + "terraform_version": "1.10.1", + "serial": 6, + "lineage": "f3538190-3931-8953-0843-bdcbdc2e1d61", + "outputs": {}, + "resources": [ + { + "mode": "managed", + "type": "docker_container", + "name": "jenkins_blueocean", + "provider": "provider[\"registry.terraform.io/kreuzwerker/docker\"]", + "instances": [ + { + "schema_version": 2, + "attributes": { + "attach": false, + "bridge": "", + "capabilities": [], + "cgroupns_mode": null, + "command": [], + "container_logs": null, + "container_read_refresh_timeout_milliseconds": 15000, + "cpu_period": null, + "cpu_quota": null, + "cpu_set": "", + "cpu_shares": 0, + "cpus": null, + "destroy_grace_seconds": null, + "devices": [], + "dns": null, + "dns_opts": null, + "dns_search": null, + "domainname": "", + "entrypoint": [ + "/usr/bin/tini", + "--", + "/usr/local/bin/jenkins.sh" + ], + "env": [ + "DOCKER_CERT_PATH=/certs/client", + "DOCKER_HOST=tcp://docker:2376", + "DOCKER_TLS_VERIFY=1" + ], + "exit_code": null, + "gpus": null, + "group_add": null, + "healthcheck": null, + "host": [], + "hostname": "f1f9977c3560", + "id": "f1f9977c35600f7079afff1d5916409d34668ce6099d074ed532a5591701066d", + "image": "myjenkins-blueocean", + "init": false, + "ipc_mode": "private", + "labels": [], + "log_driver": "json-file", + "log_opts": null, + "logs": false, + "max_retry_count": 0, + "memory": 0, + "memory_swap": 0, + "mounts": [], + "must_run": true, + "name": "jenkins-blueocean", + "network_data": [ + { + "gateway": "172.18.0.1", + "global_ipv6_address": "", + "global_ipv6_prefix_length": 0, + "ip_address": "172.18.0.3", + "ip_prefix_length": 16, + "ipv6_gateway": "", + "mac_address": "02:42:ac:12:00:03", + "network_name": "jenkins" + } + ], + "network_mode": "bridge", + "networks_advanced": [ + { + "aliases": [], + "ipv4_address": "", + "ipv6_address": "", + "name": "jenkins" + } + ], + "pid_mode": "", + "ports": [ + { + "external": 8080, + "internal": 8080, + "ip": "0.0.0.0", + "protocol": "tcp" + }, + { + "external": 50000, + "internal": 50000, + "ip": "0.0.0.0", + "protocol": "tcp" + } + ], + "privileged": false, + "publish_all_ports": false, + "read_only": false, + "remove_volumes": true, + "restart": "on-failure", + "rm": false, + "runtime": "runc", + "security_opts": [], + "shm_size": 64, + "start": true, + "stdin_open": false, + "stop_signal": "", + "stop_timeout": 0, + "storage_opts": null, + "sysctls": null, + "tmpfs": null, + "tty": false, + "ulimit": [], + "upload": [], + "user": "jenkins", + "userns_mode": "", + "volumes": [ + { + "container_path": "/certs/client", + "from_container": "", + "host_path": "", + "read_only": true, + "volume_name": "jenkins-docker-certs" + }, + { + "container_path": "/var/jenkins_home", + "from_container": "", + "host_path": "", + "read_only": null, + "volume_name": "jenkins-data" + } + ], + "wait": false, + "wait_timeout": 60, + "working_dir": "/" + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjIifQ==", + "dependencies": [ + "docker_network.jenkins", + "docker_volume.jenkins_data", + "docker_volume.jenkins_docker_certs" + ] + } + ] + }, + { + "mode": "managed", + "type": "docker_container", + "name": "jenkins_docker", + "provider": "provider[\"registry.terraform.io/kreuzwerker/docker\"]", + "instances": [ + { + "schema_version": 2, + "attributes": { + "attach": false, + "bridge": "", + "capabilities": [], + "cgroupns_mode": null, + "command": [], + "container_logs": null, + "container_read_refresh_timeout_milliseconds": 15000, + "cpu_period": null, + "cpu_quota": null, + "cpu_set": "", + "cpu_shares": 0, + "cpus": null, + "destroy_grace_seconds": null, + "devices": [], + "dns": null, + "dns_opts": null, + "dns_search": null, + "domainname": "", + "entrypoint": [ + "dockerd-entrypoint.sh" + ], + "env": [ + "DOCKER_TLS_CERTDIR=/certs" + ], + "exit_code": null, + "gpus": null, + "group_add": null, + "healthcheck": null, + "host": [], + "hostname": "cfc0ec45d1d3", + "id": "cfc0ec45d1d32fe7441228c2f74e74d7451acfde5a185ee3b0b42039cf78fd53", + "image": "docker:dind", + "init": false, + "ipc_mode": "private", + "labels": [], + "log_driver": "json-file", + "log_opts": null, + "logs": false, + "max_retry_count": 0, + "memory": 0, + "memory_swap": 0, + "mounts": [], + "must_run": true, + "name": "jenkins-docker", + "network_data": [ + { + "gateway": "172.18.0.1", + "global_ipv6_address": "", + "global_ipv6_prefix_length": 0, + "ip_address": "172.18.0.2", + "ip_prefix_length": 16, + "ipv6_gateway": "", + "mac_address": "02:42:ac:12:00:02", + "network_name": "jenkins" + } + ], + "network_mode": "bridge", + "networks_advanced": [ + { + "aliases": [ + "docker" + ], + "ipv4_address": "", + "ipv6_address": "", + "name": "jenkins" + } + ], + "pid_mode": "", + "ports": [ + { + "external": 2376, + "internal": 2376, + "ip": "0.0.0.0", + "protocol": "tcp" + } + ], + "privileged": true, + "publish_all_ports": false, + "read_only": false, + "remove_volumes": true, + "restart": "no", + "rm": false, + "runtime": "runc", + "security_opts": [ + "label=disable" + ], + "shm_size": 64, + "start": true, + "stdin_open": false, + "stop_signal": "", + "stop_timeout": 0, + "storage_opts": null, + "sysctls": null, + "tmpfs": null, + "tty": false, + "ulimit": [], + "upload": [], + "user": "", + "userns_mode": "", + "volumes": [ + { + "container_path": "/certs/client", + "from_container": "", + "host_path": "", + "read_only": null, + "volume_name": "jenkins-docker-certs" + }, + { + "container_path": "/var/jenkins_home", + "from_container": "", + "host_path": "", + "read_only": null, + "volume_name": "jenkins-data" + } + ], + "wait": false, + "wait_timeout": 60, + "working_dir": "/" + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjIifQ==", + "dependencies": [ + "docker_network.jenkins", + "docker_volume.jenkins_data", + "docker_volume.jenkins_docker_certs" + ] + } + ] + }, + { + "mode": "managed", + "type": "docker_network", + "name": "jenkins", + "provider": "provider[\"registry.terraform.io/kreuzwerker/docker\"]", + "instances": [ + { + "schema_version": 1, + "attributes": { + "attachable": false, + "check_duplicate": null, + "driver": "bridge", + "id": "64521b487b10dcf6f0e64816c940c2c0172546d1fb4a9ed79c410abddf5af89f", + "ingress": false, + "internal": false, + "ipam_config": [ + { + "aux_address": {}, + "gateway": "172.18.0.1", + "ip_range": "", + "subnet": "172.18.0.0/16" + } + ], + "ipam_driver": "default", + "ipam_options": null, + "ipv6": false, + "labels": [], + "name": "jenkins", + "options": {}, + "scope": "local" + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==" + } + ] + }, + { + "mode": "managed", + "type": "docker_volume", + "name": "jenkins_data", + "provider": "provider[\"registry.terraform.io/kreuzwerker/docker\"]", + "instances": [ + { + "schema_version": 1, + "attributes": { + "driver": "local", + "driver_opts": null, + "id": "jenkins-data", + "labels": [], + "mountpoint": "/var/lib/docker/volumes/jenkins-data/_data", + "name": "jenkins-data" + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==" + } + ] + }, + { + "mode": "managed", + "type": "docker_volume", + "name": "jenkins_docker_certs", + "provider": "provider[\"registry.terraform.io/kreuzwerker/docker\"]", + "instances": [ + { + "schema_version": 1, + "attributes": { + "driver": "local", + "driver_opts": null, + "id": "jenkins-docker-certs", + "labels": [], + "mountpoint": "/var/lib/docker/volumes/jenkins-docker-certs/_data", + "name": "jenkins-docker-certs" + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==" + } + ] + } + ], + "check_results": null +} diff --git a/docs/terraform.tfstate.1748854606.backup b/docs/terraform.tfstate.1748854606.backup new file mode 100644 index 000000000..98085fba0 --- /dev/null +++ b/docs/terraform.tfstate.1748854606.backup @@ -0,0 +1,349 @@ +{ + "version": 4, + "terraform_version": "1.10.1", + "serial": 7, + "lineage": "f3538190-3931-8953-0843-bdcbdc2e1d61", + "outputs": {}, + "resources": [ + { + "mode": "managed", + "type": "docker_container", + "name": "jenkins_blueocean", + "provider": "provider[\"registry.terraform.io/kreuzwerker/docker\"]", + "instances": [ + { + "schema_version": 2, + "attributes": { + "attach": false, + "bridge": "", + "capabilities": [], + "cgroupns_mode": null, + "command": [], + "container_logs": null, + "container_read_refresh_timeout_milliseconds": 15000, + "cpu_period": null, + "cpu_quota": null, + "cpu_set": "", + "cpu_shares": 0, + "cpus": null, + "destroy_grace_seconds": null, + "devices": [], + "dns": null, + "dns_opts": null, + "dns_search": null, + "domainname": "", + "entrypoint": [ + "/usr/bin/tini", + "--", + "/usr/local/bin/jenkins.sh" + ], + "env": [ + "DOCKER_CERT_PATH=/certs/client", + "DOCKER_HOST=tcp://docker:2376", + "DOCKER_TLS_VERIFY=1" + ], + "exit_code": null, + "gpus": null, + "group_add": null, + "healthcheck": null, + "host": [], + "hostname": "f1f9977c3560", + "id": "f1f9977c35600f7079afff1d5916409d34668ce6099d074ed532a5591701066d", + "image": "myjenkins-blueocean", + "init": false, + "ipc_mode": "private", + "labels": [], + "log_driver": "json-file", + "log_opts": null, + "logs": false, + "max_retry_count": 0, + "memory": 0, + "memory_swap": 0, + "mounts": [], + "must_run": true, + "name": "jenkins-blueocean", + "network_data": [ + { + "gateway": "172.18.0.1", + "global_ipv6_address": "", + "global_ipv6_prefix_length": 0, + "ip_address": "172.18.0.3", + "ip_prefix_length": 16, + "ipv6_gateway": "", + "mac_address": "02:42:ac:12:00:03", + "network_name": "jenkins" + } + ], + "network_mode": "bridge", + "networks_advanced": [ + { + "aliases": [], + "ipv4_address": "", + "ipv6_address": "", + "name": "jenkins" + } + ], + "pid_mode": "", + "ports": [ + { + "external": 8080, + "internal": 8080, + "ip": "0.0.0.0", + "protocol": "tcp" + }, + { + "external": 50000, + "internal": 50000, + "ip": "0.0.0.0", + "protocol": "tcp" + } + ], + "privileged": false, + "publish_all_ports": false, + "read_only": false, + "remove_volumes": true, + "restart": "on-failure", + "rm": false, + "runtime": "runc", + "security_opts": [], + "shm_size": 64, + "start": true, + "stdin_open": false, + "stop_signal": "", + "stop_timeout": 0, + "storage_opts": null, + "sysctls": null, + "tmpfs": null, + "tty": false, + "ulimit": [], + "upload": [], + "user": "jenkins", + "userns_mode": "", + "volumes": [ + { + "container_path": "/certs/client", + "from_container": "", + "host_path": "", + "read_only": true, + "volume_name": "jenkins-docker-certs" + }, + { + "container_path": "/var/jenkins_home", + "from_container": "", + "host_path": "", + "read_only": null, + "volume_name": "jenkins-data" + } + ], + "wait": false, + "wait_timeout": 60, + "working_dir": "/" + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjIifQ==", + "dependencies": [ + "docker_network.jenkins", + "docker_volume.jenkins_data", + "docker_volume.jenkins_docker_certs" + ] + } + ] + }, + { + "mode": "managed", + "type": "docker_container", + "name": "jenkins_docker", + "provider": "provider[\"registry.terraform.io/kreuzwerker/docker\"]", + "instances": [ + { + "schema_version": 2, + "attributes": { + "attach": false, + "bridge": "", + "capabilities": [], + "cgroupns_mode": null, + "command": [], + "container_logs": null, + "container_read_refresh_timeout_milliseconds": 15000, + "cpu_period": null, + "cpu_quota": null, + "cpu_set": "", + "cpu_shares": 0, + "cpus": null, + "destroy_grace_seconds": null, + "devices": [], + "dns": null, + "dns_opts": null, + "dns_search": null, + "domainname": "", + "entrypoint": [ + "dockerd-entrypoint.sh" + ], + "env": [ + "DOCKER_TLS_CERTDIR=/certs" + ], + "exit_code": null, + "gpus": null, + "group_add": null, + "healthcheck": null, + "host": [], + "hostname": "cfc0ec45d1d3", + "id": "cfc0ec45d1d32fe7441228c2f74e74d7451acfde5a185ee3b0b42039cf78fd53", + "image": "docker:dind", + "init": false, + "ipc_mode": "private", + "labels": [], + "log_driver": "json-file", + "log_opts": null, + "logs": false, + "max_retry_count": 0, + "memory": 0, + "memory_swap": 0, + "mounts": [], + "must_run": true, + "name": "jenkins-docker", + "network_data": [ + { + "gateway": "172.18.0.1", + "global_ipv6_address": "", + "global_ipv6_prefix_length": 0, + "ip_address": "172.18.0.2", + "ip_prefix_length": 16, + "ipv6_gateway": "", + "mac_address": "02:42:ac:12:00:02", + "network_name": "jenkins" + } + ], + "network_mode": "bridge", + "networks_advanced": [ + { + "aliases": [ + "docker" + ], + "ipv4_address": "", + "ipv6_address": "", + "name": "jenkins" + } + ], + "pid_mode": "", + "ports": [ + { + "external": 2376, + "internal": 2376, + "ip": "0.0.0.0", + "protocol": "tcp" + } + ], + "privileged": true, + "publish_all_ports": false, + "read_only": false, + "remove_volumes": true, + "restart": "no", + "rm": false, + "runtime": "runc", + "security_opts": [ + "label=disable" + ], + "shm_size": 64, + "start": true, + "stdin_open": false, + "stop_signal": "", + "stop_timeout": 0, + "storage_opts": null, + "sysctls": null, + "tmpfs": null, + "tty": false, + "ulimit": [], + "upload": [], + "user": "", + "userns_mode": "", + "volumes": [ + { + "container_path": "/certs/client", + "from_container": "", + "host_path": "", + "read_only": null, + "volume_name": "jenkins-docker-certs" + }, + { + "container_path": "/var/jenkins_home", + "from_container": "", + "host_path": "", + "read_only": null, + "volume_name": "jenkins-data" + } + ], + "wait": false, + "wait_timeout": 60, + "working_dir": "/" + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjIifQ==", + "dependencies": [ + "docker_network.jenkins", + "docker_volume.jenkins_data", + "docker_volume.jenkins_docker_certs" + ] + } + ] + }, + { + "mode": "managed", + "type": "docker_network", + "name": "jenkins", + "provider": "provider[\"registry.terraform.io/kreuzwerker/docker\"]", + "instances": [ + { + "schema_version": 1, + "attributes": { + "attachable": false, + "check_duplicate": null, + "driver": "bridge", + "id": "64521b487b10dcf6f0e64816c940c2c0172546d1fb4a9ed79c410abddf5af89f", + "ingress": false, + "internal": false, + "ipam_config": [ + { + "aux_address": {}, + "gateway": "172.18.0.1", + "ip_range": "", + "subnet": "172.18.0.0/16" + } + ], + "ipam_driver": "default", + "ipam_options": null, + "ipv6": false, + "labels": [], + "name": "jenkins", + "options": {}, + "scope": "local" + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==" + } + ] + }, + { + "mode": "managed", + "type": "docker_volume", + "name": "jenkins_docker_certs", + "provider": "provider[\"registry.terraform.io/kreuzwerker/docker\"]", + "instances": [ + { + "schema_version": 1, + "attributes": { + "driver": "local", + "driver_opts": null, + "id": "jenkins-docker-certs", + "labels": [], + "mountpoint": "/var/lib/docker/volumes/jenkins-docker-certs/_data", + "name": "jenkins-docker-certs" + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==" + } + ] + } + ], + "check_results": null +} diff --git a/docs/terraform.tfstate.backup b/docs/terraform.tfstate.backup new file mode 100644 index 000000000..b7950f404 --- /dev/null +++ b/docs/terraform.tfstate.backup @@ -0,0 +1,328 @@ +{ + "version": 4, + "terraform_version": "1.10.1", + "serial": 8, + "lineage": "f3538190-3931-8953-0843-bdcbdc2e1d61", + "outputs": {}, + "resources": [ + { + "mode": "managed", + "type": "docker_container", + "name": "jenkins_blueocean", + "provider": "provider[\"registry.terraform.io/kreuzwerker/docker\"]", + "instances": [ + { + "schema_version": 2, + "attributes": { + "attach": false, + "bridge": "", + "capabilities": [], + "cgroupns_mode": null, + "command": [], + "container_logs": null, + "container_read_refresh_timeout_milliseconds": 15000, + "cpu_period": null, + "cpu_quota": null, + "cpu_set": "", + "cpu_shares": 0, + "cpus": null, + "destroy_grace_seconds": null, + "devices": [], + "dns": null, + "dns_opts": null, + "dns_search": null, + "domainname": "", + "entrypoint": [ + "/usr/bin/tini", + "--", + "/usr/local/bin/jenkins.sh" + ], + "env": [ + "DOCKER_CERT_PATH=/certs/client", + "DOCKER_HOST=tcp://docker:2376", + "DOCKER_TLS_VERIFY=1" + ], + "exit_code": null, + "gpus": null, + "group_add": null, + "healthcheck": null, + "host": [], + "hostname": "f1f9977c3560", + "id": "f1f9977c35600f7079afff1d5916409d34668ce6099d074ed532a5591701066d", + "image": "myjenkins-blueocean", + "init": false, + "ipc_mode": "private", + "labels": [], + "log_driver": "json-file", + "log_opts": null, + "logs": false, + "max_retry_count": 0, + "memory": 0, + "memory_swap": 0, + "mounts": [], + "must_run": true, + "name": "jenkins-blueocean", + "network_data": [ + { + "gateway": "172.18.0.1", + "global_ipv6_address": "", + "global_ipv6_prefix_length": 0, + "ip_address": "172.18.0.3", + "ip_prefix_length": 16, + "ipv6_gateway": "", + "mac_address": "02:42:ac:12:00:03", + "network_name": "jenkins" + } + ], + "network_mode": "bridge", + "networks_advanced": [ + { + "aliases": [], + "ipv4_address": "", + "ipv6_address": "", + "name": "jenkins" + } + ], + "pid_mode": "", + "ports": [ + { + "external": 8080, + "internal": 8080, + "ip": "0.0.0.0", + "protocol": "tcp" + }, + { + "external": 50000, + "internal": 50000, + "ip": "0.0.0.0", + "protocol": "tcp" + } + ], + "privileged": false, + "publish_all_ports": false, + "read_only": false, + "remove_volumes": true, + "restart": "on-failure", + "rm": false, + "runtime": "runc", + "security_opts": [], + "shm_size": 64, + "start": true, + "stdin_open": false, + "stop_signal": "", + "stop_timeout": 0, + "storage_opts": null, + "sysctls": null, + "tmpfs": null, + "tty": false, + "ulimit": [], + "upload": [], + "user": "jenkins", + "userns_mode": "", + "volumes": [ + { + "container_path": "/certs/client", + "from_container": "", + "host_path": "", + "read_only": true, + "volume_name": "jenkins-docker-certs" + }, + { + "container_path": "/var/jenkins_home", + "from_container": "", + "host_path": "", + "read_only": null, + "volume_name": "jenkins-data" + } + ], + "wait": false, + "wait_timeout": 60, + "working_dir": "/" + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjIifQ==", + "dependencies": [ + "docker_network.jenkins", + "docker_volume.jenkins_data", + "docker_volume.jenkins_docker_certs" + ] + } + ] + }, + { + "mode": "managed", + "type": "docker_container", + "name": "jenkins_docker", + "provider": "provider[\"registry.terraform.io/kreuzwerker/docker\"]", + "instances": [ + { + "schema_version": 2, + "attributes": { + "attach": false, + "bridge": "", + "capabilities": [], + "cgroupns_mode": null, + "command": [], + "container_logs": null, + "container_read_refresh_timeout_milliseconds": 15000, + "cpu_period": null, + "cpu_quota": null, + "cpu_set": "", + "cpu_shares": 0, + "cpus": null, + "destroy_grace_seconds": null, + "devices": [], + "dns": null, + "dns_opts": null, + "dns_search": null, + "domainname": "", + "entrypoint": [ + "dockerd-entrypoint.sh" + ], + "env": [ + "DOCKER_TLS_CERTDIR=/certs" + ], + "exit_code": null, + "gpus": null, + "group_add": null, + "healthcheck": null, + "host": [], + "hostname": "cfc0ec45d1d3", + "id": "cfc0ec45d1d32fe7441228c2f74e74d7451acfde5a185ee3b0b42039cf78fd53", + "image": "docker:dind", + "init": false, + "ipc_mode": "private", + "labels": [], + "log_driver": "json-file", + "log_opts": null, + "logs": false, + "max_retry_count": 0, + "memory": 0, + "memory_swap": 0, + "mounts": [], + "must_run": true, + "name": "jenkins-docker", + "network_data": [ + { + "gateway": "172.18.0.1", + "global_ipv6_address": "", + "global_ipv6_prefix_length": 0, + "ip_address": "172.18.0.2", + "ip_prefix_length": 16, + "ipv6_gateway": "", + "mac_address": "02:42:ac:12:00:02", + "network_name": "jenkins" + } + ], + "network_mode": "bridge", + "networks_advanced": [ + { + "aliases": [ + "docker" + ], + "ipv4_address": "", + "ipv6_address": "", + "name": "jenkins" + } + ], + "pid_mode": "", + "ports": [ + { + "external": 2376, + "internal": 2376, + "ip": "0.0.0.0", + "protocol": "tcp" + } + ], + "privileged": true, + "publish_all_ports": false, + "read_only": false, + "remove_volumes": true, + "restart": "no", + "rm": false, + "runtime": "runc", + "security_opts": [ + "label=disable" + ], + "shm_size": 64, + "start": true, + "stdin_open": false, + "stop_signal": "", + "stop_timeout": 0, + "storage_opts": null, + "sysctls": null, + "tmpfs": null, + "tty": false, + "ulimit": [], + "upload": [], + "user": "", + "userns_mode": "", + "volumes": [ + { + "container_path": "/certs/client", + "from_container": "", + "host_path": "", + "read_only": null, + "volume_name": "jenkins-docker-certs" + }, + { + "container_path": "/var/jenkins_home", + "from_container": "", + "host_path": "", + "read_only": null, + "volume_name": "jenkins-data" + } + ], + "wait": false, + "wait_timeout": 60, + "working_dir": "/" + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjIifQ==", + "dependencies": [ + "docker_network.jenkins", + "docker_volume.jenkins_data", + "docker_volume.jenkins_docker_certs" + ] + } + ] + }, + { + "mode": "managed", + "type": "docker_network", + "name": "jenkins", + "provider": "provider[\"registry.terraform.io/kreuzwerker/docker\"]", + "instances": [ + { + "schema_version": 1, + "attributes": { + "attachable": false, + "check_duplicate": null, + "driver": "bridge", + "id": "64521b487b10dcf6f0e64816c940c2c0172546d1fb4a9ed79c410abddf5af89f", + "ingress": false, + "internal": false, + "ipam_config": [ + { + "aux_address": {}, + "gateway": "172.18.0.1", + "ip_range": "", + "subnet": "172.18.0.0/16" + } + ], + "ipam_driver": "default", + "ipam_options": null, + "ipv6": false, + "labels": [], + "name": "jenkins", + "options": {}, + "scope": "local" + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==" + } + ] + } + ], + "check_results": null +}