diff --git a/content/docs/en/cluster/access-cluster.mdx b/content/docs/en/cluster/access-cluster.mdx index 0c4bc797c..bdb1bac1a 100644 --- a/content/docs/en/cluster/access-cluster.mdx +++ b/content/docs/en/cluster/access-cluster.mdx @@ -7,6 +7,10 @@ import Zoom from "react-medium-image-zoom"; In order to access your Kubernetes cluster you must complete some steps and generate a Kubeconfig file to connect to a Kubernetes IDE. +:::tip +Prefer not to install a Kubernetes IDE? The [Headlamp](/docs/cluster/addons/headlamp) add-on gives you a browser-based Kubernetes UI, with no Kubeconfig or Lens installation required — you still need to be connected to the VPN to reach it. +::: + ## FAQs
@@ -58,8 +62,8 @@ Go to the *Access Cluster* option. - Login into AWS with your username. - Then, go to [AWS Access Key Wizard](https://us-east-1.console.aws.amazon.com/iam/home#/security_credentials/access-key-wizard) to generate the keys on AWS. -- Paste the keys in the form and generate the kubeconfig file. -- Copy the output. +- Paste the keys in the form. +- Use **Copy Kubeconfig** or **Download Kubeconfig** to get the generated file. - **Grafana**: Visualize and analyze data with Grafana's dashboards, making it easier to monitor system performance and troubleshoot issues. Perfect for tracking application memory and CPU usage. -- **LOKI**: Use Loki for cost-effective log aggregation. It simplifies log management by labeling log streams without indexing content, making it ideal for browsing and monitoring application logs. +- **LOKI**: Use Loki for cost-effective log aggregation. It simplifies log management by labeling log streams without indexing content, making it ideal for browsing and monitoring application logs. This add-on is **deprecated** — see the [Loki documentation](/docs/cluster/addons/loki) for details. - **Kubecost**: Gain real-time insights into Kubernetes cloud costs with Kubecost. This add-on helps you monitor and reduce expenses across projects in your cluster. - **Prometheus**: SleakOps deploys Prometheus for monitoring and alerting, providing detailed insights into cluster performance and resource utilization. - **OTEL**: Use OpenTelemetry to collect and analyze distributed traces, enabling you to monitor and optimize application performance across your cluster. +- [**KEDA**](/docs/cluster/addons/keda): Scale your workloads based on external signals — queue depth, consumer lag, CloudWatch metrics, and more — including down to zero replicas. +- [**Headlamp**](/docs/cluster/addons/headlamp): A browser-based UI for browsing and managing the Kubernetes resources of your cluster, no `kubectl` required. - [**EFS Controller**](./addons/efs): The EFS Controller allows you to manage EFS volumes within your EKS cluster, providing scalable and shared storage for your applications. For more details, refer to the [EFS documentation](/docs/cluster/addons/efs). - [**EBS Controller**](./addons/ebs): The EBS Controller allows you to manage EBS volumes within your EKS cluster, providing persistent block storage for your applications. For more details, refer to the [EBS documentation](/docs/cluster/addons/ebs). + +Add-ons in Beta or Deprecated show a matching badge in the catalog.
@@ -40,10 +46,36 @@ By default SleakOps includes in your infra: ### How do I set up an Add-on? To set up an add-on, follow these steps: -1. Navigate to the Add-ons section in the [Cluster](../cluster) section +1. Open the **Clusters** section, select your cluster, and click **Manage Addons**. 2. Select the desired add-on from the list of available options. 3. Configure the add-on settings as needed. -4. Click "Deploy" to install the add-on in your EKS cluster. +4. Click **Install** to deploy the add-on to your EKS cluster. For more detailed instructions, refer to the [Add-ons setup guide](/docs/cluster/addons). +
+ +
+ +### Can I deploy a custom Helm chart as an add-on? + +Yes. Click **Add custom addon** above the Add-ons grid to deploy any Helm chart of your choice by setting its release name, chart, repository, version, namespace and values. Custom add-ons are tagged **Custom** in the list, and — unlike the built-in add-on types — you can install more than one per cluster. SleakOps doesn't manage ingress or a domain for them. +
+ +
+ +### Can I import an addon configuration or an existing Helm release? + +Yes, two ways: + +- **Import from JSON** pastes a previously exported add-on configuration and pre-fills the installation form for the matching add-on type. +- **Import from cluster** lists Helm releases already running in your cluster that SleakOps doesn't manage yet, so you can adopt one as a custom add-on. From that point on, SleakOps is the source of truth: any change you make directly in the cluster afterward gets overwritten on the next sync. + +Every installed add-on also has an **Export** action that produces a portable JSON file you can re-import into another cluster. +
+ +
+ +### What happens when I uninstall an Add-on? + +Uninstalling an add-on removes its Helm release and every resource it created in the cluster — this also applies to add-ons imported from an existing release. SleakOps confirms this before you proceed.
\ No newline at end of file diff --git a/content/docs/en/cluster/addons/loki.mdx b/content/docs/en/cluster/addons/loki.mdx index 88b8ba694..950341bf3 100644 --- a/content/docs/en/cluster/addons/loki.mdx +++ b/content/docs/en/cluster/addons/loki.mdx @@ -10,6 +10,10 @@ import { FiExternalLink } from "react-icons/fi"; # Loki +:::warning Deprecated +The Loki add-on is **deprecated**. SleakOps offers a newer LokiV2 add-on with the same log-aggregation capabilities — it is available in the addon catalog (Beta) and can be installed like any other addon. +::: + Introduction [Loki ](https://grafana.com/oss/loki/) is an Addon that enables you to store and query logs from the containers deployed inside the cluster. Loki depends on [Grafana ](/docs/cluster/addons/grafana) as Sleakops uses it as log viewer. It is a crucial tool for troubleshooting as it can store logs of everything inside the cluster which is useful for root cause analysis of problems in your applications or from any resource allocated inside the cluster. diff --git a/content/docs/en/cluster/index.mdx b/content/docs/en/cluster/index.mdx index 33b86e296..0ca150066 100644 --- a/content/docs/en/cluster/index.mdx +++ b/content/docs/en/cluster/index.mdx @@ -75,11 +75,7 @@ Choosing the right instance types depends on your application requirements, cost ### How does SleakOps handle cluster updates and upgrades? - -1. We notify users about new version coming in approximatively 1 month in advance. -2. Upgrade clusters for a group of selected customers. -3. Upgrade all non-production flagged clusters. -4. Upgrade all clusters. +When a new Kubernetes version rollout is planned for your clusters, SleakOps schedules it as an upgrade in the [Upgrades](/docs/upgrades) panel and notifies you in advance. From there you can review what the upgrade involves, run it ahead of its scheduled date, or move it within the allowed window.
@@ -116,23 +112,6 @@ You can monitor your cluster's activity by accessing Clusters, and clicking into ### Can I connect a Staging service to a Production service if they are in different clusters? -Tenés razón, se me pasó destacar el título en la versión en inglés. Aquí tenés el punto 2 completo, con los títulos bien marcados para ambos idiomas y la lógica de cuentas corregida: - -### **2. ¿Puedo conectar un servicio de Staging con uno de Producción si están en diferente clúster?** - -**Versión en Español** - -Bajo un esquema de **multi-cuenta**, los entornos se encuentran en clústeres y cuentas de AWS separadas (Prod y Dev). En esta configuración, están totalmente aislados y no existe peering entre sus VPCs. Por el contrario, en caso de utilizar una **cuenta única**, ambos entornos conviven dentro del mismo clúster. - -La **buena práctica** es que permanezcan desconectados para garantizar el aislamiento total de los datos. El uso de un mismo clúster o de un esquema único (_single schema_) conlleva riesgos críticos de seguridad: - -- **Corrupción de Datos:** Un bug en el código de Staging podría ejecutar comandos accidentales (como `DROP TABLE` o `DELETE`) que impacten directamente en la base de datos de Producción. -- **Compromiso de Credenciales:** Si un atacante compromete el entorno de Staging (que suele tener políticas de acceso más flexibles), podría escalar privilegios y acceder a los secretos o llaves maestras de Producción. - -### **2. Can I connect a Staging service to a Production service if they are in different clusters?** - -**English Version** - In a **multi-account** setup, environments reside in separate clusters and AWS accounts (Prod and Dev). In this configuration, they are completely isolated, and no VPC peering exists. Conversely, in a **single-account** setup, both environments coexist within the same cluster. **Best practice** is to keep them disconnected to ensure strict security and data isolation. Sharing a cluster or using a single database schema introduces critical risks: diff --git a/content/docs/en/cluster/nodepools/creating-nodepool.mdx b/content/docs/en/cluster/nodepools/creating-nodepool.mdx index f94bb2434..7f237bb40 100644 --- a/content/docs/en/cluster/nodepools/creating-nodepool.mdx +++ b/content/docs/en/cluster/nodepools/creating-nodepool.mdx @@ -22,6 +22,10 @@ Into the Node Pool section, if you have permission, you'll find the *Create* opt Notice, that the quantity of Node Pools per Cluster might be limited by your plan. +:::info +Node pools can't be created or edited while the cluster is being provisioned or is shut down. +::: + +:::warning +Changing a node pool's compute settings can trigger a rolling replacement of its nodes, which may briefly restart the workloads scheduled on it. If the workloads currently running on the pool already use more CPU or memory than the new limits you're setting, the update is rejected — free up capacity or scale down those workloads first. +::: + ## Deleting a node pool ### 1. Click the bin button at the top right of the node pool card @@ -53,3 +57,7 @@ Update the parameters into the modal and click on *Save*.

Click on Delete to confirm and trigger the action on SleakOps.

+ +:::info +You can't delete internal node pools (including the build pool), the last non-internal (customer) node pool in the cluster, or a node pool currently assigned to a Project Environment — reassign or remove the environment first. The cluster must also be powered on to delete a node pool. +::: diff --git a/content/docs/en/cluster/shutdown-cluster.mdx b/content/docs/en/cluster/shutdown-cluster.mdx index bebaef712..006bc3745 100644 --- a/content/docs/en/cluster/shutdown-cluster.mdx +++ b/content/docs/en/cluster/shutdown-cluster.mdx @@ -10,6 +10,8 @@ import { FiExternalLink } from "react-icons/fi"; It is the capacity to turn off all your cluster's resources at a specified scheduled time to avoid incurring costs during that time frame. When this feature is activated you will be able to turn ON or OFF your cluster at any time, even outside the scheduled time you've configured. +When your cluster turns back on, SleakOps restores the exact node pools it had before shutting down. + :::warning When your cluster is OFF, you will not be able to run any Build, Deploy or other actions that require its resources to run. ::: @@ -42,6 +44,10 @@ Below you will see a box that shows 'Generated Cron Expressions (UTC)', which di ## How can I shutdown my cluster at any time? +:::info +Manual start/stop is only available once Scheduled Shutdown has been configured for the cluster. If it hasn't, SleakOps prompts you to set up a schedule first instead of turning the cluster off. +::: + In order to shutdown a cluster, just click on the *Stop* button and confirm the action. This action can be performed just in *Active* clusters. diff --git a/content/docs/en/domain/delegation.mdx b/content/docs/en/domain/delegation.mdx index 571a4f889..c7935ef3f 100644 --- a/content/docs/en/domain/delegation.mdx +++ b/content/docs/en/domain/delegation.mdx @@ -228,40 +228,25 @@ sequenceDiagram participant ALB as AWS ALB U->>S: Create Alias: api.external.com - S-->>U: Provide Certificate Validation Records - U->>DNS: Add Validation CNAME Records - DNS-->>S: Certificate Validated ✅ + S-->>U: Reuses external.com's certificate (no validation needed) S-->>U: Provide ALB Endpoint U->>DNS: Add CNAME to ALB DNS->>ALB: Traffic Routed ALB-->>U: Service Accessible ``` -#### For SSL Certificate Validation - -1. **Sleakops provides validation records** - - You'll see CNAME records for certificate validation - - Example: - -``` -_acme-challenge.api.external.com → _validation123.acme.aws.com -``` - -2. **Add validation records to your DNS** - - Go to the hosted zone for `external.com` (in Sleakops or wherever it's managed) - - Add the CNAME records exactly as shown - - Wait for certificate validation (usually 5-15 minutes) +Since `api.external.com` is a direct subdomain of a domain Sleakops already manages in the same account, it reuses that domain's certificate — there's no separate SSL validation step. If the parent domain belongs to a different account, the alias gets its own certificate with manual validation records instead. #### For Traffic Routing -3. **Sleakops provides ALB endpoint** +1. **Sleakops provides ALB endpoint** - You'll see the ALB DNS name: ``` ALB: my-alb-123456.us-east-1.elb.amazonaws.com ``` -4. **Create CNAME record** +2. **Create CNAME record** - Go to your DNS management for `external.com` - Create a CNAME record: @@ -272,7 +257,7 @@ Value: my-alb-123456.us-east-1.elb.amazonaws.com TTL: 300 ``` -5. **Verify** +3. **Verify** - Test the domain: `curl https://api.external.com` - Should return your service response @@ -419,6 +404,17 @@ graph TD 3. Remove any conflicting DNS records 4. Wait 15-30 minutes for DNS propagation 5. Check DNS: `dig _acme-challenge.yourdomain.com` +6. If validation fails because of a CAA policy, Sleakops shows the exact CAA record to add (e.g. `0 issue "amazon.com"`) in the domain's Certificate section — add it and check again + +--- + +### Alias domain rejected when creating it + +**Issue:** Creating an alias fails with a domain format error + +**Solutions:** +1. Use a top-level domain of 6 characters or fewer (e.g. `.com`, `.io`, `.dev`) — longer TLDs aren't currently supported for aliases +2. Wildcard aliases (`*.domain.com`) aren't supported from the panel — create explicit subdomains instead --- diff --git a/content/docs/en/domain/index.mdx b/content/docs/en/domain/index.mdx index 327eede72..d2c2739bc 100644 --- a/content/docs/en/domain/index.mdx +++ b/content/docs/en/domain/index.mdx @@ -111,10 +111,10 @@ Zero-configuration domain setup. Each service automatically gets a predictable, **What Sleakops does:** ### Scenario A: Domain matches an existing hosted zone -If `external-domain.com` is already a Provider or Environment in Sleakops: -- ✅ Provides DNS records for SSL certificate validation +If the alias is a direct subdomain of a domain already managed by Sleakops as a Provider or Environment **in the same account** (e.g. `api.external-domain.com` under `external-domain.com`): +- ✅ Reuses that domain's certificate automatically — no separate SSL validation needed (a parent in a different account doesn't count: the alias then gets its own certificate with manual validation, as in Scenario B) - ✅ Provides ALB name for DNS configuration -- ⚠️ You configure the DNS records yourself +- ⚠️ You still create the CNAME (or A/ALIAS record for a root domain) pointing to the ALB yourself ### Scenario B: Domain doesn't match any hosted zone If `anything.com` is completely external: diff --git a/content/docs/en/domain/setup.mdx b/content/docs/en/domain/setup.mdx index cb7795bd5..f44c283ef 100644 --- a/content/docs/en/domain/setup.mdx +++ b/content/docs/en/domain/setup.mdx @@ -12,7 +12,7 @@ import { FiExternalLink } from "react-icons/fi"; One critical aspect of working with SleakOps is ensuring proper domain delegation. Domain delegation is essential for seamless integration and functionality, as it determines how your domains and subdomains are managed and how they interact with your AWS environment. Depending on your specific needs, there are several scenarios for domain delegation with SleakOps: -#### 1. Navigate to the providers section +#### 1. Delegate the Main Domain This is the simplest option, where the NS record of the main domain is pointed to your AWS Hosted Zone. All subdomains will be handled automatically, ensuring effortless management. @@ -20,10 +20,6 @@ This is the simplest option, where the NS record of the main domain is pointed t If you prefer to keep your principal domain managed by your current DNS provider—perhaps because it hosts core services like email—this option allows you to delegate only the necessary subdomains. You'll need to set the NS records for each subdomain you wish to delegate. -#### 2. No Delegation of Main Domain or Subdomains - -If you prefer to keep your principal domain managed by your current DNS provider—perhaps because it hosts core services like email—this option allows you to delegate only the necessary subdomains. You'll need to set the NS records for each subdomain you wish to delegate. - #### 3. No Delegation of Main Domain or Subdomains In this case, you maintain full control over your domain and subdomains, without delegating them to AWS. To ensure SleakOps functions correctly, you must: @@ -35,9 +31,9 @@ In this case, you maintain full control over your domain and subdomains, without If you want to use a domain other than the principal one or have multiple domains pointing to the same service, you'll need to create an ALIAS: -- If the ALIAS belongs to a domain managed by SleakOps, it will be handled automatically. +- If the ALIAS is a direct subdomain of a domain already managed by SleakOps **in the same account**, it reuses that domain's certificate automatically — you still need to create the CNAME record pointing to the load balancer. If the parent domain belongs to a different account, the alias gets its own certificate with manual validation records. - If not, you'll need to manually create: - - A CNAME record to validate the SSL Certificate.' + - A CNAME record to validate the SSL Certificate. - An additional record for each ALIAS. By understanding and applying the appropriate domain delegation strategy for your environment, you can ensure that SleakOps integrates smoothly with your AWS infrastructure, providing optimal performance and security. @@ -76,7 +72,7 @@ To access it, there are are different ways, based on what you need to do: a. Access the Workload’s list and then, the Web services section. b. Select and Workload and click on the Three Dots button. c. Choose the Detail option - d. Create the Alias if it doesn’t exist by clicking the Associate new Domain and completing the form. + d. Create the Alias if it doesn’t exist by clicking the Associate new Domain and completing the form (the form includes a deploy option, checked by default, that redeploys the service immediately to start serving the new domain — if you uncheck it, the alias is saved without deploying and you'll need to deploy the affected projects yourself for it to take effect). e. Click on the Alias domain to display the detail. @@ -98,7 +94,7 @@ To access it, there are are different ways, based on what you need to do: - Locate the DNS settings for your domain. - Replace the existing records with the ones provided. -### 3. Update Name Servers with Domain Registrar +### 3. Verify Delegation - It may take some time for the DNS changes to propagate globally (usually within a few hours). - SleakOps periodically checks it but, if you want to manually verify it, you can click the yellow button _Check Delegation_ to trigger the process. @@ -108,3 +104,33 @@ To access it, there are are different ways, based on what you need to do: alt="domain-info-check-delegation-and-certificate" /> + +## FAQs + +
+ +### Can I rename an alias domain? + +No — domain names are immutable once created. Delete the alias and create a new one with the correct name. +
+ +
+ +### Can I delete an Environment or Provider domain from the Domains panel? + +Only alias domains can be deleted directly from the panel. Environment and Provider domains are removed automatically when you delete the corresponding Environment or Provider. +
+ +
+ +### My alias shows "Cert. Pending" even though I expected it to be active + +If your alias is a direct subdomain of a domain already managed by SleakOps in the same account, it reuses that domain's certificate instead of issuing its own — the panel currently shows this as "Cert. Pending" regardless of whether the parent's certificate is already active. Check the parent domain's status to confirm the certificate is valid. +
+ +
+ +### I finished the DNS setup but the domain still isn't serving traffic + +Once your domain's certificate is issued, SleakOps queues a deployment to apply it to your environment or service. Check the Deployments section for a pending approval — approving it (or creating the alias with the deploy option enabled) is what actually makes the domain live. +
diff --git a/content/docs/en/environment/index.mdx b/content/docs/en/environment/index.mdx index f23a83000..b81e1e7aa 100644 --- a/content/docs/en/environment/index.mdx +++ b/content/docs/en/environment/index.mdx @@ -29,7 +29,7 @@ Before creating an environment, read [Designing your Infra: Single Schema Vs. M ### Can I edit an environment? -No. You must delete it and create a new one. +Only its domain, using the Change Domain action described below. Every other setting is fixed after creation — to change the name or cluster, delete the environment and create a new one.
@@ -44,7 +44,7 @@ Access the Environment List, on the Action column, click on the bin icon. Then c ### How can I delegate a domain? Follow: [Delegate Domains](/docs/domain/setup) -
+ :::warning Your DNS service must be delegated to the Primary Route53 of SleakOps manually. Follow the steps described on this [link ](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingDNS.html). @@ -76,6 +76,43 @@ With your [Account](/docs/provider/accounts) selected, you will access the follo | --- | --- | | **Name** | Define a name for your environment using down case letters and middle dashes. | | **Cluster** | Select one of the available clusters to host the new environment. | -| **Domain** | Specify the domain for your environment. | +| **Domain** | Specify the domain for your environment. It autofills as `{name}.{yourdomain.com}` until you edit it manually. | + +:::info Root environment +Enter your provider's base domain instead of a subdomain (e.g. `yourdomain.com` instead of `qa.yourdomain.com`) to make this the root environment: it serves that domain directly, with no subdomain. A provider can only have one root environment, and it must belong to your Production account. +::: + +Once you’ve completed the form, click on Create in order to trigger the environment creation into the selected cluster. + +## Clone an Environment + +Cloning duplicates an environment — its projects and, optionally, their services, dependencies, and variable groups — into a new environment, even on a different cluster or account. Use it to spin up a copy of an existing environment without rebuilding it from scratch. + +{/* TODO: screenshot - Clone Environment form */} + +From the Environment List, use the Clone action (available to Admins and Editors with access to cloning) to open the clone form: + +| **Setting** | **Description** | +| --- | --- | +| **Name / Domain** | Same rules as creating an environment; the domain autofills from the name. | +| **Cluster** | Destination cluster for the clone — it can belong to a different account than the source environment. | +| **Nodepool** | Optional default nodepool for the cloned projects; you can override it per project. | +| **Projects** | Choose which projects to clone. For each one, clone everything or pick individual services, dependencies, and variable groups. | + +If you don't customize a project's selection, it's cloned in full. Cloning runs in the background: the new environment appears right away, and each cloned project reaches its final state as the copy completes. + +## Change the Domain + +From the Environment List, click the edit (pencil) button next to the domain in the Domain column — available once the environment is fully created (not while it's still provisioning). Enter the new domain and confirm. + +Changing the domain updates every service URL that pointed at the old one and redeploys all of the environment's projects. The environment won't work correctly until its DNS is delegated to the new domain — see [Delegate a Domain](/docs/domain/setup). If the previous domain had aliases or subdomains pointing to it, SleakOps notifies you to update them manually; they aren't migrated automatically. + +## Download the Validation Checklist + +From the Environment List or the environment's detail panel, select View Validation Checklist to generate a Markdown report of the environment's current state — a go-live checklist. For each project, it lists items to verify (branch, build, CI/CD) plus a section per resource type present — web services (with their URL), workers, cronjobs (with their schedule), hooks (with their trigger), dependencies, and variable groups — with links back to the panel, and a link to the [Exhaustive Environment Testing Guide](/tutorial/environment-exhaustive-testing-guide). You can preview it in a dialog or download it as a `.md` file. + +## Export an Environment + +From the environment's detail panel, use Export to download a `.json` file with every project in the environment and its resources (services, dependencies, variable groups), in a format you can reuse to recreate the same setup in another account, company, or environment — unlike Clone, export isn't limited to the same company. -Once you’ve completed the form, click on Create in order to trigger the environment creation into the selected cluster. +Variable values aren't included in the export (you'll re-enter them when reusing the file), and `file`-type variable groups are skipped; a message after the download lists anything left out. Export is disabled for Viewers and only available once the environment is Created (or in an Error state). diff --git a/content/docs/en/network/index.mdx b/content/docs/en/network/index.mdx index e60d9ab76..179b07326 100644 --- a/content/docs/en/network/index.mdx +++ b/content/docs/en/network/index.mdx @@ -16,7 +16,7 @@ This documentation provides a clear and simple overview of the network architect The SleakOps network infrastructure is based on the following key components: -- **VPC (Virtual Private Cloud):** Segregates networks by environment (Management, Production, Development). +- **VPC (Virtual Private Cloud):** Segregates networks by environment (Management, Production, Development), each provisioned in its own dedicated AWS account with a fixed default IP range. - **Subnets:** - *Public:* exposed to the Internet. - *Private:* restricted access, Internet access via NAT Gateway. @@ -27,6 +27,14 @@ The SleakOps network infrastructure is based on the following key components: - **Internal DNS:** Allows internal resources to communicate using hostnames instead of IP addresses. - **External-DNS:** Runs inside each Kubernetes (EKS) cluster and automatically manages public DNS records in Route53 for exposed services. +Each environment VPC uses a fixed default CIDR block: + +| **Environment** | **Default CIDR** | +| --- | --- | +| Management | `10.120.0.0/16` | +| Development | `10.110.0.0/16` | +| Production | `10.130.0.0/16` | + ## 2. Typical Communication Flow The following illustrates a typical flow of network traffic in SleakOps: @@ -61,10 +69,10 @@ An automated solution is used to manage public DNS records for deployed services ## 4. Cross-Environment Connectivity via VPC Peering -To enable controlled communication between environments (e.g., between Management and Production), SleakOps sets up **VPC Peering connections** between the different VPCs. +SleakOps sets up **VPC Peering connections** in a hub-and-spoke topology centered on the Management account: Management peers directly with both Development and Production, but Development and Production are not peered with each other. - **VPC Peering** enables two VPCs to exchange internal traffic as if they were part of the same network. - **It does not require** Internet, NAT Gateway, or VPN traffic routing. - It is a direct connection between two networks. -> 💡 Besides Internet Gateway access, SleakOps also supports other connectivity options such as **Pritunl VPN**, **NAT Gateway**, and **Transit Gateway**, depending on use case and required isolation level. +> 💡 Besides Internet Gateway access, SleakOps also supports other connectivity options such as [**Pritunl VPN**](/docs/user/vpn) (provisioned per AWS account alongside its first cluster, for administrative access to private resources) and **NAT Gateway**, depending on use case and required isolation level. diff --git a/content/docs/en/powered-ai/autodiagnostic.mdx b/content/docs/en/powered-ai/autodiagnostic.mdx index c5bd26f3a..2bf972cf5 100644 --- a/content/docs/en/powered-ai/autodiagnostic.mdx +++ b/content/docs/en/powered-ai/autodiagnostic.mdx @@ -35,13 +35,24 @@ Instead of manually correlating logs, Kubernetes events, and infrastructure stat The **Diagnose** action appears on individual resource detail pages when there is an issue to analyze: -- Deployments and releases -- Projects and services +- Clusters +- Services and Workers - Dependencies +- Deployments and releases +- Builds Once triggered, the diagnosis opens as a conversation in the **Support** section (`/support/`) where you can review the root cause analysis and follow-up with the AI. +
+ +### Does Autodiagnostics check for Kubernetes upgrade compatibility? + +Yes, for **EKS Cluster Upgrade** migrations (see [Upgrades](/docs/upgrades)). Their detail view includes an **Unmanaged Manifests Readiness** check: it reviews resources you deployed outside SleakOps — custom Helm releases and extra manifests — against the Kubernetes version you're upgrading to, and flags anything relying on deprecated or removed APIs, with a recommended action for each. + +This check is specific to EKS Cluster Upgrade migrations — other migration types don't include it. +
+
### What does the AI analyze? diff --git a/content/docs/en/powered-ai/conversation.mdx b/content/docs/en/powered-ai/conversation.mdx index 824888938..364350cce 100644 --- a/content/docs/en/powered-ai/conversation.mdx +++ b/content/docs/en/powered-ai/conversation.mdx @@ -41,11 +41,11 @@ You can ask anything about the resources SleakOps manages: - "Why did the last deployment fail?" - "Which services are consuming the most memory right now?" -- "Show me all environment variables for the production environment" -- "What changed in the cluster in the last 24 hours?" +- "Which pods are failing in the production cluster?" +- "What events happened recently in the cluster?" - "Generate a health report for the staging environment" -The AI pulls live data from your SleakOps account to answer, so responses reflect your actual infrastructure state. +When live infrastructure access is enabled for your company — it is being rolled out progressively during the Alpha — the AI pulls read-only data from your AWS account and Kubernetes clusters, so responses reflect your actual infrastructure state. Otherwise, it answers from the SleakOps knowledge base.
@@ -61,12 +61,12 @@ Think of Reports as structured, reusable summaries and Chat as your always-on in ### Does the AI take actions on my behalf? -No. Infrastructure Chat is read-only. It retrieves information, generates diagnostics, and makes recommendations, but it does not execute commands or change your infrastructure. All actions remain explicit and require your confirmation through the standard SleakOps workflows. +No. Infrastructure Chat is read-only. It retrieves information, generates diagnostics, and makes recommendations, but it cannot modify your infrastructure — the AWS role and Kubernetes access it uses only allow read operations. Any change to your infrastructure still goes through the standard SleakOps workflows.
### What context does the AI have? -The AI has access to the infrastructure state visible to your SleakOps user: resources, configurations, logs, events, and deployment history. It does not have access to your application source code or data stored in your dependencies (databases, S3, etc.) — only the infrastructure layer that SleakOps manages. +The AI has read-only access to the infrastructure state of your AWS account: resources, configurations, logs, events, and deployment history. It cannot read your secrets — Kubernetes Secrets, AWS Secrets Manager, KMS, and SSM parameters are explicitly blocked — and it does not have access to your application source code or the contents of your databases. It only sees the infrastructure layer that SleakOps manages.
diff --git a/content/docs/en/powered-ai/dockertron.mdx b/content/docs/en/powered-ai/dockertron.mdx index 8571d0a0e..c03fda1db 100644 --- a/content/docs/en/powered-ai/dockertron.mdx +++ b/content/docs/en/powered-ai/dockertron.mdx @@ -35,18 +35,15 @@ Dockertron is currently in **Beta**. The core generation workflow is stable; con ### Where do I find Dockertron? -Dockertron is accessible from **Projects** in the main sidebar. Navigate to **Projects → Dockertron Executions** (`/dockertron/`). The page lists all past executions with their repository, branch, status, and creation date. - -Click **Dockertron IA** to start a new execution. +Dockertron has no entry of its own in the sidebar. Open it from **Projects**: click **Dockertron IA** in the page header, or — when the Projects table is empty — use the **"No Docker setup in your project? Generate one automatically."** prompt. Both take you to the Dockertron page at `/dockertron`, which lists your past executions (repository, branch, status, and creation date) and is where you start a new one. There's also a **Configure your project with Dockertron AI** banner on the project creation form.
### How do I start a Dockertron run? -1. Navigate to **Projects → Dockertron Executions** in the sidebar. -2. Click **Dockertron IA**. -3. Fill in the two-step form: +1. From **Projects**, click **Dockertron IA** in the header (or the **"No Docker setup in your project?"** prompt on an empty table), then start a new execution from the Dockertron page. +2. Fill in the two-step form:
@@ -91,12 +88,12 @@ Dockertron works with any language and framework — you provide the context in ### How long does a run take? -Typically between 5 and 30 minutes depending on repository size and complexity. You will receive a notification when the Pull Request is ready. +Typically between 5 and 30 minutes depending on repository size and complexity. The status doesn't refresh automatically, so revisit the page or wait for the notification — sent whether the run succeeds or fails — to see the result.
### Can I modify the generated files? -Yes. Everything Dockertron generates arrives as a Pull Request — you can review, edit, and request changes before merging. The generated files are standard Docker configuration, so you can adjust them like any other Dockerfile or docker-compose. +Yes. Review the generated files from the execution's detail page and edit them like any standard Dockerfile or docker-compose configuration. If Pull Request creation is enabled on the platform, you can also request changes directly on the PR before merging.
diff --git a/content/docs/en/powered-ai/index.mdx b/content/docs/en/powered-ai/index.mdx index 30fe36dc2..ab8b9709f 100644 --- a/content/docs/en/powered-ai/index.mdx +++ b/content/docs/en/powered-ai/index.mdx @@ -31,7 +31,7 @@ SleakOps embeds AI directly into your infrastructure workflow. Every capability

Dockertron

-

Go from repository to a fully deployed application without writing a single config file. AI generates everything for you.

+

Go from repository to deployable infrastructure without writing a single config file. AI generates the setup — you review and create each resource with a click.

Learn more diff --git a/content/docs/en/project/access_config.mdx b/content/docs/en/project/access_config.mdx index a2bfadd93..f689b7b05 100644 --- a/content/docs/en/project/access_config.mdx +++ b/content/docs/en/project/access_config.mdx @@ -17,6 +17,10 @@ The Access Configuration allows you to extend your project's permissions by gran 3. Configure external dependencies and extra policies as needed 4. Click **Apply changes** to save your configuration +:::info +Applying changes requires the project to be in **Created** or **Error** state. While the change is applied, the project shows **Updating**. +::: + diff --git a/content/docs/en/project/build_resources.mdx b/content/docs/en/project/build_resources.mdx index 38cda0667..b57f87cb5 100644 --- a/content/docs/en/project/build_resources.mdx +++ b/content/docs/en/project/build_resources.mdx @@ -22,7 +22,7 @@ The Deploy Build Resources configuration allows you to specify the CPU and memor Access the Deploy Build Resources settings: 1. Navigate to **Project** → **Settings** -2. Select **Deploy Build Resources** from the settings menu +2. Select **Deploy and Build Resources** from the settings menu 3. Configure the resource values according to your project's requirements 4. Click **Save** to apply the changes @@ -80,7 +80,7 @@ This is a common issue when dealing with: If you're experiencing build or deployment failures due to resource constraints, you can increase the allocated resources: 1. Navigate to **Project** → **Settings** in the SleakOps interface -2. Select **Deploy Build Resources** from the settings menu +2. Select **Deploy and Build Resources** from the settings menu 3. Increase the values for the resource that's causing issues: - **Build Request CPU**: Increase if builds are slow or CPU-throttled - **Build Request Memory**: Increase if builds fail with OOMKilled errors diff --git a/content/docs/en/project/chart/chart_dependencies.mdx b/content/docs/en/project/chart/chart_dependencies.mdx index 28d662c4d..04190eb87 100644 --- a/content/docs/en/project/chart/chart_dependencies.mdx +++ b/content/docs/en/project/chart/chart_dependencies.mdx @@ -33,6 +33,7 @@ To add a new Chart Dependency, click the **Create** button in the Chart Configur 1. **Search and Select**: Use the first two fields to search for the chart name and select your desired version 2. **Configure Values**: Modify the values section below to customize the deployment 3. **Set Tolerations**: **Critical** - Update all `tolerations` fields in the chart values to target your NodePool +4. **Deploy**: leave **Deploy?** on to deploy the change immediately, or turn it off to save it as a pending change +Saving changes redeploys the Project immediately by default. Turn off the **Deploy?** toggle before saving to hold the change instead of deploying it right away. + ## Default Values SleakOps automatically applies default values to its Charts. You can view these values by clicking the designated area: @@ -93,6 +95,6 @@ Values that apply across the entire Project:
### Can I modify existing Kubernetes Service templates? - No, modifying SleakOps built-in templates is not currently supported. We are - working on enabling modifications to built-in templates in future releases. + No, modifying SleakOps' built-in templates isn't supported. Use [**Extra + Templates**](/docs/project/chart/extra_templates) to add resources alongside them instead.
diff --git a/content/docs/en/project/configure_your_dockerfile.mdx b/content/docs/en/project/configure_your_dockerfile.mdx index 5a8c4314c..22e2c6850 100644 --- a/content/docs/en/project/configure_your_dockerfile.mdx +++ b/content/docs/en/project/configure_your_dockerfile.mdx @@ -50,7 +50,7 @@ Docker build arguments are variables that are passed during the Docker build pro ### How do I update the Dockerfile path and arguments? -You can add the by following the steps below. +You can add or update them by following the steps below.
## Set up your Dockerfile @@ -65,13 +65,13 @@ You can add the by following the steps below. 1. **Complete the Dockerfile Path:** To enable SleakOps to search for the needed arguments, specify the Dockerfile Path and save the changes. SleakOps will then analyze your Dockerfile and render the required build arguments for you to provide. -| **Dockerfile Path** | The Dockerfile is a critical component used to build your project into a container. The Dockerfile Path field requires the relative file path to your Dockerfile within the repository (e.g., /Dockerfile, /src/Dockerfile, or /app/Dockerfile). This file contains the instructions needed to create the container image, which SleakOps will build and later use for deployments. | +| **Dockerfile Path** | The Dockerfile is a critical component used to build your project into a container. The Dockerfile Path field requires the relative file path to your Dockerfile within the repository (e.g., ./Dockerfile, ./src/Dockerfile, or ./app/Dockerfile). If your repository integration is GitLab, omit the leading ./ (e.g., Dockerfile). This file contains the instructions needed to create the container image, which SleakOps will build and later use for deployments. | | --- | --- | 2. **Add Arguments Before Saving:** If you already know the required arguments, you can enter them before saving. This allows you to provide necessary values upfront rather than waiting for SleakOps to analyze the Dockerfile. :::tip - If you choose to add the argument using the text option: Each argument should be added on a new line, separated by an equal sign (`=`), with no extra spaces. + If you choose to add the arguments using the **Textmode** option: add each argument on its own line in `KEY=VALUE` format (spaces around the equal sign are ignored). For multiline values, such as private keys, wrap the value in double quotes. ARGUMENT_NAME = VALUE ARGUMENT_TWO = VALUE diff --git a/content/docs/en/project/dependency/aurora-mysql-aws.mdx b/content/docs/en/project/dependency/aurora-mysql-aws.mdx index 8cfd4f611..8d379ee6e 100644 --- a/content/docs/en/project/dependency/aurora-mysql-aws.mdx +++ b/content/docs/en/project/dependency/aurora-mysql-aws.mdx @@ -142,9 +142,12 @@ Here the parameters that SleakOps allows you to customize during the creation: | **Maximum Aurora Capacity** | *(Serverless only)* Maximum Aurora Capacity Units (1-256). Each unit ≈ 2GB RAM. | | **Create a RDS from a snapshot** | Mark this if restoring from a database snapshot. | | **Snapshot Identifier** | *(Required if restoring from snapshot)* RDS snapshot identifier to restore from. | +| **Restore From Point In Time** | Create the cluster restored to a specific moment (or the latest restorable point) of a source database, instead of starting empty. Mutually exclusive with restoring from a snapshot. | | **Backup Retention Period** | Number of days (1-35) for which automatic backups are kept. | | **Backup Window** | Period for automated backups in HH:MM-HH:MM format (UTC). | -| **Read Replicas** | Configuration for database read replicas. Each replica requires a name and publicly accessible setting. | +| **Read Replicas** | Configuration for database read replicas. Each replica requires a name and publicly accessible setting; replicas can be added, edited, or removed later from the Edit form too. | +| **Parameter Group Mode** | Leave the engine default, define custom engine parameters managed by SleakOps, or attach an existing cluster parameter group by name. | +| **Deletion Protection** | Block accidental deletion — turn it on from the Edit form after creation; while enabled, the dependency can't be deleted until you turn it off. | ### 3. Customize your variable's name for your Aurora MySQL cluster. diff --git a/content/docs/en/project/dependency/aurora-postgresql-aws.mdx b/content/docs/en/project/dependency/aurora-postgresql-aws.mdx index 6686c1750..8bce6c62c 100644 --- a/content/docs/en/project/dependency/aurora-postgresql-aws.mdx +++ b/content/docs/en/project/dependency/aurora-postgresql-aws.mdx @@ -103,6 +103,13 @@ Aurora PostgreSQL offers several advantages: - **Compatibility**: PostgreSQL-compatible with minimal code changes +
+ +### Can SleakOps restore a dump for me automatically? + +Yes. From the dependency's **Actions** menu, run **Restore Database**: point it to a dump file in S3 and pick the target database (any PostgreSQL or Aurora PostgreSQL dependency in the same Project-Environment that's in the `created` state, including a different one from the one you opened the menu on). SleakOps runs the restore as a Job and you follow its progress from *Jobs*. +
+ :::info AWS documentation: [Amazon Aurora PostgreSQL Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraPostgreSQL.html) ::: @@ -138,7 +145,11 @@ Here the parameters that SleakOps allows you to customize during the creation: | **Maximum Aurora Capacity** | Maximum Aurora Capacity Units (1-256) for the serverless cluster. Each unit is approximately equal to 2GB of RAM. This prevents the cluster from scaling beyond your budget limits while allowing performance optimization. | | **Backup Retention Period** | Number of days (1-35) for which automatic backups are kept. Aurora PostgreSQL automatically backs up your database and stores the backups in Amazon S3. Longer retention periods provide more recovery options but increase storage costs. | | **Backup Window** | Time period for automated backups in HH:MM-HH:MM format (UTC). Choose a time when your database activity is typically low to minimize performance impact. Aurora performs backups during this window without affecting your application. | -| **Read Replicas** | Configuration for database read replicas to improve read performance and provide additional availability. Each replica requires a unique name and can be configured as publicly accessible or private. Read replicas help distribute read traffic and provide failover capabilities. | +| **Read Replicas** | Configuration for database read replicas to improve read performance and provide additional availability. Each replica requires a unique name and can be configured as publicly accessible or private. Read replicas help distribute read traffic and provide failover capabilities, and can be added, edited, or removed later from the Edit form. | +| **Create Aurora cluster from a snapshot** | Restore the new cluster from an existing snapshot identifier instead of starting empty. | +| **Restore From Point In Time** | Create the cluster restored to a specific moment (or the latest restorable point) of a source database, instead of starting empty. Mutually exclusive with restoring from a snapshot. | +| **Parameter Group Mode** | Leave the engine default, define custom engine parameters managed by SleakOps, or attach an existing cluster parameter group by name. | +| **Deletion Protection** | Block accidental deletion — turn it on from the Edit form after creation; while enabled, the dependency can't be deleted until you turn it off. | ### 3. Customize your variable's name for your Aurora PostgreSQL cluster. diff --git a/content/docs/en/project/dependency/faqs.mdx b/content/docs/en/project/dependency/faqs.mdx index 1410f0262..642913b8e 100644 --- a/content/docs/en/project/dependency/faqs.mdx +++ b/content/docs/en/project/dependency/faqs.mdx @@ -47,3 +47,23 @@ It's simply a default configuration template. Selecting one or the other pre-fil Yes. Just edit the dependency after creation and adjust the settings (instance size, backups, Multi AZ, etc.) to match your production needs. No need to create a new one or migrate data manually. + +
+ + +### **My dependency shows "Confirm changes" / is "Awaiting Approval" — what does that mean?** + + +When an edit is detected as potentially destructive (for example, a change that would replace or delete an underlying AWS resource) or it upgrades the engine to a major version, SleakOps holds it for your confirmation instead of applying it right away. Open the dependency and either **Apply Changes** (proceed with the edit) or **Revert Changes** (discard it and keep the previous configuration — nothing is applied to the infrastructure). + +
+ +
+ + +### **Can I copy a dependency to another Project or Account?** + + +Yes, use **Clone** from the dependency's actions menu. It pre-fills a new dependency with the same configuration and lets you pick the destination Project-Environment, including one in a different Account. + +
diff --git a/content/docs/en/project/dependency/index.mdx b/content/docs/en/project/dependency/index.mdx index 8b8e20cc3..347e9bafb 100644 --- a/content/docs/en/project/dependency/index.mdx +++ b/content/docs/en/project/dependency/index.mdx @@ -20,7 +20,9 @@ A Dependency in the context of SleakOps refers to any external infrastructure or Here’s the updated list of dependencies included in SleakOps: 1. **Databases** - - **Amazon RDS**: Managed relational databases such as MySQL, PostgreSQL, and others. + - **Amazon RDS**: Managed relational databases — PostgreSQL, MySQL, MariaDB, and Oracle. + - **Amazon Aurora**: PostgreSQL- and MySQL-compatible clusters with automatic storage scaling. + - **Amazon DocumentDB**: MongoDB-compatible managed document database. 2. **Caching Services** - **Amazon ElastiCache for Redis**: In-memory data store for caching frequently accessed data. - **Amazon ElastiCache for Memcached**: In-memory caching service for improved performance and reduced database load. @@ -31,6 +33,7 @@ Here’s the updated list of dependencies included in SleakOps: 5. **Message Queuing** - **Amazon SQS**: Fully managed message queuing service that enables you to decouple components and enhance application scalability and reliability. - **RabbitMQ**: A widely used open-source message broker that facilitates reliable messaging and integration between application components. + - **Amazon MSK**: Managed Apache Kafka for streaming data pipelines. These dependencies integrate seamlessly with SleakOps, providing a comprehensive suite of AWS and open-source services to enhance your application's functionality, performance, and scalability. @@ -60,7 +63,9 @@ These dependencies integrate seamlessly with SleakOps, providing a comprehensive it and all what is related to it will stop working. To solve that SleakOps create a Deployment in PENDING_APPROVAL status, that must be run manually ASAP to stop the downtime. In case you delete a database, SleakOps will generate a - final snapshot before its deletion. + final snapshot before its deletion. If the dependency has *Deletion + Protection* enabled, disable it first — SleakOps blocks the delete until you + do. ## Lets add a Dependency for your Project @@ -82,7 +87,7 @@ Into the _Left Pane_, access _Dependencies_ option and then, at the top right co /> -### 3. Select the kind of dependency you want to create +### 3. Enter the basic details In Sleakops all dependecies start with the same step. So, complete these attributes and click _Next_ to continue. @@ -102,7 +107,12 @@ To move forward choose between the following guides. [S3 Bucket](/docs/project/dependency/s3bucket-aws). [MySQL](/docs/project/dependency/mysql-aws). [PostgreSQL](/docs/project/dependency/postgresql-aws). +[MariaDB](/docs/project/dependency/mariadb-aws). +[Oracle](/docs/project/dependency/oracle-aws). +[Aurora MySQL](/docs/project/dependency/aurora-mysql-aws). +[Aurora PostgreSQL](/docs/project/dependency/aurora-postgresql-aws). [Redis](/docs/project/dependency/redis-aws). [Memcached](/docs/project/dependency/memcached-aws). [OpenSearch](/docs/project/dependency/opensearch-aws). [SQS](/docs/project/dependency/sqs-aws). +[MSK](/docs/project/dependency/msk-aws). diff --git a/content/docs/en/project/dependency/mariadb-aws.mdx b/content/docs/en/project/dependency/mariadb-aws.mdx index 972183f1b..1f9905a11 100644 --- a/content/docs/en/project/dependency/mariadb-aws.mdx +++ b/content/docs/en/project/dependency/mariadb-aws.mdx @@ -130,6 +130,8 @@ Here the parameters that SleakOps allows you to customize during the creation: | **Database Master Password** | Password for the master user. Required if auto-generate is disabled. Must be at least 8 characters long and cannot contain @, ', ", or / characters. | | **Create a RDS from a snapshot** | Mark this if restoring from a database snapshot. When enabled, you'll need to provide the snapshot identifier and some fields become read-only. | | **Snapshot Identifier** | *(Required if restoring from snapshot)* RDS snapshot identifier to restore from. This allows you to restore your database from a previous backup point. | +| **Restore From Point In Time** | Create the database restored to a specific moment (or the latest restorable point) of a source database, instead of starting empty. Mutually exclusive with restoring from a snapshot. | +| **Parameter Group Mode** | Leave the engine default, define custom engine parameters managed by SleakOps, or attach an existing parameter group by name. | | **Database Instance Class** | Define the instance class that specifies the hardware configuration for your MariaDB database. Choose from t4g/t3 (burstable performance) or m7i/m8g (memory optimized) instance types. This controls CPU, memory, and network performance. | | **Database Storage** | Specify the amount of storage allocated for the database in GiB (20-6144 GB). MariaDB uses General Purpose SSD storage by default. This is the initial storage allocation for your database. | | **Storage Autoscaling Enabled** | Enable automatic storage scaling for the RDS instance. When enabled, AWS will automatically increase storage when needed, up to the maximum allocated storage limit. | @@ -138,7 +140,8 @@ Here the parameters that SleakOps allows you to customize during the creation: | **Automated Backup** | Enable automatic backups for the RDS instance. When enabled, MariaDB will perform daily snapshots and transaction log backups, providing point-in-time recovery capabilities. | | **Backup Retention Period** | *(Required if automated backup is enabled)* Number of days (1-35) for which automatic backups are kept. Longer retention periods provide more recovery options but increase storage costs. | | **Backup Window** | *(Required if automated backup is enabled)* Time period for automated backups in HH:MM-HH:MM format (UTC). Choose a time when your database activity is typically low to minimize performance impact. | -| **Read Replicas** | *(Required if automated backup is enabled)* Configuration for database read replicas to improve read performance and provide additional availability. Each replica requires a name, instance class, and publicly accessible setting. | +| **Read Replicas** | *(Required if automated backup is enabled)* Configuration for database read replicas to improve read performance and provide additional availability. Each replica requires a name, instance class, and publicly accessible setting. Replicas can be added, edited, or removed later from the Edit form too. | +| **Deletion Protection** | Block accidental deletion — while enabled, the dependency can't be deleted until you turn it off. | ### 3. Customize your variable's name for your MariaDB database. diff --git a/content/docs/en/project/dependency/memcached-aws.mdx b/content/docs/en/project/dependency/memcached-aws.mdx index 60a70301e..9d904b93d 100644 --- a/content/docs/en/project/dependency/memcached-aws.mdx +++ b/content/docs/en/project/dependency/memcached-aws.mdx @@ -18,7 +18,7 @@ SleakOps integrates Amazon ElastiCache with Memcached, a fully managed, in-memor - **Performance**: Excellent for high-speed, distributed caching in read-heavy applications. :::info -For more information on Memcached and its capabilities, you can refer to the official [AWS Redis documentation. ](https://aws.amazon.com/elasticache/memcached/). +For more information on Memcached and its capabilities, you can refer to the official [AWS Memcached documentation. ](https://aws.amazon.com/elasticache/memcached/). ::: ## FAQs @@ -73,7 +73,7 @@ Cached data in Memcached is volatile, meaning it will be lost if a node fails or ### 1. Add AWS Memcached as a Dependency To integrate Memcached with SleakOps: 1. In the SleakOps console, go to the "Dependencies" section -2. Choose "AWS Redis" from the list of available dependency types. +2. Choose "Memcached" from the list of available dependency types. For more detail see [Dependencies: Integrating Databases, Caching, and Messaging Services](/docs/project/dependency). ### 2. Set up your Memcached database. @@ -89,9 +89,9 @@ When adding Memcached as a dependency in SleakOps, you need to configure sever | **Attribute** | **Description** | | --- | --- | -| **Node Type** | Instance class that determines the performance and memory capacity of the Redis instance. Examples: `cache.t3.micro`, `cache.m5.large`, `cache.r6g.large` | -| **Nodes Quantity** | Defines the number of Memcached nodes for horizontal scaling. Adding more nodes increases scalability. Example: 1 or more | -| **Port** | The communication port used by Redis to interact with your application. Default: `11121` (can be customized) | +| **Node Type** | Instance class that determines the performance and memory capacity of the Memcached cluster. Examples: `cache.t3.micro`, `cache.m5.large`, `cache.r5.large` | +| **Nodes Quantity** | Defines the number of Memcached nodes for horizontal scaling. Adding more nodes increases scalability. Example: 1 or more. Can be scaled up or down later from the Edit form. | +| **Port** | The communication port used by Memcached to interact with your application. Default: `11211` (can be customized at creation; cannot be changed afterwards) | ### 3. Customize your variable names for your Memcached. diff --git a/content/docs/en/project/dependency/msk-aws.mdx b/content/docs/en/project/dependency/msk-aws.mdx index e852fbd21..9a4ff18c8 100644 --- a/content/docs/en/project/dependency/msk-aws.mdx +++ b/content/docs/en/project/dependency/msk-aws.mdx @@ -130,10 +130,11 @@ Here the parameters that SleakOps allows you to customize during the creation: | **Attribute** | **Description** | | --- | --- | | **Deployment Mode** | Choose between **Provisioned** (fixed capacity, full control over configuration) or **Serverless** (auto-scaling, pay-per-use for variable workloads). Provisioned mode is ideal for consistent workloads with specific performance requirements, while Serverless is perfect for development and variable traffic patterns. | -| **Kafka Version** | *(Required for Provisioned mode)* Select the specific version of Apache Kafka for your MSK cluster. Choose from versions 2.8.1, 3.2.0, 3.3.2, 3.4.0, or 3.5.1. Each version includes specific Kafka features, performance improvements, and security updates. | +| **Kafka Version** | *(Required for Provisioned mode)* Select the specific version of Apache Kafka for your MSK cluster. Choose from versions 3.6.0, 3.7.x, 3.8.x, or 3.9.x. Each version includes specific Kafka features, performance improvements, and security updates. | | **Instance Type** | *(Required for Provisioned mode)* Define the instance type that specifies the hardware configuration for your Kafka brokers. Choose from t3 (burstable performance) or m5 (general purpose) instance types. This controls CPU, memory, and network performance for your streaming workloads. | | **Broker Nodes** | *(Required for Provisioned mode)* Number of broker nodes in your MSK cluster (2-15 nodes). Use 2 nodes for development environments. For production, use 3 or more nodes (must be multiple of 3) to ensure high availability and fault tolerance. More nodes provide better performance and availability. | -| **Storage Size (GB)** | *(Required for Provisioned mode)* Storage size in GB per broker node (1-16384 GB). This determines how much data each broker can store locally. Consider your data retention requirements and throughput needs when setting this value. | +| **Storage Size (GB)** | *(Required for Provisioned mode)* Storage size in GB per broker node (1-16384 GB). This determines how much data each broker can store locally. Consider your data retention requirements and throughput needs when setting this value. Can only be increased later. | +| **Client Authentication** | *(Provisioned mode only; defaults to `unauthorized`)* How clients authenticate to the cluster: `unauthorized` (TLS encryption only), `iam` (SASL/IAM using AWS IAM roles), or `scram` (SASL/SCRAM-SHA-512 with a username and password). | ### 3. Customize your variable's name for your MSK cluster. diff --git a/content/docs/en/project/dependency/mysql-aws.mdx b/content/docs/en/project/dependency/mysql-aws.mdx index 9399ae845..049f8e810 100644 --- a/content/docs/en/project/dependency/mysql-aws.mdx +++ b/content/docs/en/project/dependency/mysql-aws.mdx @@ -30,14 +30,14 @@ Multi-AZ (Availability Zone) deployment ensures high availability and failover s ### Can I change the MySQL version after the database is deployed? -No, the database engine version cannot be changed after deployment. You would need to create a new MySQL instance with the desired version and migrate your data. Or change it manually into the AWS Console. +Yes, edit the dependency and pick a new **Database Engine Version**. Upgrading to a new major version is treated as a potentially destructive change: SleakOps holds it under "Awaiting Approval" for you to confirm before it's applied.
### What happens if I need more storage for my MySQL database? -You can adjust the storage size when configuring your database. If you need more storage after deployment, you can scale modifying the settings in AWS as at the moment SleakOps does not support it. +You can adjust the storage size when configuring your database, and increase it later from the Edit form. You can also enable **Storage Autoscaling** so AWS grows the storage automatically up to a maximum you set.
@@ -130,7 +130,7 @@ In SleakOps, when creating a read replica for your RDS database, you will need t ### Can I delete a replica? -At the moment, the only way is to delete the dependency. +Yes, edit the dependency and remove it from the **Definition of RDS Read Replicas** list.
:::info @@ -158,21 +158,22 @@ Here the parameters that SleakOps allows you to customize during the creation: | **Attribute** | **Description** | | --- | --- | -| **Database Engine Version** | Select the specific version of the MySQL database engine you wish to use. This ensures compatibility with your application requirements. Example: `MySQL 8.0.2`, `MySQL 5.7.1` | +| **Database Engine Version** | Select the specific version of the MySQL database engine you wish to use. This ensures compatibility with your application requirements. | | **Database Instance Class** | Define the instance class that specifies the hardware configuration for your MySQL database. This controls CPU, memory, and network performance. Example: `db.m6g.large`, `db.t3.medium`. See [AWS detail](https://aws.amazon.com/es/rds/instance-types/). | -| **Database Storage** | Specify the amount of storage allocated for the database. Example: 100 GB, 500 GB. | +| **Database Storage** | Specify the amount of storage allocated for the database, in GiB. | +| **Storage Autoscaling Enabled** | Let AWS automatically increase storage as it fills up, up to a **Maximum Allocated Storage** you set. | | **Username** | Provide the master username for the MySQL database. This is the main user with administrative privileges. Example: admin, root. | -| **Password** | Password for the master user to access the database. | +| **Password** | Password for the master user to access the database, or auto-generate one. | | **Multi-Availability Zone** | Enable or disable Multi-AZ deployment. This ensures high availability and failover support by replicating the database across multiple availability zones. Recommended for production environments. | | **Automated Backup** | Configure automated backups for the MySQL database. This ensures data protection by enabling daily snapshots and transaction log backups. Set up the _Backup Retention Period_ and the _Backup Window_. Recommended for production environments. | | **Backup Retention Period** | Set the number of days to retain automated backups. | | **Backup Window** | Period of time while the backup will be done. | +| **Parameter Group Mode** | Leave the engine default, define custom engine parameters managed by SleakOps, or attach an existing parameter group by name. | +| **Restore From Point In Time** | Create the database restored to a specific moment (or the latest restorable point) of a source database, instead of starting empty. Mutually exclusive with restoring from a snapshot. | +| **Create a RDS from a snapshot** | Restore the new database from an existing RDS snapshot identifier instead of starting empty. | +| **Deletion Protection** | Block accidental deletion — while enabled, the dependency can't be deleted until you turn it off. | -:::warning -SleakOps allow the creation of replicas only during the creation of the dependency. -::: - -After that basic data, you need to decide if a replica will be created. To do that: +After that basic data, you need to decide if a replica will be created. Replicas can also be added, edited, or removed later from the Edit form. To do that: 1. Into the form, look for the section **Definition of RDS Read Replicas** and click on + _Add Item_. 2. Complete the following data: diff --git a/content/docs/en/project/dependency/opensearch-aws.mdx b/content/docs/en/project/dependency/opensearch-aws.mdx index 21bf24319..ebee89c81 100644 --- a/content/docs/en/project/dependency/opensearch-aws.mdx +++ b/content/docs/en/project/dependency/opensearch-aws.mdx @@ -40,7 +40,7 @@ For production environments, SleakOps recommends using 3 dedicated master nodes ### 1. Add AWS OpenSearch as a Dependency To integrate OpenSearch with SleakOps: 1. In the SleakOps console, go to the "Dependencies" section -2. Choose "SQS" from the list of available dependency types. +2. Choose "OpenSearch" from the list of available dependency types. For more detail see [Dependencies: Integrating Databases, Caching, and Messaging Services](/docs/project/dependency). ### 2. Set up your OpenSearch. @@ -55,16 +55,15 @@ When adding OpenSearch as a dependency in SleakOps, you need to configure severa | **Attribute** | **Description** | | --- | --- | -| **FIFO Queue** | Specifies the type of SQS queue. Where `Standard Queue` (for most use cases) or `FIFO Queue` (if message ordering is required)` | -| **FIFO Deduplication** | Only for FIFO Queues, in order to avoid duplicates. | -| **Message Retention Period** | Specifies the amount of time a message will be retained in the queue if it hasn't been consumed. | 1 minute to 14 days (Default: 4 days) | -| **Maximum Message Size** | The maximum size of a message that can be sent to the SQS queue. | Up to 256 KB (Default: 256 KB) | -| **Delivery Delay in Seconds** | The delay between the message being sent to SQS and it being visible in the queue. No delay by default. | 0 to 15 minutes (Default: 0 seconds) | -| **Receive Message Wait Time** | Determines how long a `ReceiveMessage` call waits if no messages are available in the queue. | 0 to 20 seconds (Default: 0 seconds) | -| **Visibility Timeout** | The duration that a message remains invisible after a receiving component reads it from the queue. | From 0 to 12 hours (Default: 30 seconds) | -| **Dead-Letter Queue (DLQ)** | Add a queue where messages that fail to be processed multiple times are sent for additional analysis. | Configure DLQ with max receive count | +| **Domain Name** | Name of the OpenSearch domain. | +| **Engine Version** | Version of OpenSearch to run on the domain. | +| **Number Of Availability Zones** | How many Availability Zones the domain spreads its data nodes across. | +| **Instance Type** | Instance type used for the data nodes. Determines CPU, memory, and network performance. | +| **Nodes Per Availability Zone** | Number of data nodes to run in each Availability Zone. | +| **EBS Storage Size Per Node** | Storage size per data node, in GiB (10-2048 GiB). | +| **Dedicated Master Enabled** | Adds dedicated master nodes that handle cluster management separately from data nodes, improving stability. Recommended for production. When enabled, set the **Dedicated Master Count** (3 or 5 — 3 recommended for production) and the **Dedicated Master Type**. | -### 3. Customize your variable names for your SQS. +### 3. Customize your variable names for your OpenSearch. As explained, when a dependency is created, SleakOps generates a vargroup to hold all the needed attributes. In this step you can change the name of the attributes in case it is needed. @@ -73,7 +72,7 @@ After this step, your dependency is created. sqs-create-outputs \ No newline at end of file diff --git a/content/docs/en/project/dependency/oracle-aws.mdx b/content/docs/en/project/dependency/oracle-aws.mdx index 287ac0ec8..020409ba5 100644 --- a/content/docs/en/project/dependency/oracle-aws.mdx +++ b/content/docs/en/project/dependency/oracle-aws.mdx @@ -39,18 +39,28 @@ SleakOps facilitates the integration of Oracle databases through Amazon RDS (Rel ### Can I change the Oracle version after the database is deployed? - No, the database engine version cannot be changed after deployment. You would - need to create a new Oracle instance with the desired version and migrate your - data. Or change it manually into the AWS Console. + Yes, edit the dependency and pick a new **Database Engine Version**. Upgrading + to a new major version is treated as a potentially destructive change: + SleakOps holds it under "Awaiting Approval" for you to confirm before it's + applied.
### What happens if I need more storage for my Oracle database? - You can adjust the storage size when configuring your database. If you need - more storage after deployment, you can scale modifying the settings in AWS as - at the moment SleakOps does not support it. + You can adjust the storage size when configuring your database, and increase + it later from the Edit form. Unlike the other RDS engines, Oracle does not + offer automatic storage autoscaling. +
+ +
+ + ### Can I create an Oracle database from a snapshot? + + Not yet — unlike the other RDS engines, Oracle doesn't support restoring from + a snapshot. Restoring to a point in time (PITR) from a source database is + supported.
@@ -137,15 +147,19 @@ Here the parameters that SleakOps allows you to customize during the creation: | **Attribute** | **Description** | | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Database Engine Version** | Select the specific version of the Oracle database engine you wish to use. This ensures compatibility with your application requirements. Example: `19.0.0.0.ru-2024-01.rur-2024-01.r1` | +| **Database Name** | Name of the default database created inside the instance. Cannot be `db` or `database`. | +| **Database Engine Version** | Select the specific version of the Oracle database engine you wish to use. This ensures compatibility with your application requirements. | | **Database Instance Class** | Define the instance class that specifies the hardware configuration for your Oracle database. This controls CPU, memory, and network performance. Example: `db.m6g.large`, `db.t3.medium`. See [AWS detail](https://aws.amazon.com/es/rds/instance-types/). | -| **Database Storage** | Specify the amount of storage allocated for the database. Example: 100 GB, 500 GB. | +| **Database Storage** | Specify the amount of storage allocated for the database, in GiB. | | **Username** | Provide the master username for the Oracle database. This is the main user with administrative privileges. Example: admin, root. | -| **Password** | Password for the master user to access the database. | +| **Password** | Password for the master user to access the database, or auto-generate one. | | **Multi-Availability Zone** | Enable or disable Multi-AZ deployment. This ensures high availability and failover support by replicating the database across multiple availability zones. Recommended for production environments. | | **Automated Backup** | Configure automated backups for the Oracle database. This ensures data protection by enabling daily snapshots and transaction log backups. Set up the _Backup Retention Period_ and the _Backup Window_. Recommended for production environments. | | **Backup Retention Period** | Set the number of days to retain automated backups. | | **Backup Window** | Period of time while the backup will be done. | +| **Restore From Point In Time** | Create the database restored to a specific moment (or the latest restorable point) of a source database, instead of starting empty. | +| **Parameter Group Mode** | Leave the engine default, define custom engine parameters managed by SleakOps, or attach an existing parameter group by name. | +| **Deletion Protection** | Block accidental deletion — while enabled, the dependency can't be deleted until you turn it off. | ### 3. Customize your variable's name for your Oracle data base. diff --git a/content/docs/en/project/dependency/postgresql-aws.mdx b/content/docs/en/project/dependency/postgresql-aws.mdx index 90eb15559..e0bace7d2 100644 --- a/content/docs/en/project/dependency/postgresql-aws.mdx +++ b/content/docs/en/project/dependency/postgresql-aws.mdx @@ -5,7 +5,7 @@ import Zoom from "react-medium-image-zoom"; import "react-medium-image-zoom/dist/styles.css"; import { FiExternalLink } from "react-icons/fi"; -# AWS PosgreSQL +# AWS PostgreSQL SleakOps offers seamless integration with Amazon RDS for PostgreSQL, a fully managed relational database service. PostgreSQL is known for its advanced features, scalability, and robust performance, making it a preferred choice for complex applications and data-intensive operations. By integrating PostgreSQL through SleakOps, you can efficiently manage your database deployments and leverage the power of AWS’s managed database service. @@ -29,7 +29,7 @@ Multi-AZ (Availability Zone) deployment ensures high availability and failover s ### Can I change the PostgreSQL version after the database is deployed? -No, the database engine version cannot be changed after deployment. You would need to create a new PostgreSQL instance with the desired version and migrate your data. Or change it manually into the AWS Console. +Yes, edit the dependency and pick a new **Database Engine Version**. Upgrading to a new major version is treated as a potentially destructive change: SleakOps holds it under "Awaiting Approval" for you to confirm before it's applied.
@@ -129,7 +129,14 @@ In SleakOps, when creating a read replica for your RDS database, you will need t ### Can I delete a replica? -At the moment, the only way is to delete the dependency. +Yes, edit the dependency and remove it from the **Definition of RDS Read Replicas** list. +
+ +
+ +### Can SleakOps restore a dump for me automatically? + +Yes. From the dependency's **Actions** menu, run **Restore Database**: point it to a dump file in S3 and pick the target database (any PostgreSQL or Aurora PostgreSQL dependency in the same Project-Environment that's in the `created` state, including a different one from the one you opened the menu on). SleakOps runs the restore as a Job and you follow its progress from *Jobs*.
:::info @@ -157,21 +164,23 @@ Here the parameters that SleakOps allows you to customize during the creation: | **Attribute** | **Description** | | --- | --- | -| **Database Engine Version** | Select the specific version of the MySQPostgreSQLL database engine you wish to use. This ensures compatibility with your application requirements. Example: `PostgreSQL 14.9`, `PostgreSQL 16.5` | +| **Database Name** | Name of the default database created inside the instance. Cannot be `db` or `database`. | +| **Database Engine Version** | Select the specific version of the PostgreSQL database engine you wish to use. This ensures compatibility with your application requirements. Example: `PostgreSQL 16`, `PostgreSQL 18` | | **Database Instance Class** | Define the instance class that specifies the hardware configuration for your PostgreSQL database. This controls CPU, memory, and network performance. Example: `db.m6g.large`, `db.t3.medium`. See [AWS detail](https://aws.amazon.com/es/rds/instance-types/). | -| **Database Storage** | Specify the amount of storage allocated for the database. Example: 100 GB, 500 GB. | +| **Database Storage** | Specify the amount of storage allocated for the database, in GiB. | +| **Storage Autoscaling Enabled** | Let AWS automatically increase storage as it fills up, up to a **Maximum Allocated Storage** you set. | | **Username** | Provide the master username for the PostgreSQL database. This is the main user with administrative privileges. Example: admin, root. | -| **Password** | Password for the master user to access the database. | +| **Password** | Password for the master user to access the database, or auto-generate one. | | **Multi-Availability Zone** | Enable or disable Multi-AZ deployment. This ensures high availability and failover support by replicating the database across multiple availability zones. Recommended for production environments. | | **Automated Backup** | Configure automated backups for the PostgreSQL database. This ensures data protection by enabling daily snapshots and transaction log backups. Set up the _Backup Retention Period_ and the _Backup Window_. Recommended for production environments. | | **Backup Retention Period** | Set the number of days to retain automated backups. | | **Backup Window** | Period of time while the backup will be done. | +| **Parameter Group Mode** | Leave the engine default, define custom engine parameters managed by SleakOps, or attach an existing parameter group by name. | +| **Restore From Point In Time** | Create the database restored to a specific moment (or the latest restorable point) of a source database, instead of starting empty. Mutually exclusive with restoring from a snapshot. | +| **Create a RDS from a snapshot** | Restore the new database from an existing RDS snapshot identifier instead of starting empty. | +| **Deletion Protection** | Block accidental deletion — while enabled, the dependency can't be deleted until you turn it off. | -:::warning -SleakOps allow the creation of replicas only during the creation of the dependency. -::: - -After that basic data, you need to decide if a replica will be created. To do that: +After that basic data, you need to decide if a replica will be created. Replicas can also be added, edited, or removed later from the Edit form. To do that: 1. Into the form, look for the section **Definition of RDS Read Replicas** and click on + _Add Item_. 2. Complete the following data: diff --git a/content/docs/en/project/dependency/redis-aws.mdx b/content/docs/en/project/dependency/redis-aws.mdx index edad790f3..e15061ea9 100644 --- a/content/docs/en/project/dependency/redis-aws.mdx +++ b/content/docs/en/project/dependency/redis-aws.mdx @@ -67,8 +67,9 @@ Here the parameters that SleakOps allows you to customize during the creation: | **Attribute** | **Description** | | --- | --- | -| **Node Type** | Instance class that determines the performance and memory capacity of the Redis instance. Examples: `cache.t3.micro`, `cache.m5.large`, `cache.r6g.large` | +| **Node Type** | Instance class that determines the performance and memory capacity of the Redis instance. Examples: `cache.t4g.micro`, `cache.m5.large`, `cache.r6g.large` | | **Port** | The communication port used by Redis to interact with your application. Default: `6379` (can be customized) | +| **Cluster Mode** | Enable horizontal sharding using an AWS ElastiCache replication group instead of a single node. When enabled, set the **Number of Shards** and the **Replicas per Shard** (`0` for no automatic failover, `1+` for high availability). | ### 3. Customize your variable names for your Redis. diff --git a/content/docs/en/project/dependency/s3bucket-aws.mdx b/content/docs/en/project/dependency/s3bucket-aws.mdx index 85cb0e7a9..a7941569b 100644 --- a/content/docs/en/project/dependency/s3bucket-aws.mdx +++ b/content/docs/en/project/dependency/s3bucket-aws.mdx @@ -99,9 +99,13 @@ When adding an S3 bucket as a dependency in SleakOps, you will be required to co | **Attribute** | **Description** | | --- | --- | +| **S3 Bucket Name** | Global bucket name. It's checked live against S3 for availability as you type; names containing dots are rejected by this check. | | **S3 Access Control List (ACL)** | Specifies the level of access for the S3 bucket and its contents. Options: `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `log-delivery-write` | +| **Enable Versioning** | Keep every previous version of an object. Can't be changed after the bucket is created. | +| **Enable KMS Encryption** | Encrypt objects server-side with KMS, using the AWS-managed key (`aws/s3`). | +| **Enable Intelligent-Tiering** | Automatically move objects to cheaper storage classes based on access patterns. Set the **Archive Tier Days** and **Deep Archive Tier Days** — how long before objects move to each tier. | | **Enable CloudFront** | Allows you to enable Amazon CloudFront, a CDN for delivering S3 bucket content globally. | -| **Alias** | The alias for the S3 bucket or CloudFront distribution (e.g., `cdn.mydomain.com`). | +| **Alias** | The alias for the S3 bucket or CloudFront distribution (e.g., `cdn.mydomain.com`). Only available when the account's provider region is `us-east-1`. | | **Price Class** | Defines the set of global CloudFront edge locations used to serve content. Options: `Use all edge locations (best performance)`, `Use North America`, `Europe`, `Asia`, `Middle East`, and `Africa`, `Use only North America and Europe`. Check [AWS Price Class ](https://aws.amazon.com/cloudfront/pricing/). | | **Custom Headers** | Custom headers that CloudFront includes in all requests sent to the S3 bucket. - Key: The header key, such as `X-Custom-Header`. - Value: The value you wish to assign to the header, like `MyCustomValue`. | | **Override** | Specify whether CloudFront should override existing headers in requests from the origin. | @@ -139,4 +143,15 @@ As explained, when a dependency is created, SleakOps generates a vargroup to hol In this step you can change the name of the attributes in case it is needed but SleakOps completes the values automatically. -After this step, your dependency is created. \ No newline at end of file +After this step, your dependency is created. + +## Importing existing data into your bucket + +Once the dependency is `created`, its **Actions** menu offers two ways to bring data from an existing bucket into it: + +| **Action** | **Description** | +| --- | --- | +| **Import Bucket** | Copies objects with `aws s3 sync` from a source bucket you specify. The source bucket's owner must first grant access to your project's service-account role — SleakOps gives you the exact bucket policy and a CloudFormation quick-create link to apply it. | +| **AWS DataSync** | Transfers data using AWS DataSync, better suited for large datasets. Requires a dedicated IAM role, which you create in your account through the CloudFormation quick-create link SleakOps provides. | + +Both actions run as a Job in your cluster and are followed from the *Jobs* section. \ No newline at end of file diff --git a/content/docs/en/project/dependency/sqs-aws.mdx b/content/docs/en/project/dependency/sqs-aws.mdx index 3c1a17904..a02e3035c 100644 --- a/content/docs/en/project/dependency/sqs-aws.mdx +++ b/content/docs/en/project/dependency/sqs-aws.mdx @@ -24,13 +24,6 @@ For further details on SQS and its benefits, you can refer to the [Amazon SQS De 2. A **FIFO Queue** ensures message ordering and exactly-once delivery. It's suitable for applications where message order is crucial. -
- -### What is Multi-AZ deployment and should I enable it? - -Multi-AZ (Availability Zone) deployment ensures high availability and failover support by replicating your database in another availability zone. It’s recommended for production environments to prevent downtime. Keep in mind that it increases costs. -
-
### What is a Dead-Letter Queue (DLQ), and when should I use it? @@ -66,16 +59,16 @@ Here the parameters that SleakOps allows you to customize during the creation: | **Attribute** | **Description** | | --- | --- | -| **Fifo Queue** | Select if the queue is standard or fifo. Read more on FAQs | -| **Fifo Deduplication** | Select if deduplication is activated. Read more on FAQs| -| **Message Delay Seconds** | Seconds of delivery delay to messages on queue. | -| **Message Max Size** | Bytes maximum limit per message | -| **Message Retention Seconds** |Seconds that a message is retained by SQS | -| **Receive WaitTime Seconds** | The time for which a ReceiveMessage call will wait for a message to arrive (long polling) before returning | -| **Visibility Timeout Seconds** | Seconds that a message is retained by SQS | +| **Fifo Queue** | Select if the queue is standard or fifo. Defaults to FIFO. Read more on FAQs | +| **Fifo Deduplication** | Only for FIFO queues, to avoid duplicate messages. | +| **Message Delay Seconds** | Seconds of delivery delay to messages on queue. Default: `0` seconds (no delay). | +| **Message Max Size** | Bytes maximum limit per message. Up to 256 KiB (default: 256 KiB). | +| **Message Retention Seconds** | Seconds that a message is retained by SQS if it isn't consumed. Default: `345600` seconds (4 days). | +| **Receive WaitTime Seconds** | The time for which a ReceiveMessage call will wait for a message to arrive (long polling) before returning. From 0 to 20 seconds (default: 10 seconds). | +| **Visibility Timeout Seconds** | The time a received message stays invisible to other consumers. From 0 to 43200 seconds / 12 hours (default: 60 seconds). | | **Dead Letter Queue** | Select if dead letter queue is enabled. Read more on FAQs | -By activating the **Dead Letter Queue** feature, you need to complete the same information for the second queue. +By activating the **Dead Letter Queue** feature, you need to complete the same information for the second queue, plus a **Maximum Receive Count** (0-99, default 10) — how many times a message is delivered before it's moved to the DLQ. ### 3. Customize your variable names for your SQS. diff --git a/content/docs/en/project/deployment/index.mdx b/content/docs/en/project/deployment/index.mdx index a917019f3..843a6cc5b 100644 --- a/content/docs/en/project/deployment/index.mdx +++ b/content/docs/en/project/deployment/index.mdx @@ -49,4 +49,8 @@ If you skip deploying your changes immediately, or if your modification doesn't DEPLOY-deploy-changes-banner -- Via the [CLI ](/docs/cli). \ No newline at end of file +- Via the [CLI ](/docs/cli). + +### Canceling a Deployment + +While a Deployment is still queued and hasn't started running, Admins and Editors can cancel it from the Deployments list. If a Deployment fails, click its status to open the log viewer and see the error details. \ No newline at end of file diff --git a/content/docs/en/project/deployment/more_on_deployment.mdx b/content/docs/en/project/deployment/more_on_deployment.mdx index 86947578f..6164b8d6a 100644 --- a/content/docs/en/project/deployment/more_on_deployment.mdx +++ b/content/docs/en/project/deployment/more_on_deployment.mdx @@ -35,4 +35,4 @@ As you may already know, if it's not a 'forced' deployment, you'll be presented - [Workloads](/docs/project/workload) Alias Configuration Changes: A Deployment is forced if any alterations are made to the 'alias' configuration. - [Dependency](/docs/project/dependency): Always forces a Deployment to synchronize its associated VariableGroup state with the templates of the Helm Chart ensuring that Services operation is not affected. -- [VariableGroup](/docs/project/vargroup) Deletion: Same case as Dependency deletion. +- [VariableGroup](/docs/project/vargroup) Deletion: Same case as Dependency deletion — it always redeploys the projects that use it. diff --git a/content/docs/en/project/deployment/release.mdx b/content/docs/en/project/deployment/release.mdx index b25a16325..a5ed5ebf0 100644 --- a/content/docs/en/project/deployment/release.mdx +++ b/content/docs/en/project/deployment/release.mdx @@ -11,7 +11,7 @@ In Sleakops, a release represents a deployable state of all the Workloads (web s ## Release Creation -Sleakops administers releases for you. Every time you modify, delete, or add a web service, worker, hook, or cron job, Sleakops gives you the option to publish the changes. Each time you publish those changes, Sleakops creates a new release with auto-incremented versions. +Sleakops administers releases for you. Every time you add, edit, or delete a web service, worker, hook, or cron job — or edit a chart resource like [chart dependencies](/docs/project/chart/chart_dependencies) or [extra templates](/docs/project/chart/extra_templates) — Sleakops gives you the option to publish the changes. Each time you publish, Sleakops creates a new release with an auto-incremented version: adding or removing a workload bumps the minor version, while any other change bumps the patch version. ### Helm Chart Resources diff --git a/content/docs/en/project/dockertron.mdx b/content/docs/en/project/dockertron.mdx index 8cfc196de..ae59b9f8c 100644 --- a/content/docs/en/project/dockertron.mdx +++ b/content/docs/en/project/dockertron.mdx @@ -6,13 +6,13 @@ sidebar_position: 2 import Zoom from "react-medium-image-zoom"; import "react-medium-image-zoom/dist/styles.css"; -# Technical Documentation - Dockertron +# Dockertron ## Executive Summary **Dockertron** is an automated dockerization system that analyzes your source code and automatically generates the necessary infrastructure to run your application in Docker containers. The system uses artificial intelligence to understand your project structure and create the appropriate configuration files. -You can find it in SleakOps in the **Projects > Configuration > Dockertron section.** +Start an execution from the **Dockertron IA** button on the Projects or Environments page, or from the **Configure your project with Dockertron AI** banner on the project creation form. docketron_location @@ -39,20 +39,20 @@ Dockertron automates the containerization process of your application following ### 1. Submit the Project -To start the dockerization process, you must complete the Dockertron form in three steps: +To start the dockerization process, choose the private repository and branch to analyze, then answer a short questionnaire about your project so the AI has enough context. Only private repositories from your connected Git integration are available. docketron_input -#### Step 1: Language Information +#### Language Specify the main programming language of your project: - **Language Name**: Language name (e.g., Python, Node.js, Java, Go) - **Language Version**: Specific language version (e.g., 3.12, 18.0, 11) -#### Step 2: Application Frameworks +#### Application Frameworks Configure the frameworks your application uses. You can add multiple frameworks: @@ -231,7 +231,7 @@ Typically between 5-30 minutes, depending on the size and complexity of the proj ### What if my project has special configurations? -You can provide additional context in the `contexts` field when submitting the request, indicating specific frameworks, versions, or special configurations. +You can provide additional context in the questionnaire step, indicating specific frameworks, versions, or special configurations.
@@ -249,7 +249,7 @@ Yes, all generated files are sent back and can be reviewed before proceeding wit ### What happens if the process fails? -The system sends a detailed error message indicating what went wrong, allowing adjustments, retries, and modifications to the submitted information so the AI agent can generate the correct configuration. +The system sends a detailed error message indicating what went wrong. You can start a new execution with adjusted information (framework, dependencies, or special configuration) so the AI agent can generate the correct configuration. @@ -261,6 +261,3 @@ The system sends a detailed error message indicating what went wrong, allowing a Yes, the generated files are completely editable and can be adjusted according to your specific needs. - -**Document version**: 1.0 -**Last update**: November 2025 diff --git a/content/docs/en/project/index.mdx b/content/docs/en/project/index.mdx index 89aa45e64..4d2485ba5 100644 --- a/content/docs/en/project/index.mdx +++ b/content/docs/en/project/index.mdx @@ -28,7 +28,7 @@ A Project is the combination of a repository and an environment. It acts as a Ku ### How do I create a Project in SleakOps? -The Project and the Project will be created at the same time. You need to connect your Git account (e.g., GitHub, GitLab, or Bitbucket) to SleakOps, select a repository, choose a branch, and specify the location of the Dockerfile. Once these steps are completed, a ProjectEnv is created, and the first image build is triggered. Follow the steps below. +You need to connect your Git account (e.g., GitHub, GitLab, or Bitbucket) to SleakOps, select a repository, choose a branch, and specify the location of the Dockerfile. Once these steps are completed, the Project is created and the first image build is triggered. Follow the steps below.
@@ -39,7 +39,7 @@ When a Project is created, the following resources are set up: - **AWS Elastic Container Registry (ECR)** to store container images and Helm charts. - A **Kubernetes Namespace** to manage services in isolation. - A **Service Account** to handle permissions and secure connections with AWS resources. -- A **Dockerfile analysis** to verify its correctness and build a container image using Kaniko +- A **Dockerfile analysis** to verify its correctness and build a container image using **BuildKit**
@@ -53,7 +53,7 @@ If any build-time **Docker Args** (arguments) are required, SleakOps will prompt ### What is the purpose of the Dockerfile in my project? -The **Dockerfile** defines how your application is built into a container image. During Project creation, SleakOps analyzes the Dockerfile to ensure it's correctly configured, and then builds the image using **Kaniko**. +The **Dockerfile** defines how your application is built into a container image. During Project creation, SleakOps analyzes the Dockerfile to ensure it's correctly configured, and then builds the image using **BuildKit**.
@@ -74,7 +74,7 @@ The **Service Account** manages permissions for resources inside the Kubernetes ### Can I update the repository, branch, or Dockerfile path after creating a Project? -Just the *Branch* and the *Dockerfile Path* can be updated. If you need to work with a different *Environment,* *Repository or Name*, you will need to create a new record. +From Project Settings you can update the *Branch*, *Dockerfile Path*, *Nodepool*, the build method (Docker/Buildpacks), and the build/deploy resources. Changing the Nodepool to a different CPU architecture triggers a new build and, if the project already has deployments, a deployment pending your approval. If you need to work with a different *Environment*, *Repository*, or *Name*, you will need to create a new project.
@@ -154,62 +154,14 @@ Here the parameters that SleakOps allows you to customize during the creation: | --- | --- | | **Name** | Identify your Project. | | **Environment** | The environment represents a specific stage or setup within your infrastructure where your project will be deployed (e.g., Development, Staging, Production). You are associating your project’s code with a particular environment in your Kubernetes cluster. | -| **Repository** | The repository is the Git repository that holds the codebase for your project. SleakOps will access this repository to manage code updates, builds, and deployments. Ensure that you have connected your Git provider (e.g., GitHub, GitLab, Bitbucket) and that the selected repository contains all necessary files for your project. | +| **Repository** | The Git repository that holds the codebase for your project — a private repository from your connected Git provider (GitHub, GitLab, or Bitbucket), or a public repository. | | **Nodepool** | Is the resource in charge of provision the server where your services will run. More info [here](/docs/cluster/nodepools). | | **Branch** | The branch represents a specific version or line of development within the repository. This allows you to deploy a particular version of your code (e.g., main, develop, or a feature-specific branch). The branch you select will determine the code that gets built and deployed within the associated environment. | -| **Dockerfile Path** | The Dockerfile is a critical component used to build your project into a container. The Dockerfile Path field requires the relative file path to your Dockerfile within the repository (e.g., /Dockerfile, /src/Dockerfile, or /app/Dockerfile). This file contains the instructions needed to create the container image, which SleakOps will build and later use for deployments. | +| **Method** | **Docker** builds the image from a Dockerfile in your repository; **Buildpacks** builds it without one, using an automatically detected builder image. | +| **Dockerfile Path** | Required for the Docker method. The relative file path to your Dockerfile within the repository (e.g., /Dockerfile, /src/Dockerfile, or /app/Dockerfile). This file contains the instructions needed to create the container image, which SleakOps will build and later use for deployments. | Once you've completed the form, click on Submit in order to trigger the Dockerfile validation and then the build. -## ProjectAccess +## Access Configuration -ProjectAccess allows you to configure custom IAM policies and roles for your project, providing fine-grained control over AWS resource permissions. This feature enables you to define specific access patterns that align with your security requirements and operational needs. - -### Custom Policies - -Custom policies allow you to create tailored IAM policies that grant specific permissions to your project's workloads. These policies should be created in the same AWS account where your project is deployed. - -#### Creating Custom Policies - -1. **Navigate to AWS IAM Console** in your project's AWS account -2. **Create a new policy** with the specific permissions your application requires -3. **Reference the policy** in SleakOps using the policy ARN - -:::tip Policy Best Practices -- Follow the principle of least privilege - grant only the minimum permissions necessary -- Use resource-specific ARNs when possible to limit access scope -- Regularly review and audit policy permissions -::: - -#### Referencing Custom Policies in SleakOps - -When configuring ProjectAccess, you can reference your custom policies by providing the policy ARN: - -``` -arn:aws:iam::ACCOUNT_ID:policy/YourCustomPolicyName -``` - -### AWS Managed Policies - -SleakOps also supports AWS managed policies, which are pre-configured policies maintained by AWS. These policies provide common permission sets for various AWS services. - -#### Common AWS Managed Policies - -- **AmazonS3ReadOnlyAccess**: Read-only access to S3 buckets -- **AmazonRDSReadOnlyAccess**: Read-only access to RDS instances -- **CloudWatchReadOnlyAccess**: Read-only access to CloudWatch metrics and logs -- **AmazonEC2ReadOnlyAccess**: Read-only access to EC2 resources - -:::info Policy Association -When associating roles or policies with your project, it's recommended to use the minimum number of policies necessary. This approach: -- Reduces complexity in permission management -- Improves security by limiting potential attack vectors -- Makes troubleshooting easier when permission issues arise -::: - -### Best Practices for Policy Management - -1. **Minimize Policy Count**: Associate the fewest number of policies possible while meeting your requirements -2. **Regular Audits**: Periodically review and audit the policies associated with your projects -3. **Environment-Specific Policies**: Consider using different policies for different environments (dev, staging, prod) -4. **Documentation**: Maintain clear documentation of why specific policies are required for each project \ No newline at end of file +From **Project → Settings → Access Configuration** you can grant a project access to dependencies owned by other projects and attach extra IAM policies (your own or AWS managed) to its service account role. See [Access Configuration](/docs/project/access_config) for the full walkthrough. \ No newline at end of file diff --git a/content/docs/en/project/vargroup/index.mdx b/content/docs/en/project/vargroup/index.mdx index 131b9dc53..6dedb1927 100644 --- a/content/docs/en/project/vargroup/index.mdx +++ b/content/docs/en/project/vargroup/index.mdx @@ -46,7 +46,16 @@ SleakOps securely stores vargroups as Kubernetes secrets inside your EKS cluster ### Can I delete a Variable Group? -Yes, they can be deleted or updated as needed. However, be cautious when deleting them, as it may disrupt your application. +Yes. Deleting a Variable Group always redeploys every project that uses it — the confirmation warns you that the main project and all replicated projects will be affected. Variable Groups created automatically for a Dependency (e.g., database credentials) can't be deleted directly; delete the Dependency instead. +
+ +
+ + +### Who can reveal the values of a Variable Group? + + +Any authenticated user with access to the account can reveal Vargroup values, including Viewers. Creating, editing, and deleting Vargroups is restricted to Admins and Editors.
@@ -81,6 +90,7 @@ If duplicate keys exist across different var groups: - If the key exists in both a global and a workload-scoped var group, the workload-scoped value takes precedence. - If two global vargroups have the same key, the most recently created one will be used. +- Creating or editing an ENV-type Vargroup with a key that already exists in another Vargroup with the same scope (global, or the same workload) prompts a confirmation before you can overwrite it.
@@ -126,10 +136,10 @@ Complete the following attributes to create a new vargroup: | **Attribute** | **Description** | | --- | --- | | **Project** | The specific application or workload within SleakOps. Determines the scope of the variable group. | -| **Workload** | A microservice or component within the project. If selected, the vargroup is limited to it; otherwise, by selecting global it'll be accessible into the namespace. | +| **Workload** | A microservice or component within the project. If selected, the vargroup is limited to it — each workload can have only one dedicated Vargroup; otherwise, by selecting global it'll be accessible into the namespace. | | **Name** | A unique identifier for the var group, used to differentiate it within the project. Should be descriptive of the group's purpose. | | **Deploy** | Enable this option if you want SleakOps to automatically publish and deploy your workloads into the project. | -| **Replicate To** | Optional. Select additional project environments where this Vargroup's Kubernetes Secret will also be created, making its variables available across multiple namespaces. | +| **Replicate To** | Optional. Select additional project environments where this Vargroup's Kubernetes Secret will also be created, making its variables available across multiple namespaces (only environments in the same cluster are shown). | :::info If you choose to add the argument using the text option: Each argument should be added on a new line, separated by an equal sign (`=`), with no extra spaces. @@ -166,7 +176,7 @@ Select **ENV** to inject variables as environment variables into your workload c #### FILE — Mounted Configuration Files -Select **FILE** to mount variables as files inside your workload containers. When using this type, you must also provide a **Mount Path** — the directory where the files will be mounted. +Select **FILE** to mount variables as files inside your workload containers. When using this type, you must also provide a **Mount Path** — the directory where the files will be mounted (an absolute path, unique across the project's Vargroups). Each key-value pair creates one file following this structure: diff --git a/content/docs/en/project/volumes.mdx b/content/docs/en/project/volumes.mdx index 8bed8ce72..528b323cd 100644 --- a/content/docs/en/project/volumes.mdx +++ b/content/docs/en/project/volumes.mdx @@ -29,14 +29,15 @@ To create a new volume for your project: 1. **Click on "Create Volumes"** in the Project settings 2. **Add the mount path** - Specify the directory path where the volume will be mounted in your containers -3. **Set storage capacity** - Define the amount of storage space allocated to the volume -4. **Choose retention policy** - Select between: +3. **Set storage capacity** - Define the amount of storage space allocated to the volume (1–1000 GB) +4. **Choose a filesystem** - Select which EFS filesystem, from the ones configured on the cluster's EFS addon, backs the volume +5. **Choose retention policy** - Select between: - **Delete**: Volume will be removed when deleted from SleakOps - **Retain**: Volume will persist in AWS even if removed from SleakOps :::tip Volume Configuration - Mount paths should be absolute paths (e.g., `/app/data`, `/var/logs`) -- Storage capacity is specified in GB +- Storage capacity is specified in GB, from 1 to 1000 - The retain policy determines data persistence when volumes are removed ::: @@ -54,6 +55,8 @@ To remove a volume from your project: 1. **Click the "X" button** next to the volume you want to delete 2. **Confirm the deletion** when prompted +Deleting a volume triggers a redeploy that detaches it from your project's pods (the delete dialog's Deploy switch is on by default); if you turn the switch off, the volume detaches on the project's next deploy instead. + :::warning Data Loss Warning Deleting a volume will permanently remove all data stored in it. Make sure to backup any important data before deletion. ::: diff --git a/content/docs/en/project/workload/cronjob.mdx b/content/docs/en/project/workload/cronjob.mdx index 3d6d4e91f..2bf78f703 100644 --- a/content/docs/en/project/workload/cronjob.mdx +++ b/content/docs/en/project/workload/cronjob.mdx @@ -54,11 +54,12 @@ Once those attributes are completed, click the _Next_ button to move forward. ### 3. Define the periodicity -Select how will be your connection and click on _Next_. +Define the schedule and click on _Next_. | **Attribute** | **Description** | | --- | --- | -| **Crontab** | Cron expresion to determine the schedule to execute the cronjob | +| **Crontab** | Cron expression to determine the schedule to execute the cronjob. All times are interpreted in UTC. | +| **Concurrency Policy** | How concurrent executions are handled: `Allow` permits concurrent runs, `Forbid` skips a new run if the previous one is still active, and `Replace` cancels the running job in favor of the new one. Default: `Allow`. | +### 4. Specify your cronjob settings +Configure how the cronjob behaves and click _Next_. + +| **Attribute** | **Description** | +| --- | --- | +| **Grace Period** | Time in seconds that Kubernetes waits for graceful shutdown before forcefully terminating the pod. Default: `120`. | + ### 5. Finish the set up This step outlines the key attributes for configuring the resources of a Cronjob in SleakOps, allowing for flexible management of CPU, memory, and scaling behaviors. diff --git a/content/docs/en/project/workload/hook.mdx b/content/docs/en/project/workload/hook.mdx index e51970ccc..233ab6ea8 100644 --- a/content/docs/en/project/workload/hook.mdx +++ b/content/docs/en/project/workload/hook.mdx @@ -40,7 +40,7 @@ Start with the basic information, complete these attributes and click Next to co | **Attribute** | **Description** | | --- | --- | -| **Name** | Identify your web service. | +| **Name** | Identify your hook. | | **Project** | Select between the existent projects. | | **Command** | The command that the workload runs. | @@ -58,7 +58,7 @@ Select when your hook will execute and click _Next_. | **Attribute** | **Description** | | --- | --- | -| **Event** | Define when execute the hook. [Check available events](https://helm.sh/docs/topics/charts_hooks/#the-available-hooks) | +| **Event** | Define when execute the hook. Available events: `Pre upgrade`, `Post upgrade`, `Pre rollback`, `Post rollback`. Default: `Pre upgrade`. | +### 4. Specify your hook settings +Configure how the hook behaves and click _Next_. + +| **Attribute** | **Description** | +| --- | --- | +| **Grace Period** | Time in seconds that Kubernetes waits for graceful shutdown before forcefully terminating the pod. Default: `120`. | + ### 5. Finish the set up This step outlines the key attributes for configuring the resources of a Hook in SleakOps, allowing for flexible management of CPU, memory, and scaling behaviors. diff --git a/content/docs/en/project/workload/index.mdx b/content/docs/en/project/workload/index.mdx index c04dd8b56..19331499e 100644 --- a/content/docs/en/project/workload/index.mdx +++ b/content/docs/en/project/workload/index.mdx @@ -5,7 +5,7 @@ import { FiExternalLink, FiCornerRightDown } from "react-icons/fi"; # Workloads -In SleakOps, an Workload is simply a user-defined workload that runs within the cluster. Depending on how and when you need your workload to run, you can choose from five different types: +In SleakOps, a Workload is simply a user-defined workload that runs within the cluster. Depending on how and when you need your workload to run, you can choose from five different types: | Name | Description | | ------ | ----------- | @@ -68,7 +68,7 @@ When you create a workload and specify **Request** values but **do not specify L For example: - If you set **CPU Request** to `1000m` (1 CPU core) without specifying a limit, SleakOps will automatically set **CPU Limit** to `1300m` (1.3 CPU cores) -- If you set **Memory Request** to `512Mi` without specifying a limit, SleakOps will automatically set **Memory Limit** to `665Mi` (approximately 130%) +- If you set **Memory Request** to `512Mi` without specifying a limit, SleakOps will automatically set **Memory Limit** to `666Mi` (approximately 130%) **Overriding the Default:** diff --git a/content/docs/en/project/workload/job.mdx b/content/docs/en/project/workload/job.mdx index 24837e132..69a79bb95 100644 --- a/content/docs/en/project/workload/job.mdx +++ b/content/docs/en/project/workload/job.mdx @@ -25,10 +25,19 @@ You can configure the _CPU Request_ and _CPU Limit_ values to set the minimum an
-### How can I configure memory and CPU settings for my Job? +### Can I delete or edit a Job after creating it? -You can configure the _CPU Request_ and _CPU Limit_ values to set the minimum and maximum CPU resources each instance in your cluster can use. Similarly, you set **Memory Request** and **Memory Limit** for memory allocation per instance. +Jobs cannot be deleted or edited from the console once created. Use **Rerun** on a job in the list to launch a new run pre-filled with its configuration, changing whatever you need first. +
+ +
+ + +### Why hasn't my Job started running? + + +A Job waits for its Project to be fully created and for a successful build to exist before it runs. If the project has never built successfully, create a build first.
@@ -37,7 +46,7 @@ You can configure the _CPU Request_ and _CPU Limit_ values to set the minimum an ### **Why does a Timeout message appear on my Job?** -The timeout you see in SleakOps corresponds to a platform monitoring limit (approximately 30 minutes). After that time, SleakOps stops monitoring the Job but does not kill it — the Job keeps running normally in your infrastructure. +The timeout you see in SleakOps corresponds to a platform monitoring limit (24 hours). After that time, SleakOps marks the Job as failed and stops monitoring it, but does not kill it — the Job keeps running normally in your infrastructure. **How can I verify if my Job completed successfully?** @@ -74,8 +83,8 @@ Start with the basic information, complete these attributes and click Next to co | **Name** | Identify your job. | | **Project** | Select between the existent projects. | | **Command** | The command that runs the job. | -| **Image** | By default the job usage the image of your project, but you can override that with another | -| **Image tag** | You can specify the tag of image. | +| **Image URL** | By default the job uses the image of your project, but you can override that with another (e.g. `docker.io/library/postgres`). | +| **Image Tag** | You can specify the tag of the image. If not defined, the `latest` tag is used. | Once those attributes are completed, click the _Next_ button to move forward. @@ -86,7 +95,15 @@ Once those attributes are completed, click the _Next_ button to move forward. /> -### 3. Finish the set up +### 3. Specify your job settings + +Configure how the job behaves and click _Next_. + +| **Attribute** | **Description** | +| --- | --- | +| **Grace Period** | Time in seconds that Kubernetes waits for graceful shutdown before forcefully terminating the pod. Default: `120`. | + +### 4. Finish the set up This step outlines the key attributes for configuring the resources of a Job in SleakOps, allowing for flexible management of CPU, memory, and scaling behaviors. @@ -104,4 +121,4 @@ This step outlines the key attributes for configuring the resources of a Job in /> -Submit to create and Deploy your job. +Submit to create and run your job. diff --git a/content/docs/en/project/workload/webservice.mdx b/content/docs/en/project/workload/webservice.mdx index b057c2126..8751e4b5d 100644 --- a/content/docs/en/project/workload/webservice.mdx +++ b/content/docs/en/project/workload/webservice.mdx @@ -41,7 +41,7 @@ The default success code is 200, indicating the service is healthy. You can chan ### What happens if my health check fails repeatedly? -If the health check fails consecutively and reaches the Failure Threshold (default is 60), the service is marked as unhealthy, and Kubernetes might restart or terminate the service instance to attempt a recovery. +If the health check fails consecutively and reaches the Failure Threshold (default is 60), the instance is marked as not ready and Kubernetes stops routing traffic to it. Traffic resumes automatically once the check passes again.
@@ -61,7 +61,7 @@ If you specify **Request** values but leave the **Limit** fields empty, SleakOps For example: - **CPU Request** = `1000m` → **CPU Limit** automatically becomes `1300m` -- **Memory Request** = `512Mi` → **Memory Limit** automatically becomes `665Mi` +- **Memory Request** = `512Mi` → **Memory Limit** automatically becomes `666Mi` To override this default and set custom limits, simply specify your own **CPU Limit** and **Memory Limit** values in the configuration form. Your custom values will be used instead of the automatic 130% calculation.
@@ -91,7 +91,7 @@ The **terminationGracePeriod** is a Kubernetes setting that defines how long (in **How it works:** When Kubernetes needs to stop your container (during a deployment, scaling event, or shutdown), it first sends a **SIGTERM** signal to your process and then waits the number of seconds defined by `terminationGracePeriod` before forcefully killing the container. Most application frameworks handle SIGTERM automatically, but if you have custom processes, make sure your application listens for SIGTERM and gracefully closes all connections and ongoing work — otherwise Kubernetes may kill your container while it's still mid-operation. -**Default value:** 30 seconds +**Default value:** 120 seconds **When to adjust it:** - Increase it if your service needs more time to complete long-running tasks during shutdown. @@ -236,11 +236,11 @@ You’ll see the following for to specify the conditions. | **Path** | The path where Kubernetes checks if the web service is operational. Default: `/` | | **Success Code** | The HTTP success code indicating the service's health. Default: `200`. | | **Initial Delay Seconds** | Number of seconds after startup before health checks begin. Default: `10`. | -| **Timeout Seconds** | Number of seconds after startup before health checks begin. Default: `1`. | +| **Timeout Seconds** | Number of seconds after which the health check probe times out. Default: `1`. | | **Period Seconds** | Interval (in seconds) between each health check probe. Default: `5`. | | **Success Threshold** | Minimum number of consecutive successes required for the probe to be considered successful after it has failed. Default: `1`. | | **Failure Threshold** | Number of consecutive failures before the probe is considered to have failed. Default: `60`. | -| **terminationGracePeriod** | Time in seconds that Kubernetes waits for graceful shutdown before forcefully terminating the service. Default: `30`. | +| **Grace Period (terminationGracePeriod)** | Time in seconds that Kubernetes waits for graceful shutdown before forcefully terminating the service. Default: `120`. | Once those attributes are completed, click the Next button to move to the next step. @@ -253,6 +253,7 @@ This step outlines the key attributes for configuring the resources of a Web Ser | **CPU Limit** | The maximum CPU resources that each instance in the cluster can use. This cap helps prevent any single instance from consuming too much CPU. | | **Memory Request** | The minimum amount of memory allocated for each instance in the cluster. This guarantees that the instance has enough memory to operate efficiently. | | **Memory Limit** | The maximum amount of memory each instance in the cluster can utilize. It limits the memory usage to prevent any single instance from overconsuming resources. | +| **Replicas** | The number of replicas to run when auto-scaling is disabled. We use a minimum of 2 to avoid downtime. Default: `2`. | | **Autoscaling** | Toggle to enable or disable auto-scaling. When enabled, it allows the service to adjust the number of replicas based on demand and resource usage. | | **CPU Target** | The CPU usage percentage target that initiates auto-scaling. If usage exceeds this target, additional replicas may be deployed to balance the load. | | **Memory Target** | The memory usage percentage target that triggers auto-scaling adjustments. When instances exceed this target, the system scales up to accommodate demand. | diff --git a/content/docs/en/project/workload/worker.mdx b/content/docs/en/project/workload/worker.mdx index 1dbeee84c..5033a04ea 100644 --- a/content/docs/en/project/workload/worker.mdx +++ b/content/docs/en/project/workload/worker.mdx @@ -59,7 +59,14 @@ Once those attributes are completed, click the _Next_ button to move forward. /> -### 3. Finish the set up +### 3. Specify your worker settings +Configure how the worker behaves and click _Next_. + +| **Attribute** | **Description** | +| --- | --- | +| **Grace Period** | Time in seconds that Kubernetes waits for graceful shutdown before forcefully terminating the pod. Default: `120`. | + +### 4. Finish the set up This step outlines the key attributes for configuring the resources of a Worker in SleakOps, allowing for flexible management of CPU, memory, and scaling behaviors. | **Attribute** | **Description** | @@ -68,10 +75,11 @@ This step outlines the key attributes for configuring the resources of a Worker | **CPU Limit** | The maximum CPU resources that each instance in the cluster can use. This cap helps prevent any single instance from consuming too much CPU. | | **Memory Request** | The minimum amount of memory allocated for each instance in the cluster. This guarantees that the instance has enough memory to operate efficiently. | | **Memory Limit** | The maximum amount of memory each instance in the cluster can utilize. It limits the memory usage to prevent any single instance from overconsuming resources. | +| **Replicas** | The number of replicas to run when auto-scaling is disabled. Default: `1`. | | **Autoscaling** | Toggle to enable or disable auto-scaling. When enabled, it allows the workload to adjust the number of replicas based on demand and resource usage. | | **CPU Target** | The CPU usage percentage target that initiates auto-scaling. If usage exceeds this target, additional replicas may be deployed to balance the load. | | **Memory Target** | The memory usage percentage target that triggers auto-scaling adjustments. When instances exceed this target, the system scales up to accommodate demand. | -| **Replicas Min** | The minimum number of replicas to maintain when auto-scaling is active. A minimum of 2 replicas ensures high availability and prevents downtime.| +| **Replicas Min** | The minimum number of replicas to maintain when auto-scaling is active. | | **Replicas Max** | The maximum number of replicas that can be deployed when auto-scaling is enabled. It sets an upper limit on the number of instances to avoid over-provisioning. | diff --git a/content/docs/en/provider/accounts.mdx b/content/docs/en/provider/accounts.mdx index b64b52a83..cccc97c7e 100644 --- a/content/docs/en/provider/accounts.mdx +++ b/content/docs/en/provider/accounts.mdx @@ -25,7 +25,7 @@ Once the Accounts are up, we set to each one of them what we call [Network Modul ### Security Account -The Security Account serves as a centralized hub for managing IAM users and their access to the system. Learn how to switch between accounts in [AWS Console Autentication](../user/aws_console_authentication). +The Security Account serves as a centralized hub for managing IAM users and their access to the system. It doesn't appear in your accounts list — you reach the other accounts from it by switching roles. Learn how to switch between accounts in [AWS Console Autentication](../user/aws_console_authentication). ### **Management Account** @@ -65,5 +65,6 @@ This account is intended for your application to be installed in a production en

To select an account and be able to work on it, select it from the left pane.

The left icon refers to the Provider that groups the accounts.

+

Editors and Viewers only see the accounts they've been granted access to.

diff --git a/content/docs/en/provider/common-errors.mdx b/content/docs/en/provider/common-errors.mdx index a75ac260e..3882aa020 100644 --- a/content/docs/en/provider/common-errors.mdx +++ b/content/docs/en/provider/common-errors.mdx @@ -39,7 +39,17 @@ Before retrying the process, increase that limit. Otherwise, the process will fa />
-### 3. Other errors +### 3. Account creation is still being processed by AWS + +Sometimes AWS needs a few extra minutes to finish setting up a newly created account before SleakOps can use it. + +You'll see a *Retry* button, temporarily disabled for a few minutes. If retries keep failing, contact AWS Support referencing the account IDs shown on the screen. + +### 4. One of your AWS accounts is suspended, pending closure, or closed + +Contact AWS Support to resolve the account's state, then retry the connection. + +### 5. Other errors Other issues might happen and usually, they'll be solved by running the Connection to AWS again. diff --git a/content/docs/en/provider/deleting-a-provider.mdx b/content/docs/en/provider/deleting-a-provider.mdx index 7ea482a9a..e8267183a 100644 --- a/content/docs/en/provider/deleting-a-provider.mdx +++ b/content/docs/en/provider/deleting-a-provider.mdx @@ -7,13 +7,17 @@ import Zoom from "react-medium-image-zoom"; # Deleting a Provider -- This feature allows you to delete a Provider and all that was created under it. -- Only Providers *Successfully Created* and in *Error* can be deleted. So, if you do not see the feature, probably it is in other status. +- This feature allows you to delete a Provider and all that was created under it. Only Admins can do it. +- Only Providers in *Initial*, *Successfully Created*, or *Error* status can be deleted — not while a provisioning, update, or deletion task is in progress. Deleting a Provider still in *Initial* (before finishing the AWS connection) is immediate, since nothing was created on AWS yet. :::warning The created *Organization* and its accounts (management, development, production, and security) will not be automatically deleted. While keeping these accounts under your AWS Root Account does not incur any costs, **we recommend removing** them manually. ::: +:::note +If a dependency (e.g. a database) has deletion protection enabled, the delete request will fail until you disable it. +::: + ## How to delete a Provider ### 1. Select the provider to be deleted diff --git a/content/docs/en/provider/index.mdx b/content/docs/en/provider/index.mdx index 20c266c41..fee0967d8 100644 --- a/content/docs/en/provider/index.mdx +++ b/content/docs/en/provider/index.mdx @@ -75,7 +75,7 @@ To start installing your application, we need to connect to your AWS Root Accoun Creating your Organizative Unit doesn't generate any cost on your AWS account 😃 ::: -Once the connection is established role is created, SleakOps will automatically start the Organizative Unit creation. +Once the connection is established role is created, SleakOps will automatically start the Organizative Unit creation. If your root account already belongs to an AWS Organization, SleakOps reuses it instead of creating a new one. This process will take a few minutes. diff --git a/content/docs/en/subscribe-using-aws.mdx b/content/docs/en/subscribe-using-aws.mdx index f319a4d58..7c83b3052 100644 --- a/content/docs/en/subscribe-using-aws.mdx +++ b/content/docs/en/subscribe-using-aws.mdx @@ -23,9 +23,9 @@ Welcome to our guide on how to subscribe to SleakOps using AWS. This step-by-ste Log into SleakOps using an **Admin** account. -### 2. Go to Settings > Subscription +### 2. Go to Settings > Billing > Subscription -From the left menu, access the **Settings** option at the bottom, and then select the **Subscription** option. +From the left menu, access the **Settings** option at the bottom, and then select **Subscription**, listed under the **Billing** group (admin only). -That is all, you're ready to use SleakOps! +SleakOps needs to confirm the new subscription before it becomes active. If you land on a "pending approval" screen instead of the dashboard, sign back in once you receive confirmation — contact **contact@sleakops.com** if it takes longer than expected. diff --git a/content/docs/en/upgrades.mdx b/content/docs/en/upgrades.mdx index b829a20ed..dcb72e13f 100644 --- a/content/docs/en/upgrades.mdx +++ b/content/docs/en/upgrades.mdx @@ -38,7 +38,7 @@ The list shows upgrades across every account your role can access — it ignores | **Upgrade** | Title and current state. When the upgrade targets a specific resource (Cluster, NodePool, Service), its icon and name appear under the title. | | **Account** | The account the upgrade will run against. | | **Execution Date** | Scheduled date while Pending, actual execution time otherwise. Hover for the exact timestamp. | -| **Actions** | View details, Execute, and (when applicable) Review instructions. | +| **Actions** | View details, Execute, and (when applicable) Review instructions. EKS Cluster Upgrade rows replace Execute with **Review upgrade plan**, which opens the drawer's Upgrade tab. | Filter the list by **State** (Pending, In Progress, Completed, Error), **Account**, or **Model** from the toolbar. Deep links from other sections (e.g. from a specific Cluster) arrive with the filter pre-applied. @@ -57,7 +57,7 @@ Transitions: `Pending → Running → Completed`. From `Running`, on failure the Two ways: -1. **From the list** — click the green play icon in the row's Actions column. +1. **From the list** — click the green play icon in the row's Actions column. EKS Cluster Upgrade rows don't have this shortcut — click **Review upgrade plan** to open the drawer's Upgrade tab, then execute from there. 2. **From the drawer** — open the upgrade and click **Execute** in the header. A popover lets you pick **Execute Now** or update the schedule. @@ -97,12 +97,18 @@ When you have several Pending upgrades of different types on the same account, y ## The Upgrade drawer -Click any row to open the drawer. It has two tabs: +Click any row to open the drawer. It has up to three tabs, depending on the upgrade type: ### Details Basic information (entity name, type, account, description, state), schedule (Execution Date and Deadline, editable inline), metadata (creation date, parameters), and the activity log — every execution and every schedule change with user and timestamp. +### Upgrade + +Present only for the **EKS Cluster Upgrade** type. Read-only summary of the change: the target Kubernetes version and its AWS support window, a notice when the scheduled time falls outside business hours, a downtime report for affected services, and the version's changelog. A dedicated section lets you request a compatibility readiness report for manifests you manage outside SleakOps — this opens as a support ticket (see [Autodiagnostics](/docs/powered-ai/autodiagnostic)). Execute and reschedule stay in the header. + +{/* TODO: screenshot - drawer with the Upgrade tab open, showing target version, support window, downtime report and changelog. Requires an EKS Cluster Upgrade Migration. */} + ### Instructions Only present when the upgrade type ships prerequisites or postrequisites — numbered steps to complete before executing and steps to verify after it completes. diff --git a/content/docs/en/user/aws_console_authentication.mdx b/content/docs/en/user/aws_console_authentication.mdx index df05bba5d..869f78ca9 100644 --- a/content/docs/en/user/aws_console_authentication.mdx +++ b/content/docs/en/user/aws_console_authentication.mdx @@ -21,7 +21,7 @@ How to enter to any of your Accounts. As described in the [Architecture Overview](/docs/provider/accounts). You'll have to enter the 'security' account, then, assume the role on the account you want. The easiest way to do this is by using the [Sleakops Dashboard](https://console.sleakops.com/): -First, use the AWS Login button: +First, in the **Get AWS and VPN Access** card of the dashboard, click the **Login** button (use the IAM username shown next to it): USER-aws-login @@ -47,7 +47,7 @@ Once logged into the 'security' account, it will appear as shown in the followin -Now, in the AWS console, you need to return to the SleakOps dashboard, select 'Get Access' and use the drawer, on it, select the account you want to log in to. +Now, return to the SleakOps dashboard and, in the same **Get AWS and VPN Access** card, click the **AWS Account Switcher** button next to the account you want to log in to. USER-get-access USER-account-switcher diff --git a/content/docs/en/user/index.mdx b/content/docs/en/user/index.mdx index 07c5f3b0c..75c4be5ae 100644 --- a/content/docs/en/user/index.mdx +++ b/content/docs/en/user/index.mdx @@ -67,7 +67,7 @@ Sleakops has three fundamental fields of user permissions: -Only administrators can delete users. To delete a user, access the User List, in the Action column, click on the bin icon. Then confirm the action. +Only administrators can delete users. To delete a user, access the User List, in the Action column, click on the bin icon. Then confirm the action. An admin cannot delete their own account. SleakOps automatically handles the complete deletion process across all systems (IAM user, Pritunl VPN server user, and SleakOps console user). No additional manual steps are required outside the SleakOps console. @@ -83,28 +83,23 @@ Deleted users cannot be recovered. However, deleting a user never removes any re USER-creation-form -For access into the AWS accounts SleakOps initially sets a random password and sends it to the email of the created user. The user can login with that password but it will be obligated to change its password on the first login. For SleakOps platform access we use the password that was set on the User form. +For access into the AWS accounts SleakOps initially sets a random password and sends it to the email of the created user. The user can login with that password but it will be obligated to change its password on the first login. For SleakOps platform access, the user gets a separate email with a link to set their own password. After this user creation an AWS User will be created on the 'security' Account, this account is where we control acesses to all the SleakOps AWS accounts. We will also create, depending on the configuration, users on the VPN servers, read how to use them on the corresponding [documentation ](/docs/user/vpn) and on the SleakOps user. -## Users Without SleakOps Access +## AWS/VPN-Only Members -Some users in your organization may not have direct access to the SleakOps platform but still interact with the infrastructure: +Turning off console access is only available for the Viewer role. It creates a member with no SleakOps login who still gets AWS IAM and/or VPN access provisioned for the accounts you assign — useful for external collaborators, auditors, or teammates who only need infrastructure access, not a console seat. At least one AWS or VPN account is required in this case. -### External Collaborators +## Managing Members -- **Scenario**: Third-party contractors or consultants who need temporary access to specific AWS resources -- **Access Method**: Direct AWS console access with limited IAM permissions -- **Management**: Handled through AWS IAM directly, not through SleakOps user management +Admins can act on any member from the Members list or its detail drawer: -### Read-Only Observers +- **Reset AWS Password**: pick the provider and confirm — SleakOps generates a new IAM password and emails it to the member. +- **Get Pritunl Credentials**: for members without SleakOps console access, who can't fetch their own VPN URI (see the [VPN documentation](/docs/user/vpn)), an admin retrieves it for any account where the member already has a provisioned VPN profile. -- **Scenario**: Stakeholders who need visibility into infrastructure costs and usage without operational access -- **Access Method**: AWS Cost Explorer, CloudWatch dashboards, or custom reporting tools -- **Management**: AWS billing and monitoring permissions only +Editing a member only lets you change their role and account access; name, email, and console access are fixed at creation. -### VPN-Only Consumers - -- **Scenario**: Users who need to consume workloads and applications within the VPN but don't require infrastructure administration or monitoring capabilities -- **Access Method**: VPN access only, with limited permissions to access specific applications and services -- **Management**: VPN user accounts with restricted access to designated workloads and environments +:::info +Changing a member's role re-provisions their AWS and VPN access automatically. If the member uses `kubectl`, they need to regenerate their kubeconfig to pick up the new permissions. +::: diff --git a/content/docs/en/user/vpn.mdx b/content/docs/en/user/vpn.mdx index 96d2ddd1e..c2482f45b 100644 --- a/content/docs/en/user/vpn.mdx +++ b/content/docs/en/user/vpn.mdx @@ -15,6 +15,10 @@ To handle VPN connections we use Pritunl. You can download the client [here](htt Once you've created a [Provider ](/docs/provider), go to [SleakOps dashboard](https://console.sleakops.com/) and select the account for which you want to get VPN access. Remember, to do this, you need to have access to the VPN of that account, but the VPN must also be created. We create the VPN of a specific account when the first cluster of that account is created. +:::info +This self-service flow requires SleakOps console access. If your account is VPN-only (no console login), ask an admin to retrieve your profile URI from [Members](/docs/user) instead. +::: + vpn-get-access @@ -23,7 +27,7 @@ Once you've created a [Provider ](/docs/provider), go to [SleakOps dashboard](ht vpn-get-uri -This will prompt you with what is called the URI profile. It has a validation period of 24 hours, and you must load it into the Pritunl client. +This will prompt you with what is called the URI profile. It is valid for 24 hours — after that, request a new one from the panel. Load it into the Pritunl client, and treat it as a credential: don't share it, since anyone who imports it can connect as you. vpn-uri-profile diff --git a/content/docs/es/cluster/access-cluster.mdx b/content/docs/es/cluster/access-cluster.mdx index 6ba4aac14..e0cec2213 100644 --- a/content/docs/es/cluster/access-cluster.mdx +++ b/content/docs/es/cluster/access-cluster.mdx @@ -7,6 +7,10 @@ import Zoom from "react-medium-image-zoom"; Para acceder a tu clúster de Kubernetes, debes completar algunos pasos y generar un archivo Kubeconfig para conectarte a un IDE de Kubernetes. +:::tip +¿Prefieres no instalar un IDE de Kubernetes? El add-on [Headlamp](/docs/cluster/addons/headlamp) te da una interfaz de Kubernetes desde el navegador, sin necesidad de Kubeconfig ni de instalar Lens; aun así necesitas estar conectado a la VPN para acceder. +::: + ## Preguntas Frecuentes
@@ -56,8 +60,8 @@ Dirígete a la opción *Access Cluster*. - Inicia sesión en AWS con tu usuario. - Luego, dirígete al [Asistente de Claves de Acceso de AWS](https://us-east-1.console.aws.amazon.com/iam/home#/security_credentials/access-key-wizard) para generar las claves en AWS. -- Pega las claves en el formulario y genera el archivo kubeconfig. -- Copia el resultado. +- Pega las claves en el formulario. +- Usa **Copy Kubeconfig** o **Download Kubeconfig** para obtener el archivo generado. - -### ¿Cuáles son los complementos esenciales? - -Por defecto, SleakOps incluye en tu infraestructura: - -- **Metric Server**: SleakOps instala el Metric Server para recopilar métricas a nivel de clúster y nodos, permitiendo el monitoreo del rendimiento y decisiones informadas de escalado. -- **External-DNS**: SleakOps despliega External-DNS para la gestión automática de registros DNS, asegurando una conectividad perfecta con nombres de dominio amigables para el usuario. -- **Balanceador de Carga Automático**: SleakOps provisiona balanceadores de carga automáticamente, distribuyendo el tráfico de manera eficiente y manteniendo una alta disponibilidad. -- **Despliegue de Karpenter**: SleakOps implementa Karpenter para la provisión inteligente de nodos, escalando tu clúster según las necesidades reales de recursos para optimizar el rendimiento. -
- -
- -### ¿Qué complementos opcionales están disponibles? - -- **Grafana**: Visualiza y analiza datos con los paneles de Grafana, facilitando el monitoreo del rendimiento del sistema y la solución de problemas. Ideal para rastrear el uso de memoria y CPU de aplicaciones. -- **LOKI**: Usa Loki para la agregación de registros a bajo costo. Simplifica la gestión de registros etiquetando flujos de registro sin indexar el contenido, ideal para explorar y monitorear registros de aplicaciones. -- **Kubecost**: Obtén información en tiempo real sobre los costos en la nube de Kubernetes con Kubecost. Este complemento te ayuda a monitorear y reducir gastos en los proyectos de tu clúster. -- **Prometheus**: SleakOps despliega Prometheus para monitoreo y alertas, proporcionando información detallada sobre el rendimiento del clúster y la utilización de recursos. -- **OTEL**: Usa OpenTelemetry para recopilar y analizar trazas distribuidas, permitiéndote monitorear y optimizar el rendimiento de las aplicaciones en tu clúster. -
- -
- -### ¿Cómo configuro un complemento? - -Navega a la lista de Clústeres, selecciona un clúster y haz clic en los tres puntos para abrir el menú de opciones. Elige la opción deseada para comenzar la configuración. Para obtener una guía detallada sobre cada configuración, consulta la documentación específica vinculada al final de este artículo. - - - cluster-addons-create - - -
\ No newline at end of file diff --git a/content/docs/es/cluster/addons/index.mdx b/content/docs/es/cluster/addons/index.mdx index e2cbe5975..a7b70d3ee 100644 --- a/content/docs/es/cluster/addons/index.mdx +++ b/content/docs/es/cluster/addons/index.mdx @@ -7,6 +7,8 @@ import Zoom from "react-medium-image-zoom"; En SleakOps, los Add-ons mejoran la funcionalidad de tu clúster EKS al proporcionar componentes esenciales y opcionales que optimizan operaciones, mejoran el rendimiento y aumentan la visibilidad. Los Add-ons esenciales incluyen herramientas para monitoreo, gestión de DNS, balanceo de carga y aprovisionamiento inteligente de nodos, asegurando que tu clúster sea robusto y eficiente. +Cuando un Add-on depende de otro (por ejemplo, Grafana necesita Prometheus y el EBS CSI Driver), instalarlo instala automáticamente las dependencias que falten, en el orden correcto. + ## Preguntas Frecuentes @@ -27,12 +29,16 @@ Por defecto, SleakOps incluye en tu infraestructura: ### ¿Qué Add-ons opcionales están disponibles? - **Grafana**: Visualiza y analiza datos con los tableros de Grafana, facilitando el monitoreo del rendimiento del sistema y la resolución de problemas. Ideal para rastrear el uso de memoria y CPU de las aplicaciones. -- **LOKI**: Usa Loki para la agregación de logs rentable. Simplifica la gestión de logs etiquetando flujos de logs sin indexar el contenido, ideal para navegar y monitorear logs de aplicaciones. +- **LOKI**: Usa Loki para la agregación de logs rentable. Simplifica la gestión de logs etiquetando flujos de logs sin indexar el contenido, ideal para navegar y monitorear logs de aplicaciones. Este Add-on está **deprecado** — consultá la [documentación de Loki](/docs/cluster/addons/loki) para más detalles. - **Kubecost**: Obtén información en tiempo real sobre los costos de la nube en Kubernetes con Kubecost. Este Add-on te ayuda a monitorear y reducir gastos en los proyectos de tu clúster. - **Prometheus**: SleakOps implementa Prometheus para monitoreo y alertas, proporcionando información detallada sobre el rendimiento del clúster y la utilización de recursos. - **OTEL**: Usa OpenTelemetry para recolectar y analizar trazas distribuidas, permitiéndote monitorear y optimizar el rendimiento de aplicaciones en tu clúster. +- [**KEDA**](/docs/cluster/addons/keda): Escala tus workloads en base a señales externas — profundidad de cola, lag de consumers, métricas de CloudWatch y más — incluso hasta cero réplicas. +- [**Headlamp**](/docs/cluster/addons/headlamp): Una interfaz desde el navegador para explorar y administrar los recursos de Kubernetes de tu clúster, sin necesidad de `kubectl`. - [**EFS Controller**](./addons/efs): El EFS Controller permite gestionar volúmenes de EFS dentro de tu clúster EKS, proporcionando almacenamiento escalable y compartido para tus aplicaciones. Para más detalles, consulta la [documentación de EFS](/docs/cluster/addons/efs). - [**EBS Controller**](./addons/ebs): El EBS Controller permite gestionar volúmenes de EBS dentro de tu clúster EKS, proporcionando almacenamiento de bloques persistente para tus aplicaciones. Para más detalles, consulta la [documentación de EBS](/docs/cluster/addons/ebs). + +Los Add-ons en Beta o Deprecados muestran la insignia correspondiente en el catálogo.
@@ -40,10 +46,36 @@ Por defecto, SleakOps incluye en tu infraestructura: ### ¿Cómo configuro un Add-on? Para configurar un Add-on, sigue estos pasos: -1. Ve a la sección Add-ons en la sección [Cluster](../cluster). +1. Ve a la sección **Clusters**, selecciona tu clúster y hacé clic en **Manage Addons**. 2. Selecciona el Add-on deseado de la lista de opciones disponibles. 3. Configura los ajustes del Add-on según sea necesario. -4. Haz clic en "Deploy" para instalar el Add-on en tu clúster EKS. +4. Hacé clic en **Install** para desplegar el Add-on en tu clúster EKS. Para instrucciones más detalladas, consulta la [guía de configuración de Add-ons](/docs/cluster/addons). +
+ +
+ +### ¿Puedo desplegar un Helm chart propio como Add-on? + +Sí. Hacé clic en **Add custom addon**, arriba de la grilla de Add-ons, para desplegar cualquier Helm chart definiendo su release name, chart, repositorio, versión, namespace y values. Los Add-ons custom se muestran con la etiqueta **Custom** en el listado y, a diferencia de los tipos del catálogo, podés instalar más de uno por clúster. SleakOps no gestiona ingress ni dominio para ellos. +
+ +
+ +### ¿Puedo importar la configuración de un Add-on o un Helm release existente? + +Sí, de dos maneras: + +- **Import from JSON** pega la configuración de un Add-on previamente exportado y precarga el formulario de instalación del tipo correspondiente. +- **Import from cluster** lista los Helm releases que ya corren en tu clúster y que SleakOps todavía no gestiona, para que puedas adoptar uno como Add-on custom. Desde ese momento, SleakOps pasa a ser la fuente de verdad: cualquier cambio que hagas manualmente en el clúster se sobrescribe en el próximo sync. + +Cada Add-on instalado también tiene una acción **Export** que genera un JSON portable que podés volver a importar en otro clúster. +
+ +
+ +### ¿Qué pasa cuando desinstalo un Add-on? + +Desinstalar un Add-on elimina su Helm release y todos los recursos que creó en el clúster — esto aplica también a los Add-ons importados desde un release existente. SleakOps te lo confirma antes de continuar.
\ No newline at end of file diff --git a/content/docs/es/cluster/addons/loki.mdx b/content/docs/es/cluster/addons/loki.mdx index b78908408..ddc5803d9 100644 --- a/content/docs/es/cluster/addons/loki.mdx +++ b/content/docs/es/cluster/addons/loki.mdx @@ -10,6 +10,10 @@ import { FiExternalLink } from "react-icons/fi"; # Loki +:::warning Deprecado +El Add-on de Loki está **deprecado**. SleakOps ofrece un nuevo Add-on LokiV2 con las mismas capacidades de agregación de logs — está disponible en el catálogo de Add-ons (Beta) y puedes instalarlo como cualquier otro Add-on. +::: + Introducción [Loki ](https://grafana.com/oss/loki/) es un Addon que te permite almacenar y consultar logs de los contenedores desplegados dentro del clúster. Loki depende de [Grafana ](/docs/cluster/addons/grafana), ya que SleakOps lo utiliza como visor de logs. Es una herramienta crucial para la resolución de problemas, ya que puede almacenar los logs de todo lo que ocurre en el clúster, lo cual es útil para el análisis de las causas raíz de problemas en tus aplicaciones o en cualquier recurso asignado dentro del clúster. diff --git a/content/docs/es/cluster/addons/otel.mdx b/content/docs/es/cluster/addons/otel.mdx index 73710fc13..75f66284f 100644 --- a/content/docs/es/cluster/addons/otel.mdx +++ b/content/docs/es/cluster/addons/otel.mdx @@ -9,40 +9,40 @@ import { FiExternalLink } from "react-icons/fi"; # Open Telemetry -In Sleakops [Opentelemetry ](https://opentelemetry.io/) is an addon that enables you to understand the internal state of a system by examining its telemetry data, which includes traces and metrics. Opentelemetry is installed alongside [Prometheus ](https://prometheus.io/docs/introduction/overview/) to store valuable metrics about the system and [Grafana ](https://grafana.com/docs/) to visualize the data. +En SleakOps, [OpenTelemetry ](https://opentelemetry.io/) es un addon que te permite entender el estado interno de un sistema examinando su telemetría, que incluye trazas y métricas. OpenTelemetry se instala junto con [Prometheus ](https://prometheus.io/docs/introduction/overview/) para almacenar métricas valiosas del sistema y [Grafana ](https://grafana.com/docs/) para visualizar los datos. -All OpenTelemetry data is accesible through Grafana. Check [our Grafana documentation](/docs/cluster/addons/grafana) to learn more about our implementation. +Todos los datos de OpenTelemetry son accesibles a través de Grafana. Consulta [nuestra documentación de Grafana](/docs/cluster/addons/grafana) para conocer más sobre nuestra implementación. -## FAQs +## Preguntas Frecuentes
- ### **How it works** + ### **Cómo funciona** -In order to use OpenTelemetry, you need to have a project instrumented with OpenTelemetry. Sleakops will deploy the necessary resources to collect and store the data. -Instrumentation is the process of adding code to your application to collect telemetry data. OpenTelemetry provides libraries to instrument your application in a variety of languages. -Also Sleakops offers Autoinstrumentation for some languages, learn more about it in the section Autoinstrumentation. +Para usar OpenTelemetry, necesitas tener un proyecto instrumentado con OpenTelemetry. SleakOps despliega los recursos necesarios para recolectar y almacenar los datos. +La instrumentación es el proceso de agregar código a tu aplicación para recolectar datos de telemetría. OpenTelemetry provee librerías para instrumentar tu aplicación en varios lenguajes. +SleakOps también ofrece autoinstrumentación para algunos lenguajes; aprende más en la sección Autoinstrumentación.
- ### **Traces and Metrics** + ### **Trazas y Métricas** -Telemetry data consist of three main components: traces, metrics and logs. For logs Sleakops offers [Loki](/docs/cluster/addons/loki). Traces are the path of a request through the system, while metrics are the values of the system at a given time. +La telemetría se compone de tres elementos principales: trazas, métricas y logs. Para logs, SleakOps ofrece [Loki](/docs/cluster/addons/loki). Las trazas son el recorrido de una request a través del sistema, mientras que las métricas son los valores del sistema en un momento dado. -The OpenTelemetry addon collects traces from the pods running your project and sends them to the OpenTelemetry collector. The collector stores the traces throw [Tempo ](https://grafana.com/oss/tempo/). Traces could be visualized in Grafana. -Also the collector generates metrics via the [SpanMetrics Connector ](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/connector/spanmetricsconnector/README.md) and stores them in Prometheus. +El addon de OpenTelemetry recolecta trazas de los pods que ejecutan tu proyecto y las envía al collector de OpenTelemetry. El collector almacena las trazas mediante [Tempo ](https://grafana.com/oss/tempo/). Las trazas pueden visualizarse en Grafana. +Además, el collector genera métricas mediante el [SpanMetrics Connector ](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/connector/spanmetricsconnector/README.md) y las almacena en Prometheus. -A dashboard is available in Grafana for every project that gets instrumented. +Hay un dashboard disponible en Grafana para cada proyecto que se instrumenta.
- ### Using the Addon + ### Usando el Addon -Let's dive in with a view of the OpenTelemetry dashboard. First three metrics are Request rates, Error rates and Durations, or RED metrics. These metrics are the most important to monitor the health of your application. -Then we see a table that list Top operations (endpoints) and their error rate as well. +Veamos el dashboard de OpenTelemetry. Las primeras tres métricas son tasas de requests, tasas de errores y duraciones (métricas RED). Estas métricas son las más importantes para monitorear la salud de tu aplicación. +Luego hay una tabla que lista las operaciones principales (endpoints) junto con su tasa de errores. otel-dashboard-p2 -Tipically the dashboard gives a quick look to problematic endpoints, application performance bottlenecks, as well as the overall health of the application. +Típicamente el dashboard da una vista rápida de los endpoints problemáticos, los cuellos de botella de rendimiento y la salud general de la aplicación.
- ### Autoinstrumentation + ### Autoinstrumentación -Sleakops offers autoinstrumentation for some languages. This means that Sleakops will automatically instrument your project with OpenTelemetry. This is done by deploying an init container alongside your project. The sidecar container will collect the telemetry data and send it to the OpenTelemetry collector. +SleakOps ofrece autoinstrumentación para algunos lenguajes. Esto significa que SleakOps instrumenta automáticamente tu proyecto con OpenTelemetry, desplegando un init container junto a tu proyecto. Este contenedor recolecta la telemetría y la envía al collector de OpenTelemetry.
- ### Manual instrumentation + ### Instrumentación manual -Manual instrumentation resolves the implementation through code of OpenTelemetry in your project. This is done by adding the OpenTelemetry libraries to your project and adding the necessary code to collect the telemetry data. Sleakops presents the endpoint where the telemetry data should be sent. +La instrumentación manual resuelve la implementación de OpenTelemetry mediante código en tu proyecto. Consiste en agregar las librerías de OpenTelemetry a tu proyecto y el código necesario para recolectar la telemetría. SleakOps expone el endpoint al que debe enviarse la telemetría.
- ### What does Sleakops install when installing OpenTelemetry + ### Qué instala SleakOps al instalar OpenTelemetry -The stack deployed when the addon is installed is the following: +El stack desplegado cuando se instala el addon es el siguiente: - [OpenTelemetry Operator ](https://opentelemetry.io/docs/kubernetes/operator/) - [OpenTelemetry Collector ](https://opentelemetry.io/docs/collector/) Custom resource (CRD) -- [OpenTelemetry Instrumentation ](https://opentelemetry.io/docs/kubernetes/operator/automatic/) Custom resource (CRD) for every autoinstrumentated project -- [Tempo ](https://grafana.com/oss/tempo/) with a frontend, and caching enabled -- S3 Bucket as Tempo Backend +- [OpenTelemetry Instrumentation ](https://opentelemetry.io/docs/kubernetes/operator/automatic/) Custom resource (CRD) por cada proyecto autoinstrumentado +- [Tempo ](https://grafana.com/oss/tempo/) con un frontend y caching habilitado +- Un bucket S3 como backend de Tempo
- ## Start using OpenTelemetry + ## Empieza a usar OpenTelemetry -To start using OpenTelemetry, you need to install the addon. Then go to the Project list page, activate the project Instrumentation using the small white icon at the left of the name of the project. +Para empezar a usar OpenTelemetry, instala el addon. Luego ve a la página de listado de Proyectos y activa la instrumentación del proyecto usando el pequeño ícono blanco a la izquierda del nombre del proyecto. instrumentation-options -These are the options you can choose from: -| Option | Description | +Estas son las opciones disponibles: +| Opción | Descripción | | ------ | ----------- | -| Enabled | Enable or disable instrumentation on this proyect. | -| Autoinstrumentation | Opt for autoinstrumentation. Read more on Autoinstrumentation and Manual Instrumentation | -| Language | If autoinstrumentation is enabled, this option marks the language of the project. Currently GO, Java, NodeJS, Python and DotNet are available. | -| Sample Rate | If autoinstrumentation is enabled, this option marks the sampling rate, where 0 is none and 1 is all the traces. | +| Enabled | Habilita o deshabilita la instrumentación en este proyecto. | +| Autoinstrumentation | Opta por la autoinstrumentación. Lee más en Autoinstrumentación e Instrumentación manual | +| Language | Si la autoinstrumentación está habilitada, indica el lenguaje del proyecto. Actualmente están disponibles GO, Java, NodeJS, Python y DotNet. | +| Sample Rate | Si la autoinstrumentación está habilitada, indica la tasa de muestreo, donde 0 es ninguna traza y 1 son todas. | -Projects that are instrumented are visible in the Project list page. Marked with a green icon, as in the image: +Los proyectos instrumentados se ven en la página de listado de Proyectos, marcados con un ícono verde, como en la imagen: project-list-with-instrumented-app - \ No newline at end of file + diff --git a/content/docs/es/cluster/index.mdx b/content/docs/es/cluster/index.mdx index 00f1d8876..eef85e46f 100644 --- a/content/docs/es/cluster/index.mdx +++ b/content/docs/es/cluster/index.mdx @@ -75,11 +75,7 @@ Elegir los tipos de instancias correctos depende de los requisitos de tu aplicac ### ¿Cómo maneja SleakOps las actualizaciones de clúster? - -1. Notificamos a los usuarios sobre una nueva versión aproximadamente con 1 mes de anticipación. -2. Actualizamos los clústeres de un grupo de clientes seleccionados. -3. Actualizamos todos los clústeres que no están marcados como de producción. -4. Actualizamos todos los clústeres. +Cuando se planifica un rollout de una nueva versión de Kubernetes para tus clústeres, SleakOps lo agenda como un upgrade en el panel de [Upgrades](/docs/upgrades) y te notifica con anticipación. Desde ahí puedes revisar qué implica la actualización, ejecutarla antes de su fecha programada o moverla dentro de la ventana permitida.
@@ -177,8 +173,6 @@ Aquí están los parámetros que SleakOps te permite personalizar durante la cre | Descripción | Espacio opcional para describir lo que incluye este clúster. | | **Tipo de Arquitectura** | Selecciona el tipo de arquitectura a utilizar durante la creación de tus instancias: (64-Bit) ARM o (64-Bit) X86, según tus necesidades de rendimiento y compatibilidad. Luego podrás crear nuevas instancias usando una arquitectura diferente. | | Producción | **Configuración de Alta Disponibilidad (HA)**: Cuando está habilitada, esta configuración transforma tu clúster en un entorno listo para producción distribuyendo el clúster EKS en múltiples Zonas de Disponibilidad (AZs). Esto proporciona redundancia y tolerancia a fallos, asegurando operaciones ininterrumpidas incluso si una AZ experimenta problemas. Los clústeres de producción también se benefician de monitoreo mejorado, respaldos automatizados y asignación optimizada de recursos para cargas de trabajo críticas. | -| **Memoria Máxima** | Define la memoria máxima que el clúster puede usar a medida que los servicios escalan. El autoscaler provisiona instancias según la demanda, pero esto no significa que el clúster siempre usará la memoria máxima; simplemente define el límite superior para el autoscaler. | -| **CPU Máxima** | Define la CPU máxima que el clúster puede usar a medida que los servicios escalan. El autoscaler provisiona instancias según la demanda, pero esto no significa que el clúster siempre usará la CPU máxima; simplemente define el límite superior para el autoscaler. | Una vez que completes el formulario, haz clic en _Enviar_ para iniciar la creación del clúster en la cuenta seleccionada de AWS. diff --git a/content/docs/es/cluster/nodepools/creating-nodepool.mdx b/content/docs/es/cluster/nodepools/creating-nodepool.mdx index c9f58bf44..e20d6b216 100644 --- a/content/docs/es/cluster/nodepools/creating-nodepool.mdx +++ b/content/docs/es/cluster/nodepools/creating-nodepool.mdx @@ -22,6 +22,10 @@ En la sección de Node Pools, si tienes permisos, encontrarás la opción *Crear Ten en cuenta que la cantidad de Node Pools por clúster puede estar limitada según tu plan. +:::info +No se pueden crear ni editar Node Pools mientras el clúster se está aprovisionando o está apagado. +::: + +:::warning +Cambiar la configuración de cómputo de un Node Pool puede disparar un reemplazo progresivo (rolling) de sus nodos, lo que puede reiniciar brevemente los workloads que corren en él. Si los workloads que ya corren en el pool usan más CPU o memoria que los nuevos límites que estás definiendo, la actualización se rechaza — libera capacidad o reduce esos workloads primero. +::: + ## Eliminar un Node Pool ### 1. Haz clic en el botón de papelera en la parte superior derecha de la tarjeta del Node Pool @@ -50,4 +54,8 @@ Actualiza los parámetros en el modal y haz clic en *Guardar*.

Haz clic en Eliminar para confirmar y activar la acción en SleakOps.

- \ No newline at end of file + + +:::info +No puedes eliminar los Node Pools internos (incluido el de build), el último Node Pool no interno (de cliente) del clúster, ni uno que esté asignado a un Project Environment — reasigna o elimina el environment primero. El clúster también debe estar encendido para poder eliminar un Node Pool. +::: diff --git a/content/docs/es/cluster/shutdown-cluster.mdx b/content/docs/es/cluster/shutdown-cluster.mdx index b15aa2a3b..8173f3af5 100644 --- a/content/docs/es/cluster/shutdown-cluster.mdx +++ b/content/docs/es/cluster/shutdown-cluster.mdx @@ -10,6 +10,8 @@ import { FiExternalLink } from "react-icons/fi"; Es la capacidad de apagar todos los recursos de tu cluster en un horario programado para evitar incurrir en costos durante ese período de tiempo. Cuando esta función está activada, podrás encender o apagar tu cluster en cualquier momento, incluso fuera del horario programado que hayas configurado. +Cuando tu cluster se vuelve a encender, SleakOps restaura exactamente los mismos Node Pools que tenía antes de apagarse. + :::warning Cuando tu cluster está APAGADO, no podrás ejecutar Builds, Deploys u otras acciones que requieran recursos del cluster para ejecutarse. ::: @@ -42,6 +44,10 @@ Debajo verás un cuadro que muestra las 'Generated Cron Expressions (UTC)', que ## ¿Cómo puedo apagar mi cluster en cualquier momento? +:::info +El encendido/apagado manual solo está disponible una vez que el Apagado Programado fue configurado para el cluster. Si no lo configuraste, SleakOps te va a pedir que definas un horario antes de poder apagarlo. +::: + Para apagar un cluster, simplemente haz clic en el botón *Stop* y confirma la acción. Esta acción solo puede realizarse en clusters con estado *Activo*. diff --git a/content/docs/es/domain/delegation.mdx b/content/docs/es/domain/delegation.mdx index 4d5753cff..24864deb2 100644 --- a/content/docs/es/domain/delegation.mdx +++ b/content/docs/es/domain/delegation.mdx @@ -228,40 +228,25 @@ sequenceDiagram participant ALB as AWS ALB U->>S: Crear Alias: api.external.com - S-->>U: Proporcionar Registros de Validación de Certificado - U->>DNS: Agregar Registros CNAME de Validación - DNS-->>S: Certificado Validado ✅ + S-->>U: Reutiliza el certificado de external.com (sin validación) S-->>U: Proporcionar Endpoint ALB U->>DNS: Agregar CNAME al ALB DNS->>ALB: Tráfico Enrutado ALB-->>U: Servicio Accesible ``` -#### Para Validación de Certificado SSL - -1. **Sleakops proporciona registros de validación** - - Verás registros CNAME para validación de certificado - - Ejemplo: - -``` -_acme-challenge.api.external.com → _validation123.acme.aws.com -``` - -2. **Agregar registros de validación a tu DNS** - - Ve a la zona alojada de `external.com` (en Sleakops o donde sea que se administre) - - Agrega los registros CNAME exactamente como se muestra - - Esperar validación del certificado (usualmente 5-15 minutos) +Como `api.external.com` es un subdominio directo de un dominio que Sleakops ya gestiona en la misma cuenta, reutiliza el certificado de ese dominio — no hay un paso de validación SSL propio. Si el dominio padre pertenece a otra cuenta, el alias obtiene su propio certificado con registros de validación manuales. #### Para Enrutamiento de Tráfico -3. **Sleakops proporciona endpoint ALB** +1. **Sleakops proporciona endpoint ALB** - Verás el nombre DNS del ALB: ``` ALB: my-alb-123456.us-east-1.elb.amazonaws.com ``` -4. **Crear registro CNAME** +2. **Crear registro CNAME** - Ve a tu administración DNS para `external.com` - Crear un registro CNAME: @@ -272,7 +257,7 @@ Valor: my-alb-123456.us-east-1.elb.amazonaws.com TTL: 300 ``` -5. **Verificar** +3. **Verificar** - Probar el dominio: `curl https://api.external.com` - Debería devolver la respuesta de tu servicio @@ -420,6 +405,17 @@ graph TD 3. Remover cualquier registro DNS en conflicto 4. Esperar 15-30 minutos para propagación DNS 5. Revisar DNS: `dig _acme-challenge.tudominio.com` +6. Si la validación falla por una política CAA, Sleakops muestra el registro CAA exacto a agregar (ej. `0 issue "amazon.com"`) en la sección Certificate del dominio — agrégalo y vuelve a verificar + +--- + +### El alias es rechazado al crearlo + +**Problema:** Crear un alias falla con un error de formato de dominio + +**Soluciones:** +1. Usa un dominio de nivel superior (TLD) de 6 caracteres o menos (ej. `.com`, `.io`, `.dev`) — TLDs más largos no están soportados actualmente para alias +2. Los alias con wildcard (`*.dominio.com`) no están soportados desde el panel — crea subdominios explícitos en su lugar --- diff --git a/content/docs/es/domain/index.mdx b/content/docs/es/domain/index.mdx index d1e1e9a05..87ece3cb8 100644 --- a/content/docs/es/domain/index.mdx +++ b/content/docs/es/domain/index.mdx @@ -110,10 +110,10 @@ Configuración de dominio sin configuración. Cada servicio obtiene automáticam **Lo que hace Sleakops:** ### Escenario A: El dominio coincide con una zona alojada existente -Si `dominio-externo.com` ya es un Proveedor o Entorno en Sleakops: -- ✅ Proporciona registros DNS para validación de certificado SSL +Si el alias es un subdominio directo de un dominio ya gestionado por Sleakops como Proveedor o Entorno **en la misma cuenta** (ej. `api.dominio-externo.com` bajo `dominio-externo.com`): +- ✅ Reutiliza el certificado de ese dominio automáticamente — no necesita validación SSL propia (un padre en otra cuenta no cuenta: el alias obtiene entonces su propio certificado con validación manual, como en el Escenario B) - ✅ Proporciona nombre ALB para configuración DNS -- ⚠️ Tú configuras los registros DNS por tu cuenta +- ⚠️ De todas formas debes crear el registro CNAME (o A/ALIAS para un dominio raíz) que apunte al ALB ### Escenario B: El dominio no coincide con ninguna zona alojada Si `cualquiera.com` es completamente externo: diff --git a/content/docs/es/domain/setup.mdx b/content/docs/es/domain/setup.mdx index 5253d244f..3cfc9d3c2 100644 --- a/content/docs/es/domain/setup.mdx +++ b/content/docs/es/domain/setup.mdx @@ -30,7 +30,7 @@ En este caso, mantienes el control total sobre tu dominio y subdominios sin dele Si deseas usar un dominio diferente al principal o tener múltiples dominios apuntando al mismo servicio, necesitarás crear un ALIAS: -- Si el ALIAS pertenece a un dominio gestionado por SleakOps, se gestionará automáticamente. +- Si el ALIAS es un subdominio directo de un dominio ya gestionado por SleakOps **en la misma cuenta**, reutiliza el certificado de ese dominio automáticamente — de todas formas debes crear el registro CNAME que apunte al load balancer. Si el dominio padre pertenece a otra cuenta, el alias obtiene su propio certificado con registros de validación manuales. - Si no, deberás crear manualmente: - Un registro CNAME para validar el certificado SSL. - Un registro adicional para cada ALIAS. @@ -70,7 +70,7 @@ Para acceder a ella, hay diferentes maneras según lo que necesites hacer: a. Accede a la lista de Workloads y luego a la sección Web Services. b. Selecciona una ejecución y haz clic en el botón de tres puntos. c. Elige la opción Detalle. - d. Crea el Alias si no existe haciendo clic en Asociar Nuevo Dominio y completa el formulario. + d. Crea el Alias si no existe haciendo clic en Asociar Nuevo Dominio y completa el formulario (el formulario incluye una opción de deploy, marcada por defecto, que redespliega el servicio de inmediato para empezar a servir el dominio nuevo — si la desmarcas, el alias se guarda sin desplegar y tendrás que desplegar los proyectos afectados tú mismo para que tome efecto). e. Haz clic en el dominio del Alias para mostrar el detalle. @@ -101,4 +101,34 @@ Para acceder a ella, hay diferentes maneras según lo que necesites hacer: src="/img/domain/domain-info-check-delegation-and-certificate.png" alt="domain-info-check-delegation-and-certificate" /> - \ No newline at end of file + + +## FAQs + +
+ +### ¿Puedo renombrar un dominio alias? + +No — los nombres de dominio son inmutables una vez creados. Elimina el alias y crea uno nuevo con el nombre correcto. +
+ +
+ +### ¿Puedo eliminar un dominio de Environment o Provider desde el panel de Domains? + +Solo los dominios alias pueden eliminarse directamente desde el panel. Los dominios de Environment y Provider se eliminan automáticamente al eliminar el Environment o Provider correspondiente. +
+ +
+ +### Mi alias muestra "Cert. Pending" aunque esperaba que estuviera activo + +Si tu alias es un subdominio directo de un dominio ya gestionado por SleakOps en la misma cuenta, reutiliza el certificado de ese dominio en lugar de emitir uno propio — el panel muestra esto como "Cert. Pending" sin importar si el certificado del padre ya está activo. Revisa el estado del dominio padre para confirmar que el certificado es válido. +
+ +
+ +### Terminé la configuración DNS pero el dominio todavía no sirve tráfico + +Una vez emitido el certificado de tu dominio, SleakOps encola un deployment para aplicarlo a tu Environment o servicio. Revisa la sección de Deployments por una aprobación pendiente — aprobarla (o crear el alias con la opción de deploy activada) es lo que hace que el dominio quede realmente activo. +
\ No newline at end of file diff --git a/content/docs/es/environment/index.mdx b/content/docs/es/environment/index.mdx index aedbb6c36..43f6e28d0 100644 --- a/content/docs/es/environment/index.mdx +++ b/content/docs/es/environment/index.mdx @@ -29,7 +29,7 @@ Antes de crear un Entorno, lee [Diseñando tu Infraestructura: Esquema Simple vs ### ¿Puedo editar un Entorno? -No. Debes eliminarlo y crear uno nuevo. +Solo su dominio, usando la acción Cambiar Dominio descrita más abajo. El resto de la configuración queda fija después de la creación — para cambiar el nombre o el clúster, elimina el Entorno y crea uno nuevo.
@@ -44,7 +44,7 @@ Accede a la Lista de Entornos, en la columna de Acciones, haz clic en el ícono ### ¿Cómo puedo delegar un dominio? Sigue: [Delegar Dominios](/docs/domain/setup). -
+ :::warning Configuración DNS Requerida @@ -80,6 +80,43 @@ Con tu [Account](/docs/provider/accounts) seleccionada, accederás al siguiente | --- | --- | | **Nombre** | Define un nombre para tu Entorno utilizando letras en minúscula y guiones medios. | | **Cluster** | Selecciona uno de los clústeres disponibles para alojar el nuevo Entorno. | -| **Dominio** | Especifica el dominio para tu Entorno. | +| **Dominio** | Especifica el dominio para tu Entorno. Se autocompleta como `{nombre}.{tudominio.com}` mientras no lo edites a mano. | + +:::info Entorno raíz +Ingresa el dominio base de tu proveedor en lugar de un subdominio (por ejemplo, `tudominio.com` en vez de `qa.tudominio.com`) para que este sea el entorno raíz: sirve ese dominio directamente, sin subdominio. Un proveedor solo puede tener un entorno raíz, y debe pertenecer a tu cuenta de Producción. +::: + +Una vez que hayas completado el formulario, haz clic en *Crear* para iniciar la creación del Entorno en el clúster seleccionado. + +## Clona un Entorno + +Clonar duplica un Entorno — sus proyectos y, opcionalmente, sus servicios, dependencias y grupos de variables — en un Entorno nuevo, incluso en otro clúster u otra cuenta. Úsalo para levantar una copia de un Entorno existente sin reconstruirlo desde cero. + +{/* TODO: screenshot - Formulario de Clonado de Entorno */} + +Desde la Lista de Entornos, usa la acción Clone (disponible para Admins y Editors con acceso a clonado) para abrir el formulario de clonado: + +| **Configuración** | **Descripción** | +| --- | --- | +| **Nombre / Dominio** | Mismas reglas que al crear un Entorno; el dominio se autocompleta desde el nombre. | +| **Cluster** | Clúster destino del clon — puede pertenecer a una cuenta distinta a la del Entorno origen. | +| **Nodepool** | Nodepool por defecto opcional para los proyectos clonados; se puede sobrescribir por proyecto. | +| **Proyectos** | Elige qué proyectos clonar. Para cada uno, clona todo o selecciona servicios, dependencias y grupos de variables puntuales. | + +Si no personalizas la selección de un proyecto, se clona completo. El clonado corre en segundo plano: el Entorno nuevo aparece de inmediato, y cada proyecto clonado llega a su estado final a medida que se completa la copia. + +## Cambia el Dominio + +Desde la Lista de Entornos, haz clic en el botón de edición (lápiz) junto al dominio en la columna Domain — disponible cuando el Entorno ya está creado por completo (no mientras sigue en aprovisionamiento). Ingresa el dominio nuevo y confirma. + +Cambiar el dominio actualiza todas las URLs de servicios que apuntaban al dominio viejo y redespliega todos los proyectos del Entorno. El Entorno no funcionará correctamente hasta delegar su DNS al dominio nuevo — mira [Delegar un Dominio](/docs/domain/setup). Si el dominio anterior tenía alias o subdominios apuntando a él, SleakOps te notifica para que los actualices a mano; no se migran automáticamente. + +## Descarga el Checklist de Validación + +Desde la Lista de Entornos o el panel de detalle del Entorno, selecciona View Validation Checklist para generar un reporte en Markdown del estado actual del Entorno — un checklist para el go-live. Por cada proyecto, lista ítems a verificar (rama, build, CI/CD) más una sección por tipo de recurso presente — servicios web (con su URL), workers, cronjobs (con su horario), hooks (con su trigger), dependencias y grupos de variables — con links de vuelta al panel, y un link a la [Guía de Pruebas Exhaustivas de Entornos](/tutorial/environment-exhaustive-testing-guide). Puedes previsualizarlo en un diálogo o descargarlo como archivo `.md`. + +## Exporta un Entorno + +Desde el panel de detalle del Entorno, usa Export para descargar un archivo `.json` con todos los proyectos del Entorno y sus recursos (servicios, dependencias, grupos de variables), en un formato reutilizable para recrear la misma configuración en otra cuenta, empresa o Entorno — a diferencia de Clone, el export no está limitado a la misma empresa. -Una vez que hayas completado el formulario, haz clic en *Crear* para iniciar la creación del Entorno en el clúster seleccionado. \ No newline at end of file +Los valores de las variables no se incluyen en el export (deberás volver a completarlos al reutilizar el archivo), y los grupos de variables de tipo `file` se omiten; un mensaje al finalizar la descarga lista lo que quedó afuera. Export está deshabilitado para Viewers y solo disponible cuando el Entorno está Created (o en estado Error). \ No newline at end of file diff --git a/content/docs/es/network/index.mdx b/content/docs/es/network/index.mdx index 53b0836d5..4db37aa22 100644 --- a/content/docs/es/network/index.mdx +++ b/content/docs/es/network/index.mdx @@ -16,7 +16,7 @@ Esta documentación tiene como objetivo brindar una visión clara y sencilla de La infraestructura de red en SleakOps se basa en los siguientes componentes principales: -- **VPC (Virtual Private Cloud):** Segmenta la red por entorno (Management, Production, Development). +- **VPC (Virtual Private Cloud):** Segmenta la red por entorno (Management, Production, Development), cada uno en su propia cuenta de AWS dedicada con un rango de IP fijo por defecto. - **Subredes:** - *Públicas:* expuestas a Internet. - *Privadas:* acceso restringido, acceden a Internet a través de un NAT Gateway. @@ -27,6 +27,14 @@ La infraestructura de red en SleakOps se basa en los siguientes componentes prin - **DNS Interno:** Permite que los recursos se comuniquen usando nombres en vez de IPs. - **External-DNS:** Servicio que corre dentro de cada clúster Kubernetes (EKS), encargado de gestionar automáticamente los registros DNS públicos en Route53 para los servicios expuestos desde el clúster. +Cada VPC de entorno usa un bloque CIDR fijo por defecto: + +| **Entorno** | **CIDR por defecto** | +| --- | --- | +| Management | `10.120.0.0/16` | +| Development | `10.110.0.0/16` | +| Production | `10.130.0.0/16` | + ## 2. Flujo típico de comunicación El siguiente es un ejemplo de cómo viaja el tráfico en la red de SleakOps: @@ -61,11 +69,11 @@ Se utiliza una solución automatizada para gestionar los registros DNS públicos ## 4. Conectividad entre entornos mediante VPC Peering -Para permitir la comunicación controlada entre entornos (por ejemplo, entre Management y Production), SleakOps configura **conexiones VPC Peering** de manera explícita entre las VPCs de los distintos entornos. +SleakOps configura **conexiones VPC Peering** en una topología hub-and-spoke centrada en la cuenta de Management: Management se conecta directamente con Development y con Production, pero Development y Production no están conectadas entre sí. - Un **VPC Peering** permite que dos VPCs puedan intercambiar tráfico interno como si estuvieran en la misma red. - **No requiere** pasar por Internet, NAT Gateway ni VPN. - Es una conexión directa entre dos redes. -> 💡 Además del acceso mediante Internet Gateway, SleakOps contempla otros mecanismos de conectividad como **Pritunl VPN**, **NAT Gateway** y **Transit Gateway**, dependiendo del caso de uso y el nivel de aislamiento requerido. +> 💡 Además del acceso mediante Internet Gateway, SleakOps contempla otros mecanismos de conectividad como [**Pritunl VPN**](/docs/user/vpn) (se aprovisiona por cuenta de AWS junto con su primer cluster, para dar acceso administrativo a recursos privados) y **NAT Gateway**, dependiendo del caso de uso y el nivel de aislamiento requerido. diff --git a/content/docs/es/powered-ai/autodiagnostic.mdx b/content/docs/es/powered-ai/autodiagnostic.mdx index b80873c16..fa69c6250 100644 --- a/content/docs/es/powered-ai/autodiagnostic.mdx +++ b/content/docs/es/powered-ai/autodiagnostic.mdx @@ -35,13 +35,24 @@ En lugar de correlacionar manualmente logs, eventos de Kubernetes y estado de in La acción **Diagnosticar** aparece en las páginas de detalle de recursos individuales cuando hay un problema que analizar: -- Deployments y releases -- Proyectos y servicios +- Clusters +- Servicios y Workers - Dependencias +- Deployments y releases +- Builds Una vez activado, el diagnóstico se abre como una conversación en la sección **Support** (`/support/`), donde podés revisar el análisis de causa raíz y hacer preguntas de seguimiento a la IA. +
+ +### ¿Los Autodiagnósticos verifican la compatibilidad antes de un upgrade de Kubernetes? + +Sí, para las migraciones de **EKS Cluster Upgrade** (ver [Upgrades](/docs/upgrades)). Su vista de detalle incluye un chequeo de **Unmanaged Manifests Readiness**: revisa los recursos que desplegaste por fuera de SleakOps — Helm releases propias y manifiestos extra — contra la versión de Kubernetes a la que estás actualizando, y marca todo lo que dependa de APIs deprecadas o removidas, con una acción recomendada para cada caso. + +Este chequeo es específico de las migraciones EKS Cluster Upgrade — el resto de los tipos de migración no lo incluye. +
+
### ¿Qué analiza la IA? diff --git a/content/docs/es/powered-ai/conversation.mdx b/content/docs/es/powered-ai/conversation.mdx index ba89f9d38..eece12f56 100644 --- a/content/docs/es/powered-ai/conversation.mdx +++ b/content/docs/es/powered-ai/conversation.mdx @@ -41,11 +41,11 @@ Podés preguntar cualquier cosa sobre los recursos que administra SleakOps: - "¿Por qué falló el último deployment?" - "¿Qué servicios están consumiendo más memoria ahora mismo?" -- "Mostrame todas las variables de entorno del entorno de producción" -- "¿Qué cambió en el cluster en las últimas 24 horas?" +- "¿Qué pods están fallando en el cluster de producción?" +- "¿Qué eventos hubo recientemente en el cluster?" - "Generá un reporte de salud para el entorno de staging" -La IA obtiene datos en tiempo real de tu cuenta de SleakOps para responder, así que las respuestas reflejan el estado real de tu infraestructura. +Cuando el acceso a la infraestructura en vivo está habilitado para tu compañía — se está habilitando progresivamente durante la Alpha — la IA obtiene datos de solo lectura de tu cuenta de AWS y tus clusters de Kubernetes, así que las respuestas reflejan el estado real de tu infraestructura. En caso contrario, responde desde la base de conocimiento de SleakOps.
@@ -61,12 +61,12 @@ Pensá en los Reportes como resúmenes estructurados y reutilizables, y en el Ch ### ¿La IA ejecuta acciones por mí? -No. El Chat de Infraestructura es de solo lectura. Recupera información, genera diagnósticos y hace recomendaciones, pero no ejecuta comandos ni modifica tu infraestructura. Todas las acciones son explícitas y requieren tu confirmación a través de los flujos estándar de SleakOps. +No. El Chat de Infraestructura es de solo lectura. Recupera información, genera diagnósticos y hace recomendaciones, pero no puede modificar tu infraestructura — el rol de AWS y el acceso a Kubernetes que utiliza solo permiten operaciones de lectura. Cualquier cambio en tu infraestructura sigue pasando por los flujos estándar de SleakOps.
### ¿Qué contexto tiene la IA? -La IA tiene acceso al estado de la infraestructura visible para tu usuario de SleakOps: recursos, configuraciones, logs, eventos e historial de deployments. No tiene acceso al código fuente de tu aplicación ni a los datos almacenados en tus dependencias (bases de datos, S3, etc.) — solo a la capa de infraestructura que administra SleakOps. +La IA tiene acceso de solo lectura al estado de la infraestructura de tu cuenta de AWS: recursos, configuraciones, logs, eventos e historial de deployments. No puede leer tus secretos — los Secrets de Kubernetes, AWS Secrets Manager, KMS y los parámetros de SSM están explícitamente bloqueados — y no tiene acceso al código fuente de tu aplicación ni al contenido de tus bases de datos. Solo ve la capa de infraestructura que administra SleakOps.
diff --git a/content/docs/es/powered-ai/dockertron.mdx b/content/docs/es/powered-ai/dockertron.mdx index d0926daaa..17fdfead9 100644 --- a/content/docs/es/powered-ai/dockertron.mdx +++ b/content/docs/es/powered-ai/dockertron.mdx @@ -35,18 +35,15 @@ Dockertron está actualmente en **Beta**. El flujo central de generación es est ### ¿Dónde encuentro Dockertron? -Dockertron es accesible desde **Projects** en la barra lateral principal. Navegá a **Projects → Dockertron Executions** (`/dockertron/`). La página lista todas las ejecuciones anteriores con su repositorio, rama, estado y fecha de creación. - -Hacé clic en **Dockertron IA** para iniciar una nueva ejecución. +Dockertron no tiene una entrada propia en la barra lateral. Accedé desde **Projects**: hacé clic en **Dockertron IA** en el encabezado de la página, o — cuando la tabla de Projects está vacía — usá el aviso **"No Docker setup in your project? Generate one automatically."**. Ambos caminos te llevan a la página de Dockertron en `/dockertron`, que lista tus ejecuciones anteriores (repositorio, rama, estado y fecha de creación) y es donde iniciás una nueva. También hay un banner **Configure your project with Dockertron AI** en el formulario de creación de proyecto.
### ¿Cómo inicio una ejecución de Dockertron? -1. Navegá a **Projects → Dockertron Executions** en la barra lateral. -2. Hacé clic en **Dockertron IA**. -3. Completá el formulario de dos pasos: +1. Desde **Projects**, hacé clic en **Dockertron IA** en el encabezado (o en el aviso **"No Docker setup in your project?"** cuando la tabla está vacía), y luego iniciá una nueva ejecución desde la página de Dockertron. +2. Completá el formulario de dos pasos:
@@ -91,12 +88,12 @@ Dockertron funciona con cualquier lenguaje y framework — vos proporcionás el ### ¿Cuánto tarda una ejecución? -Generalmente entre 5 y 30 minutos dependiendo del tamaño y la complejidad del repositorio. Recibirás una notificación cuando el Pull Request esté listo. +Generalmente entre 5 y 30 minutos dependiendo del tamaño y la complejidad del repositorio. El estado no se actualiza automáticamente, así que volvé a la página o esperá la notificación — que se envía tanto si la ejecución termina bien como si falla — para ver el resultado.
### ¿Puedo modificar los archivos generados? -Sí. Todo lo que genera Dockertron llega como un Pull Request — podés revisar, editar y solicitar cambios antes de hacer el merge. Los archivos generados son configuración Docker estándar, así que podés ajustarlos como cualquier otro Dockerfile o docker-compose. +Sí. Revisá los archivos generados desde la página de detalle de la ejecución y editalos como cualquier configuración estándar de Docker. Si la creación de Pull Request está habilitada en la plataforma, también podés solicitar cambios directamente en el PR antes de hacer el merge.
diff --git a/content/docs/es/powered-ai/index.mdx b/content/docs/es/powered-ai/index.mdx index b079211c2..6ff022b42 100644 --- a/content/docs/es/powered-ai/index.mdx +++ b/content/docs/es/powered-ai/index.mdx @@ -31,7 +31,7 @@ SleakOps integra inteligencia artificial directamente en tu flujo de trabajo de

Dockertron

-

Del repositorio a una aplicación desplegada sin escribir un solo archivo de configuración. La IA genera todo por vos.

+

Del repositorio a infraestructura lista para desplegar sin escribir un solo archivo de configuración. La IA genera la base — vos revisás y creás cada recurso con un clic.

Más información diff --git a/content/docs/es/project/access_config.mdx b/content/docs/es/project/access_config.mdx index 70660d8f9..c7abf7782 100644 --- a/content/docs/es/project/access_config.mdx +++ b/content/docs/es/project/access_config.mdx @@ -17,6 +17,10 @@ La Configuración de Acceso te permite extender los permisos de tu proyecto otor 3. Configura las dependencias externas y políticas adicionales según sea necesario 4. Haz clic en **Aplicar cambios** para guardar tu configuración +:::info +Para aplicar cambios el proyecto debe estar en estado **Created** o **Error**. Mientras se aplica el cambio, el proyecto muestra el estado **Updating**. +::: + diff --git a/content/docs/es/project/build/index.mdx b/content/docs/es/project/build/index.mdx deleted file mode 100644 index 8bdb25000..000000000 --- a/content/docs/es/project/build/index.mdx +++ /dev/null @@ -1,91 +0,0 @@ ---- -sidebar_position: 6 ---- -import { FiExternalLink } from "react-icons/fi"; - - -# Build - -Hemos hablado repetidamente sobre el Build tanto en la [Documentación de Proyectos](/docs/project) como en la [Documentación del Build Inicial](/docs/project). Un build es básicamente una plantilla de un sistema operativo, bibliotecas y otras dependencias del proyecto que despliegas. - -### Creación del Build - -Para crear un Build solo necesitas cuatro parámetros; solo el campo **Proyecto** es obligatorio, ya que los otros tres, si no se configuran, esperan hasta que este acceso se habilite automáticamente y se eligen por defecto: -- **Proyecto**: Se refiere a lo que llamamos ProjectEnv. Aquí eliges el ProjectEnv que deseas construir. -- **Branch**: Te permite elegir cualquier rama del repositorio que hayas elegido como Proyecto. Por defecto, se utiliza el nombre del Entorno. -- **Commit hash**: También puedes elegir el hash del commit para construir un commit específico y no el último, como lo hacemos por defecto. Por defecto, se utiliza el último commit. -- **Tag**: Un tag para diferenciar los builds. Por defecto, es 'latest'. - -## ¿Por qué necesitamos crear una imagen Docker? - -Dado que utilizamos [Helm charts ](https://helm.sh/docs/), necesitamos la imagen porque es lo que utilizan para desplegar un Kubernetes Release. - -:::info - -Recuerda que necesitas un Build para actualizar el código que se ejecuta dentro del Kubernetes Cluster en el Deployment. - -::: -:::tip Integración CI/CD con SleakOps - -SleakOps tiene su propia herramienta de línea de comandos (CLI) que puedes usar para automatizar Builds y Deployments en tu CI/CD. Más información [aquí](/docs/cli). - -::: - -## Recursos de Build y Deploy - -Los recursos de build y deploy son los componentes de infraestructura que SleakOps crea y gestiona para soportar los procesos de construcción y despliegue de tu aplicación. Estos recursos se aprovisionan automáticamente en tu cuenta de AWS y son esenciales para el pipeline de CI/CD. - -### Recursos de Build - -Cuando creas un build, SleakOps aprovisiona los siguientes recursos: - -#### AWS ECR (Elastic Container Registry) -- **Propósito**: Almacena tus imágenes Docker y Helm charts -- **Ubicación**: Creado automáticamente en la cuenta de AWS de tu proyecto -- **Nomenclatura**: Las imágenes se nombran según tu ProjectEnv (entorno + nombre del proyecto) -- **Acceso**: Gestionado a través de cuentas de servicio de SleakOps y roles IAM - -#### Entorno de Construcción Kaniko -- **Propósito**: Ejecuta construcciones Docker en un entorno seguro y containerizado -- **Características**: - - No requiere daemon de Docker - - Proceso de construcción seguro - - Optimizado para entornos de Kubernetes -- **Configuración**: Configurado automáticamente basado en tu Dockerfile y argumentos de construcción - -### Recursos de Deploy - -Durante el despliegue, SleakOps gestiona estos recursos: - -#### Almacenamiento de Helm Chart -- **Ubicación**: Almacenado en el mismo repositorio ECR que tus imágenes -- **Versionado**: Cada despliegue crea una nueva versión del Helm chart -- **Plantillas**: Generadas basadas en las configuraciones de tus cargas de trabajo - -#### Recursos de Kubernetes -- **Namespace**: Namespace dedicado para tu ProjectEnv -- **Service Account**: Gestiona permisos para tus cargas de trabajo -- **Secrets**: Creados automáticamente para variables de entorno y datos sensibles -- **ConfigMaps**: Almacenan datos de configuración no sensibles - -### Gestión de Recursos - -#### Limpieza Automática -- **Imágenes Antiguas**: SleakOps gestiona automáticamente las políticas de retención de imágenes -- **Builds Fallidos**: Los recursos de builds fallidos se limpian automáticamente -- **Recursos Huérfanos**: Los procesos de limpieza regulares eliminan recursos no utilizados - -#### Monitoreo de Recursos -- **Estado del Build**: Rastrea el progreso del build e identifica fallos -- **Uso de Recursos**: Monitorea el almacenamiento ECR y el consumo de recursos de construcción -- **Seguimiento de Costos**: Ve los costos asociados con los recursos de build y deploy - -:::info Propiedad de Recursos -Todos los recursos de build y deploy se crean en tu propia cuenta de AWS. SleakOps no almacena ningún dato exclusivamente - todo permanece bajo tu control y propiedad. -::: - -:::tip Optimización de Recursos -- Usa tags de imagen apropiados para gestionar versiones de imagen -- Revisa y limpia regularmente imágenes no utilizadas -- Monitorea los costos de almacenamiento ECR y configura políticas de ciclo de vida si es necesario -::: \ No newline at end of file diff --git a/content/docs/es/project/build_resources.mdx b/content/docs/es/project/build_resources.mdx index e3e8b0317..cebbe3d78 100644 --- a/content/docs/es/project/build_resources.mdx +++ b/content/docs/es/project/build_resources.mdx @@ -22,7 +22,7 @@ La configuración de Recursos de Deploy Build te permite especificar las solicit Accede a la configuración de Recursos de Deploy Build: 1. Navega a **Proyecto** → **Configuración** -2. Selecciona **Deploy Build Resources** del menú de configuración +2. Selecciona **Deploy and Build Resources** del menú de configuración 3. Configura los valores de recursos según los requisitos de tu proyecto 4. Haz clic en **Save** para aplicar los cambios @@ -80,7 +80,7 @@ Este es un problema común cuando se trabaja con: Si estás experimentando fallos en builds o deployments debido a restricciones de recursos, puedes aumentar los recursos asignados: 1. Navega a **Proyecto** → **Configuración** en la interfaz de SleakOps -2. Selecciona **Deploy Build Resources** del menú de configuración +2. Selecciona **Deploy and Build Resources** del menú de configuración 3. Aumenta los valores para el recurso que está causando problemas: - **Build Request CPU**: Aumenta si los builds son lentos o sufren throttling de CPU - **Build Request Memory**: Aumenta si los builds fallan con errores OOMKilled diff --git a/content/docs/es/project/chart/chart_dependencies.mdx b/content/docs/es/project/chart/chart_dependencies.mdx index 173d4c47b..8c27d8f76 100644 --- a/content/docs/es/project/chart/chart_dependencies.mdx +++ b/content/docs/es/project/chart/chart_dependencies.mdx @@ -33,6 +33,7 @@ Para agregar una nueva Dependencia de Chart, haz clic en el botón **Crear** en 1. **Buscar y Seleccionar**: Usa los primeros dos campos para buscar el nombre del chart y seleccionar la versión deseada 2. **Configurar Valores**: Modifica la sección de valores abajo para personalizar el despliegue 3. **Establecer Tolerations**: **Crítico** - Actualiza todos los campos `tolerations` en los valores del chart para apuntar a tu NodePool +4. **Deploy**: dejá **Deploy?** activado para desplegar el cambio de inmediato, o desactivalo para guardarlo como cambio pendiente diff --git a/content/docs/es/project/chart/extra_templates.mdx b/content/docs/es/project/chart/extra_templates.mdx index 4c5129171..1c6ebb872 100644 --- a/content/docs/es/project/chart/extra_templates.mdx +++ b/content/docs/es/project/chart/extra_templates.mdx @@ -20,6 +20,10 @@ Los Extra Templates te permiten desplegar recursos personalizados de Kubernetes Dado que SleakOps utiliza NodePools para la ubicación de recursos, todos los recursos personalizados deben incluir la configuración adecuada de `tolerations` apuntando a un NodePool existente. ::: +:::info Requisito de Namespace +Cada plantilla debe establecer explícitamente `metadata.namespace` con el namespace de tu Proyecto, como en el ejemplo de abajo. Un namespace faltante o distinto hace que la plantilla se rechace, igual que un recurso cluster-scoped. +::: + ## Desplegando un Ingress Personalizado Para desplegar un Ingress personalizado, agrega tu configuración YAML de Kubernetes en la sección **Templates**. Aquí tienes un ejemplo completo que puedes usar como punto de partida: diff --git a/content/docs/es/project/chart/index.mdx b/content/docs/es/project/chart/index.mdx index 2ed71a1fc..1d847f5cf 100644 --- a/content/docs/es/project/chart/index.mdx +++ b/content/docs/es/project/chart/index.mdx @@ -31,6 +31,8 @@ SleakOps utiliza NodePools para determinar dónde se despliegan los recursos. De /> +Guardar cambios redespliega el Proyecto de inmediato por defecto. Desactivá el interruptor **Deploy?** antes de guardar para retener el cambio en vez de desplegarlo enseguida. + ## Valores por Defecto SleakOps aplica automáticamente valores por defecto a sus Charts. Puedes ver estos valores haciendo clic en el área designada: @@ -95,7 +97,6 @@ Valores que se aplican a todo el Proyecto: ### ¿Puedo modificar las plantillas existentes de Kubernetes Service? - No, la modificación de plantillas integradas de SleakOps no está soportada - actualmente. Estamos trabajando en habilitar modificaciones a las plantillas - integradas en futuras versiones. + No, modificar las plantillas integradas de SleakOps no está soportado. Usá + [**Extra Templates**](/docs/project/chart/extra_templates) para agregar recursos junto a ellas.
diff --git a/content/docs/es/project/configure_your_dockerfile.mdx b/content/docs/es/project/configure_your_dockerfile.mdx index 3351c5052..9832eb8bc 100644 --- a/content/docs/es/project/configure_your_dockerfile.mdx +++ b/content/docs/es/project/configure_your_dockerfile.mdx @@ -59,13 +59,13 @@ Puedes añadirlos siguiendo los pasos descritos a continuación. ### 1. Accede a la configuración de tu project 1. **Completa la Ruta del Dockerfile:** Para habilitar que SleakOps busque los argumentos necesarios, especifica la Ruta del Dockerfile y guarda los cambios. SleakOps analizará tu Dockerfile y mostrará los argumentos de construcción requeridos para que los proporciones. -| **Ruta del Dockerfile** | El Dockerfile es un componente crítico utilizado para construir tu project en un contenedor. El campo de Ruta del Dockerfile requiere la ruta relativa al Dockerfile dentro del repositorio (por ejemplo, /Dockerfile, /src/Dockerfile o /app/Dockerfile). Este archivo contiene las instrucciones necesarias para crear la imagen del contenedor, que SleakOps construirá y usará posteriormente para los despliegues. | +| **Ruta del Dockerfile** | El Dockerfile es un componente crítico utilizado para construir tu project en un contenedor. El campo de Ruta del Dockerfile requiere la ruta relativa al Dockerfile dentro del repositorio (por ejemplo, ./Dockerfile, ./src/Dockerfile o ./app/Dockerfile). Si tu integración de repositorio es GitLab, omite el ./ inicial (por ejemplo, Dockerfile). Este archivo contiene las instrucciones necesarias para crear la imagen del contenedor, que SleakOps construirá y usará posteriormente para los despliegues. | | --- | --- | 2. **Agrega Argumentos Antes de Guardar:** Si ya conoces los argumentos requeridos, puedes ingresarlos antes de guardar. Esto te permite proporcionar los valores necesarios desde el principio en lugar de esperar a que SleakOps analice el Dockerfile. :::tip - Si eliges agregar los argumentos utilizando la opción de texto: Cada argumento debe añadirse en una nueva línea, separado por un signo igual (`=`), sin espacios adicionales. + Si eliges agregar los argumentos utilizando la opción **Textmode**: agrega cada argumento en una línea propia con el formato `KEY=VALUE` (los espacios alrededor del signo igual se ignoran). Para valores multilínea, como claves privadas, envuelve el valor entre comillas dobles. ARGUMENT_NAME = VALUE ARGUMENT_TWO = VALUE diff --git a/content/docs/es/project/dependency/aurora-mysql-aws.mdx b/content/docs/es/project/dependency/aurora-mysql-aws.mdx index 48aba58ae..e7b5e5a4e 100644 --- a/content/docs/es/project/dependency/aurora-mysql-aws.mdx +++ b/content/docs/es/project/dependency/aurora-mysql-aws.mdx @@ -142,9 +142,12 @@ Aquí están los parámetros que SleakOps te permite personalizar durante la cre | **Capacidad Máxima de Aurora** | *(Solo Serverless)* Unidades de Capacidad Máxima de Aurora (1-256). Cada unidad ≈ 2GB RAM. | | **Crear un RDS desde un snapshot** | Marca esto si restauras desde un snapshot de base de datos. | | **Identificador del Snapshot** | *(Requerido si restauras desde snapshot)* Identificador del snapshot RDS desde el cual restaurar. | +| **Restore From Point In Time** | Crea el clúster restaurado a un momento específico (o al punto restaurable más reciente) de una base de datos origen, en vez de arrancar vacío. Mutuamente excluyente con restaurar desde snapshot. | | **Período de Retención de Respaldo** | Número de días (1-35) para los cuales se mantienen los respaldos automáticos. | | **Ventana de Respaldo** | Período para respaldos automatizados en formato HH:MM-HH:MM (UTC). | -| **Réplicas de Lectura** | Configuración para réplicas de lectura de la base de datos. Cada réplica requiere un nombre y configuración de acceso público. | +| **Réplicas de Lectura** | Configuración para réplicas de lectura de la base de datos. Cada réplica requiere un nombre y configuración de acceso público; también se pueden agregar, editar o quitar más adelante desde el formulario de edición. | +| **Parameter Group Mode** | Deja el default del motor, definí parámetros de motor personalizados gestionados por SleakOps, o adjuntá un cluster parameter group existente por nombre. | +| **Deletion Protection** | Bloquea el borrado accidental — se activa desde el formulario de edición después de crear la dependencia; mientras está habilitada, no puede eliminarse hasta que la desactives. | ### 3. Personaliza el nombre de tus variables para tu clúster Aurora MySQL. diff --git a/content/docs/es/project/dependency/aurora-postgresql-aws.mdx b/content/docs/es/project/dependency/aurora-postgresql-aws.mdx index ef3155d9c..df189e375 100644 --- a/content/docs/es/project/dependency/aurora-postgresql-aws.mdx +++ b/content/docs/es/project/dependency/aurora-postgresql-aws.mdx @@ -103,6 +103,13 @@ Aurora PostgreSQL ofrece varias ventajas: - **Compatibilidad**: Compatible con PostgreSQL con cambios mínimos de código +
+ +### ¿SleakOps puede restaurar un dump automáticamente? + +Sí. Desde el menú **Actions** de la dependencia, ejecuta **Restore Database**: indica un archivo de dump en S3 y elige la base de datos de destino (cualquier dependencia PostgreSQL o Aurora PostgreSQL del mismo Project-Environment que esté en estado `created`, incluso una distinta de la que abriste el menú). SleakOps corre la restauración como un Job y puedes seguir su progreso desde *Jobs*. +
+ :::info Documentación de AWS: [Documentación de Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraPostgreSQL.html) ::: @@ -138,7 +145,11 @@ Aquí están los parámetros que SleakOps te permite personalizar durante la cre | **Capacidad Máxima de Aurora** | Unidades de Capacidad Máxima de Aurora (1-256) para el clúster serverless. Cada unidad es aproximadamente igual a 2GB de RAM. Esto previene que el clúster escale más allá de los límites de tu presupuesto mientras permite la optimización del rendimiento. | | **Período de Retención de Respaldo** | Número de días (1-35) para los cuales se mantienen los respaldos automáticos. Aurora PostgreSQL respalda automáticamente tu base de datos y almacena los respaldos en Amazon S3. Períodos de retención más largos proporcionan más opciones de recuperación pero aumentan los costos de almacenamiento. | | **Ventana de Respaldo** | Período de tiempo para respaldos automatizados en formato HH:MM-HH:MM (UTC). Elige un momento cuando la actividad de tu base de datos típicamente sea baja para minimizar el impacto en el rendimiento. Aurora realiza respaldos durante esta ventana sin afectar tu aplicación. | -| **Réplicas de Lectura** | Configuración para réplicas de lectura de la base de datos para mejorar el rendimiento de lectura y proporcionar disponibilidad adicional. Cada réplica requiere un nombre único y puede configurarse como públicamente accesible o privada. Las réplicas de lectura ayudan a distribuir el tráfico de lectura y proporcionan capacidades de conmutación por error. | +| **Réplicas de Lectura** | Configuración para réplicas de lectura de la base de datos para mejorar el rendimiento de lectura y proporcionar disponibilidad adicional. Cada réplica requiere un nombre único y puede configurarse como públicamente accesible o privada. Las réplicas de lectura ayudan a distribuir el tráfico de lectura y proporcionan capacidades de conmutación por error, y se pueden agregar, editar o quitar más adelante desde el formulario de edición. | +| **Create Aurora cluster from a snapshot** | Restaura el nuevo clúster desde un identificador de snapshot existente en vez de arrancar vacío. | +| **Restore From Point In Time** | Crea el clúster restaurado a un momento específico (o al punto restaurable más reciente) de una base de datos origen, en vez de arrancar vacío. Mutuamente excluyente con restaurar desde snapshot. | +| **Parameter Group Mode** | Deja el default del motor, definí parámetros de motor personalizados gestionados por SleakOps, o adjuntá un cluster parameter group existente por nombre. | +| **Deletion Protection** | Bloquea el borrado accidental — se activa desde el formulario de edición después de crear la dependencia; mientras está habilitada, no puede eliminarse hasta que la desactives. | ### 3. Personaliza el nombre de tus variables para tu clúster Aurora PostgreSQL. diff --git a/content/docs/es/project/dependency/faqs.mdx b/content/docs/es/project/dependency/faqs.mdx index 73960265f..23f2c29a8 100644 --- a/content/docs/es/project/dependency/faqs.mdx +++ b/content/docs/es/project/dependency/faqs.mdx @@ -47,3 +47,23 @@ Es simplemente una plantilla de configuración por defecto. Elegir una u otra pr Sí. Solo editá la dependencia después de crearla y ajustá los parámetros (tamaño de instancia, backups, Multi AZ, etc.) según tus necesidades de producción. No es necesario crear una nueva ni migrar datos manualmente. + +
+ + +### **Mi dependencia muestra "Confirm changes" / está "Awaiting Approval" — ¿qué significa?** + + +Cuando una edición se detecta como potencialmente destructiva (por ejemplo, un cambio que reemplazaría o eliminaría un recurso de AWS subyacente) o implica un upgrade de versión mayor del motor, SleakOps la retiene para que la confirmes en vez de aplicarla de inmediato. Abrí la dependencia y elegí **Apply Changes** (continuar con la edición) o **Revert Changes** (descartarla y mantener la configuración anterior — no se ejecuta nada sobre la infraestructura). + +
+ +
+ + +### **¿Puedo copiar una dependencia a otro Proyecto o Cuenta?** + + +Sí, usá **Clone** desde el menú de acciones de la dependencia. Pre-completa una nueva dependencia con la misma configuración y te deja elegir el Project-Environment de destino, incluso en otra cuenta. + +
diff --git a/content/docs/es/project/dependency/index.mdx b/content/docs/es/project/dependency/index.mdx index 3783b5588..f13838c87 100644 --- a/content/docs/es/project/dependency/index.mdx +++ b/content/docs/es/project/dependency/index.mdx @@ -20,7 +20,9 @@ Una dependencia en el contexto de SleakOps se refiere a cualquier infraestructur Aquí está la lista actualizada de dependencias incluidas en SleakOps: 1. **Bases de Datos** - - **Amazon RDS**: Bases de datos relacionales gestionadas como MySQL, PostgreSQL, y otras. + - **Amazon RDS**: Bases de datos relacionales gestionadas — PostgreSQL, MySQL, MariaDB y Oracle. + - **Amazon Aurora**: Clusters compatibles con PostgreSQL y MySQL, con escalado automático de almacenamiento. + - **Amazon DocumentDB**: Base de datos de documentos gestionada, compatible con MongoDB. 2. **Servicios de Caché** - **Amazon ElastiCache para Redis**: Almacén de datos en memoria para cachear datos frecuentemente accedidos. - **Amazon ElastiCache para Memcached**: Servicio de caché en memoria para mejorar el rendimiento y reducir la carga de la base de datos. @@ -31,6 +33,7 @@ Aquí está la lista actualizada de dependencias incluidas en SleakOps: 5. **Colas de Mensajes** - **Amazon SQS**: Servicio de colas de mensajes completamente gestionado que permite desacoplar componentes y mejorar la escalabilidad y confiabilidad de las aplicaciones. - **RabbitMQ**: Un broker de mensajes de código abierto ampliamente utilizado que facilita la mensajería confiable y la integración entre componentes de aplicaciones. + - **Amazon MSK**: Apache Kafka gestionado para pipelines de datos en streaming. Estas dependencias se integran perfectamente con SleakOps, proporcionando un conjunto completo de servicios de AWS y de código abierto para mejorar la funcionalidad, el rendimiento y la escalabilidad de tu aplicación. @@ -61,7 +64,7 @@ Accede a la sección *Dependency Listing* y haz clic en la opción de eliminar. ### ¿Qué sucede cuando elimino una dependencia? Al eliminar una dependencia, SleakOps eliminará toda la información relacionada con ella, y todo lo que dependa de esta dejará de funcionar. Para resolver esto, SleakOps crea un Deployment con el estado PENDING_APPROVAL, que debe ejecutarse manualmente lo antes posible para evitar tiempos de inactividad. -En caso de eliminar una base de datos, SleakOps generará una instantánea final antes de su eliminación. +En caso de eliminar una base de datos, SleakOps generará una instantánea final antes de su eliminación. Si la dependencia tiene habilitada la *Deletion Protection*, primero debés deshabilitarla — SleakOps bloquea la eliminación hasta que lo hagas. ## Agregar una dependencia a tu proyecto @@ -104,70 +107,12 @@ Para continuar, elige entre las siguientes guías: [S3 Bucket](/docs/project/dependency/s3bucket-aws). [MySQL](/docs/project/dependency/mysql-aws). [PostgreSQL](/docs/project/dependency/postgresql-aws). +[MariaDB](/docs/project/dependency/mariadb-aws). +[Oracle](/docs/project/dependency/oracle-aws). +[Aurora MySQL](/docs/project/dependency/aurora-mysql-aws). +[Aurora PostgreSQL](/docs/project/dependency/aurora-postgresql-aws). [Redis](/docs/project/dependency/redis-aws). [Memcached](/docs/project/dependency/memcached-aws). [OpenSearch](/docs/project/dependency/opensearch-aws). -[SQS](/docs/project/dependency/sqs-aws). - -## Acceso a Dependencias - -El acceso a dependencias se refiere a los mecanismos de seguridad y conectividad que permiten que las cargas de trabajo de tu aplicación interactúen de forma segura con dependencias externas. SleakOps gestiona automáticamente estos patrones de acceso para asegurar una comunicación segura entre tus servicios y sus dependencias. - -### Gestión de Acceso - -#### Configuración Automática de Service Account -Cuando creas una dependencia, SleakOps automáticamente: -- **Crea roles IAM** con permisos apropiados para el tipo específico de dependencia -- **Configura service accounts** en tu namespace de Kubernetes -- **Establece conexiones seguras** entre tus cargas de trabajo y la dependencia -- **Gestiona credenciales** a través de secrets de Kubernetes y roles IAM - -#### Seguridad de Red -- **Integración VPC**: Las dependencias se crean dentro de la VPC de tu proyecto para acceso seguro de red -- **Security Groups**: Configurados automáticamente para permitir el tráfico necesario entre servicios -- **Endpoints Privados**: Las dependencias usan endpoints privados cuando están disponibles para minimizar la exposición - -### Patrones de Acceso - -#### Acceso a Base de Datos -Para dependencias de base de datos (MySQL, PostgreSQL, etc.): -- **Cadenas de Conexión**: Generadas automáticamente y almacenadas como secrets de Kubernetes -- **Autenticación**: Gestionada a través de roles IAM y credenciales específicas de la base de datos -- **SSL/TLS**: Las conexiones encriptadas se configuran por defecto -- **Connection Pooling**: Gestión optimizada de conexiones para mejor rendimiento - -#### Acceso a Cache -Para servicios de caché (Redis, Memcached): -- **Configuración de Endpoint**: Configurada automáticamente en el entorno de tu aplicación -- **Autenticación**: Acceso seguro a través de roles IAM y credenciales específicas del servicio -- **Políticas de Red**: Acceso restringido solo a cargas de trabajo autorizadas - -#### Acceso a Almacenamiento -Para servicios de almacenamiento (S3, etc.): -- **Políticas de Bucket**: Configuradas automáticamente con acceso de menor privilegio -- **Permisos IAM**: Las service accounts reciben solo los permisos necesarios -- **Access Keys**: Gestionadas a través de roles IAM de AWS para mayor seguridad - -### Mejores Prácticas de Seguridad - -#### Principio de Menor Privilegio -- **Permisos Mínimos**: Las dependencias reciben solo los permisos mínimos requeridos -- **Acceso Específico de Recursos**: El acceso se limita a recursos específicos cuando es posible -- **Auditorías Regulares**: SleakOps proporciona herramientas para revisar y auditar el acceso a dependencias - -#### Gestión de Credenciales -- **Rotación Automática**: Las credenciales se rotan automáticamente cuando es posible -- **Almacenamiento Seguro**: Todas las credenciales se almacenan como secrets de Kubernetes -- **Sin Secrets Hardcodeados**: Las aplicaciones acceden a dependencias a través de variables de entorno - -:::info Monitoreo de Acceso -SleakOps proporciona capacidades de monitoreo y logging para rastrear patrones de acceso a dependencias, ayudándote a identificar posibles problemas de seguridad y optimizar el rendimiento. -::: - -:::tip Resolución de Problemas de Acceso -Si encuentras problemas de acceso con dependencias: -1. Verifica el estado de la dependencia en la consola de SleakOps -2. Confirma que tu carga de trabajo tiene la service account correcta -3. Revisa los permisos del rol IAM para la dependencia -4. Verifica la conectividad de red y configuraciones de security groups -::: \ No newline at end of file +[SQS](/docs/project/dependency/sqs-aws). +[MSK](/docs/project/dependency/msk-aws). diff --git a/content/docs/es/project/dependency/mariadb-aws.mdx b/content/docs/es/project/dependency/mariadb-aws.mdx index 664b6664f..f1db1426b 100644 --- a/content/docs/es/project/dependency/mariadb-aws.mdx +++ b/content/docs/es/project/dependency/mariadb-aws.mdx @@ -130,6 +130,8 @@ Aquí están los parámetros que SleakOps te permite personalizar durante la cre | **Contraseña Maestra de la Base de Datos** | Contraseña para el usuario maestro. Requerida si auto-generar está deshabilitado. Debe tener al menos 8 caracteres y no puede contener caracteres @, ', ", o /. | | **Crear un RDS desde un snapshot** | Marca esto si restauras desde un snapshot de base de datos. Cuando está habilitado, necesitarás proporcionar el identificador del snapshot y algunos campos se vuelven de solo lectura. | | **Identificador del Snapshot** | *(Requerido si restauras desde snapshot)* Identificador del snapshot RDS desde el cual restaurar. Esto te permite restaurar tu base de datos desde un punto de respaldo anterior. | +| **Restore From Point In Time** | Crea la base de datos restaurada a un momento específico (o al punto restaurable más reciente) de una base de datos origen, en vez de arrancar vacía. Mutuamente excluyente con restaurar desde snapshot. | +| **Parameter Group Mode** | Deja el default del motor, definí parámetros de motor personalizados gestionados por SleakOps, o adjuntá un parameter group existente por nombre. | | **Clase de Instancia de la Base de Datos** | Define la clase de instancia que especifica la configuración de hardware para tu base de datos MariaDB. Elige entre tipos de instancia t4g/t3 (rendimiento burstable) o m7i/m8g (optimizado para memoria). Esto controla el rendimiento de CPU, memoria y red. | | **Almacenamiento de la Base de Datos** | Especifica la cantidad de almacenamiento asignado para la base de datos en GiB (20-6144 GB). MariaDB usa almacenamiento SSD de propósito general por defecto. Esta es la asignación de almacenamiento inicial para tu base de datos. | | **Auto-escalado de Almacenamiento Habilitado** | Habilita el escalado automático de almacenamiento para la instancia RDS. Cuando está habilitado, AWS aumentará automáticamente el almacenamiento cuando sea necesario, hasta el límite máximo de almacenamiento asignado. | @@ -138,7 +140,8 @@ Aquí están los parámetros que SleakOps te permite personalizar durante la cre | **Respaldo Automatizado** | Habilita respaldos automáticos para la instancia RDS. Cuando está habilitado, MariaDB realizará snapshots diarios y respaldos de logs de transacciones, proporcionando capacidades de recuperación punto en el tiempo. | | **Período de Retención de Respaldo** | *(Requerido si el respaldo automatizado está habilitado)* Número de días (1-35) para los cuales se mantienen los respaldos automáticos. Períodos de retención más largos proporcionan más opciones de recuperación pero aumentan los costos de almacenamiento. | | **Ventana de Respaldo** | *(Requerido si el respaldo automatizado está habilitado)* Período de tiempo para respaldos automatizados en formato HH:MM-HH:MM (UTC). Elige un momento cuando la actividad de tu base de datos típicamente sea baja para minimizar el impacto en el rendimiento. | -| **Réplicas de Lectura** | *(Requerido si el respaldo automatizado está habilitado)* Configuración para réplicas de lectura de la base de datos para mejorar el rendimiento de lectura y proporcionar disponibilidad adicional. Cada réplica requiere un nombre, clase de instancia y configuración de acceso público. | +| **Réplicas de Lectura** | *(Requerido si el respaldo automatizado está habilitado)* Configuración para réplicas de lectura de la base de datos para mejorar el rendimiento de lectura y proporcionar disponibilidad adicional. Cada réplica requiere un nombre, clase de instancia y configuración de acceso público. También se pueden agregar, editar o quitar más adelante desde el formulario de edición. | +| **Deletion Protection** | Bloquea el borrado accidental — mientras está habilitada, la dependencia no puede eliminarse hasta que la desactives. | ### 3. Personaliza el nombre de tus variables para tu base de datos MariaDB. diff --git a/content/docs/es/project/dependency/memcached-aws.mdx b/content/docs/es/project/dependency/memcached-aws.mdx index b4c54edbd..7cc65d87b 100644 --- a/content/docs/es/project/dependency/memcached-aws.mdx +++ b/content/docs/es/project/dependency/memcached-aws.mdx @@ -18,7 +18,7 @@ SleakOps integra Amazon ElastiCache con Memcached, un servicio de caché en memo - **Rendimiento**: Excelente para caché distribuido y de alta velocidad en aplicaciones con muchas lecturas. :::info -Para más información sobre Memcached y sus capacidades, puedes consultar la [documentación oficial de AWS Redis. ](https://aws.amazon.com/elasticache/memcached/). +Para más información sobre Memcached y sus capacidades, puedes consultar la [documentación oficial de AWS Memcached. ](https://aws.amazon.com/elasticache/memcached/). ::: ## Preguntas Frecuentes @@ -73,7 +73,7 @@ Los datos cacheados en Memcached son volátiles, lo que significa que se perder ### 1. Agrega AWS Memcached como una dependencia Para integrar Memcached con SleakOps: 1. En la consola de SleakOps, ve a la sección "Dependencies". -2. Elige "AWS Redis" de la lista de tipos de dependencias disponibles. +2. Elige "Memcached" de la lista de tipos de dependencias disponibles. Para más detalles, consulta [Dependencies: Integrating Databases, Caching, and Messaging Services](/docs/project/dependency). ### 2. Configura tu base de datos Memcached @@ -89,9 +89,9 @@ Al agregar Memcached como una dependencia en SleakOps, necesitas configurar vari | **Atributo** | **Descripción** | | --- | --- | -| **Node Type** | Clase de instancia que determina el rendimiento y la capacidad de memoria de la instancia de Redis. Ejemplos: `cache.t3.micro`, `cache.m5.large`, `cache.r6g.large`. | -| **Nodes Quantity** | Define la cantidad de nodos Memcached para la escalabilidad horizontal. Agregar más nodos aumenta la escalabilidad. Ejemplo: 1 o más. | -| **Port** | El puerto de comunicación utilizado por Redis para interactuar con tu aplicación. Predeterminado: `11121` (puede personalizarse). | +| **Node Type** | Clase de instancia que determina el rendimiento y la capacidad de memoria del cluster de Memcached. Ejemplos: `cache.t3.micro`, `cache.m5.large`, `cache.r5.large`. | +| **Nodes Quantity** | Define la cantidad de nodos Memcached para la escalabilidad horizontal. Agregar más nodos aumenta la escalabilidad. Ejemplo: 1 o más. Se puede escalar hacia arriba o abajo más adelante desde el formulario de edición. | +| **Port** | El puerto de comunicación utilizado por Memcached para interactuar con tu aplicación. Predeterminado: `11211` (personalizable en la creación; no se puede cambiar después). | ### 3. Personaliza los nombres de tus variables para Memcached diff --git a/content/docs/es/project/dependency/msk-aws.mdx b/content/docs/es/project/dependency/msk-aws.mdx index 9955940d1..c7cc31934 100644 --- a/content/docs/es/project/dependency/msk-aws.mdx +++ b/content/docs/es/project/dependency/msk-aws.mdx @@ -130,10 +130,11 @@ Aquí están los parámetros que SleakOps te permite personalizar durante la cre | **Atributo** | **Descripción** | | --- | --- | | **Modo de Despliegue** | Elige entre **Provisioned** (capacidad fija, control completo sobre la configuración) o **Serverless** (auto-escalado, pago por uso para cargas de trabajo variables). El modo Provisioned es ideal para cargas de trabajo consistentes con requisitos de rendimiento específicos, mientras que Serverless es perfecto para desarrollo y patrones de tráfico variables. | -| **Versión de Kafka** | *(Requerido para modo Provisioned)* Selecciona la versión específica de Apache Kafka para tu clúster MSK. Elige entre las versiones 2.8.1, 3.2.0, 3.3.2, 3.4.0, o 3.5.1. Cada versión incluye características específicas de Kafka, mejoras de rendimiento y actualizaciones de seguridad. | +| **Versión de Kafka** | *(Requerido para modo Provisioned)* Selecciona la versión específica de Apache Kafka para tu clúster MSK. Elige entre las versiones 3.6.0, 3.7.x, 3.8.x, o 3.9.x. Cada versión incluye características específicas de Kafka, mejoras de rendimiento y actualizaciones de seguridad. | | **Tipo de Instancia** | *(Requerido para modo Provisioned)* Define el tipo de instancia que especifica la configuración de hardware para tus brokers Kafka. Elige entre tipos de instancia t3 (rendimiento burstable) o m5 (propósito general). Esto controla el rendimiento de CPU, memoria y red para tus cargas de trabajo de streaming. | | **Nodos Broker** | *(Requerido para modo Provisioned)* Número de nodos broker en tu clúster MSK (2-15 nodos). Usa 2 nodos para entornos de desarrollo. Para producción, usa 3 o más nodos (debe ser múltiplo de 3) para asegurar alta disponibilidad y tolerancia a fallos. Más nodos proporcionan mejor rendimiento y disponibilidad. | -| **Tamaño de Almacenamiento (GB)** | *(Requerido para modo Provisioned)* Tamaño de almacenamiento en GB por nodo broker (1-16384 GB). Esto determina cuántos datos puede almacenar localmente cada broker. Considera tus requisitos de retención de datos y necesidades de throughput al establecer este valor. | +| **Tamaño de Almacenamiento (GB)** | *(Requerido para modo Provisioned)* Tamaño de almacenamiento en GB por nodo broker (1-16384 GB). Esto determina cuántos datos puede almacenar localmente cada broker. Considera tus requisitos de retención de datos y necesidades de throughput al establecer este valor. Solo se puede aumentar más adelante. | +| **Autenticación de Cliente** | *(Solo para modo Provisioned; por defecto `unauthorized`)* Cómo se autentican los clientes ante el clúster: `unauthorized` (solo cifrado TLS), `iam` (SASL/IAM usando roles de AWS IAM), o `scram` (SASL/SCRAM-SHA-512 con usuario y contraseña). | ### 3. Personaliza el nombre de tus variables para tu clúster MSK. diff --git a/content/docs/es/project/dependency/mysql-aws.mdx b/content/docs/es/project/dependency/mysql-aws.mdx index 6138583d5..e9850b815 100644 --- a/content/docs/es/project/dependency/mysql-aws.mdx +++ b/content/docs/es/project/dependency/mysql-aws.mdx @@ -29,14 +29,14 @@ El despliegue Multi-AZ (Zona de Disponibilidad) garantiza alta disponibilidad y ### ¿Puedo cambiar la versión de MySQL después de desplegar la base de datos? -No, la versión del motor de la base de datos no puede cambiarse después del despliegue. Necesitarías crear una nueva instancia de MySQL con la versión deseada y migrar tus datos. O cambiarlo manualmente en la Consola de AWS. +Sí, editá la dependencia y elegí una nueva **Versión del Motor de Base de Datos**. Actualizar a una nueva versión mayor se trata como un cambio potencialmente destructivo: SleakOps lo retiene en "Awaiting Approval" para que lo confirmes antes de aplicarlo.
### ¿Qué hago si necesito más almacenamiento para mi base de datos MySQL? -Puedes ajustar el tamaño de almacenamiento al configurar tu base de datos. Si necesitas más almacenamiento después del despliegue, puedes escalar modificando la configuración en AWS, ya que por el momento SleakOps no lo permite. +Puedes ajustar el tamaño de almacenamiento al configurar tu base de datos, y aumentarlo más adelante desde el formulario de edición. También podés habilitar **Storage Autoscaling** para que AWS aumente el almacenamiento automáticamente hasta un máximo que definas.
@@ -129,7 +129,7 @@ En SleakOps, al crear una réplica de lectura para tu base de datos RDS, necesit **¿Puedo eliminar una réplica?** -Actualmente, la única forma de hacerlo es eliminando la dependencia. +Sí, editá la dependencia y quitala de la lista **Definición de Réplicas de Lectura RDS**.
:::info @@ -157,21 +157,22 @@ Aquí están los parámetros que SleakOps te permite personalizar durante la cre | **Atributo** | **Descripción** | | --- | --- | -| **Versión del Motor de Base de Datos** | Selecciona la versión específica del motor de base de datos MySQL que deseas usar. Esto asegura compatibilidad con los requerimientos de tu aplicación. Ejemplo: `MySQL 8.0.2`, `MySQL 5.7.1`. | +| **Versión del Motor de Base de Datos** | Selecciona la versión específica del motor de base de datos MySQL que deseas usar. Esto asegura compatibilidad con los requerimientos de tu aplicación. | | **Clase de Instancia de Base de Datos** | Define la clase de instancia que especifica la configuración de hardware para tu base de datos MySQL. Esto controla el rendimiento de CPU, memoria y red. Ejemplo: `db.m6g.large`, `db.t3.medium`. Consulta más detalles en [AWS](https://aws.amazon.com/es/rds/instance-types/). | -| **Almacenamiento de Base de Datos** | Especifica la cantidad de almacenamiento asignado para la base de datos. Ejemplo: 100 GB, 500 GB. | +| **Almacenamiento de Base de Datos** | Especifica la cantidad de almacenamiento asignado para la base de datos, en GiB. | +| **Storage Autoscaling Enabled** | Permite que AWS aumente el almacenamiento automáticamente a medida que se llena, hasta un **Maximum Allocated Storage** que definas. | | **Nombre de Usuario** | Proporciona el nombre de usuario maestro para la base de datos MySQL. Este es el usuario principal con privilegios administrativos. Ejemplo: admin, root. | -| **Contraseña** | Contraseña para que el usuario maestro acceda a la base de datos. | +| **Contraseña** | Contraseña para que el usuario maestro acceda a la base de datos, o generala automáticamente. | | **Zona de Disponibilidad Múltiple** | Activa o desactiva la implementación Multi-AZ. Esto asegura alta disponibilidad y soporte de conmutación por error replicando la base de datos en múltiples zonas de disponibilidad. Recomendado para entornos de producción. | | **Copia de Seguridad Automática** | Configura copias de seguridad automáticas para la base de datos MySQL. Esto asegura la protección de los datos activando instantáneas diarias y copias de seguridad del registro de transacciones. Configura el _Periodo de Retención de Copias de Seguridad_ y la _Ventana de Copias de Seguridad_. Recomendado para entornos de producción. | | **Periodo de Retención de Copias de Seguridad** | Define el número de días para retener copias de seguridad automáticas. | | **Ventana de Copias de Seguridad** | Periodo de tiempo en el que se realizarán las copias de seguridad. | +| **Parameter Group Mode** | Deja el default del motor, definí parámetros de motor personalizados gestionados por SleakOps, o adjuntá un parameter group existente por nombre. | +| **Restore From Point In Time** | Crea la base de datos restaurada a un momento específico (o al punto restaurable más reciente) de una base de datos origen, en vez de arrancar vacía. Mutuamente excluyente con restaurar desde un snapshot. | +| **Create a RDS from a snapshot** | Restaura la nueva base de datos desde un snapshot de RDS existente en vez de arrancar vacía. | +| **Deletion Protection** | Bloquea el borrado accidental — mientras está habilitada, la dependencia no puede eliminarse hasta que la desactives. | -:::warning -SleakOps solo permite la creación de réplicas durante la creación de la dependencia. -::: - -Después de ingresar los datos básicos, necesitas decidir si se creará una réplica. Para hacerlo: +Después de ingresar los datos básicos, necesitas decidir si se creará una réplica. Las réplicas también se pueden agregar, editar o quitar más adelante desde el formulario de edición. Para hacerlo: 1. En el formulario, busca la sección **Definición de Réplicas de Lectura RDS** y haz clic en + _Añadir Elemento_. 2. Completa los siguientes datos: diff --git a/content/docs/es/project/dependency/opensearch-aws.mdx b/content/docs/es/project/dependency/opensearch-aws.mdx index 4637b6273..5409567c6 100644 --- a/content/docs/es/project/dependency/opensearch-aws.mdx +++ b/content/docs/es/project/dependency/opensearch-aws.mdx @@ -40,7 +40,7 @@ Para entornos de producción, SleakOps recomienda usar 3 nodos maestros dedicado ### 1. Agrega AWS OpenSearch como una Dependencia Para integrar OpenSearch con SleakOps: 1. En la consola de SleakOps, ve a la sección "Dependencias". -2. Elige "SQS" de la lista de tipos de dependencias disponibles. +2. Elige "OpenSearch" de la lista de tipos de dependencias disponibles. Para más detalles, consulta [Dependencias: Integrando Bases de Datos, Caché y Servicios de Mensajería](/docs/project/dependency). ### 2. Configura tu OpenSearch. @@ -55,16 +55,15 @@ Al agregar OpenSearch como una dependencia en SleakOps, necesitas configurar var | **Atributo** | **Descripción** | | --- | --- | -| **Cola FIFO** | Especifica el tipo de cola SQS: `Standard Queue` (para la mayoría de los casos) o `FIFO Queue` (si se requiere orden de mensajes). | -| **Desduplicación FIFO** | Solo para Colas FIFO, para evitar duplicados. | -| **Periodo de Retención de Mensajes** | Especifica la cantidad de tiempo que un mensaje será retenido en la cola si no ha sido consumido. | De 1 minuto a 14 días (Por defecto: 4 días). | -| **Tamaño Máximo de Mensaje** | El tamaño máximo de un mensaje que puede ser enviado a la cola SQS. | Hasta 256 KB (Por defecto: 256 KB). | -| **Retraso en la Entrega en Segundos** | El retraso entre el envío de un mensaje a SQS y su visibilidad en la cola. Sin retraso por defecto. | De 0 a 15 minutos (Por defecto: 0 segundos). | -| **Tiempo de Espera para Recibir Mensajes** | Determina cuánto tiempo esperará una llamada `ReceiveMessage` si no hay mensajes disponibles en la cola. | De 0 a 20 segundos (Por defecto: 0 segundos). | -| **Timeout de Visibilidad** | La duración durante la cual un mensaje permanece invisible después de que un componente lo lea desde la cola. | De 0 a 12 horas (Por defecto: 30 segundos). | -| **Cola de Mensajes Fallidos (DLQ)** | Agrega una cola donde los mensajes que fallan en ser procesados múltiples veces son enviados para análisis adicional. | Configura DLQ con un conteo máximo de intentos. | +| **Domain Name** | Nombre del dominio de OpenSearch. | +| **Engine Version** | Versión de OpenSearch que correrá en el dominio. | +| **Number Of Availability Zones** | En cuántas Zonas de Disponibilidad se distribuyen los nodos de datos del dominio. | +| **Instance Type** | Tipo de instancia usado para los nodos de datos. Determina el rendimiento de CPU, memoria y red. | +| **Nodes Per Availability Zone** | Cantidad de nodos de datos a correr en cada Zona de Disponibilidad. | +| **EBS Storage Size Per Node** | Tamaño de almacenamiento por nodo de datos, en GiB (10-2048 GiB). | +| **Dedicated Master Enabled** | Agrega nodos maestros dedicados que gestionan el clúster por separado de los nodos de datos, mejorando la estabilidad. Recomendado para producción. Al habilitarlo, configurá el **Dedicated Master Count** (3 o 5 — 3 recomendado para producción) y el **Dedicated Master Type**. | -### 3. Personaliza los nombres de tus variables para tu SQS. +### 3. Personaliza los nombres de tus variables para tu OpenSearch. Como se explicó, cuando se crea una dependencia, SleakOps genera un grupo de variables (vargroup) para contener todos los atributos necesarios. En este paso, puedes cambiar el nombre de los atributos si es necesario. @@ -73,7 +72,7 @@ Después de este paso, tu dependencia está creada. sqs-create-outputs \ No newline at end of file diff --git a/content/docs/es/project/dependency/oracle-aws.mdx b/content/docs/es/project/dependency/oracle-aws.mdx index 42b9ed363..5bfd4661b 100644 --- a/content/docs/es/project/dependency/oracle-aws.mdx +++ b/content/docs/es/project/dependency/oracle-aws.mdx @@ -40,19 +40,28 @@ SleakOps facilita la integración de bases de datos Oracle a través de Amazon R ### ¿Puedo cambiar la versión de Oracle después de que la base de datos esté desplegada? - No, la versión del motor de base de datos no puede cambiarse después del - despliegue. Necesitarías crear una nueva instancia de Oracle con la versión - deseada y migrar tus datos, o cambiarlo manualmente desde la Consola de AWS. + Sí, edita la dependencia y elige una nueva **Database Engine Version**. + Actualizar a una nueva versión mayor se trata como un cambio potencialmente + destructivo: SleakOps lo retiene en "Awaiting Approval" para que lo + confirmes antes de aplicarlo.
### ¿Qué sucede si necesito más almacenamiento para mi base de datos Oracle? - Puedes ajustar el tamaño del almacenamiento al configurar tu base de datos. Si - necesitas más almacenamiento después del despliegue, puedes escalarlo - modificando la configuración en AWS, ya que SleakOps no lo admite por el - momento. + Puedes ajustar el tamaño del almacenamiento al configurar tu base de datos, y + aumentarlo más adelante desde el formulario de edición. A diferencia de los + demás motores RDS, Oracle no ofrece autoescalado automático de almacenamiento. +
+ +
+ + ### ¿Puedo crear una base de datos Oracle desde un snapshot? + + Todavía no — a diferencia de los demás motores RDS, Oracle no admite + restaurar desde un snapshot. Sí es posible restaurar a un punto en el tiempo + (PITR) desde una base de datos origen.
@@ -135,15 +144,19 @@ Aquí los parámetros que SleakOps te permite personalizar durante la creación: | **Atributo** | **Descripción** | | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Database Engine Version** | Selecciona la versión específica del motor de base de datos Oracle que deseas usar. Esto garantiza compatibilidad con los requisitos de tu aplicación. Ejemplo: `19.0.0.0.ru-2024-01.rur-2024-01.r1` | +| **Database Name** | Nombre de la base de datos por defecto creada dentro de la instancia. No puede ser `db` ni `database`. | +| **Database Engine Version** | Selecciona la versión específica del motor de base de datos Oracle que deseas usar. Esto garantiza compatibilidad con los requisitos de tu aplicación. | | **Database Instance Class** | Define la clase de instancia que especifica la configuración de hardware para tu base de datos Oracle. Esto controla CPU, memoria y rendimiento de red. Ejemplo: `db.m6g.large`, `db.t3.medium`. Ver [detalle en AWS](https://aws.amazon.com/es/rds/instance-types/). | -| **Database Storage** | Especifica la cantidad de almacenamiento asignado para la base de datos. Ejemplo: 100 GB, 500 GB. | +| **Database Storage** | Especifica la cantidad de almacenamiento asignado para la base de datos, en GiB. | | **Username** | Proporciona el nombre de usuario maestro para la base de datos Oracle. Este es el usuario principal con privilegios administrativos. Ejemplo: admin, root. | -| **Password** | Contraseña del usuario maestro para acceder a la base de datos. | +| **Password** | Contraseña del usuario maestro para acceder a la base de datos, o generala automáticamente. | | **Multi-Availability Zone** | Habilita o deshabilita el despliegue Multi-AZ. Esto garantiza alta disponibilidad y soporte de failover replicando la base de datos en múltiples zonas de disponibilidad. Recomendado para entornos de producción. | | **Automated Backup** | Configura copias de seguridad automáticas para la base de datos Oracle. Esto garantiza la protección de datos habilitando snapshots diarios y copias de seguridad de logs de transacciones. Configura el _Backup Retention Period_ y la _Backup Window_. Recomendado para entornos de producción. | | **Backup Retention Period** | Establece el número de días para retener las copias de seguridad automáticas. | | **Backup Window** | Período de tiempo durante el cual se realizará la copia de seguridad. | +| **Restore From Point In Time** | Crea la base de datos restaurada a un momento específico (o al punto restaurable más reciente) de una base de datos origen, en vez de arrancar vacía. | +| **Parameter Group Mode** | Deja el default del motor, define parámetros de motor personalizados gestionados por SleakOps, o adjunta un parameter group existente por nombre. | +| **Deletion Protection** | Bloquea el borrado accidental — mientras está habilitada, la dependencia no puede eliminarse hasta que la desactives. | ### 3. Personaliza el nombre de las variables para tu base de datos Oracle. diff --git a/content/docs/es/project/dependency/postgresql-aws.mdx b/content/docs/es/project/dependency/postgresql-aws.mdx index 169b5a5d0..bbe6b67ed 100644 --- a/content/docs/es/project/dependency/postgresql-aws.mdx +++ b/content/docs/es/project/dependency/postgresql-aws.mdx @@ -5,7 +5,7 @@ import Zoom from "react-medium-image-zoom"; import "react-medium-image-zoom/dist/styles.css"; import { FiExternalLink } from "react-icons/fi"; -# AWS PosgreSQL +# AWS PostgreSQL SleakOps ofrece una integración fluida con Amazon RDS para PostgreSQL, un servicio de base de datos relacional completamente administrado. PostgreSQL es conocido por sus características avanzadas, escalabilidad y rendimiento robusto, lo que lo convierte en una opción preferida para aplicaciones complejas y operaciones intensivas en datos. Al integrar PostgreSQL a través de SleakOps, puedes gestionar eficientemente tus implementaciones de bases de datos y aprovechar el poder del servicio administrado de AWS. @@ -29,7 +29,7 @@ La implementación Multi-AZ (Zona de Disponibilidad) garantiza alta disponibilid ### ¿Puedo cambiar la versión de PostgreSQL después de que la base de datos esté implementada? -No, la versión del motor de base de datos no puede cambiarse después de la implementación. Necesitarías crear una nueva instancia de PostgreSQL con la versión deseada y migrar tus datos. O bien cambiarla manualmente en la consola de AWS. +Sí, editá la dependencia y elegí una nueva **Versión del Motor de Base de Datos**. Actualizar a una nueva versión mayor se trata como un cambio potencialmente destructivo: SleakOps lo retiene en "Awaiting Approval" para que lo confirmes antes de aplicarlo.
@@ -129,7 +129,14 @@ En SleakOps, cuando creas una réplica de lectura para tu base de datos RDS, nec ### ¿Puedo eliminar una réplica? -Por el momento, la única forma es eliminar la dependencia. +Sí, editá la dependencia y quitala de la lista **Definición de Réplicas de Lectura de RDS**. +
+ +
+ +### ¿SleakOps puede restaurar un dump automáticamente? + +Sí. Desde el menú **Actions** de la dependencia, ejecuta **Restore Database**: indica un archivo de dump en S3 y elige la base de datos de destino (cualquier dependencia PostgreSQL o Aurora PostgreSQL del mismo Project-Environment que esté en estado `created`, incluso una distinta de la que abriste el menú). SleakOps corre la restauración como un Job y puedes seguir su progreso desde *Jobs*.
:::info @@ -157,21 +164,23 @@ Estos son los parámetros que SleakOps te permite personalizar durante la creaci | **Atributo** | **Descripción** | | --- | --- | -| **Versión del Motor de Base de Datos** | Selecciona la versión específica del motor de base de datos PostgreSQL que deseas usar. Esto asegura la compatibilidad con los requisitos de tu aplicación. Ejemplo: `PostgreSQL 14.9`, `PostgreSQL 16.5`. | +| **Nombre de Base de Datos** | Nombre de la base de datos por defecto creada dentro de la instancia. No puede ser `db` ni `database`. | +| **Versión del Motor de Base de Datos** | Selecciona la versión específica del motor de base de datos PostgreSQL que deseas usar. Esto asegura la compatibilidad con los requisitos de tu aplicación. Ejemplo: `PostgreSQL 16`, `PostgreSQL 18`. | | **Clase de Instancia de Base de Datos** | Define la clase de instancia que especifica la configuración de hardware para tu base de datos PostgreSQL. Esto controla el rendimiento de CPU, memoria y red. Ejemplo: `db.m6g.large`, `db.t3.medium`. Consulta [detalles de AWS](https://aws.amazon.com/es/rds/instance-types/). | -| **Almacenamiento de Base de Datos** | Especifica la cantidad de almacenamiento asignado para la base de datos. Ejemplo: 100 GB, 500 GB. | +| **Almacenamiento de Base de Datos** | Especifica la cantidad de almacenamiento asignado para la base de datos, en GiB. | +| **Storage Autoscaling Enabled** | Permite que AWS aumente el almacenamiento automáticamente a medida que se llena, hasta un **Maximum Allocated Storage** que definas. | | **Nombre de Usuario** | Proporciona el nombre de usuario principal para la base de datos PostgreSQL. Este es el usuario principal con privilegios administrativos. Ejemplo: admin, root. | -| **Contraseña** | Contraseña para el usuario principal para acceder a la base de datos. | +| **Contraseña** | Contraseña para el usuario principal para acceder a la base de datos, o generala automáticamente. | | **Zona de Disponibilidad Múltiple (Multi-AZ)** | Habilita o deshabilita la implementación Multi-AZ. Esto asegura alta disponibilidad y soporte de conmutación por error al replicar la base de datos en múltiples zonas de disponibilidad. Se recomienda para entornos de producción. | | **Respaldo Automático** | Configura respaldos automáticos para la base de datos PostgreSQL. Esto asegura la protección de datos al habilitar instantáneas diarias y respaldos de registros de transacciones. Configura el _Periodo de Retención de Respaldo_ y la _Ventana de Respaldo_. Se recomienda para entornos de producción. | | **Periodo de Retención de Respaldo** | Establece el número de días para retener los respaldos automáticos. | | **Ventana de Respaldo** | Período de tiempo durante el cual se realizarán los respaldos. | +| **Parameter Group Mode** | Deja el default del motor, definí parámetros de motor personalizados gestionados por SleakOps, o adjuntá un parameter group existente por nombre. | +| **Restore From Point In Time** | Crea la base de datos restaurada a un momento específico (o al punto restaurable más reciente) de una base de datos origen, en vez de arrancar vacía. Mutuamente excluyente con restaurar desde un snapshot. | +| **Create a RDS from a snapshot** | Restaura la nueva base de datos desde un snapshot de RDS existente en vez de arrancar vacía. | +| **Deletion Protection** | Bloquea el borrado accidental — mientras está habilitada, la dependencia no puede eliminarse hasta que la desactives. | -:::warning -SleakOps permite la creación de réplicas solo durante la creación de la dependencia. -::: - -Después de estos datos básicos, necesitarás decidir si se creará una réplica. Para hacerlo: +Después de estos datos básicos, necesitarás decidir si se creará una réplica. Las réplicas también se pueden agregar, editar o quitar más adelante desde el formulario de edición. Para hacerlo: 1. En el formulario, busca la sección **Definición de Réplicas de Lectura de RDS** y haz clic en + _Añadir Elemento_. 2. Completa los siguientes datos: diff --git a/content/docs/es/project/dependency/redis-aws.mdx b/content/docs/es/project/dependency/redis-aws.mdx index 855d86c06..bac3f1ea1 100644 --- a/content/docs/es/project/dependency/redis-aws.mdx +++ b/content/docs/es/project/dependency/redis-aws.mdx @@ -67,8 +67,9 @@ Aquí están los parámetros que SleakOps te permite personalizar durante la cre | **Atributo** | **Descripción** | | --- | --- | -| **Tipo de Nodo** | Clase de instancia que determina el rendimiento y la capacidad de memoria de la instancia Redis. Ejemplos: `cache.t3.micro`, `cache.m5.large`, `cache.r6g.large` | +| **Tipo de Nodo** | Clase de instancia que determina el rendimiento y la capacidad de memoria de la instancia Redis. Ejemplos: `cache.t4g.micro`, `cache.m5.large`, `cache.r6g.large` | | **Puerto** | El puerto de comunicación utilizado por Redis para interactuar con tu aplicación. Por defecto: `6379` (puede ser personalizado) | +| **Cluster Mode** | Habilita el particionamiento horizontal usando un replication group de AWS ElastiCache en lugar de un solo nodo. Al habilitarlo, configurá el **Number of Shards** y los **Replicas per Shard** (`0` para no tener failover automático, `1+` para alta disponibilidad). | ### 3. Personaliza los nombres de tus variables para Redis. diff --git a/content/docs/es/project/dependency/s3bucket-aws.mdx b/content/docs/es/project/dependency/s3bucket-aws.mdx index 419ff64ed..70b1d5718 100644 --- a/content/docs/es/project/dependency/s3bucket-aws.mdx +++ b/content/docs/es/project/dependency/s3bucket-aws.mdx @@ -97,9 +97,13 @@ Al agregar un cubo S3 como dependencia en SleakOps, deberás configurar los sigu | **Atributo** | **Descripción** | | --- | --- | +| **Nombre del Bucket S3** | Nombre global del bucket. Se valida en vivo contra la disponibilidad en S3 mientras escribís; los nombres con puntos son rechazados por esta validación. | | **Lista de Control de Acceso (ACL) de S3** | Especifica el nivel de acceso para el cubo S3 y su contenido. Opciones: `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `log-delivery-write` | +| **Habilitar Versionado** | Conserva cada versión anterior de un objeto. No se puede cambiar después de crear el bucket. | +| **Habilitar Cifrado KMS** | Cifra los objetos del lado del servidor con KMS, usando la clave gestionada por AWS (`aws/s3`). | +| **Habilitar Intelligent-Tiering** | Mueve automáticamente los objetos a clases de almacenamiento más económicas según sus patrones de acceso. Configurá los **Días para Archive Tier** y **Días para Deep Archive Tier** — cuánto tiempo antes de que los objetos pasen a cada nivel. | | **Habilitar CloudFront** | Permite habilitar Amazon CloudFront, una CDN para entregar el contenido del cubo S3 a nivel global. | -| **Alias** | El alias para el cubo S3 o la distribución de CloudFront (por ejemplo, `cdn.mydomain.com`). | +| **Alias** | El alias para el cubo S3 o la distribución de CloudFront (por ejemplo, `cdn.mydomain.com`). Solo disponible cuando la región del proveedor de la cuenta es `us-east-1`. | | **Clase de Precio** | Define el conjunto de ubicaciones de borde globales de CloudFront utilizadas para servir contenido. Opciones: `Usar todas las ubicaciones de borde (mejor rendimiento)`, `Usar solo América del Norte`, `Europa`, `Asia`, `Medio Oriente` y `África`, `Usar solo América del Norte y Europa`. Revisa [Clase de Precios de AWS ](https://aws.amazon.com/cloudfront/pricing/). | | **Encabezados Personalizados** | Encabezados personalizados que CloudFront incluirá en todas las solicitudes enviadas al cubo S3. - Clave: La clave del encabezado, como `X-Custom-Header`. - Valor: El valor que deseas asignar al encabezado, como `MyCustomValue`. | | **Sobrescribir** | Especifica si CloudFront debe sobrescribir los encabezados existentes en las solicitudes del origen. | @@ -137,4 +141,15 @@ Como se explicó, cuando se crea una dependencia, SleakOps genera un vargroup pa En este paso, puedes cambiar el nombre de los atributos si es necesario, pero SleakOps completará los valores automáticamente. -Después de este paso, tu dependencia estará creada. \ No newline at end of file +Después de este paso, tu dependencia estará creada. + +## Importar datos existentes a tu bucket + +Una vez que la dependencia está en estado `created`, su menú **Actions** ofrece dos formas de traer datos desde un bucket existente: + +| **Acción** | **Descripción** | +| --- | --- | +| **Import Bucket** | Copia objetos con `aws s3 sync` desde un bucket origen que indiques. El dueño del bucket origen debe primero otorgar acceso al service-account de tu proyecto — SleakOps te da la bucket policy exacta y un link de CloudFormation quick-create para aplicarla. | +| **AWS DataSync** | Transfiere datos usando AWS DataSync, más adecuado para volúmenes grandes de datos. Requiere un rol IAM dedicado, que creas en tu cuenta mediante el link de CloudFormation quick-create que SleakOps te provee. | + +Ambas acciones corren como un Job en tu clúster y se siguen desde la sección *Jobs*. \ No newline at end of file diff --git a/content/docs/es/project/dependency/sqs-aws.mdx b/content/docs/es/project/dependency/sqs-aws.mdx index d2d60cca8..1f13a08ab 100644 --- a/content/docs/es/project/dependency/sqs-aws.mdx +++ b/content/docs/es/project/dependency/sqs-aws.mdx @@ -24,13 +24,6 @@ Para más detalles sobre SQS y sus beneficios, puedes consultar la [Guía para d 2. Una **Cola FIFO** asegura el orden de los mensajes y entrega exacta una vez. Es adecuada para aplicaciones donde el orden de los mensajes es crucial. -
- -### ¿Qué es la implementación Multi-AZ y debo habilitarla? - -La implementación Multi-AZ (Zona de Disponibilidad) asegura alta disponibilidad y soporte de conmutación por error replicando tu base de datos en otra zona de disponibilidad. Se recomienda para entornos de producción para evitar el tiempo de inactividad. Ten en cuenta que aumenta los costos. -
-
### ¿Qué es una Cola de Muertos (DLQ) y cuándo debo usarla? @@ -66,22 +59,16 @@ Aquí están los parámetros que SleakOps te permite personalizar durante la cre | **Atributo** | **Descripción** | | --- | --- | -| **Fifo Queue** | Selecciona si la cola es estándar o FIFO. Lee más en las preguntas frecuentes. | -| **Fifo Deduplication** | Selecciona si la deduplicación está activada. Lee más en las preguntas frecuentes. | -| **Message Delay Seconds** | Segundos de retraso en la entrega de mensajes en la cola. | -| **Message Max Size** | Límite máximo de bytes por mensaje. | -| **Message Retention Seconds** | Segundos que un mensaje es retenido por SQS. | -| **Receive WaitTime Seconds** | El tiempo que una llamada a ReceiveMessage esperará a que llegue un mensaje (long polling) antes de regresar. | -| **Visibility Timeout Seconds** | Segundos que un mensaje es retenido por SQS. | +| **Fifo Queue** | Selecciona si la cola es estándar o FIFO. Por defecto es FIFO. Lee más en las preguntas frecuentes. | +| **Fifo Deduplication** | Solo para colas FIFO, para evitar mensajes duplicados. | +| **Message Delay Seconds** | Segundos de retraso en la entrega de mensajes en la cola. Por defecto: `0` segundos (sin retraso). | +| **Message Max Size** | Límite máximo de bytes por mensaje. Hasta 256 KiB (por defecto: 256 KiB). | +| **Message Retention Seconds** | Segundos que un mensaje es retenido por SQS si no es consumido. Por defecto: `345600` segundos (4 días). | +| **Receive WaitTime Seconds** | El tiempo que una llamada a ReceiveMessage esperará a que llegue un mensaje (long polling) antes de regresar. De 0 a 20 segundos (por defecto: 10 segundos). | +| **Visibility Timeout Seconds** | El tiempo que un mensaje recibido permanece invisible para otros consumidores. De 0 a 43200 segundos / 12 horas (por defecto: 60 segundos). | | **Dead Letter Queue** | Selecciona si la cola de mensajes muertos está habilitada. Lee más en las preguntas frecuentes. | - -Al activar la opción **Master Dedicado Habilitado**, también debes completar lo siguiente: - -| **Atributo** | **Descripción** | -| --- | --- | -| **Tipo de Master Dedicado** | Especifica el tipo de instancia para los nodos maestros, usados para gestionar el clúster. Ejemplo: r6g.large.search | -| **Cantidad de Masters Dedicados** | Número de nodos maestros dedicados. Se recomienda tener 3 para producción. | +Al activar **Dead Letter Queue** deberás completar la misma información para la segunda cola, además de un **Maximum Receive Count** (0-99, por defecto 10) — cuántas veces se entrega un mensaje antes de moverlo a la DLQ. ### 3. Personaliza los nombres de tus variables para SQS. diff --git a/content/docs/es/project/deployment/index.mdx b/content/docs/es/project/deployment/index.mdx index 8b48bcc66..9fd88ec1a 100644 --- a/content/docs/es/project/deployment/index.mdx +++ b/content/docs/es/project/deployment/index.mdx @@ -49,4 +49,8 @@ Si no realizas el deployment de tus cambios inmediatamente, o si tu modificació DEPLOY-deploy-changes-banner -- A través del [CLI ](/docs/cli). \ No newline at end of file +- A través del [CLI ](/docs/cli). + +### Cancelar un Deployment + +Mientras un Deployment todavía está en cola y no comenzó a ejecutarse, los Admins y Editors pueden cancelarlo desde la lista de Deployments. Si un Deployment falla, hacé clic en su estado para abrir el visor de logs y ver el detalle del error. \ No newline at end of file diff --git a/content/docs/es/project/deployment/more_on_deployment.mdx b/content/docs/es/project/deployment/more_on_deployment.mdx index 52f2b9608..25b95a8a5 100644 --- a/content/docs/es/project/deployment/more_on_deployment.mdx +++ b/content/docs/es/project/deployment/more_on_deployment.mdx @@ -35,4 +35,4 @@ Como ya sabes, si no es un deployment 'forzado', se te presentará una opción ( - Cambios en la configuración del [Workload](/docs/project/workload) Alias: Un Deployment es forzado si se realizan modificaciones en la configuración del 'alias'. - [Dependency](/docs/project/dependency): Siempre fuerza un Deployment para sincronizar el estado de su VariableGroup asociado con las plantillas del Helm Chart, asegurando que el funcionamiento de los Workloads no se vea afectado. -- Eliminación de [VariableGroup](/docs/project/vargroup): Igual que la eliminación de Dependency. \ No newline at end of file +- Eliminación de un [VariableGroup](/docs/project/vargroup): Mismo caso que la eliminación de una Dependency — siempre redespliega los proyectos que lo usan. \ No newline at end of file diff --git a/content/docs/es/project/deployment/release.mdx b/content/docs/es/project/deployment/release.mdx index 81ec566c9..dbd1d8ff5 100644 --- a/content/docs/es/project/deployment/release.mdx +++ b/content/docs/es/project/deployment/release.mdx @@ -11,7 +11,7 @@ En Sleakops, un release representa un estado desplegable de todos los servicios ## Creación de Releases -Sleakops administra los releases por ti. Cada vez que modificas, eliminas o agregas un servicio, worker, hook o cron job, Sleakops te da la opción de publicar los cambios. Cada vez que publicas esos cambios, Sleakops crea un nuevo release con versiones auto-incrementadas. +Sleakops administra los releases por ti. Cada vez que agregas, editas o eliminas un servicio web, worker, hook o cron job — o editas un recurso del chart como [chart dependencies](/docs/project/chart/chart_dependencies) o [extra templates](/docs/project/chart/extra_templates) — Sleakops te da la opción de publicar los cambios. Cada vez que publicas, Sleakops crea un nuevo release con una versión auto-incrementada: agregar o eliminar un workload incrementa la versión minor, mientras que cualquier otro cambio incrementa la versión patch. ### Recursos del Helm Chart diff --git a/content/docs/es/project/dockertron.mdx b/content/docs/es/project/dockertron.mdx index 673c98fcf..307dc2f36 100644 --- a/content/docs/es/project/dockertron.mdx +++ b/content/docs/es/project/dockertron.mdx @@ -6,13 +6,13 @@ sidebar_position: 2 import Zoom from "react-medium-image-zoom"; import "react-medium-image-zoom/dist/styles.css"; -# Dockertron - Generación de Dockerfiles y Docker Compose +# Dockertron ## Resumen **Dockertron** es un sistema automatizado de dockerización que analiza su código fuente y genera automáticamente la infraestructura necesaria para ejecutar su aplicación en contenedores Docker. El sistema utiliza inteligencia artificial para comprender la estructura de su proyecto y crear los archivos de configuración apropiados. -Podes encontrarlo en Sleakops en la sección de **Proyectos>Configuración>Docketron.** +Inicie una ejecución desde el botón **Dockertron IA** en la página de Proyectos o Entornos, o desde el banner **Configure your project with Dockertron AI** del formulario de creación de proyecto. dockertron_location @@ -43,16 +43,16 @@ Dockertron automatiza el proceso de containerización de su aplicación siguiend docketron_input -Para iniciar el proceso de dockerización, debe completar el formulario de Dockertron en tres pasos: +Para iniciar el proceso de dockerización, elija el repositorio privado y la rama a analizar, y luego responda un breve cuestionario sobre su proyecto para que la IA tenga suficiente contexto. Solo están disponibles los repositorios privados de su integración Git conectada. -#### Paso 1: Información del Lenguaje +#### Lenguaje Especifique el lenguaje de programación principal de su proyecto: - **Language Name**: Nombre del lenguaje (ej: Python, Node.js, Java, Go) - **Language Version**: Versión específica del lenguaje (ej: 3.12, 18.0, 11) -#### Paso 2: Frameworks de la Aplicación +#### Frameworks de la Aplicación Configure los frameworks que utiliza su aplicación. Puede agregar múltiples frameworks: @@ -231,7 +231,7 @@ Típicamente entre 5-30 minutos, dependiendo del tamaño y complejidad del proye ### ¿Qué pasa si mi proyecto tiene configuraciones especiales? -Puede proporcionar contexto adicional en el campo `contexts` al enviar la solicitud, indicando frameworks específicos, versiones, o configuraciones especiales. +Puede proporcionar contexto adicional en el paso del cuestionario, indicando frameworks específicos, versiones, o configuraciones especiales.
@@ -249,7 +249,7 @@ Sí, todos los archivos generados se envían de vuelta y pueden ser revisados an ### ¿Qué pasa si el proceso falla? -El sistema envía un mensaje de error detallado indicando qué salió mal, permitiendo ajustes, reintentos y modificaciones en la informacion enviada para que el agente de IA pueda generar la configuracion correcta. +El sistema envía un mensaje de error detallado indicando qué salió mal. Podés iniciar una nueva ejecución con la información ajustada (framework, dependencias o configuración especial) para que el agente de IA pueda generar la configuración correcta. @@ -261,6 +261,3 @@ El sistema envía un mensaje de error detallado indicando qué salió mal, permi Sí, los archivos generados son completamente editables y pueden ser ajustados según sus necesidades específicas. - -**Versión del documento**: 1.0 -**Última actualización**: Noviembre 2025 diff --git a/content/docs/es/project/index.mdx b/content/docs/es/project/index.mdx index daee08189..2fbeec8c2 100644 --- a/content/docs/es/project/index.mdx +++ b/content/docs/es/project/index.mdx @@ -8,37 +8,37 @@ import Zoom from "react-medium-image-zoom"; import "react-medium-image-zoom/dist/styles.css"; -# Projecto +# Proyecto -Un projecto en SleakOps representa una base de código gestionada por un repositorio Git. También define el llamado Namespace. Es la entidad central que conecta tu repositorio con el entorno de SleakOps, habilitando la implementación, gestión y escalado de tu aplicación en la infraestructura de AWS. +Un Proyecto en SleakOps representa una base de código gestionada por un repositorio Git. También define el llamado Namespace. Es la entidad central que conecta tu repositorio con el entorno de SleakOps, habilitando la implementación, gestión y escalado de tu aplicación en la infraestructura de AWS. -Es la combinación de: Repositorio, Rama y Ruta del Dockerfile. Al añadir el Entorno tienes un ProjectEnv (o Namespace de Kubernetes). +Es la combinación de: Repositorio, Rama y Ruta del Dockerfile. Al añadir el Entorno tienes un Proyecto (o Namespace de Kubernetes). ## Preguntas Frecuentes
-### ¿Qué es un ProjectEnv o Namespace? +### ¿Qué es un Proyecto o Namespace? -Un ProjectEnv es la combinación de un projecto y un Entorno. Actúa como un Namespace de Kubernetes en el clúster y contiene todos los servicios y recursos relacionados con el projecto dentro de ese Entorno. +Un Proyecto es la combinación de un repositorio y un Entorno. Actúa como un Namespace de Kubernetes en el clúster y contiene todos los servicios y recursos relacionados con el proyecto dentro de ese Entorno.
-### ¿Cómo creo un ProjectEnv en SleakOps? +### ¿Cómo creo un Proyecto en SleakOps? -El projecto y el ProjectEnv se crean al mismo tiempo. Debes conectar tu cuenta Git (por ejemplo, GitHub, GitLab o Bitbucket) a SleakOps, seleccionar un repositorio, elegir una rama y especificar la ubicación del Dockerfile. Una vez completados estos pasos, se crea un ProjectEnv y se dispara la primera construcción de imagen. Sigue los pasos a continuación. +Debes conectar tu cuenta Git (por ejemplo, GitHub, GitLab o Bitbucket) a SleakOps, seleccionar un repositorio, elegir una rama y especificar la ubicación del Dockerfile. Una vez completados estos pasos, se crea el Proyecto y se dispara la primera construcción de imagen. Sigue los pasos a continuación.
-### ¿Qué sucede cuando creo un ProjectEnv? +### ¿Qué sucede cuando creo un Proyecto? -Cuando se crea un ProjectEnv, se configuran los siguientes recursos: +Cuando se crea un Proyecto, se configuran los siguientes recursos: - **AWS Elastic Container Registry (ECR)** para almacenar imágenes de contenedores y Helm charts. - Un **Namespace de Kubernetes** para gestionar servicios de forma aislada. - Una **Service Account** para manejar permisos y conexiones seguras con recursos de AWS. -- Un **análisis del Dockerfile** para verificar su corrección y construir una imagen de contenedor usando Kaniko. +- Un **análisis del Dockerfile** para verificar su corrección y construir una imagen de contenedor usando **BuildKit**.
@@ -50,44 +50,44 @@ Si se requieren **Docker Args** (argumentos) durante el tiempo de construcción,
-### ¿Cuál es el propósito del Dockerfile en mi projecto? +### ¿Cuál es el propósito del Dockerfile en mi proyecto? -El **Dockerfile** define cómo tu aplicación se construye en una imagen de contenedor. Durante la creación del ProjectEnv, SleakOps analiza el Dockerfile para garantizar que esté correctamente configurado y luego construye la imagen usando **Kaniko**. +El **Dockerfile** define cómo tu aplicación se construye en una imagen de contenedor. Durante la creación del Proyecto, SleakOps analiza el Dockerfile para garantizar que esté correctamente configurado y luego construye la imagen usando **BuildKit**.
### ¿Dónde se almacenan las imágenes Docker? -Las imágenes Docker se almacenan en el **AWS ECR** (Elastic Container Registry) asociado a tu projecto. Las imágenes se nombran según el ProjectEnv, que combina el nombre del Entorno y el nombre del projecto. +Las imágenes Docker se almacenan en el **AWS ECR** (Elastic Container Registry) asociado a tu proyecto. Las imágenes se nombran según el Proyecto, que combina el nombre del Entorno y el nombre del proyecto.
### ¿Cuál es el rol de la Service Account? -La **Service Account** maneja los permisos para recursos dentro del clúster de Kubernetes. Permite que los servicios desplegados en el ProjectEnv interactúen de forma segura con recursos de AWS como S3, RDS o cualquier otro servicio que pueda requerir tu aplicación. +La **Service Account** maneja los permisos para recursos dentro del clúster de Kubernetes. Permite que los servicios desplegados en el Proyecto interactúen de forma segura con recursos de AWS como S3, RDS o cualquier otro servicio que pueda requerir tu aplicación.
-### ¿Puedo actualizar el repositorio, la rama o la ruta del Dockerfile después de crear un projecto? +### ¿Puedo actualizar el repositorio, la rama o la ruta del Dockerfile después de crear un proyecto? -Solo se pueden actualizar la *Rama* y la *Ruta del Dockerfile*. Si necesitas trabajar con un *Entorno*, *Repositorio o Nombre* diferentes, deberás crear un nuevo registro. +Desde la Configuración del Proyecto puedes actualizar la *Rama*, la *Ruta del Dockerfile*, el *Nodepool*, el método de build (Docker/Buildpacks) y los recursos de build/deploy. Cambiar el Nodepool a una arquitectura de CPU distinta dispara un build nuevo y, si el proyecto ya tiene deployments, un deployment pendiente de tu aprobación. Si necesitas trabajar con un *Entorno*, *Repositorio* o *Nombre* diferentes, deberás crear un nuevo proyecto.
### ¿Cómo maneja SleakOps la construcción inicial de la imagen? -SleakOps automatiza la construcción inicial de la imagen como parte del proceso de creación del ProjectEnv. Esta construcción inicial asegura una implementación más rápida al utilizar la infraestructura existente. Posteriormente, las futuras construcciones de imágenes se activan cuando se publican servicios en despliegues o manualmente mediante el **Formulario de Construcción**. +SleakOps automatiza la construcción inicial de la imagen como parte del proceso de creación del Proyecto. Esta construcción inicial asegura una implementación más rápida al utilizar la infraestructura existente. Posteriormente, las futuras construcciones de imágenes se activan cuando se publican servicios en despliegues o manualmente mediante el **Formulario de Construcción**.
-### ¿Cómo controlo los gastos del projecto? +### ¿Cómo controlo los gastos del proyecto? -SleakOps te permite ver todos los gastos de tu projecto en un solo lugar, clasificados por cuenta, recursos y fechas. +SleakOps te permite ver todos los gastos de tu proyecto en un solo lugar, clasificados por cuenta, recursos y fechas. Accede a *Projects*, selecciona uno y haz clic en el botón: -### ¿Cómo monitoreo mi projecto? +### ¿Cómo monitoreo mi proyecto? -Puedes monitorear tu projecto accediendo a *Projects*, seleccionando uno **y haciendo clic en el botón: monitoring-button** @@ -110,23 +110,23 @@ Puedes monitorear tu projecto accediendo a *Projects*, seleccionando uno **y hac ### ¿Cómo creo un Kubernetes Volume? -Al editar un project, puedes habilitar y definir **Kubernetes Volumes** especificando la ruta de montaje y la capacidad de almacenamiento. SleakOps utiliza el **AWS EFS CSI Driver** para gestionar estos volúmenes como sistemas de archivos **EFS** en el clúster EKS. +Al editar un proyecto, puedes habilitar y definir **Kubernetes Volumes** especificando la ruta de montaje y la capacidad de almacenamiento. SleakOps utiliza el **AWS EFS CSI Driver** para gestionar estos volúmenes como sistemas de archivos **EFS** en el clúster EKS.
- ### 🚩 ¿Cómo gestiono futuras construcciones y despliegues? + ### 🚩 ¿Cómo gestiono futuras construcciones y despliegues? Las futuras construcciones y despliegues se pueden gestionar manualmente a través de la interfaz de SleakOps o automatizar utilizando el **SleakOps CLI**.
-## Creemos tu primer Projecto en SleakOps +## Creemos tu primer Proyecto en SleakOps :::warning Debes tener tu cuenta de Git Repository conectada. Consulta [Conecta tu cuenta Git](/docs/connect_to_git) ::: -### 1. Navega a la sección Crear Projecto +### 1. Navega a la sección Crear Proyecto En el Panel Izquierdo, accede a la opción _Projects_ y luego, en la esquina superior derecha, haz clic en el botón _Crear_. @@ -137,7 +137,7 @@ En el Panel Izquierdo, accede a la opción _Projects_ y luego, en la esquina sup -### 2. Configura tu Projecto +### 2. Configura tu Proyecto Accederás al siguiente formulario: @@ -151,64 +151,16 @@ Aquí están los parámetros que SleakOps te permite personalizar durante la cre | **Configuración** | **Descripción** | | --- | --- | -| **Nombre** | Identifica tu Project. | -| **Environment** | El Entorno representa una etapa o configuración específica dentro de tu infraestructura donde se desplegará tu projecto (por ejemplo, Development, Staging, Production). Estás asociando el código de tu project con un Entorno particular en tu clúster de Kubernetes. | -| **Repositorio** | El repositorio es el repositorio Git que contiene el código base de tu projecto. SleakOps accederá a este repositorio para gestionar actualizaciones de código, construcciones y despliegues. Asegúrate de haber conectado tu proveedor de Git (por ejemplo, GitHub, GitLab, Bitbucket) y que el repositorio seleccionado contenga todos los archivos necesarios para tu project. | +| **Nombre** | Identifica tu Proyecto. | +| **Environment** | El Entorno representa una etapa o configuración específica dentro de tu infraestructura donde se desplegará tu proyecto (por ejemplo, Development, Staging, Production). Estás asociando el código de tu proyecto con un Entorno particular en tu clúster de Kubernetes. | +| **Repositorio** | El repositorio Git que contiene el código base de tu proyecto: un repositorio privado de tu proveedor Git conectado (GitHub, GitLab o Bitbucket), o un repositorio público. | | **Nodepool** | Es el recurso encargado de aprovisionar el servidor donde se ejecutarán tus servicios. Más información [aquí](/docs/cluster/nodepools). | | **Rama** | La rama representa una versión específica o línea de desarrollo dentro del repositorio. Esto te permite desplegar una versión particular de tu código (por ejemplo, main, develop o una rama específica de características). La rama que selecciones determinará el código que se construirá y desplegará en el Entorno asociado. | -| **Ruta del Dockerfile** | El Dockerfile es un componente crítico utilizado para construir tu projecto en un contenedor. El campo de Ruta del Dockerfile requiere la ruta relativa al Dockerfile dentro del repositorio (por ejemplo, /Dockerfile, /src/Dockerfile o /app/Dockerfile). Este archivo contiene las instrucciones necesarias para crear la imagen del contenedor, que SleakOps construirá y utilizará posteriormente para los despliegues. | +| **Método** | **Docker** construye la imagen a partir de un Dockerfile de tu repositorio; **Buildpacks** la construye sin uno, usando una imagen de build detectada automáticamente. | +| **Ruta del Dockerfile** | Requerida con el método Docker. La ruta relativa al Dockerfile dentro del repositorio (por ejemplo, /Dockerfile, /src/Dockerfile o /app/Dockerfile). Este archivo contiene las instrucciones necesarias para crear la imagen del contenedor, que SleakOps construirá y utilizará posteriormente para los despliegues. | Una vez que hayas completado el formulario, haz clic en *Enviar* para iniciar la validación del Dockerfile y luego la construcción. -## ProjectAccess +## Configuración de Acceso -ProjectAccess te permite configurar políticas y roles IAM personalizados para tu proyecto, proporcionando control granular sobre los permisos de recursos de AWS. Esta característica te permite definir patrones de acceso específicos que se alinean con tus requisitos de seguridad y necesidades operativas. - -### Políticas Personalizadas - -Las políticas personalizadas te permiten crear políticas IAM adaptadas que otorgan permisos específicos a las cargas de trabajo de tu proyecto. Estas políticas deben crearse en la misma cuenta de AWS donde se despliega tu proyecto. - -#### Crear Políticas Personalizadas - -1. **Navega a la Consola IAM de AWS** en la cuenta de AWS de tu proyecto -2. **Crea una nueva política** con los permisos específicos que requiere tu aplicación -3. **Referencia la política** en SleakOps usando el ARN de la política - -:::tip Mejores Prácticas de Políticas -- Sigue el principio de menor privilegio - otorga solo los permisos mínimos necesarios -- Usa ARNs específicos de recursos cuando sea posible para limitar el alcance del acceso -- Revisa y audita regularmente los permisos de las políticas -::: - -#### Referenciar Políticas Personalizadas en SleakOps - -Al configurar ProjectAccess, puedes referenciar tus políticas personalizadas proporcionando el ARN de la política: - -``` -arn:aws:iam::ACCOUNT_ID:policy/YourCustomPolicyName -``` - -### Políticas Gestionadas por AWS - -SleakOps también admite políticas gestionadas por AWS, que son políticas preconfiguradas mantenidas por AWS. Estas políticas proporcionan conjuntos de permisos comunes para varios servicios de AWS. - -#### Políticas Gestionadas por AWS Comunes - -- **AmazonS3ReadOnlyAccess**: Acceso de solo lectura a buckets de S3 -- **AmazonRDSReadOnlyAccess**: Acceso de solo lectura a instancias de RDS -- **CloudWatchReadOnlyAccess**: Acceso de solo lectura a métricas y logs de CloudWatch -- **AmazonEC2ReadOnlyAccess**: Acceso de solo lectura a recursos de EC2 - -:::info Asociación de Políticas -Al asociar roles o políticas con tu proyecto, se recomienda usar el número mínimo de políticas necesario. Este enfoque: -- Reduce la complejidad en la gestión de permisos -- Mejora la seguridad limitando los vectores de ataque potenciales -- Facilita la resolución de problemas cuando surgen problemas de permisos -::: - -### Mejores Prácticas para la Gestión de Políticas - -1. **Minimizar el Número de Políticas**: Asocia el menor número de políticas posible mientras cumples tus requisitos -2. **Auditorías Regulares**: Revisa y audita periódicamente las políticas asociadas con tus proyectos -3. **Políticas Específicas del Entorno**: Considera usar diferentes políticas para diferentes entornos (dev, staging, prod) -4. **Documentación**: Mantén documentación clara de por qué se requieren políticas específicas para cada proyecto \ No newline at end of file +Desde **Proyecto → Configuración → Configuración de Acceso** puedes otorgarle a un proyecto acceso a dependencias de otros proyectos y adjuntar políticas IAM adicionales (propias o gestionadas por AWS) al rol de su service account. Consulta [Configuración de Acceso](/docs/project/access_config) para el detalle completo. diff --git a/content/docs/es/project/vargroup/index.mdx b/content/docs/es/project/vargroup/index.mdx index 155fd06cf..64f6d4512 100644 --- a/content/docs/es/project/vargroup/index.mdx +++ b/content/docs/es/project/vargroup/index.mdx @@ -46,7 +46,16 @@ SleakOps almacena de forma segura los Vargroups como secretos de Kubernetes dent ### ¿Puedo eliminar un Variable Group? -Sí, los Vargroups se pueden eliminar o actualizar según sea necesario. Sin embargo, ten cuidado al eliminarlos, ya que puede interrumpir tu aplicación. +Sí. Eliminar un Variable Group siempre redespliega todos los proyectos que lo usan — la confirmación te avisa que el proyecto principal y todos los proyectos replicados se verán afectados. Los Variable Groups creados automáticamente para una Dependency (por ejemplo, credenciales de base de datos) no se pueden eliminar directamente; eliminá la Dependency en su lugar. +
+ +
+ + +### ¿Quién puede revelar los valores de un Variable Group? + + +Cualquier usuario autenticado con acceso a la cuenta puede revelar los valores de un Vargroup, incluidos los Viewers. Crear, editar y eliminar Vargroups está restringido a Admins y Editors.
@@ -61,11 +70,11 @@ Sí, es posible. Aunque las variables de entorno globales afectan a todos los de
- ### ¿Cuál es la diferencia entre un Vargroup Global y uno con Ámbito de Servicio? + ### ¿Cuál es la diferencia entre un Vargroup Global y uno con Ámbito de Workload? -- **Global**: Disponible para todos los servicios dentro del namespace. Se crea sin seleccionar un servicio específico. Para crearlos selecciona "global". -- **Variable Group con Ámbito de Servicio**: Solo aplica al servicio seleccionado dentro del proyecto y el entorno. Sobrescribe los valores del Vargroup global si tienen la misma clave. +- **Global**: Disponible para todos los workloads dentro del namespace. Se crea sin seleccionar un workload específico. Para crearlos selecciona "global". +- **Variable Group con Ámbito de Workload**: Solo aplica al workload seleccionado dentro del proyecto y el entorno. Sobrescribe los valores del Vargroup global si tienen la misma clave.
@@ -76,8 +85,9 @@ Sí, es posible. Aunque las variables de entorno globales afectan a todos los de Si existen claves duplicadas en diferentes Vargroups: -- Si la clave existe tanto en un Vargroup global como en uno con Ámbito de Servicio, el valor del Vargroup con Ámbito de Servicio tiene prioridad. +- Si la clave existe tanto en un Vargroup global como en uno con Ámbito de Workload, el valor del Vargroup con Ámbito de Workload tiene prioridad. - Si dos Vargroups globales tienen la misma clave, se usará el más recientemente creado. +- Crear o editar un Vargroup de tipo ENV con una clave que ya existe en otro Vargroup del mismo ámbito (global, o el mismo workload) muestra una confirmación antes de poder sobrescribirla.
@@ -123,10 +133,10 @@ Completa los siguientes atributos para crear un nuevo Vargroup: | **Atributo** | **Descripción** | | --- | --- | | **Proyecto** | La aplicación o carga de trabajo específica dentro de SleakOps. Determina el alcance del grupo de variables. | -| **Servicio** | Un microservicio o componente dentro del proyecto. Si se selecciona, el Vargroup está limitado a él; si no, al seleccionar global estará accesible dentro del namespace. | +| **Servicio** | Un microservicio o componente dentro del proyecto. Si se selecciona, el Vargroup está limitado a él — cada workload puede tener un único Vargroup dedicado; si no, al seleccionar global estará accesible dentro del namespace. | | **Nombre** | Un identificador único para el Vargroup, utilizado para diferenciarlo dentro del proyecto. Debe ser descriptivo del propósito del grupo. | | **Desplegar** | Habilita esta opción si deseas que SleakOps publique y despliegue automáticamente tu servicio en el proyecto. | -| **Replicar en** | Opcional. Selecciona entornos de proyecto adicionales donde también se creará el Secret de Kubernetes de este Vargroup, haciendo que sus variables estén disponibles en múltiples namespaces. | +| **Replicar en** | Opcional. Selecciona entornos de proyecto adicionales donde también se creará el Secret de Kubernetes de este Vargroup, haciendo que sus variables estén disponibles en múltiples namespaces (solo se muestran entornos del mismo clúster). | :::info Si eliges agregar el argumento usando la opción de texto: Cada argumento debe agregarse en una nueva línea, separada por un signo de igual (`=`), sin espacios adicionales. @@ -163,7 +173,7 @@ Selecciona **ENV** para inyectar las variables como variables de entorno en los #### FILE — Archivos de Configuración Montados -Selecciona **FILE** para montar las variables como archivos dentro de los contenedores de tu workload. Al usar este tipo, también debes proporcionar un **Mount Path** — el directorio donde se montarán los archivos. +Selecciona **FILE** para montar las variables como archivos dentro de los contenedores de tu workload. Al usar este tipo, también debes proporcionar un **Mount Path** — el directorio donde se montarán los archivos (una ruta absoluta, única entre los Vargroups del proyecto). Cada par clave-valor crea un archivo siguiendo esta estructura: diff --git a/content/docs/es/project/volumes.mdx b/content/docs/es/project/volumes.mdx index ac55adc82..779118d08 100644 --- a/content/docs/es/project/volumes.mdx +++ b/content/docs/es/project/volumes.mdx @@ -32,14 +32,15 @@ Para crear un nuevo volumen para tu proyecto: 1. **Haz clic en "Create Volumes"** en la configuración del Proyecto 2. **Agrega la ruta de montaje** - Especifica la ruta del directorio donde se montará el volumen en tus contenedores -3. **Establece la capacidad de almacenamiento** - Define la cantidad de espacio de almacenamiento asignado al volumen -4. **Elige la política de retención** - Selecciona entre: +3. **Establece la capacidad de almacenamiento** - Define la cantidad de espacio de almacenamiento asignado al volumen (1–1000 GB) +4. **Elige un filesystem** - Selecciona qué filesystem EFS, de los configurados en el addon EFS del clúster, respalda el volumen +5. **Elige la política de retención** - Selecciona entre: - **Delete**: El volumen será eliminado cuando se elimine de SleakOps - **Retain**: El volumen persistirá en AWS incluso si se elimina de SleakOps :::tip Configuración de Volúmenes - Las rutas de montaje deben ser rutas absolutas (ej., `/app/data`, `/var/logs`) -- La capacidad de almacenamiento se especifica en GB +- La capacidad de almacenamiento se especifica en GB, de 1 a 1000 - La política de retención determina la persistencia de datos cuando se eliminan volúmenes ::: @@ -57,6 +58,8 @@ Para eliminar un volumen de tu proyecto: 1. **Haz clic en el botón "X"** junto al volumen que quieres eliminar 2. **Confirma la eliminación** cuando se te solicite +Eliminar un volumen dispara un redeploy que lo desmonta de los pods de tu proyecto (el switch de Deploy del diálogo de eliminación viene activado por defecto); si lo desactivas, el volumen se desmonta en el próximo deploy del proyecto. + :::warning Advertencia de Pérdida de Datos Eliminar un volumen eliminará permanentemente todos los datos almacenados en él. Asegúrate de hacer una copia de seguridad de cualquier dato importante antes de la eliminación. ::: diff --git a/content/docs/es/project/workload/cronjob.mdx b/content/docs/es/project/workload/cronjob.mdx index 54af269df..05c0f5443 100644 --- a/content/docs/es/project/workload/cronjob.mdx +++ b/content/docs/es/project/workload/cronjob.mdx @@ -41,7 +41,7 @@ Comienza con la información básica, completa estos atributos y haz clic en Sig | --- | --- | | **Nombre** | Identifica tu Cronjob. | | **Proyecto** | Selecciona entre los proyectos existentes. | -| **Comando** | El comando que ejecuta el servicio. | +| **Comando** | El comando que ejecuta el cronjob. | Una vez completados estos atributos, haz clic en el botón _Siguiente_ para continuar. @@ -53,11 +53,12 @@ Una vez completados estos atributos, haz clic en el botón _Siguiente_ para cont ### 3. Define la periodicidad -Select the schedule and click _Next_. +Selecciona el horario y haz clic en _Siguiente_. | **Atributo** | **Descripción** | | --- | --- | -| **Crontab** | Expresión cron para determinar el horario de ejecución del cronjob | +| **Crontab** | Expresión cron para determinar el horario de ejecución del cronjob. Todos los horarios se interpretan en UTC. | +| **Concurrency Policy** | Cómo se manejan las ejecuciones concurrentes: `Allow` permite ejecuciones simultáneas, `Forbid` omite una nueva ejecución si la anterior sigue activa y `Replace` cancela el job en ejecución en favor del nuevo. Predeterminado: `Allow`. | +### 4. Especifica los ajustes de tu Cronjob +Configura el comportamiento del cronjob y haz clic en _Siguiente_. + +| **Atributo** | **Descripción** | +| --- | --- | +| **Grace Period** | Tiempo en segundos que Kubernetes espera para el apagado ordenado antes de terminar forzosamente el pod. Predeterminado: `120`. | + ### 5. Finalizar la configuración Este paso describe los atributos clave para configurar los recursos de un Cronjob en SleakOps, permitiendo una gestión flexible de CPU, memoria y comportamientos de escalado. @@ -83,4 +91,4 @@ Este paso describe los atributos clave para configurar los recursos de un Cronjo /> -Submit to create and Deploy your cronjob. \ No newline at end of file +Envía para crear y desplegar tu cronjob. \ No newline at end of file diff --git a/content/docs/es/project/workload/hook.mdx b/content/docs/es/project/workload/hook.mdx index b688e341e..23202775c 100644 --- a/content/docs/es/project/workload/hook.mdx +++ b/content/docs/es/project/workload/hook.mdx @@ -40,7 +40,7 @@ Comienza con la información básica, completa estos atributos y haz clic en Sig | --- | --- | | **Nombre** | Identifica tu Hook. | | **Proyecto** | Selecciona entre los proyectos existentes. | -| **Comando** | El comando que ejecuta el servicio. | +| **Comando** | El comando que ejecuta el hook. | Una vez completados estos atributos, haz clic en el botón _Siguiente_ para continuar. @@ -56,7 +56,7 @@ Selecciona cuándo se ejecutará tu hook y haz clic en _Siguiente_. | **Atributo** | **Descripción** | | --- | --- | -| **Event** | Define cuándo ejecutar el hook. [Ver eventos disponibles](https://helm.sh/docs/topics/charts_hooks/#the-available-hooks) | +| **Event** | Define cuándo ejecutar el hook. Eventos disponibles: `Pre upgrade`, `Post upgrade`, `Pre rollback`, `Post rollback`. Predeterminado: `Pre upgrade`. | +### 4. Especifica los ajustes de tu Hook +Configura el comportamiento del hook y haz clic en _Siguiente_. + +| **Atributo** | **Descripción** | +| --- | --- | +| **Grace Period** | Tiempo en segundos que Kubernetes espera para el apagado ordenado antes de terminar forzosamente el pod. Predeterminado: `120`. | + ### 5. Finalizar la configuración Este paso describe los atributos clave para configurar los recursos de un Hook en SleakOps, permitiendo una gestión flexible de CPU, memoria y comportamientos de escalado. @@ -82,4 +89,4 @@ Este paso describe los atributos clave para configurar los recursos de un Hook e /> -Submit to create and Deploy your hook. \ No newline at end of file +Envía para crear y desplegar tu hook. \ No newline at end of file diff --git a/content/docs/es/project/workload/index.mdx b/content/docs/es/project/workload/index.mdx index 35b09b2c9..caf607770 100644 --- a/content/docs/es/project/workload/index.mdx +++ b/content/docs/es/project/workload/index.mdx @@ -5,7 +5,7 @@ import { FiExternalLink, FiCornerRightDown } from "react-icons/fi"; # Workloads -En SleakOps, una Ejecución es simplemente un trabajo definido por el usuario que se ejecuta dentro del clúster. Dependiendo de cómo y cuándo necesites ejecutar tu carga de trabajo, puedes elegir entre cinco tipos diferentes: +En SleakOps, un Workload es simplemente un trabajo definido por el usuario que se ejecuta dentro del clúster. Dependiendo de cómo y cuándo necesites ejecutar tu carga de trabajo, puedes elegir entre cinco tipos diferentes: | Name | Description | @@ -68,7 +68,7 @@ Cuando creas un workload y especificas valores de **Request** pero **no especifi Por ejemplo: - Si estableces **CPU Request** en `1000m` (1 núcleo de CPU) sin especificar un límite, SleakOps establecerá automáticamente **CPU Limit** en `1300m` (1.3 núcleos de CPU) -- Si estableces **Memory Request** en `512Mi` sin especificar un límite, SleakOps establecerá automáticamente **Memory Limit** en `665Mi` (aproximadamente 130%) +- Si estableces **Memory Request** en `512Mi` sin especificar un límite, SleakOps establecerá automáticamente **Memory Limit** en `666Mi` (aproximadamente 130%) **Sobrescribir el Valor Predeterminado:** diff --git a/content/docs/es/project/workload/job.mdx b/content/docs/es/project/workload/job.mdx index a492c448b..dcb099f71 100644 --- a/content/docs/es/project/workload/job.mdx +++ b/content/docs/es/project/workload/job.mdx @@ -25,10 +25,28 @@ Puedes configurar los valores _CPU Request_ y _CPU Limit_ para establecer los re
+### ¿Puedo borrar o editar un Job después de crearlo? + + +Los Jobs no se pueden borrar ni editar desde la consola una vez creados. Usa **Rerun** en un job de la lista para lanzar una nueva corrida precargada con su configuración, cambiando lo que necesites antes. +
+ +
+ + +### ¿Por qué mi Job no empezó a correr? + + +Un Job espera a que su Proyecto esté completamente creado y a que exista un build exitoso antes de correr. Si el proyecto nunca construyó exitosamente, creá un build primero. +
+ +
+ + ### **¿Por qué aparece un mensaje de Timeout en mi Job?** -El timeout que ves en SleakOps corresponde a un límite de tiempo de la plataforma para monitorear el estado del Job (aproximadamente 30 minutos). Pasado ese tiempo, SleakOps deja de monitorearlo pero no mata el proceso — el Job sigue corriendo normalmente en tu infraestructura. +El timeout que ves en SleakOps corresponde a un límite de tiempo de la plataforma para monitorear el estado del Job (24 horas). Pasado ese tiempo, SleakOps marca el Job como fallido y deja de monitorearlo, pero no mata el proceso — el Job sigue corriendo normalmente en tu infraestructura. **¿Cómo puedo verificar si mi Job terminó correctamente?** @@ -64,9 +82,9 @@ Comienza con la información básica, completa estos atributos y haz clic en Sig | --- | --- | | **Nombre** | Identifica tu Job. | | **Proyecto** | Selecciona entre los proyectos existentes. | -| **Comando** | El comando que ejecuta el servicio. | -| **Image** | Por defecto el job utiliza la imagen de tu proyecto, pero puedes reemplazarla por otra | -| **Image tag** | Puedes especificar la etiqueta de la imagen. | +| **Comando** | El comando que ejecuta el job. | +| **Image URL** | Por defecto el job utiliza la imagen de tu proyecto, pero puedes reemplazarla por otra (p. ej. `docker.io/library/postgres`). | +| **Image Tag** | Puedes especificar la etiqueta de la imagen. Si no la defines, se usa la etiqueta `latest`. | Una vez completados estos atributos, haz clic en el botón _Siguiente_ para continuar. @@ -77,7 +95,15 @@ Una vez completados estos atributos, haz clic en el botón _Siguiente_ para cont /> -### 3. Finalizar la configuración +### 3. Especifica los ajustes de tu Job + +Configura el comportamiento del job y haz clic en _Siguiente_. + +| **Atributo** | **Descripción** | +| --- | --- | +| **Grace Period** | Tiempo en segundos que Kubernetes espera para el apagado ordenado antes de terminar forzosamente el pod. Predeterminado: `120`. | + +### 4. Finalizar la configuración Este paso describe los atributos clave para configurar los recursos de un Job en SleakOps, permitiendo una gestión flexible de CPU, memoria y comportamientos de escalado. @@ -95,4 +121,4 @@ Este paso describe los atributos clave para configurar los recursos de un Job en /> -Submit to create and Deploy your job. +Envía para crear y ejecutar tu job. diff --git a/content/docs/es/project/workload/webservice.mdx b/content/docs/es/project/workload/webservice.mdx index 6100f9b22..c994a08a8 100644 --- a/content/docs/es/project/workload/webservice.mdx +++ b/content/docs/es/project/workload/webservice.mdx @@ -40,7 +40,7 @@ El código de éxito predeterminado es el 200, que indica que el servicio está ### ¿Qué pasa si mi verificación de salud falla repetidamente? -Si la verificación de salud falla de manera consecutiva y alcanza el umbral de fallos (el valor predeterminado es 60), el servicio se marcará como no saludable, y Kubernetes podría reiniciar o terminar la instancia del servicio para intentar una recuperación. +Si la verificación de salud falla de manera consecutiva y alcanza el umbral de fallos (el valor predeterminado es 60), la instancia se marca como no lista y Kubernetes deja de enviarle tráfico. El tráfico se reanuda automáticamente cuando la verificación vuelve a pasar.
@@ -60,7 +60,7 @@ Si especificas valores de **Request** pero dejas los campos de **Limit** vacíos Por ejemplo: - **CPU Request** = `1000m` → **CPU Limit** se convierte automáticamente en `1300m` -- **Memory Request** = `512Mi` → **Memory Limit** se convierte automáticamente en `665Mi` +- **Memory Request** = `512Mi` → **Memory Limit** se convierte automáticamente en `666Mi` Para sobrescribir este valor predeterminado y establecer límites personalizados, simplemente especifica tus propios valores de **CPU Limit** y **Memory Limit** en el formulario de configuración. Se usarán tus valores personalizados en lugar del cálculo automático del 130%.
@@ -90,7 +90,7 @@ El **terminationGracePeriod** es una configuración de Kubernetes que define cu **Cómo funciona:** Cuando Kubernetes necesita detener tu contenedor (durante un despliegue, un evento de escalado o un apagado), primero envía una señal **SIGTERM** a tu proceso y luego espera la cantidad de segundos definida por `terminationGracePeriod` antes de matar forzosamente el contenedor. La mayoría de los frameworks con los que construimos aplicaciones manejan SIGTERM automáticamente, pero si tenés algo personalizado, asegurate de que tu aplicación escuche SIGTERM y cierre correctamente todas sus conexiones y procesos en curso — de lo contrario, Kubernetes puede matar el contenedor mientras una operación está a medias. -**Valor predeterminado:** 30 segundos +**Valor predeterminado:** 120 segundos **Cuándo ajustarlo:** - Auméntalo si tu servicio necesita más tiempo para completar tareas de larga duración durante el apagado. @@ -237,11 +237,11 @@ Verás los siguientes atributos para especificar las condiciones. | **Ruta** | La ruta donde Kubernetes verifica si el Web Service está operativo. Predeterminado: `/` | | **Código de Éxito** | El código HTTP de éxito que indica la salud del servicio. Predeterminado: `200`. | | **Retraso Inicial en Segundos** | Número de segundos después del inicio antes de que comiencen las verificaciones de salud. Predeterminado: `10`. | -| **Segundos de Tiempo de Espera** | Número de segundos después del inicio antes de que comiencen las verificaciones de salud. Predeterminado: `1`. | +| **Segundos de Tiempo de Espera** | Número de segundos tras los cuales la prueba de verificación de salud expira (timeout). Predeterminado: `1`. | | **Segundos entre cada Verificación** | Intervalo (en segundos) entre cada prueba de verificación de salud. Predeterminado: `5`. | | **Umbral de Éxitos** | Número mínimo de éxitos consecutivos requeridos para que la prueba se considere exitosa después de fallar. Predeterminado: `1`. | | **Umbral de Fallos** | Número de fallos consecutivos antes de que la prueba se considere fallida. Predeterminado: `60`. | -| **terminationGracePeriod** | Tiempo en segundos que Kubernetes espera para el apagado ordenado antes de terminar forzosamente el servicio. Predeterminado: `30`. | +| **Grace Period (terminationGracePeriod)** | Tiempo en segundos que Kubernetes espera para el apagado ordenado antes de terminar forzosamente el servicio. Predeterminado: `120`. | Una vez completados estos atributos, haz clic en el botón Siguiente para continuar con el siguiente paso. @@ -254,6 +254,7 @@ Este paso describe los atributos clave para configurar los recursos de un Servic | **CPU Limit** | La cantidad máxima de recursos de CPU que cada instancia en el clúster puede utilizar. Este límite ayuda a prevenir que una instancia consuma demasiada CPU. | | **Memory Request** | La cantidad mínima de memoria asignada para cada instancia en el clúster. Esto garantiza que la instancia tenga suficiente memoria para operar eficientemente. | | **Memory Limit** | La cantidad máxima de memoria que cada instancia en el clúster puede utilizar. Limita el uso de memoria para evitar que una sola instancia consuma recursos en exceso. | +| **Replicas** | El número de réplicas a ejecutar cuando el auto-escalado está desactivado. Usamos un mínimo de 2 para evitar tiempos de inactividad. Predeterminado: `2`. | | **Autoscaling** | Activar o desactivar el auto-escalado. Cuando está habilitado, permite que el servicio ajuste el número de réplicas según la demanda y el uso de recursos. | | **CPU Target** | El porcentaje de uso de CPU que desencadena el auto-escalado. Si el uso supera este objetivo, se pueden desplegar réplicas adicionales para equilibrar la carga. | | **Memory Target** | El porcentaje de uso de memoria que activa el ajuste de auto-escalado. Cuando las instancias superan este objetivo, el sistema escala hacia arriba para acomodar la demanda. | diff --git a/content/docs/es/project/workload/worker.mdx b/content/docs/es/project/workload/worker.mdx index df8b62deb..7b19c10a9 100644 --- a/content/docs/es/project/workload/worker.mdx +++ b/content/docs/es/project/workload/worker.mdx @@ -47,7 +47,7 @@ Comienza con la información básica, completa estos atributos y haz clic en Sig | --- | --- | | **Nombre** | Identifica tu Worker. | | **Proyecto** | Selecciona entre los proyectos existentes. | -| **Comando** | El comando que ejecuta el servicio. | +| **Comando** | El comando que ejecuta el worker. | Una vez completados estos atributos, haz clic en el botón _Siguiente_ para continuar. @@ -58,7 +58,14 @@ Una vez completados estos atributos, haz clic en el botón _Siguiente_ para cont /> -### 3. Finalizar la configuración +### 3. Especifica los ajustes de tu Worker +Configura el comportamiento del worker y haz clic en _Siguiente_. + +| **Atributo** | **Descripción** | +| --- | --- | +| **Grace Period** | Tiempo en segundos que Kubernetes espera para el apagado ordenado antes de terminar forzosamente el pod. Predeterminado: `120`. | + +### 4. Finalizar la configuración Este paso describe los atributos clave para configurar los recursos de un Worker en SleakOps, permitiendo una gestión flexible de CPU, memoria y comportamientos de escalado. | **Atributo** | **Descripción** | @@ -67,10 +74,11 @@ Este paso describe los atributos clave para configurar los recursos de un Worker | **CPU Limit** | La cantidad máxima de recursos de CPU que cada instancia en el clúster puede utilizar. Este límite ayuda a prevenir que una instancia consuma demasiada CPU. | | **Memory Request** | La cantidad mínima de memoria asignada para cada instancia en el clúster. Esto garantiza que la instancia tenga suficiente memoria para operar eficientemente. | | **Memory Limit** | La cantidad máxima de memoria que cada instancia en el clúster puede utilizar. Limita el uso de memoria para evitar que una sola instancia consuma recursos en exceso. | +| **Replicas** | El número de réplicas a ejecutar cuando el auto-escalado está desactivado. Predeterminado: `1`. | | **Autoscaling** | Activar o desactivar el auto-escalado. Cuando está habilitado, permite que el servicio ajuste el número de réplicas según la demanda y el uso de recursos. | | **CPU Target** | El porcentaje de uso de CPU que desencadena el auto-escalado. Si el uso supera este objetivo, se pueden desplegar réplicas adicionales para equilibrar la carga. | | **Memory Target** | El porcentaje de uso de memoria que activa el ajuste de auto-escalado. Cuando las instancias superan este objetivo, el sistema escala hacia arriba para acomodar la demanda. | -| **Replicas Min** | El número mínimo de réplicas que deben mantenerse cuando el auto-escalado está activo. Un mínimo de 2 réplicas garantiza alta disponibilidad y previene tiempos de inactividad. | +| **Replicas Min** | El número mínimo de réplicas que deben mantenerse cuando el auto-escalado está activo. | | **Replicas Max** | El número máximo de réplicas que se pueden desplegar cuando el auto-escalado está habilitado. Establece un límite superior en el número de instancias para evitar la sobreasignación de recursos. | @@ -80,4 +88,4 @@ Este paso describe los atributos clave para configurar los recursos de un Worker /> -Submit to create and Deploy your worker. \ No newline at end of file +Envía para crear y desplegar tu worker. \ No newline at end of file diff --git a/content/docs/es/provider/accounts.mdx b/content/docs/es/provider/accounts.mdx index eac33c939..7ec249808 100644 --- a/content/docs/es/provider/accounts.mdx +++ b/content/docs/es/provider/accounts.mdx @@ -25,7 +25,7 @@ Una vez que las Cuentas están activas, asignamos a cada una lo que llamamos [M ### Cuenta de Seguridad -La Cuenta de Seguridad centraliza la administración de usuarios de IAM y sus permisos de acceso al sistema. Aprende cómo cambiar entre cuentas en [Autenticación de Consola de AWS](../user/aws_console_authentication). +La Cuenta de Seguridad centraliza la administración de usuarios de IAM y sus permisos de acceso al sistema. No aparece en tu listado de cuentas — accedes a las demás cuentas desde ella cambiando de rol. Aprende cómo cambiar entre cuentas en [Autenticación de Consola de AWS](../user/aws_console_authentication). ### **Cuenta de Management** @@ -65,5 +65,6 @@ Esta cuenta está destinada a que tu aplicación se instale en un entorno produc

Para seleccionar una cuenta y poder trabajar en ella, selecciónala desde el panel izquierdo.

El icono de la izquierda se refiere al Provider que agrupa las cuentas.

+

Los Editores y Viewers solo ven las cuentas a las que se les otorgó acceso.

diff --git a/content/docs/es/provider/common-errors.mdx b/content/docs/es/provider/common-errors.mdx index 0cec98430..afbdcdd88 100644 --- a/content/docs/es/provider/common-errors.mdx +++ b/content/docs/es/provider/common-errors.mdx @@ -39,7 +39,17 @@ Antes de volver a intentar el proceso, aumenta ese límite. De lo contrario, el /> -### 3. Otros errores +### 3. La creación de la cuenta sigue en proceso en AWS + +A veces AWS necesita algunos minutos más para terminar de configurar una cuenta recién creada antes de que SleakOps pueda usarla. + +Verás un botón *Retry*, deshabilitado temporalmente durante unos minutos. Si los reintentos siguen fallando, contacta al soporte de AWS indicando los ID de cuenta que se muestran en pantalla. + +### 4. Una de tus cuentas de AWS está suspendida, en proceso de cierre o cerrada + +Contacta a AWS Support para resolver el estado de la cuenta y luego vuelve a intentar la conexión. + +### 5. Otros errores Pueden surgir otros problemas que generalmente se resuelven ejecutando nuevamente la conexión con AWS. diff --git a/content/docs/es/provider/deleting-a-provider.mdx b/content/docs/es/provider/deleting-a-provider.mdx index 1904794a7..27ffffcd5 100644 --- a/content/docs/es/provider/deleting-a-provider.mdx +++ b/content/docs/es/provider/deleting-a-provider.mdx @@ -7,13 +7,17 @@ import Zoom from "react-medium-image-zoom"; # Eliminar un Provider -- Esta función te permite eliminar un Provider y todo lo que fue creado bajo él. -- Solo los Providers *creados exitosamente* y aquellos con *error* pueden ser eliminados. Si no ves la opción, probablemente el Provider está en otro estado. +- Esta función te permite eliminar un Provider y todo lo que fue creado bajo él. Solo los Admins pueden hacerlo. +- Solo los Providers en estado *Initial*, *creados exitosamente* o con *error* pueden ser eliminados — no mientras hay una tarea de aprovisionamiento, actualización o eliminación en curso. Eliminar un Provider que sigue en *Initial* (antes de terminar la conexión con AWS) es inmediato, ya que todavía no se creó nada en AWS. :::warning La *Organización* creada y sus cuentas (gestión, desarrollo, producción y seguridad) no se eliminarán automáticamente. Aunque mantener estas cuentas bajo tu Cuenta Root de AWS no genera costos, **recomendamos eliminarlas** manualmente. ::: +:::note +Si una dependencia (por ejemplo, una base de datos) tiene la protección contra eliminación habilitada, la solicitud de eliminación fallará hasta que la deshabilites. +::: + ## Cómo eliminar un Provider ### 1. Selecciona el Provider a eliminar diff --git a/content/docs/es/provider/index.mdx b/content/docs/es/provider/index.mdx index 4c9127c9b..1726319cb 100644 --- a/content/docs/es/provider/index.mdx +++ b/content/docs/es/provider/index.mdx @@ -75,7 +75,7 @@ Para comenzar la instalación de tu aplicación, necesitamos conectarnos a tu Cu Crear una Unidad Organizativa no genera ningún costo en tu cuenta de AWS 😃 ::: -Una vez establecida la conexión y creado el rol, SleakOps iniciará automáticamente la creación de la Unidad Organizativa. +Una vez establecida la conexión y creado el rol, SleakOps iniciará automáticamente la creación de la Unidad Organizativa. Si tu cuenta root ya pertenece a una Organización de AWS, SleakOps la reutilizará en lugar de crear una nueva. Este proceso tomará unos minutos. diff --git a/content/docs/es/subscribe-using-aws.mdx b/content/docs/es/subscribe-using-aws.mdx index fbeddd6a0..557b3d575 100644 --- a/content/docs/es/subscribe-using-aws.mdx +++ b/content/docs/es/subscribe-using-aws.mdx @@ -23,9 +23,9 @@ Bienvenido a nuestra guía sobre cómo suscribirse a SleakOps usando AWS. Este t Inicia sesión en SleakOps usando una cuenta **Admin**. -### 2. Ir a Settings > Subscription +### 2. Ir a Settings > Billing > Subscription -Desde el menú izquierdo, accedé a la opción **Settings** en la parte inferior, y luego seleccioná la opción **Subscription**. +Desde el menú izquierdo, accedé a la opción **Settings** en la parte inferior, y luego seleccioná **Subscription**, dentro del grupo **Billing** (solo admin). -¡Eso es todo, ya estás listo para usar SleakOps! +SleakOps necesita confirmar la nueva suscripción antes de que quede activa. Si caés en una pantalla de "pending approval" en lugar del dashboard, volvé a iniciar sesión una vez que recibas la confirmación — escribí a **contact@sleakops.com** si tarda más de lo esperado. diff --git a/content/docs/es/upgrades.mdx b/content/docs/es/upgrades.mdx index b55e3751e..59ea9bfd2 100644 --- a/content/docs/es/upgrades.mdx +++ b/content/docs/es/upgrades.mdx @@ -38,7 +38,7 @@ La lista muestra los upgrades de todas las cuentas a las que tu rol tiene acceso | **Upgrade** | Título y estado actual. Cuando el upgrade apunta a un recurso específico (Cluster, NodePool, Service), su ícono y nombre aparecen debajo del título. | | **Account** | La cuenta sobre la que se va a ejecutar el upgrade. | | **Execution Date** | Fecha programada mientras esté Pending, momento real de ejecución en los demás estados. Pasá el cursor para ver el timestamp exacto. | -| **Actions** | Ver detalle, Ejecutar y (cuando aplica) Revisar instrucciones. | +| **Actions** | Ver detalle, Ejecutar y (cuando aplica) Revisar instrucciones. Las filas de EKS Cluster Upgrade reemplazan Ejecutar por **Review upgrade plan**, que abre la pestaña Upgrade del drawer. | Filtrá la tabla por **State** (Pending, In Progress, Completed, Error), **Account** o **Model** desde la barra superior. Los deep-links desde otras secciones (por ejemplo, desde un Cluster específico) llegan con el filtro aplicado. @@ -57,7 +57,7 @@ Transiciones: `Pending → Running → Completed`. Desde `Running`, ante un fall Dos maneras: -1. **Desde la lista** — clic en el ícono verde de play en la columna Actions. +1. **Desde la lista** — clic en el ícono verde de play en la columna Actions. Las filas de EKS Cluster Upgrade no tienen este atajo — hacé clic en **Review upgrade plan** para abrir la pestaña Upgrade del drawer y ejecutar desde ahí. 2. **Desde el drawer** — abrí el upgrade y clic en **Execute** en el header. El popover deja elegir **Execute Now** o modificar la fecha programada. @@ -97,12 +97,18 @@ Cuando tenés varios upgrades Pending de distintos tipos sobre la misma cuenta, ## El drawer del Upgrade -Hacé clic en cualquier fila para abrir el drawer. Tiene dos pestañas: +Hacé clic en cualquier fila para abrir el drawer. Tiene hasta tres pestañas, según el tipo de upgrade: ### Details Información básica (nombre de la entidad, tipo, cuenta, descripción, estado), schedule (Execution Date y Deadline, editables en línea), metadata (fecha de creación, parámetros) y el activity log — cada ejecución y cada cambio de schedule con usuario y timestamp. +### Upgrade + +Sólo aparece para el tipo **EKS Cluster Upgrade**. Resumen de sólo lectura del cambio: la versión target de Kubernetes y su ventana de soporte de AWS, un aviso cuando la fecha programada cae fuera del horario laboral, un reporte de downtime de los servicios afectados, y el changelog de la versión. Una sección dedicada te permite pedir un reporte de compatibilidad (readiness) para los manifiestos que administrás fuera de SleakOps — esto abre un ticket de soporte (ver [Autodiagnósticos](/docs/powered-ai/autodiagnostic)). Execute y reprogramar siguen en el header. + +{/* TODO: screenshot - drawer con la pestaña Upgrade abierta, mostrando versión target, ventana de soporte, reporte de downtime y changelog. Requiere una Migration de tipo EKS Cluster Upgrade. */} + ### Instructions Sólo aparece cuando el tipo de upgrade trae prerequisites o postrequisites — pasos numerados a completar antes de ejecutar y pasos a verificar después de que termine. diff --git a/content/docs/es/user/aws_console_authentication.mdx b/content/docs/es/user/aws_console_authentication.mdx index 5dc02464a..9037c4332 100644 --- a/content/docs/es/user/aws_console_authentication.mdx +++ b/content/docs/es/user/aws_console_authentication.mdx @@ -19,14 +19,14 @@ Cómo acceder a cualquiera de tus Cuentas. ::: -As described in the [Architecture Overview](/docs/provider/accounts). You'll have to enter the 'security' account, then, assume the role on the account you want. The easiest way to do this is by using the [Sleakops Dashboard](https://console.sleakops.com/): +Como se describe en la [Descripción General de la Arquitectura](/docs/provider/accounts), primero debes ingresar a la cuenta 'security' y luego asumir el rol de la cuenta a la que quieres acceder. La forma más simple de hacerlo es usando el [Panel de SleakOps](https://console.sleakops.com/): -First, use the AWS Login button: +Primero, en la tarjeta **Get AWS and VPN Access** del panel, haz clic en el botón **Login** (usa el usuario IAM que se muestra al lado): USER-aws-login -This will open the AWS login form. The Account ID field should be automatically filled with the 'security' account ID. If this doesn't happen, it might be because another service is attempting to fill the fields. +Esto abrirá el formulario de inicio de sesión de AWS. El campo Account ID debería completarse automáticamente con el ID de la cuenta 'security'. Si esto no ocurre, puede deberse a que otro servicio está intentando completar los campos. -Once logged into the 'security' account, it will appear as shown in the following image: +Una vez que hayas iniciado sesión en la cuenta 'security', verás algo como lo siguiente: -Now, in the AWS console, you need to return to the SleakOps dashboard, select 'Get Access' and use the drawer, on it, select the account you want to log in to. +Ahora, vuelve al panel de SleakOps y, en la misma tarjeta **Get AWS and VPN Access**, haz clic en el botón **AWS Account Switcher** junto a la cuenta a la que quieres ingresar. USER-get-access USER-account-switcher -This will prompt a new AWS tab to switch the role from your 'security' Account into the account you've selected, you'll leave the 'security account' and enter the selected one. +Esto abrirá una nueva pestaña de AWS para cambiar de rol desde tu cuenta 'security' hacia la cuenta seleccionada: saldrás de la cuenta 'security' e ingresarás a la elegida. :::info -If you're in 'security' or another account you can directly use the account switchers, AWS understands that you are already inside the 'security' account. +Si ya estás dentro de 'security' o de otra cuenta, puedes usar directamente los selectores de cuenta: AWS entiende que ya estás dentro de la cuenta 'security'. ::: -For more information about this process, you can read its [AWS documentation ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html). +Para más información sobre este proceso, puedes leer la [documentación de AWS ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html). diff --git a/content/docs/es/user/index.mdx b/content/docs/es/user/index.mdx index 2a769eb83..6681942c4 100644 --- a/content/docs/es/user/index.mdx +++ b/content/docs/es/user/index.mdx @@ -67,7 +67,7 @@ Sleakops tiene tres campos fundamentales de permisos de usuario: -Solo los administradores pueden eliminar usuarios. Para eliminar un usuario, accede a la Lista de Usuarios, en la columna Acción, haz clic en el ícono de la papelera. Luego confirma la acción. +Solo los administradores pueden eliminar usuarios. Para eliminar un usuario, accede a la Lista de Usuarios, en la columna Acción, haz clic en el ícono de la papelera. Luego confirma la acción. Un administrador no puede eliminar su propia cuenta. SleakOps maneja automáticamente el proceso completo de eliminación en todos los sistemas (usuario IAM, usuario del servidor Pritunl VPN y usuario de la consola de SleakOps). No se requieren pasos manuales adicionales fuera de la consola de SleakOps. @@ -83,28 +83,23 @@ Los usuarios eliminados no se pueden recuperar. Sin embargo, eliminar un usuario USER-creation-form -Para el acceso a las cuentas de AWS, SleakOps inicialmente establece una contraseña aleatoria y la envía al correo electrónico del usuario creado. El usuario puede iniciar sesión con esa contraseña, pero se le obligará a cambiarla en su primer inicio de sesión. Para el acceso a la plataforma SleakOps, utilizamos la contraseña configurada en el formulario de usuario. +Para el acceso a las cuentas de AWS, SleakOps inicialmente establece una contraseña aleatoria y la envía al correo electrónico del usuario creado. El usuario puede iniciar sesión con esa contraseña, pero se le obligará a cambiarla en su primer inicio de sesión. Para el acceso a la plataforma SleakOps, el usuario recibe un correo aparte con un enlace para definir su propia contraseña. Después de la creación de este usuario, se creará un Usuario de AWS en la cuenta 'security', que es donde controlamos los accesos a todas las cuentas de AWS de SleakOps. También crearemos, dependiendo de la configuración, usuarios en los servidores VPN; consulta cómo usarlos en la correspondiente [documentación](/docs/user/vpn) y en la sección de usuarios de SleakOps. -## Usuarios Sin Acceso a SleakOps +## Miembros Solo AWS/VPN -Algunos usuarios en tu organización pueden no tener acceso directo a la plataforma SleakOps pero aún interactúan con la infraestructura: +Desactivar el acceso a la consola solo está disponible para el rol Viewer. Esto crea un miembro sin login a SleakOps que igualmente recibe acceso IAM de AWS y/o VPN aprovisionado para las cuentas que le asignes — útil para colaboradores externos, auditores o compañeros de equipo que solo necesitan acceso a la infraestructura, no un puesto en la consola. En este caso se exige al menos una cuenta AWS o VPN. -### Colaboradores Externos +## Gestión de Members -- **Escenario**: Contratistas o consultores externos que necesitan acceso temporal a recursos específicos de AWS -- **Método de Acceso**: Acceso directo a la consola de AWS con permisos IAM limitados -- **Gestión**: Manejado a través de AWS IAM directamente, no a través de la gestión de usuarios de SleakOps +Los admins pueden actuar sobre cualquier miembro desde la Lista de Usuarios o su drawer de detalle: -### Observadores de Solo Lectura +- **Reset AWS Password**: elige el provider y confirma — SleakOps genera una contraseña IAM nueva y la envía por correo al miembro. +- **Get Pritunl Credentials**: para miembros sin acceso a la consola de SleakOps, que no pueden obtener su propio URI de VPN (ver la [documentación de VPN](/docs/user/vpn)), un admin lo obtiene para cualquier cuenta donde el miembro ya tenga un perfil de VPN aprovisionado. -- **Escenario**: Stakeholders que necesitan visibilidad de costos y uso de infraestructura sin acceso operacional -- **Método de Acceso**: AWS Cost Explorer, dashboards de CloudWatch o herramientas de reportes personalizadas -- **Gestión**: Solo permisos de facturación y monitoreo de AWS +Editar un miembro solo permite cambiar su rol y el acceso a cuentas; el nombre, el email y el acceso a la consola quedan fijos desde la creación. -### Consumidores solo de VPN - -- **Escenario**: Usuarios que necesitan consumir cargas de trabajo y aplicaciones dentro de la VPN, pero no requieren capacidades de administración ni monitorización de la infraestructura. -- **Método de acceso**: Solo acceso a la VPN, con permisos limitados para acceder a aplicaciones y servicios específicos. -- **Gestión**: Cuentas de usuario de VPN con acceso restringido a cargas de trabajo y entornos designados. +:::info +Cambiar el rol de un miembro reaprovisiona automáticamente su acceso a AWS y VPN. Si el miembro usa `kubectl`, debe regenerar su kubeconfig para aplicar los nuevos permisos. +::: diff --git a/content/docs/es/user/vpn.mdx b/content/docs/es/user/vpn.mdx index 0a5cae9d5..7563d23af 100644 --- a/content/docs/es/user/vpn.mdx +++ b/content/docs/es/user/vpn.mdx @@ -15,6 +15,10 @@ Para manejar las conexiones VPN utilizamos Pritunl. Puedes descargar el cliente Una vez que hayas creado un [Proveedor](/docs/provider), ve al [Panel de SleakOps](https://console.sleakops.com/) y selecciona la cuenta para la cual quieres obtener acceso VPN. Recuerda que para hacer esto, necesitas tener acceso a la VPN de esa cuenta, pero la VPN también debe estar creada. Creamos la VPN de una cuenta específica cuando se crea el primer clúster de esa cuenta. +:::info +Este flujo de autoservicio requiere acceso a la consola de SleakOps. Si tu cuenta es solo de VPN (sin login a la consola), pídele a un admin que obtenga tu perfil URI desde [Members](/docs/user). +::: + vpn-obtener-acceso @@ -23,7 +27,7 @@ Una vez que hayas creado un [Proveedor](/docs/provider), ve al [Panel de SleakOp vpn-obtener-uri -Esto te mostrará lo que se denomina perfil URI. Tiene un período de validación de 24 horas, y debes cargarlo en el cliente Pritunl. +Esto te mostrará lo que se denomina perfil URI. Es válido por 24 horas — pasado ese tiempo, solicita uno nuevo desde el panel. Cárgalo en el cliente Pritunl y trátalo como una credencial: no lo compartas, ya que cualquiera que lo importe puede conectarse en tu lugar. perfil-uri-vpn