CtrlK
BlogDocsLog inGet started
Tessl Logo

dirien/pulumi-skills

Pulumi infrastructure-as-code and Flux CD GitOps skills for Claude Code with ESC, OIDC, and cloud provider best practices.

97

Quality

97%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Risky

Do not use without reviewing

Overview
Quality
Evals
Security
Files

commands-secrets.mdflux-operator-cli/references/

Create Secret Commands

All secret commands follow this pattern:

flux-operator create secret <type> <name> [flags]

Common Flags (all secret types)

FlagDescription
-n, --namespaceNamespace for the secret
--annotationComma-separated annotations: key1=val1,key2=val2
--labelComma-separated labels: key1=val1,key2=val2
--immutableCreate an immutable secret
--exportOutput YAML instead of creating in-cluster (for GitOps)

basic-auth

Create a secret with username/password credentials.

flux-operator create secret basic-auth <name> \
  --username=<user> \
  --password=<pass>
FlagDescription
--usernameUsername (required)
--passwordPassword (required; mutually exclusive with --password-stdin)
--password-stdinRead password from stdin

Usage

# Create basic auth secret
flux-operator create secret basic-auth git-auth \
  --username=bot --password=ghp_xxxx -n flux-system

# Export as YAML
flux-operator create secret basic-auth git-auth \
  --username=bot --password=ghp_xxxx --export

# Read password from stdin
echo "ghp_xxxx" | flux-operator create secret basic-auth git-auth \
  --username=bot --password-stdin -n flux-system

githubapp

Create a secret for GitHub App authentication.

flux-operator create secret githubapp <name> \
  --app-id=<id> \
  --app-installation-id=<id> \
  --app-private-key-file=<path>
FlagDescription
--app-idGitHub App ID (required)
--app-installation-idGitHub App installation ID (required)
--app-private-key-filePath to private key PEM file (required)
--app-base-urlGitHub Enterprise base URL (optional)

Usage

# Standard GitHub
flux-operator create secret githubapp gh-app \
  --app-id=12345 \
  --app-installation-id=67890 \
  --app-private-key-file=private-key.pem \
  -n flux-system

# GitHub Enterprise
flux-operator create secret githubapp gh-app \
  --app-id=12345 \
  --app-installation-id=67890 \
  --app-private-key-file=private-key.pem \
  --app-base-url=https://github.example.com \
  -n flux-system

proxy

Create a secret for HTTP/HTTPS proxy configuration.

flux-operator create secret proxy <name> \
  --address=<url>
FlagDescription
--addressProxy URL (required)
--usernameProxy username (optional)
--passwordProxy password (optional)
--password-stdinRead password from stdin

Usage

# Proxy without auth
flux-operator create secret proxy corp-proxy \
  --address=http://proxy.corp.example.com:3128 \
  -n flux-system

# Proxy with auth
flux-operator create secret proxy corp-proxy \
  --address=http://proxy.corp.example.com:3128 \
  --username=proxyuser --password=proxypass \
  -n flux-system

registry

Create a secret for container registry authentication.

flux-operator create secret registry <name> \
  --server=<host> \
  --username=<user> \
  --password=<pass>
FlagDescription
--serverRegistry server hostname (required)
--usernameRegistry username (required)
--passwordRegistry password (required; mutually exclusive with --password-stdin)
--password-stdinRead password from stdin

Usage

# GitHub Container Registry
flux-operator create secret registry ghcr-auth \
  --server=ghcr.io \
  --username=bot \
  --password=ghp_xxxx \
  -n flux-system

# Docker Hub
flux-operator create secret registry dockerhub \
  --server=docker.io \
  --username=myuser \
  --password-stdin \
  -n flux-system

sops

Create a secret for SOPS decryption (age or GPG keys).

flux-operator create secret sops <name> [flags]
FlagDescription
--age-key-filePath to age key file (repeatable for multiple keys)
--gpg-key-filePath to GPG key file (repeatable for multiple keys)
--age-key-stdinRead age key from stdin
--gpg-key-stdinRead GPG key from stdin

Usage

# Single age key
flux-operator create secret sops sops-age \
  --age-key-file=age.key \
  -n flux-system

# Multiple age keys
flux-operator create secret sops sops-age \
  --age-key-file=key1.txt \
  --age-key-file=key2.txt \
  -n flux-system

# GPG key
flux-operator create secret sops sops-gpg \
  --gpg-key-file=private.gpg \
  -n flux-system

# Age key from stdin
cat age.key | flux-operator create secret sops sops-age \
  --age-key-stdin \
  -n flux-system

ssh

Create a secret for SSH authentication (Git over SSH).

flux-operator create secret ssh <name> \
  --private-key-file=<path> \
  --knownhosts-file=<path>
FlagDescription
--private-key-filePath to SSH private key (required)
--public-key-filePath to SSH public key (optional)
--knownhosts-filePath to known_hosts file (required)
--passwordPassphrase for the private key (optional)
--password-stdinRead passphrase from stdin

Usage

# Standard SSH key
flux-operator create secret ssh git-ssh \
  --private-key-file=~/.ssh/id_ed25519 \
  --knownhosts-file=~/.ssh/known_hosts \
  -n flux-system

# With passphrase
flux-operator create secret ssh git-ssh \
  --private-key-file=~/.ssh/id_rsa \
  --knownhosts-file=~/.ssh/known_hosts \
  --password=mypassphrase \
  -n flux-system

# Export for GitOps
flux-operator create secret ssh git-ssh \
  --private-key-file=id_ed25519 \
  --knownhosts-file=known_hosts \
  --export > secret.yaml

tls

Create a secret with TLS certificate and key.

flux-operator create secret tls <name> [flags]
FlagDescription
--tls-crt-filePath to TLS certificate file
--tls-key-filePath to TLS private key file
--ca-crt-filePath to CA certificate file

Usage

# TLS cert + key
flux-operator create secret tls my-tls \
  --tls-crt-file=cert.pem \
  --tls-key-file=key.pem \
  -n flux-system

# With CA certificate
flux-operator create secret tls my-tls \
  --tls-crt-file=cert.pem \
  --tls-key-file=key.pem \
  --ca-crt-file=ca.pem \
  -n flux-system

web-config

Create a secret for web UI OIDC configuration.

flux-operator create secret web-config <name> \
  --base-url=<url> \
  --issuer-url=<url>
FlagDefaultDescription
--base-urlBase URL of the web UI (required)
--providerOIDCAuth provider
--issuer-urlOIDC issuer URL (required for OIDC provider)
--client-idOIDC client ID
--client-secretOIDC client secret
--client-secret-stdinRead client secret from stdin
--client-secret-rndGenerate a random client secret

Usage

# OIDC config
flux-operator create secret web-config web-oidc \
  --base-url=https://flux.example.com \
  --issuer-url=https://auth.example.com \
  --client-id=flux-ui \
  --client-secret=my-secret \
  -n flux-system

# With random client secret
flux-operator create secret web-config web-oidc \
  --base-url=https://flux.example.com \
  --issuer-url=https://auth.example.com \
  --client-id=flux-ui \
  --client-secret-rnd \
  -n flux-system

AGENTS.md

CLAUDE.md

README.md

tile.json