Skip to content

Instantly share code, notes, and snippets.

@jaxxstorm
Created March 11, 2022 20:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jaxxstorm/505cb1c1ebfc9873f711d2ad714b7773 to your computer and use it in GitHub Desktop.
Save jaxxstorm/505cb1c1ebfc9873f711d2ad714b7773 to your computer and use it in GitHub Desktop.
Gitlab
import * as pulumi from "@pulumi/pulumi";
import * as kubernetes from "@pulumi/kubernetes";
const gitlab_kubernetes_agentNamespace = new kubernetes.core.v1.Namespace("gitlab_kubernetes_agentNamespace", {
apiVersion: "v1",
kind: "Namespace",
metadata: {
name: "gitlab-kubernetes-agent",
},
});
const gitlab_kubernetes_agentGitlab_agentServiceAccount = new kubernetes.core.v1.ServiceAccount("gitlab_kubernetes_agentGitlab_agentServiceAccount", {
apiVersion: "v1",
kind: "ServiceAccount",
metadata: {
name: "gitlab-agent",
namespace: "gitlab-kubernetes-agent",
},
});
const gitlab_agent_cluster_adminClusterRoleBinding = new kubernetes.rbac.v1.ClusterRoleBinding("gitlab_agent_cluster_adminClusterRoleBinding", {
apiVersion: "rbac.authorization.k8s.io/v1",
kind: "ClusterRoleBinding",
metadata: {
name: "gitlab-agent-cluster-admin",
},
roleRef: {
apiGroup: "rbac.authorization.k8s.io",
kind: "ClusterRole",
name: "cluster-admin",
},
subjects: [{
kind: "ServiceAccount",
name: "gitlab-agent",
namespace: "gitlab-kubernetes-agent",
}],
});
const gitlab_kubernetes_agentGitlab_agent_token_g9m5k4kck6Secret = new kubernetes.core.v1.Secret("gitlab_kubernetes_agentGitlab_agent_token_g9m5k4kck6Secret", {
apiVersion: "v1",
data: {
token: "UkVEQUNURUQ=",
},
kind: "Secret",
metadata: {
name: "gitlab-agent-token-g9m5k4kck6",
namespace: "gitlab-kubernetes-agent",
},
type: "Opaque",
});
const gitlab_kubernetes_agentGitlab_agentDeployment = new kubernetes.apps.v1.Deployment("gitlab_kubernetes_agentGitlab_agentDeployment", {
apiVersion: "apps/v1",
kind: "Deployment",
metadata: {
name: "gitlab-agent",
namespace: "gitlab-kubernetes-agent",
},
spec: {
replicas: 1,
selector: {
matchLabels: {
app: "gitlab-agent",
},
},
strategy: {
rollingUpdate: {
maxSurge: 0,
maxUnavailable: 1,
},
type: "RollingUpdate",
},
template: {
metadata: {
annotations: {
"prometheus.io/path": "/metrics",
"prometheus.io/port": "8080",
"prometheus.io/scrape": "true",
},
labels: {
app: "gitlab-agent",
},
},
spec: {
containers: [{
args: [
"--token-file=/config/token",
"--kas-address",
"wss://kas.gitlab.com",
],
env: [
{
name: "POD_NAMESPACE",
valueFrom: {
fieldRef: {
fieldPath: "metadata.namespace",
},
},
},
{
name: "POD_NAME",
valueFrom: {
fieldRef: {
fieldPath: "metadata.name",
},
},
},
],
image: "registry.gitlab.com/gitlab-org/cluster-integration/gitlab-agent/agentk:stable",
livenessProbe: {
httpGet: {
path: "/liveness",
port: 8080,
},
initialDelaySeconds: 15,
periodSeconds: 20,
},
name: "agent",
readinessProbe: {
httpGet: {
path: "/readiness",
port: 8080,
},
initialDelaySeconds: 5,
periodSeconds: 10,
},
volumeMounts: [{
mountPath: "/config",
name: "token-volume",
}],
}],
serviceAccountName: "gitlab-agent",
volumes: [{
name: "token-volume",
secret: {
secretName: "gitlab-agent-token-g9m5k4kck6",
},
}],
},
},
},
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment