Skip to content

Commit

Permalink
Merge branch 'main' into renovate/stakater-.github-0.x
Browse files Browse the repository at this point in the history
  • Loading branch information
karl-johan-grahn committed Jan 30, 2025
2 parents 8bea79d + cb43a7b commit 5b8e4ef
Show file tree
Hide file tree
Showing 53 changed files with 92 additions and 92 deletions.
2 changes: 1 addition & 1 deletion .vale.ini
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
StylesPath = styles
MinAlertLevel = warning

Packages = https://github.com/stakater/vale-package/releases/download/v0.0.47/Stakater.zip
Packages = https://github.com/stakater/vale-package/releases/download/v0.0.52/Stakater.zip
Vocab = Stakater

# Only check MarkDown files
Expand Down
2 changes: 1 addition & 1 deletion content/about/cloud-providers/aws.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ An AWS account is needed to create and manage cluster on AWS. The following crit
|------------|------------|
| Virtual Machines | Varies. The limit should be 12 initially. (Initial deployment is 3 control plane + 3 infra + 3 worker)|
| Regional vCPUs | The limit should be A x B x 2 , where A = no. of VMs (worker + infra + control plane), B = vCPUs per VM) |
| Elastic IPs (EIPs) | 5 |
| Elastic IPs (`EIPs`) | 5 |
| Virtual Private Clouds (VPCs) | 5 |
| Elastic Load Balancing (ELB/NLB) | 3 |
| NAT Gateways | 5 |
Expand Down
2 changes: 1 addition & 1 deletion content/about/saap-key-differentiators.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ Stakater App Agility Platform is a true hybrid-cloud enabler. All components of
| Sandboxed environments | Try out new ideas in a low-risk sandboxed environment |
| Time to market | Deliver new software features faster, focusing on customer value rather than infrastructure complexities |
| Cost reduction | Remove the cost and complexity of provisioning, managing and scaling the underlying infrastructure, OS and middleware components |
| Efficient devops | Realise more value from your DevOps team by allowing them to focus on the 'Dev' rather than 'Ops' |
| Efficient DevOps | Realise more value from your DevOps team by allowing them to focus on the 'Dev' rather than 'Ops' |
8 changes: 4 additions & 4 deletions content/about/service-definition.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,9 @@ SAAP offers Red Hat Advanced Cluster Security (RHACS) as an optional, managed ad

### Secrets Stores

#### HashiCorp Vault OSS
#### Hashicorp Vault OSS

SAAP includes HashiCorp Vault OSS for secrets management, limited to use by applications running on SAAP.
SAAP includes Hashicorp Vault OSS for secrets management, limited to use by applications running on SAAP.

#### Clouds Secrets Store

