A Kubernetes operator that can generate secrets containing randomly generated values. Just create a GeneratedSecret
resource and the operator will create a Secret
resource with the generated values for your application to consume however you see fit.
- Apply to your cluster (
kubectl apply -f https://github.com/krystal/generated-secrets/releases/latest/download/manifest.yaml
) - Create a
GeneratedSecret
resource - The operator will create a
Secret
resource with the generated values
apiVersion: secrets.k8s.k.io/v1
kind: GeneratedSecret
metadata:
name: my-secret
spec:
keys:
- name: secret-key-base
type: Hex
length: 128
- name: database-password
type: Alphanumeric
length: 32
- name: some-uuid
type: UUID
Keys can use any of the following types. With the exception of UUID, they all require the Length
attribute.
- Base64
- Base64URL
- Hex
- Alphanumeric
- Alphabetic
- Upper
- UpperNumeric
- Lower
- LowerNumeric
- Numeric
- UUID
- DNSLabel
- String
- ECDSAKey
You’ll need a Kubernetes cluster to run against. You can use 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).
- Install Instances of Custom Resources:
kubectl apply -f config/samples/
- Build and push your image to the location specified by
IMG
:
make docker-build docker-push IMG=<some-registry>/database-provisioner:tag
- Deploy the controller to the cluster with the image specified by
IMG
:
make deploy IMG=<some-registry>/database-provisioner:tag
To delete the CRDs from the cluster:
make uninstall
UnDeploy the controller from the cluster:
make undeploy
- Install the CRDs into the cluster:
make install
- Run your controller (this will run in the foreground, so switch to a new terminal if you want to leave it running):
make run
NOTE: You can also run this in one step by running: make install run
If you are editing the API definitions, generate the manifests such as CRs or CRDs using:
make manifests
NOTE: Run make --help
for more information on all potential make
targets
More information can be found via the Kubebuilder Documentation