Ignition: Support for Basic Authentication
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 974
- Forks
- 296
- Avg merge
- 6d 14h
- Merged PRs (30d)
- 9
Description
Issue by @jcrowthe
Issue Report
CoreOS Version
$ cat /etc/os-release
NAME=CoreOS 1235.6.0
Expected Behavior
Accept basic authentication username/password in URL of remote Ignition config.
Actual Behavior
Ignition fails to pull the remote config.
Reproduction Steps
- Provide the following as ignition data:
{
"ignition": {
"version": "2.0.0",
"config": {
"append": [{
"source": "http://test:test@<server-ip>/test.json",
"verification": {}
}]
}
}
}
- Host the following
test.jsonat the server address above:
{
"ignition": {
"version": "2.0.0"
},
"storage": {
"files": [{
"filesystem": "root",
"path": "/foo/bar",
"contents": {
"source": "data:,example%20file%0A"
}
}]
}
}
Feature Request
This is a request for basic authentication support in Ignition. This support would allow ignition data to be housed on a remote server that requires a username/password in order to be accessed. The application of this feature would be to provide ignition data that contains sensitive data, such as SSL certificates, passwords, etc.
While an obvious alternative to this solution is to embed this sensitive config information directly into the parent ignition file, this is not always possible. Specifically, right now, cloud providers have a max of 16KB of data that can be placed inside the user-data (AWS) or custom-data (Azure) fields, where the ignition data is submitted. Once this limit is reached, it is necessary to reference further configs by using Ignition's remote config ability.
Let's consider this request. Thanks!
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no implementation files or tests. Start by tracing how Ignition retrieves remote configuration URLs, then reproduce the provided URL with embedded credentials; done means the remote config is fetched successfully with basic authentication and the existing reproduction works without regressing unauthenticated retrieval.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- authentication, backend, security
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100