Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
125 changes: 0 additions & 125 deletions teams/team-riker/dev/templates/2048.yaml

This file was deleted.

50 changes: 50 additions & 0 deletions teams/team-riker/dev/templates/alb-skiapp/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: skiapp-deployment
namespace: team-riker
spec:
selector:
matchLabels:
app: skiapp
replicas: 3
template:
metadata:
labels:
app: skiapp
spec:
containers:
- name: skiapp
image: sharepointoscar/skiapp:v1
env:
- name: CLUSTER_NAME
value: {{.Values.spec.clusterName}}
ports:
- containerPort: 8080
resources:
requests:
memory: '64Mi'
cpu: '250m'
limits:
memory: '128Mi'
cpu: '500m'
{{ if .Values.spec.karpenterInstanceProfile }}
nodeSelector: # <- add nodeselector, toleration and spread constraitns
team: default
type: karpenter
tolerations:
- key: 'karpenter'
operator: 'Exists'
effect: 'NoSchedule'
{{ end }}
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app: skiapp
tolerations:
- key: 'karpenter'
operator: 'Exists'
effect: 'NoSchedule'
26 changes: 26 additions & 0 deletions teams/team-riker/dev/templates/alb-skiapp/ingress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: skiapp-ingress
namespace: team-riker
annotations:
alb.ingress.kubernetes.io/group.name: riker
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: ip
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}]'
#alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
#alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
alb.ingress.kubernetes.io/tags: Environment=dev,Team=Riker
spec:
ingressClassName: alb
rules:
- host: #skiapp.{{ .Values.spec.ingress.host }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: skiapp-service
port:
number: 80
13 changes: 13 additions & 0 deletions teams/team-riker/dev/templates/alb-skiapp/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: skiapp-service
namespace: team-riker
spec:
ports:
- port: 80
targetPort: 8080
protocol: TCP
type: NodePort
selector:
app: skiapp
84 changes: 84 additions & 0 deletions teams/team-riker/dev/templates/karpenter.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
{{ if .Values.spec.karpenterInstanceProfile }}
apiVersion: karpenter.k8s.aws/v1alpha1
kind: AWSNodeTemplate
metadata:
name: karpenter-default
labels:
{{- toYaml .Values.labels | nindent 4 }}
spec:
instanceProfile: '{{ .Values.spec.karpenterInstanceProfile }}'
subnetSelector:
kubernetes.io/cluster/{{ .Values.spec.clusterName }}: '*'
kubernetes.io/role/internal-elb: '1' # to select only private subnets
securityGroupSelector:
aws:eks:cluster-name: '{{ .Values.spec.clusterName }}' # Choose only security groups of nodes
tags:
karpenter.sh/cluster_name: {{.Values.spec.clusterName}}
karpenter.sh/provisioner: default
metadataOptions:
httpEndpoint: enabled
httpProtocolIPv6: disabled
httpPutResponseHopLimit: 2
httpTokens: required
---
apiVersion: karpenter.sh/v1alpha5
kind: Provisioner
metadata:
name: default
labels:
{{- toYaml .Values.labels | nindent 4 }}
spec:
consolidation:
enabled: true
#ttlSecondsAfterEmpty: 60 # mutual exclusive with consolitation
requirements:
- key: "karpenter.k8s.aws/instance-category"
operator: In
values: ["c", "m"]
- key: karpenter.k8s.aws/instance-cpu
operator: Lt
values:
- '33'
- key: 'kubernetes.io/arch'
operator: In
values: ['amd64']
- key: karpenter.sh/capacity-type
operator: In
values: ['on-demand']
- key: kubernetes.io/os
operator: In
values:
- linux
providerRef:
name: karpenter-default

ttlSecondsUntilExpired: 2592000 # 30 Days = 60 * 60 * 24 * 30 Seconds;

# Priority given to the provisioner when the scheduler considers which provisioner
# to select. Higher weights indicate higher priority when comparing provisioners.
# Specifying no weight is equivalent to specifying a weight of 0.
weight: 1
limits:
resources:
cpu: '2k'
labels:
billing-team: default
team: default
type: karpenter

# Do we want to apply some taints on the nodes ?
# taints:
# - key: karpenter
# value: 'true'
# effect: NoSchedule

# Karpenter provides the ability to specify a few additional Kubelet args.
# These are all optional and provide support for additional customization and use cases.
kubeletConfiguration:
containerRuntime: containerd
maxPods: 110
systemReserved:
cpu: '1'
memory: 5Gi
ephemeral-storage: 2Gi
{{ end }}