-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
📖 Document how to configure global pull secrets #1410
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,53 @@ | ||||||
--- | ||||||
tags: | ||||||
- alpha | ||||||
--- | ||||||
|
||||||
# Configure global pull secrets for allowing components to pull private images | ||||||
|
||||||
**Note: The UX for how auth info for using private images is provided is an active work in progress.** | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
same ^ |
||||||
|
||||||
To configure `catalogd` and `operator-controller` to use authentication information for pulling private images (catalog/bundle images etc), the components can be informed about a kubernetes `Secret` object that contains the relevant auth information. The `Secret` must be of type `kubernetes.io/dockerconfigjson`. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
Once the `Secret` is created, `catalogd` and `operator-controller` needs to be redeployed with an additional field, `--global-pull-secret=<secret-namespace>/<secret-name>` passed to the respective binaries. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
For eg, create a `Secret` using locally available `config.json`: | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
```sh | ||||||
$ kubectl create secret docker-registry test-secret \ | ||||||
--from-file=.dockerconfigjson=$HOME/.docker/config.json \ | ||||||
--namespace olmv1-system | ||||||
secret/test-secret created | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should we include the output of the command? Adding it might make it harder for users to copy, paste, and use the command directly, right? |
||||||
``` | ||||||
|
||||||
Verify that the Secret is created: | ||||||
|
||||||
```sh | ||||||
$ kubectl get secret test-secret -n olmv1-system -o yaml | ||||||
apiVersion: v1 | ||||||
data: | ||||||
.dockerconfigjson: ewogICJh.... | ||||||
kind: Secret | ||||||
metadata: | ||||||
creationTimestamp: "2024-10-25T12:05:46Z" | ||||||
name: test-secret | ||||||
namespace: olmv1-system | ||||||
resourceVersion: "237734" | ||||||
uid: 880138f1-5d98-4bb0-9e45-45e8ebaff647 | ||||||
type: kubernetes.io/dockerconfigjson | ||||||
``` | ||||||
|
||||||
Modify the `config/base/manager/manager.yaml` file for `catalogd` and `operator-controller` to include the new field in the binary args: | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
```yaml | ||||||
- command: | ||||||
- ./manager | ||||||
args: | ||||||
- ... | ||||||
- ... | ||||||
- ... | ||||||
- --global-pull-secret=olmv1-system/test-secret | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If we edit the deployment directly, we need to re-install. So, I think we need say here to:
|
||||||
``` | ||||||
|
||||||
With the above configuration, creating a `ClusterCatalog` or a `ClusterExention` whose content is packaged in a private container image hosted in an image registry, will become possible. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
is the registry which is private right? |
||||||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
{% extends "base.html" %} | ||
|
||
{% block content %} | ||
<div class="tags"> | ||
{% if page.meta.tags %} | ||
<ul class="tags-list"> | ||
{% for tag in page.meta.tags %} | ||
<li class="tag">{{ tag }}</li> | ||
{% endfor %} | ||
</ul> | ||
{% endif %} | ||
</div> | ||
{{ super() }} | ||
{% endblock %} |
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -14,6 +14,8 @@ After you add a catalog to your cluster, you can install an extension by creatin | |||||
* The name, and optionally version, or channel, of the [supported extension](../project/olmv1_limitations.md) to be installed | ||||||
* An existing namespace in which to install the extension | ||||||
|
||||||
**Note** To install ClusterExentions that are shipped as private container images hosted in an image registry, please see [How to conifgure global pull secrets](../howto/configure-global-pull-secrets.md). | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Just to match the title |
||||||
|
||||||
### ServiceAccount for ClusterExtension Installation and Management | ||||||
|
||||||
Adhering to OLM v1's "Secure by Default" tenet, OLM v1 does not have the permissions | ||||||
|
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -4,6 +4,7 @@ site_name: Operator Lifecycle Manager | |||||
theme: | ||||||
logo: assets/logo.svg | ||||||
name: "material" | ||||||
custom_dir: docs/overrides | ||||||
palette: | ||||||
primary: black | ||||||
features: | ||||||
|
@@ -36,6 +37,7 @@ nav: | |||||
- Uninstall an Extension: tutorials/uninstall-extension.md | ||||||
- How-To Guides: | ||||||
- Catalog queries: howto/catalog-queries.md | ||||||
- Configure Global pull secrets: howto/configure-global-pull-secrets.md | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
maybe a little more informative wdyt? |
||||||
- Channel-Based Upgrades: howto/how-to-channel-based-upgrades.md | ||||||
- Version Pinning: howto/how-to-pin-version.md | ||||||
- Version Range Upgrades: howto/how-to-version-range-upgrades.md | ||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it would be more clearer to use the term "private registries" instead of "private images," as the authentication is specifically for accessing the registry where images are hosted, right?