Copy/paste.
This commit is contained in:
26
1-example/application.yaml
Normal file
26
1-example/application.yaml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: my-app
|
||||||
|
namespace: argocd
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: https://github.com/antonputra/lesson-158.git
|
||||||
|
targetRevision: HEAD
|
||||||
|
path: my-app
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
allowEmpty: false
|
||||||
|
syncOptions:
|
||||||
|
- Validate=true
|
||||||
|
- CreateNamespace=false
|
||||||
|
- PrunePropagationPolicy=foreground
|
||||||
|
- PruneLast=true
|
||||||
26
2-example/application.yaml
Normal file
26
2-example/application.yaml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: apps-staging
|
||||||
|
namespace: argocd
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: https://github.com/antonputra/lesson-158.git
|
||||||
|
targetRevision: HEAD
|
||||||
|
path: environments/staging/apps
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
allowEmpty: false
|
||||||
|
syncOptions:
|
||||||
|
- Validate=true
|
||||||
|
- CreateNamespace=false
|
||||||
|
- PrunePropagationPolicy=foreground
|
||||||
|
- PruneLast=true
|
||||||
26
3-example/application.yaml
Normal file
26
3-example/application.yaml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: my-app
|
||||||
|
namespace: argocd
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: git@github.com:antonputra/lesson-158-private.git
|
||||||
|
targetRevision: HEAD
|
||||||
|
path: my-app
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
allowEmpty: false
|
||||||
|
syncOptions:
|
||||||
|
- Validate=true
|
||||||
|
- CreateNamespace=false
|
||||||
|
- PrunePropagationPolicy=foreground
|
||||||
|
- PruneLast=true
|
||||||
20
3-example/git-repo-secret.yaml
Normal file
20
3-example/git-repo-secret.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: lesson-158-private
|
||||||
|
namespace: argocd
|
||||||
|
labels:
|
||||||
|
argocd.argoproj.io/secret-type: repository
|
||||||
|
stringData:
|
||||||
|
url: git@github.com:antonputra/lesson-158-private.git
|
||||||
|
sshPrivateKey: |
|
||||||
|
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||||
|
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
|
||||||
|
QyNTUxOQAAACAvG2MZK7C4yJzkfQcunxQp2OpOluYI+pSJmdfL4HNrwwAAAJine2Aip3tg
|
||||||
|
IgAAAAtzc2gtZWQyNTUxOQAAACAvG2MZK7C4yJzkfQcunxQp2OpOluYI+pSJmdfL4HNrww
|
||||||
|
AAAEApkokq4ThivZHCdSZE+xQBI/DvJki6B7QhPQUpGfzTTS8bYxkrsLjInOR9By6fFCnY
|
||||||
|
6k6W5gj6lImZ18vgc2vDAAAAFWFyZ29jZEBhbnRvbnB1dHJhLmNvbQ==
|
||||||
|
-----END OPENSSH PRIVATE KEY-----
|
||||||
|
insecure: "false"
|
||||||
|
enableLfs: "true"
|
||||||
41
4-example/application.yaml
Normal file
41
4-example/application.yaml
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
---
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: metrics-server
|
||||||
|
namespace: argocd
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: https://kubernetes-sigs.github.io/metrics-server/
|
||||||
|
targetRevision: 3.8.4
|
||||||
|
chart: metrics-server
|
||||||
|
helm:
|
||||||
|
version: v3
|
||||||
|
releaseName: my-metrics
|
||||||
|
passCredentials: false
|
||||||
|
parameters:
|
||||||
|
- name: "image.tag"
|
||||||
|
value: v0.6.2
|
||||||
|
values: |
|
||||||
|
defaultArgs:
|
||||||
|
- --cert-dir=/tmp
|
||||||
|
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
|
||||||
|
- --kubelet-use-node-status-port
|
||||||
|
- --metric-resolution=15s
|
||||||
|
- --kubelet-insecure-tls
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: monitoring
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
allowEmpty: false
|
||||||
|
syncOptions:
|
||||||
|
- Validate=true
|
||||||
|
- CreateNamespace=true
|
||||||
|
- PrunePropagationPolicy=foreground
|
||||||
|
- PruneLast=true
|
||||||
26
5-example/application.yaml
Normal file
26
5-example/application.yaml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: my-app-dev
|
||||||
|
namespace: argocd
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: git@github.com:antonputra/lesson-158-private.git
|
||||||
|
targetRevision: HEAD
|
||||||
|
path: environments/dev/my-app
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
allowEmpty: false
|
||||||
|
syncOptions:
|
||||||
|
- Validate=true
|
||||||
|
- CreateNamespace=false
|
||||||
|
- PrunePropagationPolicy=foreground
|
||||||
|
- PruneLast=true
|
||||||
20
5-example/git-repo-secret.yaml
Normal file
20
5-example/git-repo-secret.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: lesson-158-private
|
||||||
|
namespace: argocd
|
||||||
|
labels:
|
||||||
|
argocd.argoproj.io/secret-type: repository
|
||||||
|
stringData:
|
||||||
|
url: git@github.com:antonputra/lesson-158-private.git
|
||||||
|
sshPrivateKey: |
|
||||||
|
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||||
|
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
|
||||||
|
QyNTUxOQAAACAvG2MZK7C4yJzkfQcunxQp2OpOluYI+pSJmdfL4HNrwwAAAJine2Aip3tg
|
||||||
|
IgAAAAtzc2gtZWQyNTUxOQAAACAvG2MZK7C4yJzkfQcunxQp2OpOluYI+pSJmdfL4HNrww
|
||||||
|
AAAEApkokq4ThivZHCdSZE+xQBI/DvJki6B7QhPQUpGfzTTS8bYxkrsLjInOR9By6fFCnY
|
||||||
|
6k6W5gj6lImZ18vgc2vDAAAAFWFyZ29jZEBhbnRvbnB1dHJhLmNvbQ==
|
||||||
|
-----END OPENSSH PRIVATE KEY-----
|
||||||
|
insecure: "false"
|
||||||
|
enableLfs: "true"
|
||||||
1864
argocd-defaults.yaml
Normal file
1864
argocd-defaults.yaml
Normal file
File diff suppressed because it is too large
Load Diff
1
lesson-158-private/README.md
Normal file
1
lesson-158-private/README.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
# lesson-158-private
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
namespace: staging
|
||||||
|
images:
|
||||||
|
- name: aputra/nginx
|
||||||
|
newTag: v0.1.0
|
||||||
|
resources:
|
||||||
|
- ../../../my-app-base
|
||||||
21
lesson-158-private/my-app-base/deployment.yaml
Normal file
21
lesson-158-private/my-app-base/deployment.yaml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: nginx
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: nginx
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nginx
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: nginx
|
||||||
|
imagePullPolicy: Always
|
||||||
|
image: aputra/nginx
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
8
lesson-158-private/my-app-base/kustomization.yaml
Normal file
8
lesson-158-private/my-app-base/kustomization.yaml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
metadata:
|
||||||
|
name: arbitrary
|
||||||
|
resources:
|
||||||
|
- deployment.yaml
|
||||||
|
- namespace.yaml
|
||||||
5
lesson-158-private/my-app-base/namespace.yaml
Normal file
5
lesson-158-private/my-app-base/namespace.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: default
|
||||||
5
lesson-158-private/my-app/0-namespace.yaml
Normal file
5
lesson-158-private/my-app/0-namespace.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: foo
|
||||||
26
lesson-158-private/my-app/1-deployment.yaml
Normal file
26
lesson-158-private/my-app/1-deployment.yaml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: nginx
|
||||||
|
namespace: foo
|
||||||
|
labels:
|
||||||
|
app: nginx
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: nginx
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nginx
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: nginx
|
||||||
|
imagePullPolicy: Always
|
||||||
|
image: aputra/nginx-private:v0.1.0
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
imagePullSecrets:
|
||||||
|
- name: dockerconfigjson
|
||||||
1
lesson-158/README.md
Normal file
1
lesson-158/README.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
# lesson-158
|
||||||
26
lesson-158/environments/staging/apps/my-app.yaml
Normal file
26
lesson-158/environments/staging/apps/my-app.yaml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: my-app-foo
|
||||||
|
namespace: argocd
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: https://github.com/antonputra/lesson-158.git
|
||||||
|
targetRevision: HEAD
|
||||||
|
path: environments/staging/my-app
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
allowEmpty: false
|
||||||
|
syncOptions:
|
||||||
|
- Validate=true
|
||||||
|
- CreateNamespace=false
|
||||||
|
- PrunePropagationPolicy=foreground
|
||||||
|
- PruneLast=true
|
||||||
26
lesson-158/environments/staging/apps/second-app.yaml
Normal file
26
lesson-158/environments/staging/apps/second-app.yaml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: second-app-bar
|
||||||
|
namespace: argocd
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: https://github.com/antonputra/lesson-158.git
|
||||||
|
targetRevision: HEAD
|
||||||
|
path: environments/staging/second-app
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
allowEmpty: false
|
||||||
|
syncOptions:
|
||||||
|
- Validate=true
|
||||||
|
- CreateNamespace=false
|
||||||
|
- PrunePropagationPolicy=foreground
|
||||||
|
- PruneLast=true
|
||||||
5
lesson-158/environments/staging/my-app/0-namespace.yaml
Normal file
5
lesson-158/environments/staging/my-app/0-namespace.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: foo
|
||||||
23
lesson-158/environments/staging/my-app/1-deployment.yaml
Normal file
23
lesson-158/environments/staging/my-app/1-deployment.yaml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: nginx
|
||||||
|
namespace: foo
|
||||||
|
labels:
|
||||||
|
app: nginx
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: nginx
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nginx
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: nginx
|
||||||
|
image: aputra/nginx:v0.1.3
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: bar
|
||||||
23
lesson-158/environments/staging/second-app/1-deployment.yaml
Normal file
23
lesson-158/environments/staging/second-app/1-deployment.yaml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: nginx
|
||||||
|
namespace: bar
|
||||||
|
labels:
|
||||||
|
app: nginx
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: nginx
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nginx
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: nginx
|
||||||
|
image: aputra/nginx:v0.1.3
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
151
metrics-server-defaults.yaml
Normal file
151
metrics-server-defaults.yaml
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
# Default values for metrics-server.
|
||||||
|
# This is a YAML-formatted file.
|
||||||
|
# Declare variables to be passed into your templates.
|
||||||
|
|
||||||
|
image:
|
||||||
|
repository: registry.k8s.io/metrics-server/metrics-server
|
||||||
|
# Overrides the image tag whose default is v{{ .Chart.AppVersion }}
|
||||||
|
tag: ""
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
|
imagePullSecrets: []
|
||||||
|
# - name: registrySecretName
|
||||||
|
|
||||||
|
nameOverride: ""
|
||||||
|
fullnameOverride: ""
|
||||||
|
|
||||||
|
serviceAccount:
|
||||||
|
# Specifies whether a service account should be created
|
||||||
|
create: true
|
||||||
|
# Annotations to add to the service account
|
||||||
|
annotations: {}
|
||||||
|
# The name of the service account to use.
|
||||||
|
# If not set and create is true, a name is generated using the fullname template
|
||||||
|
name: ""
|
||||||
|
# The list of secrets mountable by this service account.
|
||||||
|
# See https://kubernetes.io/docs/reference/labels-annotations-taints/#enforce-mountable-secrets
|
||||||
|
secrets: []
|
||||||
|
|
||||||
|
rbac:
|
||||||
|
# Specifies whether RBAC resources should be created
|
||||||
|
create: true
|
||||||
|
pspEnabled: false
|
||||||
|
|
||||||
|
apiService:
|
||||||
|
# Specifies if the v1beta1.metrics.k8s.io API service should be created.
|
||||||
|
#
|
||||||
|
# You typically want this enabled! If you disable API service creation you have to
|
||||||
|
# manage it outside of this chart for e.g horizontal pod autoscaling to
|
||||||
|
# work with this release.
|
||||||
|
create: true
|
||||||
|
# Annotations to add to the API service
|
||||||
|
annotations: {}
|
||||||
|
# Specifies whether to skip TLS verification
|
||||||
|
insecureSkipTLSVerify: true
|
||||||
|
# The PEM encoded CA bundle for TLS verification
|
||||||
|
caBundle: ""
|
||||||
|
|
||||||
|
commonLabels: {}
|
||||||
|
podLabels: {}
|
||||||
|
podAnnotations: {}
|
||||||
|
|
||||||
|
podSecurityContext: {}
|
||||||
|
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 1000
|
||||||
|
|
||||||
|
priorityClassName: system-cluster-critical
|
||||||
|
|
||||||
|
containerPort: 4443
|
||||||
|
|
||||||
|
hostNetwork:
|
||||||
|
# Specifies if metrics-server should be started in hostNetwork mode.
|
||||||
|
#
|
||||||
|
# You would require this enabled if you use alternate overlay networking for pods and
|
||||||
|
# API server unable to communicate with metrics-server. As an example, this is required
|
||||||
|
# if you use Weave network on EKS
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
replicas: 1
|
||||||
|
|
||||||
|
updateStrategy: {}
|
||||||
|
# type: RollingUpdate
|
||||||
|
# rollingUpdate:
|
||||||
|
# maxSurge: 0
|
||||||
|
# maxUnavailable: 1
|
||||||
|
|
||||||
|
podDisruptionBudget:
|
||||||
|
# https://kubernetes.io/docs/tasks/run-application/configure-pdb/
|
||||||
|
enabled: false
|
||||||
|
minAvailable:
|
||||||
|
maxUnavailable:
|
||||||
|
|
||||||
|
defaultArgs:
|
||||||
|
- --cert-dir=/tmp
|
||||||
|
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
|
||||||
|
- --kubelet-use-node-status-port
|
||||||
|
- --metric-resolution=15s
|
||||||
|
|
||||||
|
args: []
|
||||||
|
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /livez
|
||||||
|
port: https
|
||||||
|
scheme: HTTPS
|
||||||
|
initialDelaySeconds: 0
|
||||||
|
periodSeconds: 10
|
||||||
|
failureThreshold: 3
|
||||||
|
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /readyz
|
||||||
|
port: https
|
||||||
|
scheme: HTTPS
|
||||||
|
initialDelaySeconds: 20
|
||||||
|
periodSeconds: 10
|
||||||
|
failureThreshold: 3
|
||||||
|
|
||||||
|
service:
|
||||||
|
type: ClusterIP
|
||||||
|
port: 443
|
||||||
|
annotations: {}
|
||||||
|
labels: {}
|
||||||
|
# Add these labels to have metrics-server show up in `kubectl cluster-info`
|
||||||
|
# kubernetes.io/cluster-service: "true"
|
||||||
|
# kubernetes.io/name: "Metrics-server"
|
||||||
|
|
||||||
|
metrics:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
serviceMonitor:
|
||||||
|
enabled: false
|
||||||
|
additionalLabels: {}
|
||||||
|
interval: 1m
|
||||||
|
scrapeTimeout: 10s
|
||||||
|
metricRelabelings: []
|
||||||
|
relabelings: []
|
||||||
|
|
||||||
|
# See https://github.com/kubernetes-sigs/metrics-server#scaling
|
||||||
|
resources: {}
|
||||||
|
|
||||||
|
extraVolumeMounts: []
|
||||||
|
|
||||||
|
extraVolumes: []
|
||||||
|
|
||||||
|
nodeSelector: {}
|
||||||
|
|
||||||
|
tolerations: []
|
||||||
|
|
||||||
|
affinity: {}
|
||||||
|
|
||||||
|
topologySpreadConstraints: []
|
||||||
|
|
||||||
|
# Annotations to add to the deployment
|
||||||
|
deploymentAnnotations: {}
|
||||||
|
|
||||||
|
schedulerName: ""
|
||||||
|
|
||||||
21
terraform/.terraform.lock.hcl
generated
Normal file
21
terraform/.terraform.lock.hcl
generated
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# This file is maintained automatically by "terraform init".
|
||||||
|
# Manual edits may be lost in future updates.
|
||||||
|
|
||||||
|
provider "registry.terraform.io/hashicorp/helm" {
|
||||||
|
version = "2.9.0"
|
||||||
|
hashes = [
|
||||||
|
"h1:fEDID5J/9ret/sLpOSNAu98F/ZBEZhOmL0Leut7m5JU=",
|
||||||
|
"zh:1471cb45908b426104687c962007b2980cfde294fa3530fabc4798ce9fb6c20c",
|
||||||
|
"zh:1572e9cec20591ec08ece797b3630802be816a5adde36ca91a93359f2430b130",
|
||||||
|
"zh:1b10ae03cf5ab1ae21ffaac2251de99797294ae4242b156b3b0beebbdbcb7e0f",
|
||||||
|
"zh:3bd043b68de967d8d0b549d3f71485193d81167d5656f5507d743dedfe60e352",
|
||||||
|
"zh:538911921c729185900176cc22eb8edcb822bc8d22b9ebb48103a1d9bb53cc38",
|
||||||
|
"zh:69a6a2d40c0463662c3fb1621e37a3ee65024ea4479adf4d5f7f19fb0dea48c2",
|
||||||
|
"zh:94b58daa0c351a49d01f6d8f1caae46c95c2d6c3f29753e2b9ea3e3c0e7c9ab4",
|
||||||
|
"zh:9d0543331a4a32241e1ab5457f30b41df745acb235a0391205c725a5311e4809",
|
||||||
|
"zh:a6789306524ca121512a95e873e3949b4175114a6c5db32bed2df2551a79368f",
|
||||||
|
"zh:d146b94cd9502cca7f2044797a328d71c7ec2a98e2d138270d8a28c872f04289",
|
||||||
|
"zh:d14ccd14511f0446eacf43a9243f22de7c1427ceb059cf67d7bf9803be2cb15d",
|
||||||
|
"zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c",
|
||||||
|
]
|
||||||
|
}
|
||||||
17
terraform/0-provider.tf
Normal file
17
terraform/0-provider.tf
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
provider "helm" {
|
||||||
|
kubernetes {
|
||||||
|
config_path = "~/.kube/config"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# provider "helm" {
|
||||||
|
# kubernetes {
|
||||||
|
# host = aws_eks_cluster.demo.endpoint
|
||||||
|
# cluster_ca_certificate = base64decode(aws_eks_cluster.demo.certificate_authority[0].data)
|
||||||
|
# exec {
|
||||||
|
# api_version = "client.authentication.k8s.io/v1beta1"
|
||||||
|
# args = ["eks", "get-token", "--cluster-name", aws_eks_cluster.demo.id]
|
||||||
|
# command = "aws"
|
||||||
|
# }
|
||||||
|
# }
|
||||||
|
# }
|
||||||
12
terraform/1-argocd.tf
Normal file
12
terraform/1-argocd.tf
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# helm install argocd -n argocd --create-namespace argo/argo-cd --version 3.35.4 -f terraform/values/argocd.yaml
|
||||||
|
resource "helm_release" "argocd" {
|
||||||
|
name = "argocd"
|
||||||
|
|
||||||
|
repository = "https://argoproj.github.io/argo-helm"
|
||||||
|
chart = "argo-cd"
|
||||||
|
namespace = "argocd"
|
||||||
|
create_namespace = true
|
||||||
|
version = "3.35.4"
|
||||||
|
|
||||||
|
values = [file("values/argocd.yaml")]
|
||||||
|
}
|
||||||
8
terraform/values/argocd.yaml
Normal file
8
terraform/values/argocd.yaml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
global:
|
||||||
|
image:
|
||||||
|
tag: "v2.6.6"
|
||||||
|
|
||||||
|
server:
|
||||||
|
extraArgs:
|
||||||
|
- --insecure
|
||||||
33
upgrade.sh
Normal file
33
upgrade.sh
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# exit when any command fails
|
||||||
|
set -e
|
||||||
|
|
||||||
|
new_ver=$1
|
||||||
|
|
||||||
|
echo "new version: $new_ver"
|
||||||
|
|
||||||
|
# Simulate release of the new docker images
|
||||||
|
docker tag nginx:1.23.3 aputra/nginx:$new_ver
|
||||||
|
|
||||||
|
# Push new version to dockerhub
|
||||||
|
docker push aputra/nginx:$new_ver
|
||||||
|
|
||||||
|
# Create temporary folder
|
||||||
|
tmp_dir=$(mktemp -d)
|
||||||
|
echo $tmp_dir
|
||||||
|
|
||||||
|
# Clone GitHub repo
|
||||||
|
git clone git@github.com:antonputra/lesson-158.git $tmp_dir
|
||||||
|
|
||||||
|
# Update image tag
|
||||||
|
sed -i '' -e "s/aputra\/nginx:.*/aputra\/nginx:$new_ver/g" $tmp_dir/my-app/1-deployment.yaml
|
||||||
|
|
||||||
|
# Commit and push
|
||||||
|
cd $tmp_dir
|
||||||
|
git add .
|
||||||
|
git commit -m "Update image to $new_ver"
|
||||||
|
git push
|
||||||
|
|
||||||
|
# Optionally on build agents - remove folder
|
||||||
|
rm -rf $tmp_dir
|
||||||
Reference in New Issue
Block a user