Expand All @@ -150,7 +150,7 @@ SAAP supports integration with multiple cloud provider secret stores (e.g., AWS

#### External Secrets Operator (ESO)

The [External Secrets Operator (ESO)](https://github.com/external-secrets/external-secrets) is included in SAAP to manage secret retrieval from both HashiCorp Vault OSS and supported cloud secret stores. ESO automates secret synchronization into clusters, ensuring secrets are securely available to applications as Kubernetes-native resources.
The [External Secrets Operator (ESO)](https://github.com/external-secrets/external-secrets) is included in SAAP to manage secret retrieval from both Hashicorp Vault OSS and supported cloud secret stores. ESO automates secret synchronization into clusters, ensuring secrets are securely available to applications as Kubernetes-native resources.

## Networking

Expand Down Expand Up @@ -296,7 +296,7 @@ SAAP comes with Renovate, a tool for automating dependency updates. It helps kee

### Browser IDE - DevSpaces

SAAP includes DevSpaces to provide developers with cloud-based, ready-to-code environments. These workspaces streamline development by offering preconfigured setups, ensuring consistency and reducing setup time. DevSpaces enhances productivity by allowing developers to start coding immediately in a fully equipped environment.
SAAP includes DevSpaces to provide developers with cloud-based, ready-to-code environments. These workspaces streamline development by offering pre-configured setups, ensuring consistency and reducing setup time. DevSpaces enhances productivity by allowing developers to start coding immediately in a fully equipped environment.

### Tilt

Expand Down
2 changes: 1 addition & 1 deletion content/about/service-definition/secrets-management.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Secrets Management

SAAP provides an optional integration of HashiCorp Vault which enhances the security and secrets management capabilities of the platform.
SAAP provides an optional integration of Hashicorp Vault which enhances the security and secrets management capabilities of the platform.

By integrating Vault, SAAP provides customers with a secure and centralized solution for storing and accessing sensitive information such as passwords, API keys, and certificates. It complements the default OpenShift secrets mechanism, providing additional features and capabilities that are critical for managing secrets in modern containerized environments.
2 changes: 1 addition & 1 deletion content/for-administrators/secure-your-cluster/saml-idp.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

SAML v2.0 based IDPs can also be integrated with SAAP.

Configurings for SAML are specific to tools and organizations.
Configurations for SAML are specific to tools and organizations.

Following attributes must be exposed via the SAML Service Provider (SP)

Expand Down
2 changes: 1 addition & 1 deletion content/for-administrators/storage/volume-expansion.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Volume Expansion

!!! info
Volume Expansion is currently not supported on Stakater Cloud due to platform limitations. This feature may be available in future releases. You can follow the clone pvc workaround to resize or migrate PersistentVolumes if necessary.
Volume Expansion is currently not supported on Stakater Cloud due to platform limitations. This feature may be available in future releases. You can follow the clone PVC workaround to resize or migrate PersistentVolumes if necessary.

## Automatic

Expand Down
6 changes: 3 additions & 3 deletions content/for-developers/explanation/deploying-secrets.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ The following secrets are needed for running a fully functional pipeline using p
1. `docker-reg-creds`
* _Purpose_: Used by buildah task and the application deployment to pull the image from the nexus registry.
* _Owner_: SAAP admins.
* _Type_: Login credentials for nexus docker registry. The secret itself is of type dockerconfigjson.
* _Type_: Login credentials for nexus docker registry. The secret itself is of type `dockerconfigjson`.
* _Used for_: Pulling images from the nexus registry. Needs to be deployed in all namespaces of the tenant. We distribute it using a TGI.
* _Lifecycle_: Every time a new tenant is created, the secret gets deployed in all its namespaces.
* _Deployment Process_: Nexus comes shipped with SAAP. The `nexus3` namespace contains a secret named `docker-reg-creds`. This secret contains the .dockerconfigjson file. We use a Multi Tenant Operator Template and TemplateGroupInstance to copy this secret and distribute it all namespaces of the tenants. The Template and TemplateGroupInstance are both named `docker-reg-creds`.
* _Deployment Process_: Nexus comes shipped with SAAP. The `nexus3` namespace contains a secret named `docker-reg-creds`. This secret contains the .`dockerconfigjson` file. We use a Multi Tenant Operator Template and TemplateGroupInstance to copy this secret and distribute it all namespaces of the tenants. The Template and TemplateGroupInstance are both named `docker-reg-creds`.
1. `helm-reg-creds`
* _Purpose_: Used to pull and push charts from the Nexus Helm Registry. We use it in two places for our pipeline:
1. `stakater-helm-push` task
Expand Down Expand Up @@ -248,7 +248,7 @@ The following secrets are needed for running a fully functional pipeline using p
property: api_private_key
```

1. Now open up the tenant path in Vault and add a secret named [app-name]-ssh-creds. Add a key api_private_key. The value should have a private ssh key that has access to your application repository as well as you `apps-gitops-config` repository.
1. Now open up the tenant path in Vault and add a secret named `[app-name]-ssh-creds`. Add a key `api_private_key`. The value should have a private ssh key that has access to your application repository as well as you `apps-gitops-config` repository.
1. Assuming you have already set up the `apps-gitops-config` repository, you should be able to see the secret deployed to your tenant's build namespace

1. `[app-name]-git-webhook-creds`
Expand Down
2 changes: 1 addition & 1 deletion content/for-developers/explanation/plan-your-deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ Setup a CI/CD pipeline to for Continuous Integration and Continuous Deployments.

Users can expose your application in/out the cluster using Services, Ingresses, Routes.

- Users can create two types of services for external networking: NodePort, LoadBalancer.
- Users can create two types of services for external networking: nodePort, LoadBalancer.
- Users can create Routes to exposes a service at a host name, such as `www.example.com`, so that external clients can reach it by name.
- Users can create Ingresses on a host name which is being watched by ingress controller and creates one or more routes to satisfy the conditions of the ingress object.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ Configure appropriate values for your Kubernetes resources while keeping the fol

### Scaling Policies

- Define scaling policies to automatically adjust the replica count based on predefined thresholds or metrics (e.g., CPUusage, request queue length).
- Define scaling policies to automatically adjust the replica count based on predefined thresholds or metrics (e.g., CPU use, request queue length).
- Set up horizontal pod autoscaling (HPA) or custom scaling controllers to dynamically scale replicas based on workload demands.

### Load Balancing
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ Now let's add a PrometheusRule for the application. In the previous section, we
```
!!! note
The indentation follows by **application.prometheusRule**.
The indentation follows by `application.prometheusRule`.

### Alert Manager

Expand All @@ -52,7 +52,7 @@ Now we need to tell Alert Manager where to send the alert. For this, we will nee
1. If you need to send an alert to a Slack channel. You will first need to [add a webhook for that channel in Slack](https://docs.stakater.com/saap/managed-addons/monitoring-stack/log-alerts.html)
Once you have the webhook URL, you can add the AlertManagerConfig. The Alertmanager uses a secret to pick up details of the endpoint to send the alerts to.

1. Let's create the secret first. Log in to SAAP > Administrator > Workloads > Secrets in your namespace. Create a secret from YAML. Replace "namespace" with the namespace in which your application is deployed and "api_url" with base64 encoded webhook URL:
1. Let's create the secret first. Log in to SAAP > Administrator > Workloads > Secrets in your namespace. Create a secret from YAML. Replace "namespace" with the namespace in which your application is deployed and `api_url` with base64 encoded webhook URL:

```yaml
kind: Secret
Expand All @@ -66,7 +66,7 @@ Once you have the webhook URL, you can add the AlertManagerConfig. The Alertmana
type: Opaque
```

1. Let's add the AlertManagerConfig, add this YAML to `deploy/values.yaml`, and remember to replace "channel-name" with your channel name.
1. Let's add the AlertManagerConfig, add this YAML to `deploy/values.yaml`, and remember to replace `channel-name` with your channel name.

```yaml
alertmanagerConfig:
Expand Down Expand Up @@ -107,7 +107,7 @@ Once you have the webhook URL, you can add the AlertManagerConfig. The Alertmana
```
!!! note
The indentation follows by **application.alertmanagerConfig**.
The indentation follows by `application.alertmanagerConfig`.

1. Save and run `tilt up` at the root of your directory. Hit the space bar and the browser with `TILT` logs will be shown. If everything is green then the changes will be deployed on the cluster.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ This comprehensive tutorial will walk you through the process of effectively uti
!!! note
The indentation for `env` in `deploy/values.yaml` is **application.deployment.env**. You can also refer configmap in env, to see more [click](https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#define-container-environment-variables-with-data-from-multiple-configmaps).

### Utilize envFrom to Access Configmaps
### Utilize `envFrom` to Access Configmaps

1. To utilize environment variables from a resource, such as Configmap, we can mention the `envFrom` field and specify the configmap name. Add this YAML to `deploy/values.yaml`. `envFrom` allows you to fetch all the environment variables define in this configmap.

Expand All @@ -62,12 +62,12 @@ This comprehensive tutorial will walk you through the process of effectively uti

It should look like this:

![envfrom configmap](images/envfrom-config.png)
![configmap](images/envfrom-config.png)

Look at the different colors that indicates indentation.

!!! note
The indentation for `envFrom` in `deploy/values.yaml` is **application.deployment.envFrom**. You can also reference secret in envFrom, to see more [click](https://kubernetes.io/docs/tasks/inject-data-application/distribute-credentials-secure/#configure-all-key-value-pairs-in-a-secret-as-container-environment-variables).
The indentation for `envFrom` in `deploy/values.yaml` is `application.deployment.envFrom`. You can also reference secret in `envFrom`, to see more [click](https://kubernetes.io/docs/tasks/inject-data-application/distribute-credentials-secure/#configure-all-key-value-pairs-in-a-secret-as-container-environment-variables).

### Define Configmap Data in `values.yaml`

Expand Down Expand Up @@ -169,7 +169,7 @@ If your application requires a configuration file with sensitive information, yo

It should look like this:

![configmao volumes and volume mounts](images/volume-config.png)
![configmap volumes and volume mounts](images/volume-config.png)

Look at the different colors that indicates indentation.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ To get started, head to the `stakater-nordmart-review-api/deploy/templates/grafa

On the new panel, let's configure it to query for some information about our projects. We're going to use a very simple query to count the number of pods running in the namespace (feel free to use any other query).

1. On the Panel settings, set the title to something sensible and add the query, first select "kube_pod_status_ready". Next select the label filter "condition = true". Below it you'll see the operator option, select "sum" operator. Underneath, you will see there is a query generated for you. Hit "Run queries". The data will be shown on the panel. Hit "Apply" to save this new dashboard in your namespace.
1. On the Panel settings, set the title to something sensible and add the query, first select `kube_pod_status_ready`. Next select the label filter `condition = true`. Below it you'll see the operator option, select `sum` operator. Underneath, you will see there is a query generated for you. Hit `Run queries`. The data will be shown on the panel. Hit `Apply` to save this new dashboard in your namespace.

![new panel](images/custom-query.png)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ Let's scale up the number of `replicas` to see how `pdb` works.
Look at the different colors that indicates indentation.

!!! note
The indentation should be **application.pdb**.
The indentation should be `application.pdb`.

1. Save and run `tilt up` at the root of your directory. Hit the space bar and the browser with `TILT` logs will be shown. If everything is green then the changes will be deployed on the cluster.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ In stateful applications deployed on the SAAP (Stakater App Agility Platform), e

It should look like this:

![pvc-values](images/pvc-values.png)
![`PVC-values`](images/pvc-values.png)

1. Once the Persistence is defined in your `deploy/values.yaml`, you can proceed with mounting them in your pod. Mounting the PV and PVC allows your application to access and utilize the persistent storage provided by the PV.

Expand Down Expand Up @@ -65,11 +65,11 @@ In stateful applications deployed on the SAAP (Stakater App Agility Platform), e

1. login to SAAP, there should be a Persistent Volume Claim created when you get an overview of your project/namespace.

![show-pvc](images/show-pvc.png)
![`show-PVC`](images/show-pvc.png)

1. Click on Persistent Volume Claim

![pvc](images/pvc.png)
![`PVC`](images/pvc.png)

!!! note
The PVC named "review" has dynamically provisioned a PV and gave a default storage class named "standard". The most important thing here is the status of PVC which is "Bound" which means not only all the configurations were right but have efficiently applied on the cluster and the application.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,5 +126,5 @@ Read the following articles for more information:
- [Containerize an application](https://docs.docker.com/get-started/02_our_app/)
- [Tutorial: Containerize a .NET app](https://learn.microsoft.com/en-us/dotnet/core/docker/build-container?tabs=linux)
- [Containerize Your Application With Docker](https://towardsdatascience.com/containerize-your-application-with-docker-b0608557441f)
- [Dockerizing a Node.js web app](https://nodejs.org/en/docs/guides/nodejs-docker-webapp)
- [Dockerizing a Django app](https://blog.logrocket.com/dockerizing-django-app)
- [`Dockerizing a Node.js web app`](https://nodejs.org/en/docs/guides/nodejs-docker-webapp)
- [`Dockerizing a Django app`](https://blog.logrocket.com/dockerizing-django-app)
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ curl localhost:port/path

- Verify everything in spec in the ServiceMonitor.
- Verify that endpoints port matches with the Service `spec.ports.name`.
- Verify that namespaceSelector `matchnames` matches with the Service `metadata.namespace`.
- Verify that `namespaceSelector` `matchnames` matches with the Service `metadata.namespace`.
- Verify that selector `matchlabels` matches with the Service `metadata.labels`.

- Make sure that the service monitor selector and service monitor namespace selector labels have been applied to the service monitor and the namespace respectively where the service monitor is present. You can check these selectors in Search -> Resources -> Prometheus and then check the YAML manifest of Prometheus CR.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Enable developers to start developing and testing applications on test clusters.

## Key Results

- Install the CLIs required for interacting with the cluster
- Install the CLI required for interacting with the cluster

## PreRequisites

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Let's walk you through creating a Tekton `PipelineRun` using a `Pipeline-as-Code
{% include "https://raw.githubusercontent.com/NordMart/review-api/main/.tekton/git_clone.yaml" %}
```

1. Provide values for `image_registry`, and helm_registry parameters. You can find the URLs from [here](../../../../managed-addons/nexus/explanation/routes.md).
1. Provide values for `image_registry`, and `helm_registry` parameters. You can find the URLs from [here](../../../../managed-addons/nexus/explanation/routes.md).
`image_registry` URL should be succeeded by your application name. Example: `nexus-docker-stakater-nexus.apps.lab.kubeapp.cloud/review-api`

1. Now create a pull request on the repository with these changes. This should trigger a pipeline on your cluster.
Expand All @@ -53,8 +53,8 @@ The Git Clone task serves as the initial step in your pipeline, responsible for

`depth`: Specifies the depth of the Git clone. A value of "0" indicates a full clone.

`url`: The URL of the source code repository. This parameter is dynamically fetched from the repo_url parameter defined in the PipelineRun.
`url`: The URL of the source code repository. This parameter is dynamically fetched from the `repo_url` parameter defined in the PipelineRun.

`revision`: The Git revision to fetch, often corresponding to a specific branch or commit. This parameter is also dynamically fetched from the `git_revision` parameter in the PipelineRun.

Great! Let's add more tasks in our pipelineRun in coming tutorials.
Great! Let's add more tasks in our `pipelineRun` in coming tutorials.
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,4 @@ You have already created a PipelineRun in the previous tutorial. Let's now add a

![create-git-tag-logs](images/create-git-tag-logs.png)

Great! Let's add more tasks in our pipelineRun in coming tutorials.
Great! Let's add more tasks in our `pipelineRun` in coming tutorials.
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,4 @@ The create environment task utilizes [Tronador](https://docs.stakater.com/tronad

![dynamic-env](images/dynamic-env.png)

Great! Let's add more tasks in our pipelineRun in coming tutorials.
Great! Let's add more tasks in our `pipelineRun` in coming tutorials.
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,4 @@ You have already created a PipelineRun in the previous tutorial. Let's now add a

![code-linting-logs](images/code-linting-logs.png)

Great! Let's add more tasks in our pipelineRun in coming tutorials.
Great! Let's add more tasks in our `pipelineRun` in coming tutorials.
Loading

0 comments on commit 5b8e4ef

Please sign in to comment.