fix: PR changes

This commit is contained in:
sidwebworks
2025-08-14 21:43:49 +05:30
parent f2a9a57c95
commit 13aa380cac
8 changed files with 145 additions and 82 deletions
+24 -24
View File
@@ -6,7 +6,7 @@ services:
image: nginx image: nginx
restart: "always" restart: "always"
ports: ports:
- 8085:80 - 8080:80
- 8443:443 - 8443:443
volumes: volumes:
- ./nginx/default.dev.conf:/etc/nginx/conf.d/default.conf:ro - ./nginx/default.dev.conf:/etc/nginx/conf.d/default.conf:ro
@@ -35,16 +35,16 @@ services:
volumes: volumes:
- redis_data:/data - redis_data:/data
# redis-commander: redis-commander:
# container_name: infisical-dev-redis-commander container_name: infisical-dev-redis-commander
# image: rediscommander/redis-commander image: rediscommander/redis-commander
# restart: always restart: always
# depends_on: depends_on:
# - redis - redis
# environment: environment:
# - REDIS_HOSTS=local:redis:6379 - REDIS_HOSTS=local:redis:6379
# ports: ports:
# - "8085:8081" - "8085:8081"
db-test: db-test:
profiles: ["test"] profiles: ["test"]
@@ -129,18 +129,18 @@ services:
- ./frontend/public:/app/public - ./frontend/public:/app/public
env_file: .env env_file: .env
# pgadmin: pgadmin:
# image: dpage/pgadmin4 image: dpage/pgadmin4
# restart: always restart: always
# volumes: volumes:
# - ./servers.json:/pgadmin4/servers.json - ./servers.json:/pgadmin4/servers.json
# environment: environment:
# PGADMIN_DEFAULT_EMAIL: [email protected] PGADMIN_DEFAULT_EMAIL: [email protected]
# PGADMIN_DEFAULT_PASSWORD: pass PGADMIN_DEFAULT_PASSWORD: pass
# ports: ports:
# - 5050:80 - 5050:80
# depends_on: depends_on:
# - db - db
smtp-server: smtp-server:
container_name: infisical-dev-smtp-server container_name: infisical-dev-smtp-server
@@ -197,4 +197,4 @@ volumes:
driver: local driver: local
ldap_data: ldap_data:
ldap_config: ldap_config:
grafana_storage: grafana_storage:
@@ -161,7 +161,7 @@ type InfisicalSecretSpec struct {
// +kubebuilder:validation:Optional // +kubebuilder:validation:Optional
TLS TLSConfig `json:"tls"` TLS TLSConfig `json:"tls"`
// +kubebuilder:default:=true // +kubebuilder:default:=false
InstantUpdates bool `json:"instantUpdates"` InstantUpdates bool `json:"instantUpdates"`
} }
@@ -7,39 +7,100 @@ metadata:
annotations: annotations:
example.com/annotation-to-be-passed-to-managed-secret: "sample-value" example.com/annotation-to-be-passed-to-managed-secret: "sample-value"
spec: spec:
hostAPI: http://localhost:8085/api hostAPI: http://localhost:8080/api
resyncInterval: 10 resyncInterval: 10
instantUpdates: true instantUpdates: false
# tls: # tls:
# caRef: # caRef:
# secretName: custom-ca-certificate # secretName: custom-ca-certificate
# secretNamespace: default # secretNamespace: default
# key: ca.crt # key: ca.crt
authentication: authentication:
# Make sure to only have 1 authentication method defined, serviceToken/universalAuth.
# If you have multiple authentication methods defined, it may cause issues.
# (Deprecated) Service Token Auth
# serviceToken:
# serviceTokenSecretReference:
# secretName: service-token
# secretNamespace: default
# secretsScope:
# envSlug: <env-slug>
# secretsPath: <secrets-path>
# recursive: true
# Universal Auth # Universal Auth
universalAuth: universalAuth:
secretsScope: secretsScope:
projectSlug: test-j7-kx projectSlug: hello-9zkr
envSlug: dev # "dev", "staging", "prod", etc.. envSlug: dev # "dev", "staging", "prod", etc..
secretsPath: "/" # Root is "/" secretsPath: "/" # Root is "/"
recursive: true # Whether or not to use recursive mode (Fetches all secrets in an environment from a given secret path, and all folders inside the path) / defaults to false recursive: true # Wether or not to use recursive mode (Fetches all secrets in an environment from a given secret path, and all folders inside the path) / defaults to false
credentialsRef: credentialsRef:
secretName: universal-auth-credentials secretName: universal-auth-credentials
secretNamespace: default secretNamespace: default
# Native Kubernetes Auth
kubernetesAuth:
serviceAccountRef:
name: <secret-name>
namespace: <secret-namespace>
identityId: <machine-identity-id>
serviceAccountTokenPath: "/path/to/your/service-account/token" # Optional, defaults to /var/run/secrets/kubernetes.io/serviceaccount/token
# secretsScope is identical to the secrets scope in the universalAuth field in this sample.
secretsScope:
projectSlug: your-project-slug
envSlug: prod
secretsPath: "/path"
recursive: true
# AWS IAM Auth
awsIamAuth:
identityId: <your-machine-identity-id>
# secretsScope is identical to the secrets scope in the universalAuth field in this sample.
secretsScope:
projectSlug: your-project-slug
envSlug: prod
secretsPath: "/path"
recursive: true
ldapAuth:
identityId: <machine-identity-id>
credentialsRef:
secretName: <secret-name> # ldap-auth-credentials
secretNamespace: <secret-namespace> # default
# secretsScope is identical to the secrets scope in the universalAuth field in this sample.
secretsScope:
projectSlug: your-project-slug
envSlug: prod
secretsPath: "/path"
recursive: true
# Azure Auth
azureAuth:
identityId: <your-machine-identity-id>
resource: https://management.azure.com/&client_id=your_client_id # This field is optional, and will default to "https://management.azure.com/" if nothing is provided.
# secretsScope is identical to the secrets scope in the universalAuth field in this sample.
secretsScope:
projectSlug: your-project-slug
envSlug: prod
secretsPath: "/path"
recursive: true
# GCP ID Token Auth
gcpIdTokenAuth:
identityId: <your-machine-identity-id>
# secretsScope is identical to the secrets scope in the universalAuth field in this sample.
secretsScope:
projectSlug: your-project-slug
envSlug: prod
secretsPath: "/path"
recursive: true
# GCP IAM Auth
gcpIamAuth:
identityId: <your-machine-identity-id>
serviceAccountKeyFilePath: "/path/to-service-account-key-file-path.json"
# secretsScope is identical to the secrets scope in the universalAuth field in this sample.
secretsScope:
projectSlug: your-project-slug
envSlug: prod
secretsPath: "/path"
recursive: true
managedKubeSecretReferences: managedKubeSecretReferences:
- secretName: managed-secret - secretName: managed-secret
secretNamespace: default secretNamespace: default
+27 -23
View File
@@ -1,28 +1,32 @@
apiVersion: secrets.infisical.com/v1alpha1 apiVersion: secrets.infisical.com/v1alpha1
kind: InfisicalSecret kind: InfisicalSecret
metadata: metadata:
name: infisicalsecret-sample name: infisicalsecret-sample
labels: labels:
label-to-be-passed-to-managed-secret: sample-value label-to-be-passed-to-managed-secret: sample-value
annotations: annotations:
example.com/annotation-to-be-passed-to-managed-secret: "sample-value" example.com/annotation-to-be-passed-to-managed-secret: "sample-value"
spec: spec:
hostAPI: http://localhost:8085/api hostAPI: https://app.infisical.com/api
resyncInterval: 10 resyncInterval: 10
authentication: authentication:
# Universal Auth # Native Kubernetes Auth
universalAuth: kubernetesAuth:
secretsScope: identityId: <>
projectSlug: test-j7-kx serviceAccountRef:
envSlug: dev # "dev", "staging", "prod", etc.. name: infisical-auth
secretsPath: "/" # Root is "/" namespace: default
recursive: true # Wether or not to use recursive mode (Fetches all secrets in an environment from a given secret path, and all folders inside the path) / defaults to false
credentialsRef:
secretName: universal-auth-credentials
secretNamespace: default
managedSecretReference: # secretsScope is identical to the secrets scope in the universalAuth field in this sample.
secretName: managed-secret-k8s secretsScope:
secretNamespace: default projectSlug: dsf-gpb-t
creationPolicy: "Orphan" ## Owner | Orphan envSlug: dev
# secretType: kubernetes.io/dockerconfigjson secretsPath: "/"
recursive: true
managedSecretReference:
secretName: managed-secret-k8s
secretNamespace: default
creationPolicy: "Orphan" ## Owner | Orphan
# secretType: kubernetes.io/dockerconfigjson
@@ -4,5 +4,5 @@ metadata:
name: universal-auth-credentials name: universal-auth-credentials
type: Opaque type: Opaque
stringData: stringData:
clientId: your-client-id-here clientId: your-client-id-here
clientSecret: your-client-secret-here clientSecret: your-client-secret-here
+8 -8
View File
@@ -207,19 +207,19 @@ type GetProjectByIDResponse struct {
Project model.Project `json:"workspace"` Project model.Project `json:"workspace"`
} }
type SubProjectEventsRequestRegister struct { type SubscribeProjectEventsRequestRegister struct {
Event string `json:"event"` Event string `json:"event"`
Conditions *SubProjectEventsRequestCondition `json:"conditions"` Conditions *SubscribeProjectEventsRequestCondition `json:"conditions"`
} }
type SubProjectEventsRequestCondition struct { type SubscribeProjectEventsRequestCondition struct {
EnvironmentSlug string `json:"environmentSlug"` EnvironmentSlug string `json:"environmentSlug"`
SecretPath string `json:"secretPath"` SecretPath string `json:"secretPath"`
} }
type SubProjectEventsRequest struct { type SubscribeProjectEventsRequest struct {
ProjectID string `json:"projectId"` ProjectID string `json:"projectId"`
Register []SubProjectEventsRequestRegister `json:"register"` Register []SubscribeProjectEventsRequestRegister `json:"register"`
} }
type SubProjectEventsResponse struct{} type SubscribeProjectEventsResponse struct{}
@@ -79,8 +79,6 @@ func (r *InfisicalSecretReconciler) GetLogger(req ctrl.Request) logr.Logger {
func (r *InfisicalSecretReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { func (r *InfisicalSecretReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
logger := r.GetLogger(req) logger := r.GetLogger(req)
logger.Info("Reconcile called")
var infisicalSecretCRD secretsv1alpha1.InfisicalSecret var infisicalSecretCRD secretsv1alpha1.InfisicalSecret
requeueTime := time.Minute // seconds requeueTime := time.Minute // seconds
@@ -567,7 +567,7 @@ func (r *InfisicalSecretReconciler) OpenInstantUpdatesStream(ctx context.Context
envSlug := variables.AuthDetails.MachineIdentityScope.EnvSlug envSlug := variables.AuthDetails.MachineIdentityScope.EnvSlug
infiscalClient := variables.InfisicalClient infiscalClient := variables.InfisicalClient
conn := variables.ServerSentEvents sseRegistry := variables.ServerSentEvents
token := infiscalClient.Auth().GetAccessToken() token := infiscalClient.Auth().GetAccessToken()
@@ -581,14 +581,14 @@ func (r *InfisicalSecretReconciler) OpenInstantUpdatesStream(ctx context.Context
secretsPath = fmt.Sprint(secretsPath, "**") secretsPath = fmt.Sprint(secretsPath, "**")
} }
conditions := &api.SubProjectEventsRequestCondition{ conditions := &api.SubscribeProjectEventsRequestCondition{
SecretPath: secretsPath, SecretPath: secretsPath,
EnvironmentSlug: envSlug, EnvironmentSlug: envSlug,
} }
body, err := json.Marshal(api.SubProjectEventsRequest{ body, err := json.Marshal(api.SubscribeProjectEventsRequest{
ProjectID: project.ID, ProjectID: project.ID,
Register: []api.SubProjectEventsRequestRegister{ Register: []api.SubscribeProjectEventsRequestRegister{
{ {
Event: "secret:create", Event: "secret:create",
Conditions: conditions, Conditions: conditions,
@@ -612,7 +612,7 @@ func (r *InfisicalSecretReconciler) OpenInstantUpdatesStream(ctx context.Context
return fmt.Errorf("CallSubscribeProjectEvents: unable to marshal body [err=%s]", err) return fmt.Errorf("CallSubscribeProjectEvents: unable to marshal body [err=%s]", err)
} }
events, errors, err := conn.Subscribe(func() (*http.Request, error) { events, errors, err := sseRegistry.Subscribe(func() (*http.Request, error) {
headers := map[string]string{ headers := map[string]string{
"User-Agent": api.USER_AGENT_NAME, "User-Agent": api.USER_AGENT_NAME,
"Authorization": fmt.Sprint("Bearer ", token), "Authorization": fmt.Sprint("Bearer ", token),