3 changed files with 284 additions and 0 deletions
@ -0,0 +1,9 @@ |
|||
#################################################################################################### |
|||
# may-cmp-server |
|||
#################################################################################################### |
|||
FROM busybox |
|||
COPY plugin-withFilename-config.yaml /home/argocd/cmp-server/config/plugin-withFilename-config.yaml |
|||
|
|||
RUN mkdir -p /home/argocd/cmp-server/plugins |
|||
|
|||
USER 999 |
@ -0,0 +1,208 @@ |
|||
apiVersion: apps/v1 |
|||
kind: Deployment |
|||
metadata: |
|||
labels: |
|||
app.kubernetes.io/component: repo-server |
|||
app.kubernetes.io/name: argocd-repo-server |
|||
app.kubernetes.io/part-of: argocd |
|||
name: argocd-repo-server |
|||
spec: |
|||
selector: |
|||
matchLabels: |
|||
app.kubernetes.io/name: argocd-repo-server |
|||
template: |
|||
metadata: |
|||
labels: |
|||
app.kubernetes.io/name: argocd-repo-server |
|||
spec: |
|||
affinity: |
|||
podAntiAffinity: |
|||
preferredDuringSchedulingIgnoredDuringExecution: |
|||
- podAffinityTerm: |
|||
labelSelector: |
|||
matchLabels: |
|||
app.kubernetes.io/name: argocd-repo-server |
|||
topologyKey: kubernetes.io/hostname |
|||
weight: 100 |
|||
- podAffinityTerm: |
|||
labelSelector: |
|||
matchLabels: |
|||
app.kubernetes.io/part-of: argocd |
|||
topologyKey: kubernetes.io/hostname |
|||
weight: 5 |
|||
automountServiceAccountToken: false |
|||
containers: |
|||
- name: may |
|||
command: [/var/run/argocd/argocd-cmp-server] |
|||
image: <your docker path>/maycmpserver:cmp |
|||
volumeMounts: |
|||
- mountPath: /var/run/argocd |
|||
name: var-files |
|||
- mountPath: /home/argocd/cmp-server/plugins |
|||
name: plugins |
|||
- mountPath: /tmp |
|||
name: tmp-dir |
|||
- command: |
|||
- uid_entrypoint.sh |
|||
- argocd-repo-server |
|||
- --redis |
|||
- argocd-redis:6379 |
|||
env: |
|||
- name: ARGOCD_RECONCILIATION_TIMEOUT |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
key: timeout.reconciliation |
|||
name: argocd-cm |
|||
optional: true |
|||
- name: ARGOCD_REPO_SERVER_LOGFORMAT |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
key: reposerver.log.format |
|||
name: argocd-cmd-params-cm |
|||
optional: true |
|||
- name: ARGOCD_REPO_SERVER_LOGLEVEL |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
key: reposerver.log.level |
|||
name: argocd-cmd-params-cm |
|||
optional: true |
|||
- name: ARGOCD_REPO_SERVER_PARALLELISM_LIMIT |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
key: reposerver.parallelism.limit |
|||
name: argocd-cmd-params-cm |
|||
optional: true |
|||
- name: ARGOCD_REPO_SERVER_DISABLE_TLS |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
key: reposerver.disable.tls |
|||
name: argocd-cmd-params-cm |
|||
optional: true |
|||
- name: ARGOCD_TLS_MIN_VERSION |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
key: reposerver.tls.minversion |
|||
name: argocd-cmd-params-cm |
|||
optional: true |
|||
- name: ARGOCD_TLS_MAX_VERSION |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
key: reposerver.tls.maxversion |
|||
name: argocd-cmd-params-cm |
|||
optional: true |
|||
- name: ARGOCD_TLS_CIPHERS |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
key: reposerver.tls.ciphers |
|||
name: argocd-cmd-params-cm |
|||
optional: true |
|||
- name: ARGOCD_REPO_CACHE_EXPIRATION |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
key: reposerver.repo.cache.expiration |
|||
name: argocd-cmd-params-cm |
|||
optional: true |
|||
- name: REDIS_SERVER |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
key: redis.server |
|||
name: argocd-cmd-params-cm |
|||
optional: true |
|||
- name: REDISDB |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
key: redis.db |
|||
name: argocd-cmd-params-cm |
|||
optional: true |
|||
- name: ARGOCD_DEFAULT_CACHE_EXPIRATION |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
key: reposerver.default.cache.expiration |
|||
name: argocd-cmd-params-cm |
|||
optional: true |
|||
image: <your docker path>/may:cmp4 |
|||
imagePullPolicy: Always |
|||
livenessProbe: |
|||
failureThreshold: 3 |
|||
httpGet: |
|||
path: /healthz?full=true |
|||
port: 8084 |
|||
initialDelaySeconds: 30 |
|||
periodSeconds: 5 |
|||
name: argocd-repo-server |
|||
ports: |
|||
- containerPort: 8081 |
|||
- containerPort: 8084 |
|||
readinessProbe: |
|||
httpGet: |
|||
path: /healthz |
|||
port: 8084 |
|||
initialDelaySeconds: 5 |
|||
periodSeconds: 10 |
|||
securityContext: |
|||
allowPrivilegeEscalation: false |
|||
capabilities: |
|||
drop: |
|||
- all |
|||
readOnlyRootFilesystem: true |
|||
runAsNonRoot: true |
|||
volumeMounts: |
|||
- mountPath: /app/config/ssh |
|||
name: ssh-known-hosts |
|||
- mountPath: /app/config/tls |
|||
name: tls-certs |
|||
- mountPath: /app/config/gpg/source |
|||
name: gpg-keys |
|||
- mountPath: /app/config/gpg/keys |
|||
name: gpg-keyring |
|||
- mountPath: /app/config/reposerver/tls |
|||
name: argocd-repo-server-tls |
|||
- mountPath: /home/argocd/cmp-server/plugins |
|||
name: plugins |
|||
- mountPath: /tmp |
|||
name: tmp-dir |
|||
initContainers: |
|||
- command: |
|||
- cp |
|||
- -n |
|||
- /usr/local/bin/argocd |
|||
- /var/run/argocd/argocd-cmp-server |
|||
image: <your docker path>/may:cmp4 |
|||
name: copyutil |
|||
volumeMounts: |
|||
- mountPath: /var/run/argocd |
|||
name: var-files |
|||
volumes: |
|||
- configMap: |
|||
name: argocd-ssh-known-hosts-cm |
|||
name: ssh-known-hosts |
|||
- configMap: |
|||
name: argocd-tls-certs-cm |
|||
name: tls-certs |
|||
- configMap: |
|||
name: argocd-gpg-keys-cm |
|||
name: gpg-keys |
|||
- emptyDir: {} |
|||
name: gpg-keyring |
|||
- emptyDir: {} |
|||
name: tmp |
|||
- name: argocd-repo-server-tls |
|||
secret: |
|||
items: |
|||
- key: tls.crt |
|||
path: tls.crt |
|||
- key: tls.key |
|||
path: tls.key |
|||
- key: ca.crt |
|||
path: ca.crt |
|||
optional: true |
|||
secretName: argocd-repo-server-tls |
|||
- emptyDir: {} |
|||
name: var-files |
|||
- emptyDir: {} |
|||
name: plugins |
|||
- emptyDir: {} |
|||
name: tmp-dir |
|||
- configMap: |
|||
name: argocd-cmp-cm |
|||
name: config-files |
@ -0,0 +1,67 @@ |
|||
This is an example of using cmp. |
|||
|
|||
### create a docker image for your cmp server |
|||
``` |
|||
docker build -f Dockerfile.maycmp -t <your doccker path>/maycmpserver:cmp . |
|||
``` |
|||
|
|||
### plugin-withFilename-config |
|||
This is the plugin configuration file. It uses discover.fileName by matching with this pattern. |
|||
|
|||
### Changes in argocd-repo-server.yaml. |
|||
argocd repo server deployment file. The following are added. |
|||
added the following to volumes. |
|||
``` |
|||
volumes: |
|||
- emptyDir: {} |
|||
name: var-files |
|||
- emptyDir: {} |
|||
name: plugins |
|||
- emptyDir: {} |
|||
name: tmp-dir |
|||
- configMap: |
|||
name: argocd-cmp-cm |
|||
name: config-files |
|||
``` |
|||
added the following to initContainers |
|||
``` |
|||
initContainers: |
|||
- command: |
|||
- cp |
|||
- -n |
|||
- /usr/local/bin/argocd |
|||
- /var/run/argocd/argocd-cmp-server |
|||
image: quay.io/argoproj/argocd:latest |
|||
name: copyutil |
|||
volumeMounts: |
|||
- mountPath: /var/run/argocd |
|||
name: var-files |
|||
``` |
|||
added the following to argocd-repo-server container |
|||
``` |
|||
- mountPath: /home/argocd/cmp-server/plugins |
|||
name: plugins |
|||
``` |
|||
added a new side car which uses the docker image built above. |
|||
``` |
|||
containers: |
|||
- name: may |
|||
command: [/var/run/argocd/argocd-cmp-server] |
|||
image: docker.intuit.com/dev/deploy/argo-cd-tools/service/maycmpserver:cmp |
|||
volumeMounts: |
|||
- mountPath: /var/run/argocd |
|||
name: var-files |
|||
- mountPath: /home/argocd/cmp-server/plugins |
|||
name: plugins |
|||
- mountPath: /tmp |
|||
name: tmp-dir |
|||
``` |
|||
|
|||
### Create an app using this plugin |
|||
``` |
|||
argocd app create maycmp2 --repo https://github.com/mayzhang2000/argocd-example-apps.git --path cmp-fileName --dest-server https://kubernetes.default.svc --dest-namespace default --config-management-plugin cmp-fileName |
|||
``` |
|||
### Trouble shooting |
|||
``` |
|||
k exec -it argocd-repo-server-88dc68b5c-rmkmx -c argocd-repo-server sh |
|||
``` |
Loading…
Reference in new issue