Skip to content

Conversation

punkwalker
Copy link

Issue #, if available:
N/A
Description of changes:

Overview

This PR introduces a comprehensive refactoring of workshop infrastructure, focusing on improved deployment
automation, enhanced security configurations, and streamlined cluster management.

Key Changes

🏗️ Infrastructure Refactoring

Separated cluster creation from bootstrap process for better modularity
Added dedicated cluster deployment scripts (platform/infra/terraform/cluster/)
Enhanced Terraform configuration with improved locals, variables, and provider management
Consolidated GitLab infrastructure deployment with dedicated terraform module

🔧 Script Improvements

Refactored deployment scripts with improved error handling and logging
Added comprehensive utility functions (scripts/utils.sh, argocd-utils.sh, backstage-utils.sh)
Enhanced initialization process with 0-init.sh and improved URL generation

🔐 Security & Authentication

Enhanced Keycloak configuration with improved client management and role assignments
Improved external secrets management with better secret store configurations
Added pod identity management with comprehensive IAM role configurations
Enhanced ArgoCD security with PKCE configuration and improved secret handling

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@shapirov103
Copy link
Contributor

added @allamand and @hmuthusamy for review as they had a lot of changes as well.
@punkwalker please resolve the conflicts in this PR

name: keycloak-config
creationPolicy: Owner
deletionPolicy: Retain
deletionPolicy: Retain
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to keep the secret after the external secret is deleted?

Copy link
Author

@punkwalker punkwalker Oct 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was being retained in riv25, so did not change it but if we agree that it should be removed, we can change the deletionPolicy

# tenant: tenant1
# fleet_member: dev
# #TODO I think this is not used here, but already stored in the secret
# enable_cert_manager: "true"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok so this file is enabled by default now. How we defines the addons to install on spoke cluster ?

Copy link
Author

@punkwalker punkwalker Oct 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now generating this file during init. However, enabling the addon comes from spoke cluster secret directly. The values in secret are managed from platform/infra/terraform/hub-config.yaml

Signed-off-by: Pankaj Walke <[email protected]>
Signed-off-by: Pankaj Walke <[email protected]>
Signed-off-by: Pankaj Walke <[email protected]>
Signed-off-by: Pankaj Walke <[email protected]>
Signed-off-by: Pankaj Walke <[email protected]>
Signed-off-by: Pankaj Walke <[email protected]>
Signed-off-by: Pankaj Walke <[email protected]>
Signed-off-by: Pankaj Walke <[email protected]>
Signed-off-by: Pankaj Walke <[email protected]>
Signed-off-by: Pankaj Walke <[email protected]>
Signed-off-by: Pankaj Walke <[email protected]>
Signed-off-by: Pankaj Walke <[email protected]>
Signed-off-by: Pankaj Walke <[email protected]>
Signed-off-by: Pankaj Walke <[email protected]>
Signed-off-by: Pankaj Walke <[email protected]>
Copy link
Collaborator

@hmuthusamy hmuthusamy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Lets cleanup once merged

# Backend configuration provided via CLI parameters
backend "s3" {
# bucket and provided via -backend-config
key = "gitlabinfra/terraform.tfstate"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be a var?

# Store both hash and key in a single file to avoid regenerating on each run
locals {
# Update password_expiry for password and key rotation
password_expiry = "2025-12-31"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we make it indefinite post RIV?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants