\n\ni did attempt `pull_5323-alpine` as recomended in #5238 but it didnt work. the pod never stood up.\n\n### Steps to reproduce\n\n1. install woodpecker (using longhorn as a storage backend and forgejo as a forge but that hasnt been an issue before) on k3s cluster.\n2. create pipeline.\n3. attempt to run it.\n4. will never complete pod creation.\n\n### Expected behavior\n\ncreates pod, and run pipeline\n\n### System Info\n\n```shell\nsource\t\"https://github.com/woodpecker-ci/woodpecker\"\nversion\t\"3.8.0\"\n```\n\n### Additional context\n\n\u003Cimg width=\"1875\" height=\"143\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/6fbbcd41-751c-4d5d-b852-f05e57d6ca12\" />\n\n\u003Cimg width=\"1008\" height=\"312\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/6fc6001e-01e4-4cce-b9c4-2ccc144b9b1a\" />\n\n### Validations\n\n- [x] Read the [docs](https://woodpecker-ci.org/docs/intro).\n- [x] Check that there isn't [already an issue](https://github.com/woodpecker-ci/woodpecker/issues) that reports the same bug to avoid creating a duplicate.\n- [x] Checked that the bug isn't fixed in the `next` version already [https://woodpecker-ci.org/versions]",[3046],{"name":3036,"color":3037},5345,"Kubernetes Pod never completes initialisation - hangs forever","2025-07-21T14:12:00Z","https://github.com/woodpecker-ci/woodpecker/issues/5345",0.7555018,{"description":3053,"labels":3054,"number":3059,"owner":3025,"repository":3026,"state":3060,"title":3061,"updated_at":3062,"url":3063,"score":3064},"### Clear and concise description of the problem\n\nhttps://woodpecker-ci.org/docs/next/administration/backends/kubernetes#volumes\r\n\r\nMake reference to \r\n```\r\n settings:\r\n mount:\r\n - \"woodpecker-cache\"\r\n```\r\n\r\nWhich is no longer supported when used with things like `command:`\r\n\r\n\n\n### Suggested solution\n\nRemoving that part, and including a sample PVC like \r\n\r\n```\r\napiVersion: v1\r\nkind: PersistentVolumeClaim\r\nmetadata:\r\n name: woodpecker-cache\r\nspec:\r\n storageClassName: \"longhorn\"\r\n accessModes:\r\n - ReadWriteMany\r\n resources:\r\n requests:\r\n storage: 1Gi\r\n```\r\n\r\nMight go well to enhancing this part of the documentation.\n\n### Alternative\n\nAlternatively, just removing that settings part and providing a link to the kubernetes docs (https://kubernetes.io/docs/concepts/storage/persistent-volumes/) might serve as well.\n\n### Additional context\n\n_No response_\n\n### Validations\n\n- [X] Checked that the feature isn't part of the `next` version already [https://woodpecker-ci.org/faq#which-version-of-woodpecker-should-i-use]\n- [X] Read the [docs](https://woodpecker-ci.org/docs/intro).\n- [X] Check that there isn't already an [issue](https://github.com/woodpecker-ci/woodpecker/issues) that request the same feature to avoid creating a duplicate.",[3055,3058],{"name":3056,"color":3057},"documentation","7D625D",{"name":3022,"color":3023},4369,"closed","Documentation: Kubernetes mounts","2024-11-16T20:46:00Z","https://github.com/woodpecker-ci/woodpecker/issues/4369",0.68369216,{"description":3066,"labels":3067,"number":3073,"owner":3025,"repository":3026,"state":3060,"title":3074,"updated_at":3075,"url":3076,"score":3077},"### Clear and concise description of the problem\n\nIn some pipelines/workflows it is necessary to store data created by one step **outside the source directory** for use in other steps. E.g.\r\n- one step downloads dependencies for use in the next steps\r\n- a step sets up credentials (ssh-keys) to be used in later steps\r\n\r\nAt the moment the only way to share this between the steps is to either \r\n- store this in temporary directories in the workspace (does not play well wit git push)\r\n- share a volume (but this is not local to a pipeline and required privileged pipelines)\r\n- redo everything in each step.\r\n\n\n### Suggested solution\n\n## Main idea\r\n\r\nTake the idea drone has already implemented and add a pipeline scoped configuration for volumes and change the semantic for volume configuration in a step to reference these volumes.\r\n\r\nOn pipeline/workflow level:\r\n```yaml\r\nvolumes:\r\n - name: my-temp-volume\r\n type: temp\r\n```\r\n\r\nIn services / steps:\r\n```yaml\r\nsteps:\r\n - name: Interact with docker in docker\r\n volumes:\r\n - name: my-temp-volume # this references a pipeline scoped volume\r\n path: /var/run/docker # this is the path in the container to mount the volume to\r\n commands:\r\n - docker ps -a\r\n\r\nservices:\r\n - name: Docker in Docker\r\n image: docker/dind\r\n volumes:\r\n - name: my-temp-volume # this references a pipeline scoped volume\r\n path: /var/run/docker # this is the path in the container to mount the volume to\r\n\r\n```\r\n \r\nTemporary volumes should be created before the pipeline is run and deleted after the last step of a pipeline has finished.\r\nThe use of temporary volumes should not require privileged pipelines\r\n\r\n## Possible enhancements\r\n\r\n### Volumes on different kind\r\n\r\nThis could be enhanced on the pipeline level to provide different types of volumes\r\n```yaml\r\nvolumes:\r\n - name: my-host-volume\r\n type: host\r\n path: /some/absolute/path\r\n - name: my-docker-vomume\r\n type: docker\r\n volume: some-docker-volume\r\n create: false # only works, if such a volume is already created\r\n```\r\n\r\nTo solve the caching issue auto-magically, there could be volumes of type `cache`, which could be handled by some woodpecker magic, if still required. I consider a general caching solution a hard problem, but it could work something like this:\r\n\r\n```yaml\r\nvolumes:\r\n - name: some-kind-of-cache\r\n type: cache\r\n refresh: ...\r\n additional-cache-config: ...\r\n ```\r\n\r\n### Volumes on different scope\r\n\r\nOne could provide volumes for different scopes (pipeline vs. workflow). This would require the possibility to provide configurations on a pipeline level (multiple workflows)\r\n\r\n### Quota for volumes\r\n\r\nThe only bad thing a step could do is to fill up the complete disk where the volumes are stored. There could be some limits on that (defined on the agent level) or in the project settings. Needs further ideas on how / what to limit\r\n\r\n## To be discussed\r\n\r\nTo be discussed: What would be the requirement for matrix builds?\r\nE.g.\r\n```\r\nmatrix:\r\n GO_VERSION:\r\n - 1.4\r\n - 1.3\r\n -\r\nvolumes:\r\n - name: my-volume-${GO_VERSION}\r\n type: temp\r\n```\r\nor something else?\r\n\r\n\r\n\n\n### Alternative\n\nAt the moment the following is possible (don't know if it is by intention):\r\n\r\n```\r\n - name: Test volumes (1)\r\n image: alpine \r\n volumes:\r\n - volume-test_${CI_PIPELINE_NUMBER}:/x\r\n commands: \r\n - ls -lah /x\r\n - touch /x/file\r\n - ls -lah /x\r\n\r\n - name: Test volumes (2)\r\n image: alpine \r\n volumes:\r\n - volume-test_${CI_PIPELINE_NUMBER}:/x\r\n commands: \r\n - ls -lah /x\r\n - touch /x/file2\r\n - ls -lah /x\r\n```\r\n\r\nExecuting the pipeline will create a docker volume on the host (or reuse an existing one) and bind it into the steps container.\r\n\r\nBut this \r\n- requires a privileged pipeline and\r\n- does not vlean up the volume-test_${CI_PIPELINE_NUMBER} docker volumes\r\n- is hard to get right to get unique volume names per pipeline execution\r\n\r\n\r\n\r\n\n\n### Additional context\n\nThere are already quite some issues for that or similair topic, but no common sulution\r\n\r\n- https://github.com/woodpecker-ci/woodpecker/issues/993\r\n- https://github.com/woodpecker-ci/woodpecker/issues/758 \r\n- https://github.com/woodpecker-ci/woodpecker/issues/1014\r\n- https://github.com/woodpecker-ci/woodpecker/issues/862\r\n- https://github.com/woodpecker-ci/woodpecker/issues/767\r\n\r\nAnd a PoC on caching:\r\n- https://github.com/woodpecker-ci/woodpecker/pull/1353\r\n\r\nBut i would like to see a common and consistent solution for most (all?) of these issues.\n\n### Validations\n\n- [X] Read the [Contributing Guidelines](https://github.com/woodpecker-ci/woodpecker/blob/master/CONTRIBUTING.md).\n- [X] Read the [docs](https://woodpecker-ci.org/docs/intro).\n- [X] Check that there isn't already an [issue](https://github.com/woodpecker-ci/woodpecker/issues) that request the same feature to avoid creating a duplicate.",[3068,3071],{"name":3069,"color":3070},"feature","180DBE",{"name":3072,"color":3023},"cache proposals",1452,"Pipeline-scoped (temporary) volumes [solves caching, preparation steps, inter step communication, ...]","2023-08-20T17:08:02Z","https://github.com/woodpecker-ci/woodpecker/issues/1452",0.6990978,{"description":3079,"labels":3080,"number":3081,"owner":3025,"repository":3026,"state":3060,"title":3082,"updated_at":3083,"url":3084,"score":3085},"### Clear and concise description of the problem\n\nI try to use Woodpecker with a non publicly reachable (Gitea) repository. It's using a certificate not verifyable via standard (i.e. included in standard images) CAs. I can mount /etc/ssl/certs into my woodpecker ui/agent containers, but this doesn't help with any plugins - including the one used to clone the repo, which then fails due to an SSL error.\r\n\n\n### Suggested solution\n\nAllowing to configure a common mount for all plugin containers (maybe optionally RO) would make it possible to provide such system settings/files without requiring an admin to label every single repo as trusted and dealing with the security implications of mounting arbitrary paths via CI YAML.\r\nThis might even help with caching as as mentioned in #758 or provide other common resources.\n\n### Alternative\n\n* making all containers trusted and manually configure the clone step with volume mounts - This is terrible for security and quite the hassle on top of it.\r\n* building custom plugin containers with updated CAs - This will still require every repo to configure a custom clone step and requires building (and keeping up to date) of plugin containers as well as a private registry to those container images.\n\n### Additional context\n\n_No response_\n\n### Validations\n\n- [X] Read the [Contributing Guidelines](https://github.com/woodpecker-ci/woodpecker/blob/master/CONTRIBUTING.md).\n- [X] Read the [docs](https://woodpecker-ci.org/docs/intro).\n- [X] Check that there isn't already an [issue](https://github.com/woodpecker-ci/woodpecker/issues) that request the same feature to avoid creating a duplicate.",[],993,"Allow volumes to be mounted for all plugin containers","2022-09-26T14:59:27Z","https://github.com/woodpecker-ci/woodpecker/issues/993",0.70830953,{"description":3087,"labels":3088,"number":3090,"owner":3025,"repository":3026,"state":3060,"title":3091,"updated_at":3092,"url":3093,"score":3094},"### Clear and concise description of the problem\n\nI can't seem to find a way to load pipelines from a different repository into my current repository.\r\nI don't want to copy my pipeline-file over and over again into multiple repositories. This is very error prone and when I want to change something I'd have to do it so many times.\n\n### Suggested solution\n\nImplement pipeline templates like drone-ci does.\n\n### Alternative\n\n_No response_\n\n### Additional context\n\nI want to switch from drone-ci to woodpecker, but this missing feature is killing me.\r\nDrone has [Pipeline templates](https://docs.drone.io/template/yaml/).\r\nWould love to see this coming in the next releases.\n\n### Validations\n\n- [X] Checked that the feature isn't part of the `next` version already [https://woodpecker-ci.org/faq#which-version-of-woodpecker-should-i-use]\n- [X] Read the [docs](https://woodpecker-ci.org/docs/intro).\n- [X] Check that there isn't already an [issue](https://github.com/woodpecker-ci/woodpecker/issues) that request the same feature to avoid creating a duplicate.",[3089],{"name":3069,"color":3070},3633,"Pipeline Templates","2024-04-21T07:20:55Z","https://github.com/woodpecker-ci/woodpecker/issues/3633",0.71797377,{"description":3096,"labels":3097,"number":3100,"owner":3025,"repository":3026,"state":3060,"title":3101,"updated_at":3102,"url":3103,"score":3104},"### Component\r\n\r\nagent\r\n\r\n### Describe the bug\r\n\r\nA detached container cannot be accessed by its name, making it unusable.\r\n\r\n### Steps to reproduce\r\n\r\n1. Install Woodpecker and configure Kubernetes backend;\r\n2. Run a detached step and access it in following steps with its name;\r\n3. See \"bad DNS name\" or similar reports.\r\n\r\n### Expected behavior\r\n\r\nAs documented, a `detached` step should behave like a service. If it cannot be accessed by DNS, it is not capable of replacing `service`.\r\n\r\n### System Info\r\n\r\n```shell\r\n{\r\n \"source\": \"https://github.com/woodpecker-ci/woodpecker\",\r\n \"version\": \"2.8.0\"\r\n}\r\n```\r\n\r\n\r\n### Additional context\r\n\r\nhttps://github.com/woodpecker-ci/woodpecker/pull/3411 should be favorable...\r\n\r\n### Validations\r\n\r\n- [X] Read the [docs](https://woodpecker-ci.org/docs/intro).\r\n- [X] Check that there isn't [already an issue](https://github.com/woodpecker-ci/woodpecker/issues) that reports the same bug to avoid creating a duplicate.\r\n- [X] Checked that the bug isn't fixed in the `next` version already [https://woodpecker-ci.org/faq#which-version-of-woodpecker-should-i-use]",[3098,3099],{"name":3036,"color":3037},{"name":3022,"color":3023},4627,"A detached container cannot be accessed (at least with Kubernetes backend)","2025-01-06T16:06:40Z","https://github.com/woodpecker-ci/woodpecker/issues/4627",0.72707283,{"description":3106,"labels":3107,"number":3108,"owner":3025,"repository":3026,"state":3060,"title":3109,"updated_at":3110,"url":3111,"score":3112},"hi, \r\n\r\nam using the example deployment in docs, upgraded to the latest image version available,\r\nand stripped down to bare Deployment/Service, the pod starts but no connectivity to it is available. (for example port fw to 8000)\r\n\r\nseems the DEBUG flag is not picked up, i've tried all kinds of combos from drone / woodpecker docs (as per below)\r\n\r\nAm using nfs-client pvc, the volume is created, for example: \r\n```\r\napps-woodpecker-pvc-pvc-fb557d9d-96c3-463e-8829-7e1dd6aaabc4\r\n```\r\nhowever i have a zero size drone.sqlite inside.\r\n\r\nam deploying on a functional k3s cluster, other apps use the same-style, nfs-client pv/pvc combos, disk is writable.\r\n\r\n\r\n\r\n```\r\n---\r\napiVersion: apps/v1\r\nkind: Deployment\r\nmetadata:\r\n name: woodpecker\r\n namespace: apps\r\n labels:\r\n app: woodpecker\r\nspec:\r\n replicas: 1\r\n selector:\r\n matchLabels:\r\n app: woodpecker\r\n template:\r\n metadata:\r\n labels:\r\n app: woodpecker\r\n annotations:\r\n prometheus.io/scrape: 'true'\r\n spec:\r\n containers:\r\n - image: laszlocloud/woodpecker-server:v0.13.0-rc.3\r\n imagePullPolicy: Always\r\n name: woodpecker\r\n env:\r\n - name: \"DRONE_LOGS_DEBUG\"\r\n value: \"true\"\r\n - name: \"DRONE_DEBUG\"\r\n value: \"true\"\r\n - name: \"DRONE_GITHUB\"\r\n value: \"true\"\r\n - name: \"DRONE_HOST\"\r\n value: \"https://woodpecker.example.com\"\r\n - name: \"DRONE_ADMIN\"\r\n value: \"root\"\r\n - name: \"DRONE_SECRET\"\r\n value: \"##REDACTED##\"\r\n - name: \"DRONE_GITHUB\"\r\n value: \"true\"\r\n - name: \"DRONE_GITHUB_CLIENT\"\r\n value: \"##REDACTED##\"\r\n - name: \"DRONE_GITHUB_SECRET\"\r\n value: \"##REDACTED##\"\r\n - name: \"WOODPECKER_DEBUG\"\r\n value: 'true'\r\n volumeMounts:\r\n - name: sqlite-volume\r\n mountPath: /var/lib/drone\r\n volumes:\r\n - name: sqlite-volume\r\n persistentVolumeClaim:\r\n claimName: woodpecker-pvc\r\n---\r\napiVersion: v1\r\nkind: PersistentVolumeClaim\r\nmetadata:\r\n name: woodpecker-pvc\r\n namespace: apps\r\nspec:\r\n accessModes:\r\n - ReadWriteOnce\r\n storageClassName: nfs-client\r\n resources:\r\n requests:\r\n storage: 1Gi\r\n volumeMode: Filesystem\r\n---\r\nkind: Service\r\napiVersion: v1\r\nmetadata:\r\n name: woodpecker\r\n namespace: apps\r\nspec:\r\n type: ClusterIP\r\n selector:\r\n app: woodpecker\r\n ports:\r\n - protocol: TCP\r\n name: http\r\n port: 8000\r\n targetPort: 8000\r\n - protocol: TCP\r\n name: grpc\r\n port: 9000\r\n targetPort: 9000\r\n```",[],190,"Help with k8s faulty deployment","2021-04-26T14:46:27Z","https://github.com/woodpecker-ci/woodpecker/issues/190",0.7322433,{"description":3114,"labels":3115,"number":3120,"owner":3025,"repository":3026,"state":3060,"title":3121,"updated_at":3122,"url":3123,"score":3124},"### Clear and concise description of the problem\n\ncommand is not implemented\n\n### Suggested solution\n\nImplement the command. Maybe as suggested by [this issue](https://web.archive.org/web/20201023145707/https://github.com/drone/drone/issues/2005):\r\n\r\n> The logs command has been disabled because changes to the build logs (storing logs per step) makes this more complex. This command needs to be re-designed. This is just one possible design for how this could work ...\r\n> \r\n> First, we create a new command to list the pipeline steps:\r\n> \r\n> ```\r\n> $ drone build ps -repo foo/bar -build 42\r\n> PID\tSTEP\t\tSTATE\r\n> 1 \tclone\t\tsuccess\r\n> 2 \tpostgres\tsuccess\r\n> 3 \tbuild\t\tfailure\r\n> 4 \tdocker\t\tskipped\r\n> 5 \tslack\t\trunning\r\n> ```\r\n> \r\n> The pipeline step number can then be used to stream the logs for that step:\r\n> \r\n> ```\r\n> $ drone build logs -repo foo/bar -build 42 -pid 1\r\n> \r\n> + git init\r\n> Initialized empty Git repository in /go/src/github.com/drone/drone/.git/\r\n> + git remote add origin https://github.com/drone/drone.git\r\n> + git fetch --no-tags origin +refs/heads/master:\r\n> From https://github.com/drone/drone\r\n> * branch master -> FETCH_HEAD\r\n> * [new branch] master -> origin/master\r\n> + git reset --hard -q 7e522f86a75f9ac67acbcd1e66f8548b1471bc32\r\n> + git submodule update --init --recursive\r\n> ```\n\n### Alternative\n\n_No response_\n\n### Additional context\n\n_No response_\n\n### Validations\n\n- [X] Read the [Contributing Guidelines](https://github.com/woodpecker-ci/woodpecker/blob/master/CONTRIBUTING.md).\n- [X] Read the [docs](https://woodpecker-ci.github.io/docs/intro).\n- [X] Check that there isn't already an [issue](https://github.com/woodpecker-ci/woodpecker/issues) that request the same feature to avoid creating a duplicate.",[3116,3117],{"name":3069,"color":3070},{"name":3118,"color":3119},"cli","1d76db",383,"Add logs command to cli","2022-08-09T12:08:51Z","https://github.com/woodpecker-ci/woodpecker/issues/383",0.74046814,["Reactive",3126],{},["Set"],["ShallowReactive",3129],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fnAJH3NP3I-cAD7WLrPNb7pTH5I7ykv27VPNbb3RBvvM":-1},"/woodpecker-ci/woodpecker/1595"]