Skip to content

Instantly share code, notes, and snippets.

View NYARAS's full-sized avatar

Calvine Otieno NYARAS

View GitHub Profile
@NYARAS
NYARAS / .gitlab-ci.yml
Last active February 7, 2024 08:12
ArgoCD Gitlab CI
image: docker:19.03.7
services:
- docker:19.03.7-dind
stages:
- Build
- Push
- Update Chart
##############################################################################
## Variables ##
@NYARAS
NYARAS / outputs.tf
Created January 31, 2023 13:39
Gitlab OIDC outputs
output "role_arn" {
description = "Role arn that needs to be assumed by GitLab CI"
value = aws_iam_role.gitlab_ci.arn
}
@NYARAS
NYARAS / .gitlab-ci.yml
Created January 31, 2023 13:25
Gitlab OIDC Gitlab CI
variables:
AWS_ROLE_ARN: <AWS_ROLE_ARN>
AWS_WEB_IDENTITY_TOKEN_FILE: /tmp/web-identity-token
assume role:
image:
name: amazon/aws-cli
entrypoint: [""]
script:
- >
@NYARAS
NYARAS / provider.tf
Created January 31, 2023 13:10
Gitlab OIDC Provider
provider "aws" {
region = "eu-west-1"
}
@NYARAS
NYARAS / versions.tf
Created January 31, 2023 13:09
Gitlab OIDC Versions
terraform {
required_version = "1.3.7"
required_providers {
aws = {
source = "hashicorp/aws"
version = "4.51.0" # Optional but recommended in production
}
}
backend "s3" {}
@NYARAS
NYARAS / variables.tf
Created January 31, 2023 13:06
Gitlab OIDC variables
variable "gitlab_group" {
type = string
description = "Gitlab group name"
default = "calvine-devops"
}
variable "gitlab_subgroup" {
type = string
description = "Gitlab subgroup name"
default = "aws"
@NYARAS
NYARAS / iam_policy.tf
Last active January 31, 2023 13:03
Gitlab OIDC IAM policy
locals {
bucket_name = "oidc-test-bucket"
}
resource "aws_iam_role_policy" "gitlab_ci" {
name = "s3"
role = aws_iam_role.gitlab_ci.name
policy = <<EOF
{
"Version": "2012-10-17",
@NYARAS
NYARAS / iam_role.tf
Created January 31, 2023 12:57
Gitlab OIDC IAM Role
resource "aws_iam_role" "gitlab_ci" {
name = var.role_name
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "${aws_iam_openid_connect_provider.gitlab.arn}"
@NYARAS
NYARAS / oidc.tf
Created January 31, 2023 12:48
Gitlab AWS OIDC
resource "aws_iam_openid_connect_provider" "gitlab" {
thumbprint_list = [data.tls_certificate.gitlab.certificates.0.sha1_fingerprint]
client_id_list = [var.gitlab_url]
url = var.gitlab_url
}
@NYARAS
NYARAS / data.tf
Created January 31, 2023 12:43
AWS Gitlab OIDC data
data "tls_certificate" "gitlab" {
url = "${var.gitlab_url}/oauth/discovery/keys"
}