From e07fadda19edb7cd3139e5d4c08a1550d291e85f Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Fri, 15 Jan 2021 14:40:38 -0800 Subject: [PATCH 01/33] Updates to be usable in MIR clusters --- .../jackil-docker-gc/templates/daemonset.yaml | 22 ++++++++++++++++--- helm-chart/jackil-docker-gc/values.yaml | 4 +++- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/helm-chart/jackil-docker-gc/templates/daemonset.yaml b/helm-chart/jackil-docker-gc/templates/daemonset.yaml index 2aaa45c..0721840 100644 --- a/helm-chart/jackil-docker-gc/templates/daemonset.yaml +++ b/helm-chart/jackil-docker-gc/templates/daemonset.yaml @@ -1,4 +1,4 @@ -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: DaemonSet metadata: name: {{ template "docker-gc.fullname" . }} @@ -8,10 +8,13 @@ metadata: release: {{ .Release.Name }} heritage: {{ .Release.Service }} spec: + selector: + matchLabels: + app: docker-cache-cleaner template: metadata: labels: - app: {{ template "docker-gc.name" . }} + app: docker-cache-cleaner release: {{ .Release.Name }} spec: containers: @@ -52,6 +55,15 @@ spec: volumeMounts: - mountPath: {{ .Values.docker.socketPath }} name: {{ .Values.docker.volumeName }} + tolerations: + - effect: NoSchedule + operator: Exists + - effect: NoExecute + operator: Exists + - effect: NoSchedule + key: node-role.kubernetes.io/master + operator: Equal + value: "true" volumes: - name: {{ .Values.docker.volumeName }} hostPath: @@ -61,4 +73,8 @@ spec: {{- range .Values.image.pullSecrets }} - name: {{ . }} {{- end }} - {{- end }} \ No newline at end of file + {{- end }} + updateStrategy: + rollingUpdate: + maxUnavailable: 50% + type: RollingUpdate \ No newline at end of file diff --git a/helm-chart/jackil-docker-gc/values.yaml b/helm-chart/jackil-docker-gc/values.yaml index 62ccc32..a30e2a4 100644 --- a/helm-chart/jackil-docker-gc/values.yaml +++ b/helm-chart/jackil-docker-gc/values.yaml @@ -11,6 +11,8 @@ image: docker: socketPath: /var/run/docker.sock volumeName: docker-volume +fullnameOverride: docker-cache-cleaner +nameOverride: docker-cache-cleaner statsd: enabled: false #host: localhost @@ -31,6 +33,6 @@ resources: cpu: 100m memory: 128Mi requests: - cpu: 100m + cpu: "0" memory: 128Mi From 86f024b8b41c4c628b558275af958bf2871c2151 Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Fri, 15 Jan 2021 15:50:36 -0800 Subject: [PATCH 02/33] Set up CI with Azure Pipelines [skip ci] --- azure-pipelines.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 azure-pipelines.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000..6c25085 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,29 @@ +# Docker +# Build a Docker image +# https://docs.microsoft.com/azure/devops/pipelines/languages/docker + +trigger: +- main + +resources: +- repo: self + +variables: + tag: '$(Build.BuildId)' + +stages: +- stage: Build + displayName: Build image + jobs: + - job: Build + displayName: Build + pool: + vmImage: 'ubuntu-latest' + steps: + - task: Docker@2 + displayName: Build an image + inputs: + command: build + dockerfile: '$(Build.SourcesDirectory)/Dockerfile' + tags: | + $(tag) \ No newline at end of file From 86ffc08a605965ddef415c0ac1fde08e5ae3b809 Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Wed, 20 Jan 2021 11:57:15 -0800 Subject: [PATCH 03/33] Updating maxUnavailable --- helm-chart/jackil-docker-gc/templates/daemonset.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/helm-chart/jackil-docker-gc/templates/daemonset.yaml b/helm-chart/jackil-docker-gc/templates/daemonset.yaml index 0721840..1c40336 100644 --- a/helm-chart/jackil-docker-gc/templates/daemonset.yaml +++ b/helm-chart/jackil-docker-gc/templates/daemonset.yaml @@ -51,7 +51,7 @@ spec: value: {{ .Values.statsd.host | quote }} - name: STATSD_PORT value: {{ .Values.statsd.port | quote }} - {{- end }} + {{- end }} volumeMounts: - mountPath: {{ .Values.docker.socketPath }} name: {{ .Values.docker.volumeName }} @@ -62,7 +62,7 @@ spec: operator: Exists - effect: NoSchedule key: node-role.kubernetes.io/master - operator: Equal + operator: Equal value: "true" volumes: - name: {{ .Values.docker.volumeName }} @@ -76,5 +76,5 @@ spec: {{- end }} updateStrategy: rollingUpdate: - maxUnavailable: 50% + maxUnavailable: 100% type: RollingUpdate \ No newline at end of file From bb05bde842bfb97d28d3211b7fe0e279a78b8660 Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Wed, 20 Jan 2021 14:52:10 -0800 Subject: [PATCH 04/33] Some changes for build --- README.md | 2 ++ helm-chart/jackil-docker-gc/templates/daemonset.yaml | 4 ---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7272804..0fd8c33 100644 --- a/README.md +++ b/README.md @@ -112,4 +112,6 @@ For custom configurations, please head to values.yaml. docker-gc.service is an example of using it with fleet. +## Run and create namespace +helm install --generate-name jackil-docker-gc -n --create-namespace diff --git a/helm-chart/jackil-docker-gc/templates/daemonset.yaml b/helm-chart/jackil-docker-gc/templates/daemonset.yaml index 1c40336..43f7368 100644 --- a/helm-chart/jackil-docker-gc/templates/daemonset.yaml +++ b/helm-chart/jackil-docker-gc/templates/daemonset.yaml @@ -60,10 +60,6 @@ spec: operator: Exists - effect: NoExecute operator: Exists - - effect: NoSchedule - key: node-role.kubernetes.io/master - operator: Equal - value: "true" volumes: - name: {{ .Values.docker.volumeName }} hostPath: From 926cef522fbf9117e7b9f9e95509f6d507c5944d Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Wed, 20 Jan 2021 17:26:37 -0800 Subject: [PATCH 05/33] Making more changes --- .travis.yml | 4 +- Dockerfile.helmtest | 4 +- deploy/specs/all-base.yaml | 24 ++++++++ deploy/specs/build.yaml | 8 +++ deploy/specs/path.yaml | 11 ++++ deploy/specs/publish.yaml | 9 +++ .../helm/docker-cache-cleaner-values.yaml | 39 ++++++++++++ scripts/mkver | 1 + scripts/task.py | 59 +++++++++++++++++++ scripts/task.sh | 43 ++++++++++++++ src/README.md | 0 .../docker-cache-cleaner}/.helmignore | 0 .../docker-cache-cleaner}/Chart.yaml | 8 ++- .../docker-cache-cleaner}/templates/NOTES.txt | 0 .../templates/_helpers.tpl | 0 .../templates/daemonset.yaml | 0 .../docker-cache-cleaner}/values.yaml | 3 +- 17 files changed, 205 insertions(+), 8 deletions(-) create mode 100644 deploy/specs/all-base.yaml create mode 100644 deploy/specs/build.yaml create mode 100644 deploy/specs/path.yaml create mode 100644 deploy/specs/publish.yaml create mode 100644 deploy/templates/helm/docker-cache-cleaner-values.yaml create mode 100644 scripts/mkver create mode 100644 scripts/task.py create mode 100644 scripts/task.sh create mode 100644 src/README.md rename {helm-chart/jackil-docker-gc => src/docker-cache-cleaner}/.helmignore (100%) rename {helm-chart/jackil-docker-gc => src/docker-cache-cleaner}/Chart.yaml (50%) rename {helm-chart/jackil-docker-gc => src/docker-cache-cleaner}/templates/NOTES.txt (100%) rename {helm-chart/jackil-docker-gc => src/docker-cache-cleaner}/templates/_helpers.tpl (100%) rename {helm-chart/jackil-docker-gc => src/docker-cache-cleaner}/templates/daemonset.yaml (100%) rename {helm-chart/jackil-docker-gc => src/docker-cache-cleaner}/values.yaml (90%) diff --git a/.travis.yml b/.travis.yml index 9a331bd..8450a08 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,7 @@ install: - docker build -t docker-gc-helm-chart-validate -f Dockerfile.helmtest . script: -- docker build -t jackil/docker-gc -f Dockerfile . +- docker build -t src/docker-cache-cleaner -f Dockerfile . after_success: -- docker build -t jackil/docker-gc -f Dockerfile . +- docker build -t src/docker-cache-cleaner -f Dockerfile . diff --git a/Dockerfile.helmtest b/Dockerfile.helmtest index e85028f..b984910 100644 --- a/Dockerfile.helmtest +++ b/Dockerfile.helmtest @@ -18,9 +18,9 @@ RUN /bin/helm init --client-only && /bin/helm repo update WORKDIR ["/bin/helm"] -COPY helm-chart/jackil-docker-gc jackil-docker-gc +COPY src/docker-cache-cleaner docker-cache-cleaner -RUN MSG=$(helm lint jackil-docker-gc | grep "no failures") +RUN MSG=$(helm lint docker-cache-cleaner | grep "no failures") RUN echo $MSG diff --git a/deploy/specs/all-base.yaml b/deploy/specs/all-base.yaml new file mode 100644 index 0000000..0d2c51f --- /dev/null +++ b/deploy/specs/all-base.yaml @@ -0,0 +1,24 @@ +--- +# --- ABSTRACT ALL BASE --- +# ------------------------- +envs: + all-base: + abstract: true + spec: + __name__: ~ # spec will inject the env name as env.__name__ +#-----apps + apps: + __base__: # the __base__ app gets inherited by all other apps + __name__: ~ # this instructs conf to inject the app name as app.__name__ + __anchor__: app + k8s: + source: "{{paths.k8s.source}}/{{app.__name__}}.yaml" + destinationDirectory: "{{paths.k8s.dest}}" + parameters: + replicaCount: 2 + azure: + __base__: # base here is the type of azure resource: sql, acs, etc + __base__: # base is a specific named azure resource: sql-server-01, cluster-01, storage-01 + subscription: "{{deploy.azure.subscription}}" + region: "{{deploy.azure.region}}" + group: "{{deploy.azure.group}}" diff --git a/deploy/specs/build.yaml b/deploy/specs/build.yaml new file mode 100644 index 0000000..b186e3b --- /dev/null +++ b/deploy/specs/build.yaml @@ -0,0 +1,8 @@ +apps: + # msftkube will fail if there's no app + dummy-app: + deploymentGroups: + - "default" + docker-cache-cleaner: + deploymentGroups: + - "default" \ No newline at end of file diff --git a/deploy/specs/path.yaml b/deploy/specs/path.yaml new file mode 100644 index 0000000..2a58e83 --- /dev/null +++ b/deploy/specs/path.yaml @@ -0,0 +1,11 @@ +paths: + acs: + source: "{{paths.root}}/deploy/templates/acs" + dest: "{{paths.drop}}/arm" + k8s: + source: "{{paths.root}}/deploy/templates/k8s" + dest: "{{paths.drop}}/k8s" + helm: + source: "{{paths.root}}/deploy/templates/helm" + dest: "{{paths.drop}}/helm" + src: "{{paths.root}}/src" \ No newline at end of file diff --git a/deploy/specs/publish.yaml b/deploy/specs/publish.yaml new file mode 100644 index 0000000..3b1eb67 --- /dev/null +++ b/deploy/specs/publish.yaml @@ -0,0 +1,9 @@ +publish: + azure: + keyvault: + name: vienna-test-westus + docker: + registry: + name: viennadroptest + resourceGroup: viennadroptest + subscription: ad203158-bc5d-4e72-b764-2607833a71dc \ No newline at end of file diff --git a/deploy/templates/helm/docker-cache-cleaner-values.yaml b/deploy/templates/helm/docker-cache-cleaner-values.yaml new file mode 100644 index 0000000..b5b77b7 --- /dev/null +++ b/deploy/templates/helm/docker-cache-cleaner-values.yaml @@ -0,0 +1,39 @@ +# Default values for docker-gc. +image: + # repository: jackil/docker-gc + #Repository should be moved to AIR Shared Container Registry + #repository: airsharedcontainers.azurecr.io/docker-gc + repository: viennadroptest.azurecr.io/docker-cache-cleaner + tag: latest + pullPolicy: IfNotPresent + # optional pull secrets + # pullSecrets: + # - "airsharedcontainers" +docker: + socketPath: /var/run/docker.sock + volumeName: docker-volume +fullnameOverride: docker-cache-cleaner +nameOverride: docker-cache-cleaner +statsd: + enabled: false + #host: localhost + #port: 8125 +config: + dockerEndpoint: unix:///var/run/docker.sock + executionIntervalInMinutes: 60 + dockerClientTimeoutInSeconds: 180 + imageDeletionOrder: ByImageLastTouchDate + #imageDeletionOrder: ByImageCreationDate + strategy: ByDate + daysBeforeDeletion: 30 + #strategy: ByDiskSpace + #sizeLimitInGigabyte: + containerStateBlacklist: dead,exited +resources: + limits: + cpu: 100m + memory: 128Mi + requests: + cpu: "0" + memory: 128Mi + diff --git a/scripts/mkver b/scripts/mkver new file mode 100644 index 0000000..b2eb805 --- /dev/null +++ b/scripts/mkver @@ -0,0 +1 @@ +1.0.1261145 diff --git a/scripts/task.py b/scripts/task.py new file mode 100644 index 0000000..012e790 --- /dev/null +++ b/scripts/task.py @@ -0,0 +1,59 @@ +# pylint: disable=locally-disabled,line-too-long,missing-docstring +import os +import argparse +import logging +import shutil + +import msftkube as mk + +mk.steps.acs.TEMPLATE_TRANSFORMERS = [ + # _transformer_encrypt_storages, + # mk.steps.acs._transformer_do_not_use_port_22, + # _transformer_add_security_extension, + mk.steps.acs._parameters_change_to_keyvault_reference('servicePrincipalClientId'), + mk.steps.acs._parameters_change_to_keyvault_reference('sshRSAPublicKey'), + mk.steps.acs._parameters_change_to_keyvault_reference('servicePrincipalClientSecret') +] + +def main(): + + commands = mk.commands.DEFAULT_COMMANDS + + context = mk.context.create(commands.keys()) + + # determine paths. Script could be in repository or a build drop + script_dir = os.path.dirname(__file__) + root_dir = os.path.abspath(os.path.join(script_dir, '..')) + if os.path.isdir(os.path.join(root_dir, 'src')): + # we are in repository + drop_dir = os.path.join(root_dir, 'build') + mk.util.ensure_dir(drop_dir) + def copy_scripts_into_drop(spec, context): # pylint: disable=unused-argument + mk.logger.info('task.py - Copying scripts into drop folder') + scripts_dest = os.path.join(drop_dir, 'scripts') + mk.util.copytree_clobber(script_dir, scripts_dest) + mk.util.copytree_clobber(mk.__path__[0], os.path.join(scripts_dest, 'msftkube')) + mk.util.copytree_clobber(os.path.join(root_dir, 'deploy'), os.path.join(drop_dir, 'deploy')) + commands['publish'] += [copy_scripts_into_drop] + else: + # we are in a build drop outside of the repository + drop_dir = root_dir + + mk.logger.info('task.py - Drop dir path is %s', drop_dir) + + # write log file to drop + mk.logger.addFileHandler(os.path.join(drop_dir, 'build.log')) + + # Seed spec from paths and args + seed_spec = {'paths': {'drop': drop_dir}} + + # provide user args & context to steps + + # read specs from files into spec + spec = mk.spec.create(root_dir, [seed_spec, os.path.join(root_dir, 'deploy', 'specs')]) + + # run any steps selected + mk.commands.execute(commands, spec, context) + +if __name__ == '__main__': + main() diff --git a/scripts/task.sh b/scripts/task.sh new file mode 100644 index 0000000..519677c --- /dev/null +++ b/scripts/task.sh @@ -0,0 +1,43 @@ +pushd `dirname $0` > /dev/null + +cd .. +if [ ! -d venv ]; then + mkdir venv +fi + +cd venv +pip install virtualenv +virtualenv -p /usr/bin/python3 . +source bin/activate + +cd .. +ROOT_PATH=`pwd` +popd > /dev/null + +if [[ $1 == "noinstall" ]]; then + echo "noinstall as first param so skipping install" + export MSFTKUBE_SKIP_INSTALL=1 + shift +fi + +mkver=`cat $ROOT_PATH/scripts/mkver` + +if [ -z "$MSFTKUBE_SKIP_INSTALL" ]; then + if $(pip freeze | grep -q "-e git.*msftkube") ; then + echo "Detected msftkube installed from local repository" + elif $(pip freeze | grep -q "msftkube==$mkver") ; then + echo "Already on correct version of msftkube" + else + echo "Installing msftkube" + url=https://msftkube.blob.core.windows.net/public/msftkube-$mkver-py3-none-any.whl + pip install $url + fi +else + echo "Not installing msftkube because MSFTKUBE_SKIP_INSTALL is set" +fi + +python -u $ROOT_PATH/scripts/task.py "$@" +EXITCODE=$? + +deactivate +exit $EXITCODE diff --git a/src/README.md b/src/README.md new file mode 100644 index 0000000..e69de29 diff --git a/helm-chart/jackil-docker-gc/.helmignore b/src/docker-cache-cleaner/.helmignore similarity index 100% rename from helm-chart/jackil-docker-gc/.helmignore rename to src/docker-cache-cleaner/.helmignore diff --git a/helm-chart/jackil-docker-gc/Chart.yaml b/src/docker-cache-cleaner/Chart.yaml similarity index 50% rename from helm-chart/jackil-docker-gc/Chart.yaml rename to src/docker-cache-cleaner/Chart.yaml index 3b811b2..48cc480 100644 --- a/helm-chart/jackil-docker-gc/Chart.yaml +++ b/src/docker-cache-cleaner/Chart.yaml @@ -1,10 +1,12 @@ -name: jackil-docker-gc +name: docker-cache-cleaner description: A Docker Image Garbage Collector Helm chart for Kubernetes -home: https://github.com/JasonStein/docker-gc +home: https://github.com/johndoe0920/docker-gc version: 1.0.0 appVersion: latest sources: - - https://github.com/JasonStein/docker-gc + - https://github.com/johndoe0920/docker-gc maintainers: - name: Jiaqi Liu email: jackil@Microsoft.com + - name: Ross Wagner + email: rowagne@microsoft.com diff --git a/helm-chart/jackil-docker-gc/templates/NOTES.txt b/src/docker-cache-cleaner/templates/NOTES.txt similarity index 100% rename from helm-chart/jackil-docker-gc/templates/NOTES.txt rename to src/docker-cache-cleaner/templates/NOTES.txt diff --git a/helm-chart/jackil-docker-gc/templates/_helpers.tpl b/src/docker-cache-cleaner/templates/_helpers.tpl similarity index 100% rename from helm-chart/jackil-docker-gc/templates/_helpers.tpl rename to src/docker-cache-cleaner/templates/_helpers.tpl diff --git a/helm-chart/jackil-docker-gc/templates/daemonset.yaml b/src/docker-cache-cleaner/templates/daemonset.yaml similarity index 100% rename from helm-chart/jackil-docker-gc/templates/daemonset.yaml rename to src/docker-cache-cleaner/templates/daemonset.yaml diff --git a/helm-chart/jackil-docker-gc/values.yaml b/src/docker-cache-cleaner/values.yaml similarity index 90% rename from helm-chart/jackil-docker-gc/values.yaml rename to src/docker-cache-cleaner/values.yaml index a30e2a4..b5b77b7 100644 --- a/helm-chart/jackil-docker-gc/values.yaml +++ b/src/docker-cache-cleaner/values.yaml @@ -1,8 +1,9 @@ # Default values for docker-gc. image: - repository: jackil/docker-gc + # repository: jackil/docker-gc #Repository should be moved to AIR Shared Container Registry #repository: airsharedcontainers.azurecr.io/docker-gc + repository: viennadroptest.azurecr.io/docker-cache-cleaner tag: latest pullPolicy: IfNotPresent # optional pull secrets From 889f8f8148e0f6b29ff0ecb52b0e99c7fad1f135 Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 21 Jan 2021 10:29:22 -0800 Subject: [PATCH 06/33] Changes to vsts build --- azure-pipelines.yml | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 6c25085..357480b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -12,18 +12,36 @@ variables: tag: '$(Build.BuildId)' stages: +# - stage: Build +# displayName: Build image +# jobs: +# - job: Build +# displayName: Build +# pool: +# vmImage: 'ubuntu-latest' +# steps: +# - task: Docker@2 +# displayName: Build an image +# inputs: +# command: build +# dockerfile: '$(Build.SourcesDirectory)/Dockerfile' +# tags: | +# $(tag) + - stage: Build - displayName: Build image + displayName: Build and push stage jobs: - job: Build - displayName: Build + displayName: Build job pool: vmImage: 'ubuntu-latest' steps: - task: Docker@2 - displayName: Build an image + displayName: Build and push an image to container registry inputs: - command: build + command: buildAndPush + repository: viennadroptest.azurecr.io dockerfile: '$(Build.SourcesDirectory)/Dockerfile' + containerRegistry: $(dockerRegistryServiceConnection) tags: | $(tag) \ No newline at end of file From aabfd9efdf5462a60917cf84964a321b41b30dc0 Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 21 Jan 2021 10:34:09 -0800 Subject: [PATCH 07/33] Update azure-pipelines.yml for Azure Pipelines --- azure-pipelines.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 357480b..2170c44 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -10,6 +10,8 @@ resources: variables: tag: '$(Build.BuildId)' + imageRepository: "viennadroptest.azurecr.io" + stages: # - stage: Build @@ -40,7 +42,7 @@ stages: displayName: Build and push an image to container registry inputs: command: buildAndPush - repository: viennadroptest.azurecr.io + repository: $(imageRepository) dockerfile: '$(Build.SourcesDirectory)/Dockerfile' containerRegistry: $(dockerRegistryServiceConnection) tags: | From f2dc8d7200ef15b42fa34fef7cf08e4340e5bf9b Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 21 Jan 2021 10:37:54 -0800 Subject: [PATCH 08/33] Update azure-pipelines.yml for Azure Pipelines --- azure-pipelines.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2170c44..0813683 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -11,6 +11,7 @@ resources: variables: tag: '$(Build.BuildId)' imageRepository: "viennadroptest.azurecr.io" + dockerRegistryServiceConnection: dockerRegistryServiceConnection1 stages: From 08a52fff4117793313859ef4b312a2143116fe93 Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 21 Jan 2021 11:04:12 -0800 Subject: [PATCH 09/33] Moving stuff to make full_drop work --- azure-pipelines.yml | 61 +++++++++++++------ deploy/specs/all-base.yaml | 11 ++++ deploy/specs/build.yaml | 11 ++-- .../ByDateRecyclingStrategyUnitTest.cs | 0 .../ByDiskSpaceRecyclingStrategyUnitTest.cs | 0 .../DockerGC.Tests}/DockerGC.Tests.csproj | 0 .../DockerGC.Tests}/MatchlistTest.cs | 0 .../RecyclingStrategyUnitTest.cs | 0 .../DockerGC}/ByDateRecyclingStrategy.cs | 0 .../DockerGC}/ByDiskSpaceRecyclingStrategy.cs | 0 {DockerGC => src/DockerGC}/ConsoleLogger.cs | 0 {DockerGC => src/DockerGC}/DockerGC.csproj | 0 .../DockerGC}/DockerGarbageCollector.cs | 0 .../DockerImageDependencyTreeBuilder.cs | 0 {DockerGC => src/DockerGC}/DockerImageNode.cs | 0 .../DockerGC}/DockerRepositoryDescriptor.cs | 0 {DockerGC => src/DockerGC}/EventProgress.cs | 0 {DockerGC => src/DockerGC}/ILogger.cs | 0 {DockerGC => src/DockerGC}/IMatchlist.cs | 0 {DockerGC => src/DockerGC}/Matchlist.cs | 0 {DockerGC => src/DockerGC}/Program.cs | 0 .../DockerGC}/RecyclingStrategy.cs | 0 {DockerGC => src/DockerGC}/StatsdLogger.cs | 0 Dockerfile => src/Dockerfile | 0 .../Dockerfile.helmtest | 0 Dockerfile.test => src/Dockerfile.test | 0 26 files changed, 59 insertions(+), 24 deletions(-) rename {DockerGC.Tests => src/DockerGC.Tests}/ByDateRecyclingStrategyUnitTest.cs (100%) rename {DockerGC.Tests => src/DockerGC.Tests}/ByDiskSpaceRecyclingStrategyUnitTest.cs (100%) rename {DockerGC.Tests => src/DockerGC.Tests}/DockerGC.Tests.csproj (100%) rename {DockerGC.Tests => src/DockerGC.Tests}/MatchlistTest.cs (100%) rename {DockerGC.Tests => src/DockerGC.Tests}/RecyclingStrategyUnitTest.cs (100%) rename {DockerGC => src/DockerGC}/ByDateRecyclingStrategy.cs (100%) rename {DockerGC => src/DockerGC}/ByDiskSpaceRecyclingStrategy.cs (100%) rename {DockerGC => src/DockerGC}/ConsoleLogger.cs (100%) rename {DockerGC => src/DockerGC}/DockerGC.csproj (100%) rename {DockerGC => src/DockerGC}/DockerGarbageCollector.cs (100%) rename {DockerGC => src/DockerGC}/DockerImageDependencyTreeBuilder.cs (100%) rename {DockerGC => src/DockerGC}/DockerImageNode.cs (100%) rename {DockerGC => src/DockerGC}/DockerRepositoryDescriptor.cs (100%) rename {DockerGC => src/DockerGC}/EventProgress.cs (100%) rename {DockerGC => src/DockerGC}/ILogger.cs (100%) rename {DockerGC => src/DockerGC}/IMatchlist.cs (100%) rename {DockerGC => src/DockerGC}/Matchlist.cs (100%) rename {DockerGC => src/DockerGC}/Program.cs (100%) rename {DockerGC => src/DockerGC}/RecyclingStrategy.cs (100%) rename {DockerGC => src/DockerGC}/StatsdLogger.cs (100%) rename Dockerfile => src/Dockerfile (100%) rename Dockerfile.helmtest => src/Dockerfile.helmtest (100%) rename Dockerfile.test => src/Dockerfile.test (100%) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 357480b..f75e6ef 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -9,9 +9,11 @@ resources: - repo: self variables: - tag: '$(Build.BuildId)' + # tag: '$(Build.BuildId)' +- name: Azure.ServiceConnectionId + value: 'Project Vienna Build (ad203158-bc5d-4e72-b764-2607833a71dc)' -stages: +# stages: # - stage: Build # displayName: Build image # jobs: @@ -28,20 +30,41 @@ stages: # tags: | # $(tag) -- stage: Build - displayName: Build and push stage - jobs: - - job: Build - displayName: Build job - pool: - vmImage: 'ubuntu-latest' - steps: - - task: Docker@2 - displayName: Build and push an image to container registry - inputs: - command: buildAndPush - repository: viennadroptest.azurecr.io - dockerfile: '$(Build.SourcesDirectory)/Dockerfile' - containerRegistry: $(dockerRegistryServiceConnection) - tags: | - $(tag) \ No newline at end of file +# - stage: Build +# displayName: Build and push stage +# jobs: +# - job: Build +# displayName: Build job +# pool: +# vmImage: 'ubuntu-latest' +# steps: +# - task: Docker@2 +# displayName: Build and push an image to container registry +# inputs: +# command: buildAndPush +# repository: viennadroptest.azurecr.io +# dockerfile: '$(Build.SourcesDirectory)/Dockerfile' +# containerRegistry: $(dockerRegistryServiceConnection) +# tags: | +# $(tag) + +steps: +- checkout: self + persistCredentials: true + +- task: UsePythonVersion@0 + displayName: 'Use Python 3.8' + inputs: + versionSpec: 3.8 + +- task: AzureCLI@1 + displayName: 'Generate msftkube files' + env: + AZURE_DEVOPS_EXT_PAT: '$(System.AccessToken)' + inputs: + azureSubscription: '$(Azure.ServiceConnectionId)' + addSpnToEnvironment: true + scriptLocation: 'scriptPath' + scriptPath: '$(system.defaultWorkingDirectory)/scripts/task.sh' + args: --verbose full_drop + workingDirectory: '$(system.defaultWorkingDirectory)' \ No newline at end of file diff --git a/deploy/specs/all-base.yaml b/deploy/specs/all-base.yaml index 0d2c51f..53b6ed6 100644 --- a/deploy/specs/all-base.yaml +++ b/deploy/specs/all-base.yaml @@ -11,6 +11,17 @@ envs: __base__: # the __base__ app gets inherited by all other apps __name__: ~ # this instructs conf to inject the app name as app.__name__ __anchor__: app + build: + __base__: + publish: false # infra repo opted-out from msftkube builds + docker: + __omit_base__: [ 'publish' ] # do not inherit this setting + builds: + __base__: # this __base__ docker build gets inherited by all docker builds + dir: "{{app.build.dotnet.outdir}}" + checksum: True # with true, always checksum the dir + # if a savePath is specified in docker build def then a tarball of the image will be saved into the image. It can be quite big. + # savePath: "{{paths.drop}}/docker/images/{{app.__name__}}.tar.gz" k8s: source: "{{paths.k8s.source}}/{{app.__name__}}.yaml" destinationDirectory: "{{paths.k8s.dest}}" diff --git a/deploy/specs/build.yaml b/deploy/specs/build.yaml index b186e3b..51c0d22 100644 --- a/deploy/specs/build.yaml +++ b/deploy/specs/build.yaml @@ -1,8 +1,9 @@ apps: - # msftkube will fail if there's no app - dummy-app: - deploymentGroups: - - "default" docker-cache-cleaner: deploymentGroups: - - "default" \ No newline at end of file + - "default" + build: + docker: + builds: + docker-cache-cleaner: + dir: "{{paths.src}}" \ No newline at end of file diff --git a/DockerGC.Tests/ByDateRecyclingStrategyUnitTest.cs b/src/DockerGC.Tests/ByDateRecyclingStrategyUnitTest.cs similarity index 100% rename from DockerGC.Tests/ByDateRecyclingStrategyUnitTest.cs rename to src/DockerGC.Tests/ByDateRecyclingStrategyUnitTest.cs diff --git a/DockerGC.Tests/ByDiskSpaceRecyclingStrategyUnitTest.cs b/src/DockerGC.Tests/ByDiskSpaceRecyclingStrategyUnitTest.cs similarity index 100% rename from DockerGC.Tests/ByDiskSpaceRecyclingStrategyUnitTest.cs rename to src/DockerGC.Tests/ByDiskSpaceRecyclingStrategyUnitTest.cs diff --git a/DockerGC.Tests/DockerGC.Tests.csproj b/src/DockerGC.Tests/DockerGC.Tests.csproj similarity index 100% rename from DockerGC.Tests/DockerGC.Tests.csproj rename to src/DockerGC.Tests/DockerGC.Tests.csproj diff --git a/DockerGC.Tests/MatchlistTest.cs b/src/DockerGC.Tests/MatchlistTest.cs similarity index 100% rename from DockerGC.Tests/MatchlistTest.cs rename to src/DockerGC.Tests/MatchlistTest.cs diff --git a/DockerGC.Tests/RecyclingStrategyUnitTest.cs b/src/DockerGC.Tests/RecyclingStrategyUnitTest.cs similarity index 100% rename from DockerGC.Tests/RecyclingStrategyUnitTest.cs rename to src/DockerGC.Tests/RecyclingStrategyUnitTest.cs diff --git a/DockerGC/ByDateRecyclingStrategy.cs b/src/DockerGC/ByDateRecyclingStrategy.cs similarity index 100% rename from DockerGC/ByDateRecyclingStrategy.cs rename to src/DockerGC/ByDateRecyclingStrategy.cs diff --git a/DockerGC/ByDiskSpaceRecyclingStrategy.cs b/src/DockerGC/ByDiskSpaceRecyclingStrategy.cs similarity index 100% rename from DockerGC/ByDiskSpaceRecyclingStrategy.cs rename to src/DockerGC/ByDiskSpaceRecyclingStrategy.cs diff --git a/DockerGC/ConsoleLogger.cs b/src/DockerGC/ConsoleLogger.cs similarity index 100% rename from DockerGC/ConsoleLogger.cs rename to src/DockerGC/ConsoleLogger.cs diff --git a/DockerGC/DockerGC.csproj b/src/DockerGC/DockerGC.csproj similarity index 100% rename from DockerGC/DockerGC.csproj rename to src/DockerGC/DockerGC.csproj diff --git a/DockerGC/DockerGarbageCollector.cs b/src/DockerGC/DockerGarbageCollector.cs similarity index 100% rename from DockerGC/DockerGarbageCollector.cs rename to src/DockerGC/DockerGarbageCollector.cs diff --git a/DockerGC/DockerImageDependencyTreeBuilder.cs b/src/DockerGC/DockerImageDependencyTreeBuilder.cs similarity index 100% rename from DockerGC/DockerImageDependencyTreeBuilder.cs rename to src/DockerGC/DockerImageDependencyTreeBuilder.cs diff --git a/DockerGC/DockerImageNode.cs b/src/DockerGC/DockerImageNode.cs similarity index 100% rename from DockerGC/DockerImageNode.cs rename to src/DockerGC/DockerImageNode.cs diff --git a/DockerGC/DockerRepositoryDescriptor.cs b/src/DockerGC/DockerRepositoryDescriptor.cs similarity index 100% rename from DockerGC/DockerRepositoryDescriptor.cs rename to src/DockerGC/DockerRepositoryDescriptor.cs diff --git a/DockerGC/EventProgress.cs b/src/DockerGC/EventProgress.cs similarity index 100% rename from DockerGC/EventProgress.cs rename to src/DockerGC/EventProgress.cs diff --git a/DockerGC/ILogger.cs b/src/DockerGC/ILogger.cs similarity index 100% rename from DockerGC/ILogger.cs rename to src/DockerGC/ILogger.cs diff --git a/DockerGC/IMatchlist.cs b/src/DockerGC/IMatchlist.cs similarity index 100% rename from DockerGC/IMatchlist.cs rename to src/DockerGC/IMatchlist.cs diff --git a/DockerGC/Matchlist.cs b/src/DockerGC/Matchlist.cs similarity index 100% rename from DockerGC/Matchlist.cs rename to src/DockerGC/Matchlist.cs diff --git a/DockerGC/Program.cs b/src/DockerGC/Program.cs similarity index 100% rename from DockerGC/Program.cs rename to src/DockerGC/Program.cs diff --git a/DockerGC/RecyclingStrategy.cs b/src/DockerGC/RecyclingStrategy.cs similarity index 100% rename from DockerGC/RecyclingStrategy.cs rename to src/DockerGC/RecyclingStrategy.cs diff --git a/DockerGC/StatsdLogger.cs b/src/DockerGC/StatsdLogger.cs similarity index 100% rename from DockerGC/StatsdLogger.cs rename to src/DockerGC/StatsdLogger.cs diff --git a/Dockerfile b/src/Dockerfile similarity index 100% rename from Dockerfile rename to src/Dockerfile diff --git a/Dockerfile.helmtest b/src/Dockerfile.helmtest similarity index 100% rename from Dockerfile.helmtest rename to src/Dockerfile.helmtest diff --git a/Dockerfile.test b/src/Dockerfile.test similarity index 100% rename from Dockerfile.test rename to src/Dockerfile.test From de92b5fbf7eaa07a897d34f955fac1a3c2f7a3ab Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 21 Jan 2021 11:07:09 -0800 Subject: [PATCH 10/33] Update azure-pipelines.yml for Azure Pipelines --- azure-pipelines.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c83837d..162ca52 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -5,6 +5,9 @@ trigger: - main +pool: + name: 'Vienna Inferencing Ubuntu' + resources: - repo: self From 04e0edeed1dd7a46a2120cc642f32c4778e23f46 Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 21 Jan 2021 11:10:28 -0800 Subject: [PATCH 11/33] updating task.sh --- scripts/task.sh | 47 +++++++---------------------------------------- 1 file changed, 7 insertions(+), 40 deletions(-) diff --git a/scripts/task.sh b/scripts/task.sh index 519677c..810bde5 100644 --- a/scripts/task.sh +++ b/scripts/task.sh @@ -1,43 +1,10 @@ -pushd `dirname $0` > /dev/null - -cd .. -if [ ! -d venv ]; then - mkdir venv -fi - -cd venv -pip install virtualenv -virtualenv -p /usr/bin/python3 . -source bin/activate - +#!/bin/bash +set -ex +cd `dirname $0` > /dev/null cd .. -ROOT_PATH=`pwd` -popd > /dev/null - -if [[ $1 == "noinstall" ]]; then - echo "noinstall as first param so skipping install" - export MSFTKUBE_SKIP_INSTALL=1 - shift -fi - -mkver=`cat $ROOT_PATH/scripts/mkver` - -if [ -z "$MSFTKUBE_SKIP_INSTALL" ]; then - if $(pip freeze | grep -q "-e git.*msftkube") ; then - echo "Detected msftkube installed from local repository" - elif $(pip freeze | grep -q "msftkube==$mkver") ; then - echo "Already on correct version of msftkube" - else - echo "Installing msftkube" - url=https://msftkube.blob.core.windows.net/public/msftkube-$mkver-py3-none-any.whl - pip install $url - fi -else - echo "Not installing msftkube because MSFTKUBE_SKIP_INSTALL is set" -fi -python -u $ROOT_PATH/scripts/task.py "$@" -EXITCODE=$? +python -m venv /tmp/aml-ve +source /tmp/aml-ve/bin/activate -deactivate -exit $EXITCODE +wget -O - https://aka.ms/msftkube-bootstrapper.sh | bash +msftkube "$@" From 5749521ed05265832c94ab57f285943659329557 Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 21 Jan 2021 11:14:16 -0800 Subject: [PATCH 12/33] Update task.sh again --- scripts/task.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/scripts/task.sh b/scripts/task.sh index 810bde5..b950c99 100644 --- a/scripts/task.sh +++ b/scripts/task.sh @@ -1,10 +1,11 @@ -#!/bin/bash +#!/usr/bin/env bash set -ex -cd `dirname $0` > /dev/null -cd .. -python -m venv /tmp/aml-ve -source /tmp/aml-ve/bin/activate +PARENT_DIR=$(realpath `dirname $0`/..) +python -m venv /tmp/aml-venv +source /tmp/aml-venv/bin/activate wget -O - https://aka.ms/msftkube-bootstrapper.sh | bash + +cd $PARENT_DIR msftkube "$@" From bbafa40bf77c1e2593a0dec1d5ddd2cc8a971f7e Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 21 Jan 2021 11:21:27 -0800 Subject: [PATCH 13/33] removing mkver --- scripts/mkver | 1 - 1 file changed, 1 deletion(-) delete mode 100644 scripts/mkver diff --git a/scripts/mkver b/scripts/mkver deleted file mode 100644 index b2eb805..0000000 --- a/scripts/mkver +++ /dev/null @@ -1 +0,0 @@ -1.0.1261145 From f7d04717f92321c03a33bdc2f75ebbef1a697807 Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 21 Jan 2021 12:36:05 -0800 Subject: [PATCH 14/33] MOre updates --- azure-pipelines.yml | 36 ----------------------------- src/docker-cache-cleaner/Chart.yaml | 2 +- 2 files changed, 1 insertion(+), 37 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 162ca52..0e6ed4c 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -12,45 +12,9 @@ resources: - repo: self variables: - # tag: '$(Build.BuildId)' - name: Azure.ServiceConnectionId value: 'Project Vienna Build (ad203158-bc5d-4e72-b764-2607833a71dc)' -# stages: -# - stage: Build -# displayName: Build image -# jobs: -# - job: Build -# displayName: Build -# pool: -# vmImage: 'ubuntu-latest' -# steps: -# - task: Docker@2 -# displayName: Build an image -# inputs: -# command: build -# dockerfile: '$(Build.SourcesDirectory)/Dockerfile' -# tags: | -# $(tag) - -# - stage: Build -# displayName: Build and push stage -# jobs: -# - job: Build -# displayName: Build job -# pool: -# vmImage: 'ubuntu-latest' -# steps: -# - task: Docker@2 -# displayName: Build and push an image to container registry -# inputs: -# command: buildAndPush -# repository: viennadroptest.azurecr.io -# dockerfile: '$(Build.SourcesDirectory)/Dockerfile' -# containerRegistry: $(dockerRegistryServiceConnection) -# tags: | -# $(tag) - steps: - checkout: self persistCredentials: true diff --git a/src/docker-cache-cleaner/Chart.yaml b/src/docker-cache-cleaner/Chart.yaml index 48cc480..043c04b 100644 --- a/src/docker-cache-cleaner/Chart.yaml +++ b/src/docker-cache-cleaner/Chart.yaml @@ -2,7 +2,7 @@ name: docker-cache-cleaner description: A Docker Image Garbage Collector Helm chart for Kubernetes home: https://github.com/johndoe0920/docker-gc version: 1.0.0 -appVersion: latest +appVersion: 1.0.0 sources: - https://github.com/johndoe0920/docker-gc maintainers: From f7de4a14436586570a09fd7b37fa2c2f2ab77f36 Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 21 Jan 2021 12:43:26 -0800 Subject: [PATCH 15/33] Cleaning up some values. --- .../helm/docker-cache-cleaner-values.yaml | 15 +++------------ src/docker-cache-cleaner/values.yaml | 15 +++------------ 2 files changed, 6 insertions(+), 24 deletions(-) diff --git a/deploy/templates/helm/docker-cache-cleaner-values.yaml b/deploy/templates/helm/docker-cache-cleaner-values.yaml index b5b77b7..008fa8f 100644 --- a/deploy/templates/helm/docker-cache-cleaner-values.yaml +++ b/deploy/templates/helm/docker-cache-cleaner-values.yaml @@ -1,14 +1,8 @@ # Default values for docker-gc. image: - # repository: jackil/docker-gc - #Repository should be moved to AIR Shared Container Registry - #repository: airsharedcontainers.azurecr.io/docker-gc repository: viennadroptest.azurecr.io/docker-cache-cleaner - tag: latest + # tag: latest pullPolicy: IfNotPresent - # optional pull secrets - # pullSecrets: - # - "airsharedcontainers" docker: socketPath: /var/run/docker.sock volumeName: docker-volume @@ -20,14 +14,11 @@ statsd: #port: 8125 config: dockerEndpoint: unix:///var/run/docker.sock - executionIntervalInMinutes: 60 + executionIntervalInMinutes: 360 dockerClientTimeoutInSeconds: 180 imageDeletionOrder: ByImageLastTouchDate - #imageDeletionOrder: ByImageCreationDate strategy: ByDate - daysBeforeDeletion: 30 - #strategy: ByDiskSpace - #sizeLimitInGigabyte: + daysBeforeDeletion: 1 containerStateBlacklist: dead,exited resources: limits: diff --git a/src/docker-cache-cleaner/values.yaml b/src/docker-cache-cleaner/values.yaml index b5b77b7..008fa8f 100644 --- a/src/docker-cache-cleaner/values.yaml +++ b/src/docker-cache-cleaner/values.yaml @@ -1,14 +1,8 @@ # Default values for docker-gc. image: - # repository: jackil/docker-gc - #Repository should be moved to AIR Shared Container Registry - #repository: airsharedcontainers.azurecr.io/docker-gc repository: viennadroptest.azurecr.io/docker-cache-cleaner - tag: latest + # tag: latest pullPolicy: IfNotPresent - # optional pull secrets - # pullSecrets: - # - "airsharedcontainers" docker: socketPath: /var/run/docker.sock volumeName: docker-volume @@ -20,14 +14,11 @@ statsd: #port: 8125 config: dockerEndpoint: unix:///var/run/docker.sock - executionIntervalInMinutes: 60 + executionIntervalInMinutes: 360 dockerClientTimeoutInSeconds: 180 imageDeletionOrder: ByImageLastTouchDate - #imageDeletionOrder: ByImageCreationDate strategy: ByDate - daysBeforeDeletion: 30 - #strategy: ByDiskSpace - #sizeLimitInGigabyte: + daysBeforeDeletion: 1 containerStateBlacklist: dead,exited resources: limits: From 25d86933f5308b64bf03dc6d1211f70834ea1422 Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 21 Jan 2021 12:59:25 -0800 Subject: [PATCH 16/33] Updating pipeline --- azure-pipelines.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 0e6ed4c..e34f1a3 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -35,3 +35,9 @@ steps: scriptPath: '$(system.defaultWorkingDirectory)/scripts/task.sh' args: --verbose full_drop workingDirectory: '$(system.defaultWorkingDirectory)' + +- task: PublishPipelineArtifact@0 + displayName: 'Publish msftkube files as artifacts from $(build.artifactstagingdirectory)' + inputs: + artifactName: 'drop' + targetPath: '$(system.defaultWorkingDirectory)/build' \ No newline at end of file From 05021146932a138a3715e5bdb4d72e79e91bcdaa Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 21 Jan 2021 13:16:02 -0800 Subject: [PATCH 17/33] Updating pipeline --- azure-pipelines.yml | 12 +++++++++++- src/docker-cache-cleaner/templates/daemonset.yaml | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index e34f1a3..77bb523 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -40,4 +40,14 @@ steps: displayName: 'Publish msftkube files as artifacts from $(build.artifactstagingdirectory)' inputs: artifactName: 'drop' - targetPath: '$(system.defaultWorkingDirectory)/build' \ No newline at end of file + targetPath: '$(system.defaultWorkingDirectory)/build' + +- task: UniversalPackages@0 + displayName: Publish Package + inputs: + command: publish + publishDirectory: 'build' + vstsFeedPublish: 'mir-dev-feed' + vstsFeedPackagePublish: 'docker-cache-cleaner' + versionOption: 'patch' + packagePublishDescription: 'docker-cache-cleaner' \ No newline at end of file diff --git a/src/docker-cache-cleaner/templates/daemonset.yaml b/src/docker-cache-cleaner/templates/daemonset.yaml index 43f7368..512ee73 100644 --- a/src/docker-cache-cleaner/templates/daemonset.yaml +++ b/src/docker-cache-cleaner/templates/daemonset.yaml @@ -19,7 +19,7 @@ spec: spec: containers: - name: {{ template "docker-gc.name" . }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + image: "{{ .Values.image.repository }}:{{app.drop.images.docker-cache-cleaner.tag}}" imagePullPolicy: {{ .Values.image.pullPolicy }} resources: {{ toYaml .Values.resources | indent 10 }} From 078dc9beaee42e8705991bd0973881258f97eebc Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 21 Jan 2021 13:31:31 -0800 Subject: [PATCH 18/33] More changes --- deploy/templates/helm/docker-cache-cleaner-values.yaml | 2 +- src/docker-cache-cleaner/values.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/templates/helm/docker-cache-cleaner-values.yaml b/deploy/templates/helm/docker-cache-cleaner-values.yaml index 008fa8f..3dc07bd 100644 --- a/deploy/templates/helm/docker-cache-cleaner-values.yaml +++ b/deploy/templates/helm/docker-cache-cleaner-values.yaml @@ -1,7 +1,7 @@ # Default values for docker-gc. image: repository: viennadroptest.azurecr.io/docker-cache-cleaner - # tag: latest + tag: "{{app.drop.images.docker-cache-cleaner.tag}}" pullPolicy: IfNotPresent docker: socketPath: /var/run/docker.sock diff --git a/src/docker-cache-cleaner/values.yaml b/src/docker-cache-cleaner/values.yaml index 008fa8f..3dc07bd 100644 --- a/src/docker-cache-cleaner/values.yaml +++ b/src/docker-cache-cleaner/values.yaml @@ -1,7 +1,7 @@ # Default values for docker-gc. image: repository: viennadroptest.azurecr.io/docker-cache-cleaner - # tag: latest + tag: "{{app.drop.images.docker-cache-cleaner.tag}}" pullPolicy: IfNotPresent docker: socketPath: /var/run/docker.sock From e0ab36da5e185fc042402e031092e68873ae47a2 Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 21 Jan 2021 14:21:50 -0800 Subject: [PATCH 19/33] More radical changes --- azure-pipelines.yml | 2 +- deploy/specs/all-base.yaml | 24 ++++++++ deploy/specs/build.yaml | 5 ++ .../helm/docker-cache-cleaner-values.yaml | 1 + .../templates/k8s/docker-cache-cleaner.yaml | 58 +++++++++++++++++++ deploy/templates/k8s/readme.md | 0 ...emonset.yaml => docker-cache-cleaner.yaml} | 11 +--- src/docker-cache-cleaner/values.yaml | 2 + 8 files changed, 92 insertions(+), 11 deletions(-) create mode 100644 deploy/templates/k8s/docker-cache-cleaner.yaml create mode 100644 deploy/templates/k8s/readme.md rename src/docker-cache-cleaner/templates/{daemonset.yaml => docker-cache-cleaner.yaml} (86%) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 77bb523..f5aaf0e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -33,7 +33,7 @@ steps: addSpnToEnvironment: true scriptLocation: 'scriptPath' scriptPath: '$(system.defaultWorkingDirectory)/scripts/task.sh' - args: --verbose full_drop + args: --verbose full_drop -e mir-release-int-westus2 workingDirectory: '$(system.defaultWorkingDirectory)' - task: PublishPipelineArtifact@0 diff --git a/deploy/specs/all-base.yaml b/deploy/specs/all-base.yaml index 53b6ed6..a33aa0a 100644 --- a/deploy/specs/all-base.yaml +++ b/deploy/specs/all-base.yaml @@ -33,3 +33,27 @@ envs: subscription: "{{deploy.azure.subscription}}" region: "{{deploy.azure.region}}" group: "{{deploy.azure.group}}" + docker-cache-cleaner: + k8s: + parameters: + fullname: docker-cache-cleaner + chartName: docker-cache-cleaner + imagePullPolicy: IfNotPresent + allowMissingResourceFiles: True + recyclingStrategy: ByDate + dockerEndpoint: unix:///var/run/docker.sock + executionIntervalInMinutes: 360 + dockerClientTimeoutInSeconds: 180 + imageDeletionOrder: ByImageLastTouchDate + strategy: ByDate + daysBeforeDeletion: 1 + containerStateBlacklist: dead,exited + socketPath: /var/run/docker.sock + volumeName: docker-volume + resources: + limits: + cpu: 100m + memory: 128Mi + requests: + cpu: "0" + memory: 128Mi diff --git a/deploy/specs/build.yaml b/deploy/specs/build.yaml index 51c0d22..19b3c43 100644 --- a/deploy/specs/build.yaml +++ b/deploy/specs/build.yaml @@ -1,4 +1,9 @@ apps: + __base__: # this __base__ app gets inherited by all other apps + __name__: ~ # this instructs spec to inject the app name as app.__name__ + __anchor__: app + icm: + routingId: Vienna-MIR docker-cache-cleaner: deploymentGroups: - "default" diff --git a/deploy/templates/helm/docker-cache-cleaner-values.yaml b/deploy/templates/helm/docker-cache-cleaner-values.yaml index 3dc07bd..1b79ade 100644 --- a/deploy/templates/helm/docker-cache-cleaner-values.yaml +++ b/deploy/templates/helm/docker-cache-cleaner-values.yaml @@ -6,6 +6,7 @@ image: docker: socketPath: /var/run/docker.sock volumeName: docker-volume +fullname: docker-cache-cleaner fullnameOverride: docker-cache-cleaner nameOverride: docker-cache-cleaner statsd: diff --git a/deploy/templates/k8s/docker-cache-cleaner.yaml b/deploy/templates/k8s/docker-cache-cleaner.yaml new file mode 100644 index 0000000..594b6aa --- /dev/null +++ b/deploy/templates/k8s/docker-cache-cleaner.yaml @@ -0,0 +1,58 @@ +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: "{{app.k8s.parameters.fullname}}" + labels: + app: "{{app.k8s.parameters.fullname}}" + chart: "{{app.k8s.parameters.chartName}}" +spec: + selector: + matchLabels: + app: docker-cache-cleaner + template: + metadata: + labels: + app: docker-cache-cleaner + spec: + containers: + - name: "{{app.k8s.parameters.fullname}}" + image: "{{publish.docker.registry.hostname}}/{{app.drop.images.docker-cache-cleaner.name}}:{{app.drop.images.docker-cache-cleaner.tag}}" + imagePullPolicy: "{{app.k8s.parameters.imagePullPolicy}}" + resources: + limits: + cpu: "{{app.resources.limits.cpu}}" + memory: "{{app.resources.limits.memory}}" + requests: + cpu: "{{app.resources.requests.cpu}}" + memory: "{{app.resources.requests.memory}}" + env: + - name: DOCKERGC_RECYCLING_STRATEGY + value: "{{app.k8s.parameters.recyclingStrategy}}" + - name: DOCKERGC_EXECUTION_INTERVAL_IN_MINUTES + value: "{{app.k8s.parameters.executionIntervalInMinutes}}" + - name: DOCKERGC_DOCKER_ENDPOINT + value: "{{app.k8s.parameters.dockerEndpoint}}" + - name: DOCKERGC_CONTAINER_STATE_BLACKLIST + value: "{{app.k8s.parameters.containerStateBlacklist}}" + - name: DOCKERGC_IMAGE_DELETION_ORDER + value: "{{app.k8s.parameters.imageDeletionOrder}}" + - name: DOCKERGC_DOCKER_CLIENT_TIMEOUT_IN_SECONDS + value: "{{app.k8s.parameters.dockerClientTimeoutInSeconds}}" + - name: DOCKERGC_DAYS_BEFORE_DELETION + value: "{{app.k8s.parameters.daysBeforeDeletion}}" + volumeMounts: + - mountPath: "{{app.k8s.parameters.socketPath}}" + name: "{{app.k8s.parameters.volumeName}}" + tolerations: + - effect: NoSchedule + operator: Exists + - effect: NoExecute + operator: Exists + volumes: + - name: "{{app.k8s.parameters.volumeName}}" + hostPath: + path: "{{app.k8s.parameters.socketPath}}" + updateStrategy: + rollingUpdate: + maxUnavailable: 100% + type: RollingUpdate \ No newline at end of file diff --git a/deploy/templates/k8s/readme.md b/deploy/templates/k8s/readme.md new file mode 100644 index 0000000..e69de29 diff --git a/src/docker-cache-cleaner/templates/daemonset.yaml b/src/docker-cache-cleaner/templates/docker-cache-cleaner.yaml similarity index 86% rename from src/docker-cache-cleaner/templates/daemonset.yaml rename to src/docker-cache-cleaner/templates/docker-cache-cleaner.yaml index 512ee73..00207b8 100644 --- a/src/docker-cache-cleaner/templates/daemonset.yaml +++ b/src/docker-cache-cleaner/templates/docker-cache-cleaner.yaml @@ -5,8 +5,6 @@ metadata: labels: app: {{ template "docker-gc.name" . }} chart: {{ template "docker-gc.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} spec: selector: matchLabels: @@ -15,11 +13,10 @@ spec: metadata: labels: app: docker-cache-cleaner - release: {{ .Release.Name }} spec: containers: - name: {{ template "docker-gc.name" . }} - image: "{{ .Values.image.repository }}:{{app.drop.images.docker-cache-cleaner.tag}}" + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} resources: {{ toYaml .Values.resources | indent 10 }} @@ -64,12 +61,6 @@ spec: - name: {{ .Values.docker.volumeName }} hostPath: path: {{ .Values.docker.socketPath }} - {{- if .Values.image.pullSecrets }} - imagePullSecrets: - {{- range .Values.image.pullSecrets }} - - name: {{ . }} - {{- end }} - {{- end }} updateStrategy: rollingUpdate: maxUnavailable: 100% diff --git a/src/docker-cache-cleaner/values.yaml b/src/docker-cache-cleaner/values.yaml index 3dc07bd..db50d87 100644 --- a/src/docker-cache-cleaner/values.yaml +++ b/src/docker-cache-cleaner/values.yaml @@ -6,6 +6,8 @@ image: docker: socketPath: /var/run/docker.sock volumeName: docker-volume +chart: docker-cache-cleaner +fullname: docker-cache-cleaner fullnameOverride: docker-cache-cleaner nameOverride: docker-cache-cleaner statsd: From 7aa3a252096c1d2945e596b17ddfe2b8c6c7ed4a Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 21 Jan 2021 14:37:22 -0800 Subject: [PATCH 20/33] Adding namespace --- deploy/specs/all-base.yaml | 1 + deploy/templates/k8s/docker-cache-cleaner.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/deploy/specs/all-base.yaml b/deploy/specs/all-base.yaml index a33aa0a..7573d40 100644 --- a/deploy/specs/all-base.yaml +++ b/deploy/specs/all-base.yaml @@ -36,6 +36,7 @@ envs: docker-cache-cleaner: k8s: parameters: + namespace: docker-cache-cleaner fullname: docker-cache-cleaner chartName: docker-cache-cleaner imagePullPolicy: IfNotPresent diff --git a/deploy/templates/k8s/docker-cache-cleaner.yaml b/deploy/templates/k8s/docker-cache-cleaner.yaml index 594b6aa..24cb0bb 100644 --- a/deploy/templates/k8s/docker-cache-cleaner.yaml +++ b/deploy/templates/k8s/docker-cache-cleaner.yaml @@ -2,6 +2,7 @@ apiVersion: apps/v1 kind: DaemonSet metadata: name: "{{app.k8s.parameters.fullname}}" + namespace: "{{app.k8s.parameters.namespace}}" labels: app: "{{app.k8s.parameters.fullname}}" chart: "{{app.k8s.parameters.chartName}}" From ef7a1582576c5c7553e44222034ab6f4e6244d79 Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 21 Jan 2021 14:51:59 -0800 Subject: [PATCH 21/33] Update azure-pipelines.yml for Azure Pipelines --- azure-pipelines.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f5aaf0e..7045fb2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -3,7 +3,12 @@ # https://docs.microsoft.com/azure/devops/pipelines/languages/docker trigger: -- main + branches: + include: + - master + paths: + include: + - /* pool: name: 'Vienna Inferencing Ubuntu' From 708b7a822472d227bde9a4205b753d671895708d Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 21 Jan 2021 14:54:43 -0800 Subject: [PATCH 22/33] Update azure-pipelines.yml for Azure Pipelines --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 7045fb2..6505a07 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -38,7 +38,7 @@ steps: addSpnToEnvironment: true scriptLocation: 'scriptPath' scriptPath: '$(system.defaultWorkingDirectory)/scripts/task.sh' - args: --verbose full_drop -e mir-release-int-westus2 + args: --verbose full_drop workingDirectory: '$(system.defaultWorkingDirectory)' - task: PublishPipelineArtifact@0 From c9be638f291c0b4cbb50c97d6c0e00e12bde6d50 Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Wed, 27 Jan 2021 11:22:56 -0800 Subject: [PATCH 23/33] Updating dotnet from 2.0 to 5.0 to deal with vulnerabilities. --- .vscode/launch.json | 2 +- src/DockerGC.Tests/DockerGC.Tests.csproj | 2 +- src/DockerGC/DockerGC.csproj | 2 +- src/Dockerfile | 4 ++-- src/Dockerfile.test | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index a115336..23f9cf9 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -10,7 +10,7 @@ "request": "launch", "preLaunchTask": "build", // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceRoot}/DockerGC/bin/Debug/netcoreapp2.0/DockerGC.dll", + "program": "${workspaceRoot}/DockerGC/bin/Debug/netcoreapp5.0/DockerGC.dll", "args": [], "cwd": "${workspaceRoot}", // For more information about the 'console' field, see https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md#console-terminal-window diff --git a/src/DockerGC.Tests/DockerGC.Tests.csproj b/src/DockerGC.Tests/DockerGC.Tests.csproj index c39a03e..e0b889c 100644 --- a/src/DockerGC.Tests/DockerGC.Tests.csproj +++ b/src/DockerGC.Tests/DockerGC.Tests.csproj @@ -1,6 +1,6 @@ - netcoreapp2.0 + netcoreapp5.0 false diff --git a/src/DockerGC/DockerGC.csproj b/src/DockerGC/DockerGC.csproj index 91bef62..a87181c 100644 --- a/src/DockerGC/DockerGC.csproj +++ b/src/DockerGC/DockerGC.csproj @@ -1,7 +1,7 @@ Exe - netcoreapp2.0 + netcoreapp5.0 diff --git a/src/Dockerfile b/src/Dockerfile index b60e90e..2d60ba0 100644 --- a/src/Dockerfile +++ b/src/Dockerfile @@ -1,4 +1,4 @@ -FROM microsoft/dotnet:2.0-sdk AS build-env +FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build-env WORKDIR /docker-gc COPY DockerGC ./ @@ -6,7 +6,7 @@ COPY DockerGC ./ RUN dotnet publish -c Release -o out # build runtime image -FROM microsoft/dotnet:2.0-runtime +FROM mcr.microsoft.com/dotnet/runtime:5.0 WORKDIR /docker-gc COPY --from=build-env /docker-gc/out ./ diff --git a/src/Dockerfile.test b/src/Dockerfile.test index add6b6d..40cc28b 100644 --- a/src/Dockerfile.test +++ b/src/Dockerfile.test @@ -1,6 +1,6 @@ # DockerGC Unit Tests Dockerfile -FROM microsoft/dotnet:2.0-sdk +FROM mcr.microsoft.com/dotnet/sdk:5.0 COPY DockerGC DockerGC COPY DockerGC.Tests DockerGC.Tests From 790fb1375840aba38e190af84d82d9dd015c9987 Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Wed, 27 Jan 2021 18:12:33 -0800 Subject: [PATCH 24/33] Adding update and upgrade --- src/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Dockerfile b/src/Dockerfile index 2d60ba0..505a11e 100644 --- a/src/Dockerfile +++ b/src/Dockerfile @@ -10,6 +10,8 @@ FROM mcr.microsoft.com/dotnet/runtime:5.0 WORKDIR /docker-gc COPY --from=build-env /docker-gc/out ./ +RUN apt update && apt upgrade -y + ENV DOCKERGC_DOCKER_ENDPOINT unix:///var/run/docker.sock ENV DOCKERGC_EXECUTION_INTERVAL_IN_MINUTES 720 ENV DOCKERGC_DOCKER_CLIENT_TIMEOUT_IN_SECONDS 180 From 91c552e122eb29b7d27635f43697432566330ead Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Wed, 27 Jan 2021 18:15:39 -0800 Subject: [PATCH 25/33] Adding update and upgrade --- src/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Dockerfile b/src/Dockerfile index 505a11e..a74981e 100644 --- a/src/Dockerfile +++ b/src/Dockerfile @@ -10,7 +10,7 @@ FROM mcr.microsoft.com/dotnet/runtime:5.0 WORKDIR /docker-gc COPY --from=build-env /docker-gc/out ./ -RUN apt update && apt upgrade -y +RUN apt update && apt upgrade -y && apt autoclean ENV DOCKERGC_DOCKER_ENDPOINT unix:///var/run/docker.sock ENV DOCKERGC_EXECUTION_INTERVAL_IN_MINUTES 720 From 72e1a5b0ff10160f8330e3f83dea12d2870afa88 Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 28 Jan 2021 11:52:22 -0800 Subject: [PATCH 26/33] Making CI and Master builds --- vsts/.vsts-ci.yml | 53 +++++++++++++++++++++++++++++++++++++++ vsts/.vsts-master.yml | 58 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 vsts/.vsts-ci.yml create mode 100644 vsts/.vsts-master.yml diff --git a/vsts/.vsts-ci.yml b/vsts/.vsts-ci.yml new file mode 100644 index 0000000..2a7ae17 --- /dev/null +++ b/vsts/.vsts-ci.yml @@ -0,0 +1,53 @@ +# Docker +# Build a Docker image +# https://docs.microsoft.com/azure/devops/pipelines/languages/docker + + +trigger: none + +pool: + name: 'Vienna Inferencing Ubuntu' + +resources: +- repo: self + +variables: +- name: Azure.ServiceConnectionId + value: 'Project Vienna Build (ad203158-bc5d-4e72-b764-2607833a71dc)' + +steps: +- checkout: self + persistCredentials: true + +- task: UsePythonVersion@0 + displayName: 'Use Python 3.8' + inputs: + versionSpec: 3.8 + +- task: AzureCLI@1 + displayName: 'Generate msftkube files' + env: + AZURE_DEVOPS_EXT_PAT: '$(System.AccessToken)' + inputs: + azureSubscription: '$(Azure.ServiceConnectionId)' + addSpnToEnvironment: true + scriptLocation: 'scriptPath' + scriptPath: '$(system.defaultWorkingDirectory)/scripts/task.sh' + args: --verbose full_drop + workingDirectory: '$(system.defaultWorkingDirectory)' + +- task: PublishPipelineArtifact@0 + displayName: 'Publish msftkube files as artifacts from $(build.artifactstagingdirectory)' + inputs: + artifactName: 'drop' + targetPath: '$(system.defaultWorkingDirectory)/build' + +- task: UniversalPackages@0 + displayName: Publish Package + inputs: + command: publish + publishDirectory: 'build' + vstsFeedPublish: 'mir-dev-feed' + vstsFeedPackagePublish: 'docker-cache-cleaner' + versionOption: 'patch' + packagePublishDescription: 'docker-cache-cleaner' \ No newline at end of file diff --git a/vsts/.vsts-master.yml b/vsts/.vsts-master.yml new file mode 100644 index 0000000..1cfe19e --- /dev/null +++ b/vsts/.vsts-master.yml @@ -0,0 +1,58 @@ +# Docker +# Build a Docker image +# https://docs.microsoft.com/azure/devops/pipelines/languages/docker + +trigger: + branches: + include: + - master + paths: + include: + - /* + +pool: + name: 'Vienna Inferencing Ubuntu' + +resources: +- repo: self + +variables: +- name: Azure.ServiceConnectionId + value: 'Project Vienna Build (ad203158-bc5d-4e72-b764-2607833a71dc)' + +steps: +- checkout: self + persistCredentials: true + +- task: UsePythonVersion@0 + displayName: 'Use Python 3.8' + inputs: + versionSpec: 3.8 + +- task: AzureCLI@1 + displayName: 'Generate msftkube files' + env: + AZURE_DEVOPS_EXT_PAT: '$(System.AccessToken)' + inputs: + azureSubscription: '$(Azure.ServiceConnectionId)' + addSpnToEnvironment: true + scriptLocation: 'scriptPath' + scriptPath: '$(system.defaultWorkingDirectory)/scripts/task.sh' + args: --verbose full_drop + workingDirectory: '$(system.defaultWorkingDirectory)' + +- task: PublishPipelineArtifact@0 + displayName: 'Publish msftkube files as artifacts from $(build.artifactstagingdirectory)' + inputs: + artifactName: 'drop' + targetPath: '$(system.defaultWorkingDirectory)/build' + +- task: UniversalPackages@0 + displayName: Publish Package + inputs: + command: publish + publishDirectory: 'build' + vstsFeedPublish: 'mir-release-feed' + vstsFeedPackagePublish: 'docker-cache-cleaner' + versionOption: 'patch' + packagePublishDescription: 'docker-cache-cleaner' \ No newline at end of file From 07fa11c1d8bdde8c4b8c6ded9f7e0ebd6697acbc Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 28 Jan 2021 12:01:50 -0800 Subject: [PATCH 27/33] Test file --- test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test.txt diff --git a/test.txt b/test.txt new file mode 100644 index 0000000..e69de29 From 74db47e631c20a5195b9bc2480bd422f5f8ae8c9 Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 28 Jan 2021 12:22:20 -0800 Subject: [PATCH 28/33] Update .vsts-master.yml for Azure Pipelines --- vsts/.vsts-master.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vsts/.vsts-master.yml b/vsts/.vsts-master.yml index 1cfe19e..e47aa3c 100644 --- a/vsts/.vsts-master.yml +++ b/vsts/.vsts-master.yml @@ -10,6 +10,11 @@ trigger: include: - /* +pr: + branches: + exclude: + - "*" + pool: name: 'Vienna Inferencing Ubuntu' From 538b0e077ff9588203aedc6852a409f4733c3e0f Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 28 Jan 2021 12:23:03 -0800 Subject: [PATCH 29/33] Test file --- test.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/test.txt b/test.txt index e69de29..3038768 100644 --- a/test.txt +++ b/test.txt @@ -0,0 +1 @@ +sdfsdfsdf \ No newline at end of file From 5f8b57117c6c267e1ee57a62be9830faa7b944db Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Thu, 28 Jan 2021 12:35:03 -0800 Subject: [PATCH 30/33] Removing test and azure-pipeline files --- azure-pipelines.yml | 58 --------------------------------------------- test.txt | 1 - 2 files changed, 59 deletions(-) delete mode 100644 azure-pipelines.yml delete mode 100644 test.txt diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index 6505a07..0000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,58 +0,0 @@ -# Docker -# Build a Docker image -# https://docs.microsoft.com/azure/devops/pipelines/languages/docker - -trigger: - branches: - include: - - master - paths: - include: - - /* - -pool: - name: 'Vienna Inferencing Ubuntu' - -resources: -- repo: self - -variables: -- name: Azure.ServiceConnectionId - value: 'Project Vienna Build (ad203158-bc5d-4e72-b764-2607833a71dc)' - -steps: -- checkout: self - persistCredentials: true - -- task: UsePythonVersion@0 - displayName: 'Use Python 3.8' - inputs: - versionSpec: 3.8 - -- task: AzureCLI@1 - displayName: 'Generate msftkube files' - env: - AZURE_DEVOPS_EXT_PAT: '$(System.AccessToken)' - inputs: - azureSubscription: '$(Azure.ServiceConnectionId)' - addSpnToEnvironment: true - scriptLocation: 'scriptPath' - scriptPath: '$(system.defaultWorkingDirectory)/scripts/task.sh' - args: --verbose full_drop - workingDirectory: '$(system.defaultWorkingDirectory)' - -- task: PublishPipelineArtifact@0 - displayName: 'Publish msftkube files as artifacts from $(build.artifactstagingdirectory)' - inputs: - artifactName: 'drop' - targetPath: '$(system.defaultWorkingDirectory)/build' - -- task: UniversalPackages@0 - displayName: Publish Package - inputs: - command: publish - publishDirectory: 'build' - vstsFeedPublish: 'mir-dev-feed' - vstsFeedPackagePublish: 'docker-cache-cleaner' - versionOption: 'patch' - packagePublishDescription: 'docker-cache-cleaner' \ No newline at end of file diff --git a/test.txt b/test.txt deleted file mode 100644 index 3038768..0000000 --- a/test.txt +++ /dev/null @@ -1 +0,0 @@ -sdfsdfsdf \ No newline at end of file From 64c165d53bd57842951b806943a9886c7d892d61 Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Fri, 12 Feb 2021 13:30:39 -0800 Subject: [PATCH 31/33] Adding node selector for only linux nodes --- deploy/templates/helm/docker-cache-cleaner-values.yaml | 2 ++ deploy/templates/k8s/docker-cache-cleaner.yaml | 2 ++ src/docker-cache-cleaner/templates/docker-cache-cleaner.yaml | 2 ++ src/docker-cache-cleaner/values.yaml | 2 ++ 4 files changed, 8 insertions(+) diff --git a/deploy/templates/helm/docker-cache-cleaner-values.yaml b/deploy/templates/helm/docker-cache-cleaner-values.yaml index 1b79ade..00a9ea3 100644 --- a/deploy/templates/helm/docker-cache-cleaner-values.yaml +++ b/deploy/templates/helm/docker-cache-cleaner-values.yaml @@ -21,6 +21,8 @@ config: strategy: ByDate daysBeforeDeletion: 1 containerStateBlacklist: dead,exited +nodeSelector: + beta.kubernetes.io/os: linux resources: limits: cpu: 100m diff --git a/deploy/templates/k8s/docker-cache-cleaner.yaml b/deploy/templates/k8s/docker-cache-cleaner.yaml index 24cb0bb..9d01d16 100644 --- a/deploy/templates/k8s/docker-cache-cleaner.yaml +++ b/deploy/templates/k8s/docker-cache-cleaner.yaml @@ -19,6 +19,8 @@ spec: - name: "{{app.k8s.parameters.fullname}}" image: "{{publish.docker.registry.hostname}}/{{app.drop.images.docker-cache-cleaner.name}}:{{app.drop.images.docker-cache-cleaner.tag}}" imagePullPolicy: "{{app.k8s.parameters.imagePullPolicy}}" + nodeSelector: + beta.kubernetes.io/os: linux resources: limits: cpu: "{{app.resources.limits.cpu}}" diff --git a/src/docker-cache-cleaner/templates/docker-cache-cleaner.yaml b/src/docker-cache-cleaner/templates/docker-cache-cleaner.yaml index 00207b8..bd7b455 100644 --- a/src/docker-cache-cleaner/templates/docker-cache-cleaner.yaml +++ b/src/docker-cache-cleaner/templates/docker-cache-cleaner.yaml @@ -18,6 +18,8 @@ spec: - name: {{ template "docker-gc.name" . }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} resources: {{ toYaml .Values.resources | indent 10 }} env: diff --git a/src/docker-cache-cleaner/values.yaml b/src/docker-cache-cleaner/values.yaml index db50d87..5b0bc89 100644 --- a/src/docker-cache-cleaner/values.yaml +++ b/src/docker-cache-cleaner/values.yaml @@ -22,6 +22,8 @@ config: strategy: ByDate daysBeforeDeletion: 1 containerStateBlacklist: dead,exited +nodeSelector: + beta.kubernetes.io/os: linux resources: limits: cpu: 100m From 9a9045f2cbbdf3873677ef21ac04b7a40cedb6de Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Fri, 12 Feb 2021 13:47:30 -0800 Subject: [PATCH 32/33] Fixing placement of nodeSelector --- deploy/templates/k8s/docker-cache-cleaner.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/templates/k8s/docker-cache-cleaner.yaml b/deploy/templates/k8s/docker-cache-cleaner.yaml index 9d01d16..e42219b 100644 --- a/deploy/templates/k8s/docker-cache-cleaner.yaml +++ b/deploy/templates/k8s/docker-cache-cleaner.yaml @@ -19,8 +19,6 @@ spec: - name: "{{app.k8s.parameters.fullname}}" image: "{{publish.docker.registry.hostname}}/{{app.drop.images.docker-cache-cleaner.name}}:{{app.drop.images.docker-cache-cleaner.tag}}" imagePullPolicy: "{{app.k8s.parameters.imagePullPolicy}}" - nodeSelector: - beta.kubernetes.io/os: linux resources: limits: cpu: "{{app.resources.limits.cpu}}" @@ -46,6 +44,8 @@ spec: volumeMounts: - mountPath: "{{app.k8s.parameters.socketPath}}" name: "{{app.k8s.parameters.volumeName}}" + nodeSelector: + beta.kubernetes.io/os: linux tolerations: - effect: NoSchedule operator: Exists From fa68207cd046160f08c640732bb93a824f56f50a Mon Sep 17 00:00:00 2001 From: Ross Wagner Date: Mon, 26 Jul 2021 12:56:35 -0700 Subject: [PATCH 33/33] Updating agent pool for vsts builds --- vsts/.vsts-ci.yml | 2 +- vsts/.vsts-master.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vsts/.vsts-ci.yml b/vsts/.vsts-ci.yml index 2a7ae17..dac2ad0 100644 --- a/vsts/.vsts-ci.yml +++ b/vsts/.vsts-ci.yml @@ -6,7 +6,7 @@ trigger: none pool: - name: 'Vienna Inferencing Ubuntu' + name: 'inferencing-ubuntu1804-01' resources: - repo: self diff --git a/vsts/.vsts-master.yml b/vsts/.vsts-master.yml index e47aa3c..cb5f9d0 100644 --- a/vsts/.vsts-master.yml +++ b/vsts/.vsts-master.yml @@ -16,7 +16,7 @@ pr: - "*" pool: - name: 'Vienna Inferencing Ubuntu' + name: 'inferencing-ubuntu1804-01' resources: - repo: self