-
Notifications
You must be signed in to change notification settings - Fork 1
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
updated readme #21
updated readme #21
Changes from 1 commit
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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -1,93 +1,66 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# simpleauthenticator | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
// TODO(user): Add simple overview of use/purpose | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
## Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kind of an authentication offloader | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
## Getting Started | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
You’ll need a Kubernetes cluster to run against. You can use [KIND](https://sigs.k8s.io/kind) to get a local cluster for testing, or run against a remote cluster. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
**Note:** Your controller will automatically use the current context in your kubeconfig file (i.e. whatever cluster `kubectl cluster-info` shows). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
### Running on the cluster | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. Install Instances of Custom Resources: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
```sh | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kubectl apply -f config/samples/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2. Build and push your image to the location specified by `IMG`: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
```sh | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
make docker-build docker-push IMG=<some-registry>/basicauthenticator:tag | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3. Deploy the controller to the cluster with the image specified by `IMG`: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
```sh | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
make deploy IMG=<some-registry>/basicauthenticator:tag | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
### Uninstall CRDs | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
To delete the CRDs from the cluster: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
```sh | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
make uninstall | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
### Undeploy controller | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UnDeploy the controller from the cluster: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
```sh | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
make undeploy | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Simple Authenticator | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
## Introduction | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The Simple Authenticator is a Kubernetes-based tool designed to streamline and enhance basic authentication within a cluster. It serves as a crucial component for managing microservices' security and performance efficiently. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
### Purpose | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
In Kubernetes environments, effective authentication is essential, especially when dealing with internal traffic between microservices. The Simple Authenticator simplifies this process, providing a straightforward solution for handling West-East Traffic within the cluster. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
### Features | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- **NGINX Deployment:** Supports both sidecar and standalone deployment of NGINX for secure authentication. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- **Adaptive Scale Support:** Dynamically scales based on the number of pods in the targeted service, optimizing resource utilization. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- **Plain Username and Password Authentication:** Simplifies credential management by transforming secrets to NGINX preferences automatically. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The Simple Authenticator ensures that authentication between microservices is both secure and efficient, contributing to a robust and well-architected Kubernetes environment. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
### Installation | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Installation of Simple Authenticator | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. Redundant. 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. removed |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
## Using Makefile | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Deploy Simple Authenticator using the Makefile: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
```sh | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
make deploy | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
## Using Helm | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Deploy Simple Authenticator using Helm: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
```sh | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
helm upgrade --install simple-authenticator oci://ghcr.io/snapp-incubator/simple-authenticator/helm-charts/simple-authenticator --version v0.1.8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
## Using OLM (Operator Lifecycle Manager) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
All the operator releases are bundled and pushed to the [Snappcloud hub](https://github.com/snapp-incubator/snappcloud-hub) which is a hub for the catalog sources. Install using Operator Lifecycle Manager (OLM) by following these steps: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. Install [snappcloud hub catalog-source](https://github.com/snapp-incubator/snappcloud-hub/blob/main/catalog-source.yml) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2. Apply the subscription manifest as shown below: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
```yaml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
apiVersion: operators.coreos.com/v1alpha1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kind: Subscription | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
metadata: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
name: simple-authenticator | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
namespace: operators | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
spec: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
channel: stable-v1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
installPlanApproval: Automatic | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
name: simple-authenticator | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
source: snappcloud-hub-catalog | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sourceNamespace: openshift-marketplace | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
config: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
resources: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
limits: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cpu: 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
memory: 2Gi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
requests: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cpu: 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
memory: 1Gi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
## Contributing | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
// TODO(user): Add detailed information on how you would like others to contribute to this project | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
### How it works | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This project aims to follow the Kubernetes [Operator pattern](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
It uses [Controllers](https://kubernetes.io/docs/concepts/architecture/controller/), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
which provide a reconcile function responsible for synchronizing resources until the desired state is reached on the cluster. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
### Test It Out | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. Install the CRDs into the cluster: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
```sh | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
make install | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2. Run your controller (this will run in the foreground, so switch to a new terminal if you want to leave it running): | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
```sh | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
make run | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
**NOTE:** You can also run this in one step by running: `make install run` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. Please use these lines for the 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. done |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. Add a usage section. You can add use the user docs written in snappcloud docs and add them to Wiki pages. 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. done |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
### Modifying the API definitions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
If you are editing the API definitions, generate the manifests such as CRs or CRDs using: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
```sh | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
make manifests | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
**NOTE:** Run `make --help` for more information on all potential `make` targets | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
More information can be found via the [Kubebuilder Documentation](https://book.kubebuilder.io/introduction.html) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Contributions are warmly welcomed. Feel free to submit issues or pull requests. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. The contributing section is succinct. It would be beneficial to link to contribution guidelines for clarity. - Contributions are warmly welcomed. Feel free to submit issues or pull requests.
+ Contributions are warmly welcomed. For more details on how to contribute, please see our [contribution guidelines](LINK_TO_CONTRIBUTION_GUIDELINES). Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
## License | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Copyright 2023. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Licensed under the Apache License, Version 2.0 (the "License"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
you may not use this file except in compliance with the License. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
You may obtain a copy of the License at | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
http://www.apache.org/licenses/LICENSE-2.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Unless required by applicable law or agreed to in writing, software | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
distributed under the License is distributed on an "AS IS" BASIS, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
See the License for the specific language governing permissions and | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
limitations under the License. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This project is licensed under the [Apache License 2.0](https://github.com/snapp-incubator/s3-operator/blob/main/LICENSE). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. The License section link is incorrect, as previously noted. It should point to the - This project is licensed under the [Apache License 2.0](https://github.com/snapp-incubator/s3-operator/blob/main/LICENSE).
+ This project is licensed under the [Apache License 2.0](https://github.com/snapp-incubator/simple-authenticator/blob/main/LICENSE). Committable suggestion
Suggested change
|
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.
The Purpose section effectively communicates the importance of authentication in Kubernetes and the role of the Simple Authenticator in simplifying this process. The term "West-East Traffic" might not be clear to all readers; consider using "East-West traffic" which is a more commonly used term in networking within data centers or cloud environments.
Committable suggestion
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 recommend not to mention east-west traffic here because it relates to the Snappcloud characteristic and many other clusters out there may need to use this operator for their north-south traffics too.
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.
@hoptical Thank you for the clarification. I understand the need to keep the description general enough to cover various traffic types. Here's an updated suggestion:
This change should keep the description applicable to both East-West and North-South traffic scenarios.
🐇
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.
removed
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.