Skip to content

Set Up VSCode Remote Development Environment on Kubernetes with Multi-Repository Sync #1

@hugolytics

Description

@hugolytics

Description

This issue aims to establish a robust VSCode remote development environment within our Kubernetes cluster and ensure code synchronization between GitHub and GitLab repositories. The environment will be containerized, utilizing a Docker image built and stored in our Harbor registry. The goal is to provide developers with a consistent, isolated development environment that closely mirrors our production setup, with the ability to push changes to both GitLab (via VPN) and GitHub.

Objectives

  • Container Build and Registry: Ensure our Docker container is built and pushed to the Harbor registry via our CI/CD pipeline in GitLab.
  • Kubernetes Deployment: Deploy the containerized environment using Kubernetes, including necessary configurations like PVCs, services, and ingress rules as needed.
  • VSCode Integration: Enable developers to connect to this environment using VSCode's Remote SSH feature, allowing them to code, debug, and run applications directly in the cluster.
  • Code Synchronization: Establish a mechanism (possibly using Git submodules or scripts) to sync code between GitHub and GitLab, noting that GitLab access requires a VPN.

Tasks

  • Update the Dockerfile to optimize the build for remote development with all necessary tools and libraries.
  • Configure gitlab-ci.yml to automate Docker builds and push to the Harbor registry.
  • Create and apply Kubernetes configuration files (dev-environment-deployment.yaml, dev-environment-service.yaml, dev-environment-pvc.yaml).
  • Document the process and configurations in readme.md to guide developers on how to connect and use the environment.
  • Ensure all Kubernetes configurations and Dockerfiles are committed and reviewed via a pull request.
  • Set up a Git strategy (submodules or scripts) that allows pushing code updates to both GitLab (using VPN) and GitHub to ensure that both repositories stay synchronized.

Expected Outcome

A fully functional development environment within Kubernetes, accessible via VSCode, enabling seamless development and testing processes that align with our continuous integration and deployment strategies. Additionally, ensure that code updates are consistently synced between our GitLab and GitHub repositories.

Additional Notes

  • Review security settings, especially around SSH access and Kubernetes secrets management.
  • Consider integration testing scenarios to validate the environment with typical development workflows.
  • VPN setup must be robust and clearly documented to ensure reliable GitLab connectivity.

Metadata

Metadata

Assignees

Labels

help wantedExtra attention is needed

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions