You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
| Phase C| 1st April - 15th April 2020| No pushes are allowed. Registryis read-only|
50
+
| Phase B| 15th March- 1st April 2020|New build step and image API are available.|
51
+
| Phase C| 1st April - 15th April 2020| No pushes are allowed. Registrybecomes read-only|
52
52
|| 15th April 2020| Registry is removed from service|
53
53
54
54
@@ -97,32 +97,142 @@ service:
97
97
type: LoadBalancer
98
98
externalPort: 80
99
99
internalPort: 8080
100
-
resources:
101
-
limits:
102
-
cpu: 100m
103
-
memory: 128Mi
104
-
requests:
105
-
cpu: 100m
106
-
memory: 128Mi
107
-
ingress:
108
-
enabled: false
109
100
{% endraw %}
110
101
{% endhighlight %}
111
102
112
-
In all these cases, deployment manifests should be changed to mention Docker images that are found in the external Docker registry
103
+
In all these cases, deployment manifests should be changed to mention Docker images that are found in the external Docker registry.
113
104
114
105
###Locating images from the private Codefresh registry in pipelines
115
106
116
-
TBD
107
+
It is also possible that images from the private Registry are used as[freestyle steps]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) directly in pipelines.
The second step in this pipeline is using an image from the private registry as mentioned by`r.cfcr.io/kostis-codefresh/my-node-dev-image`. Image references like this will need to be changed to mention an external registry.
137
+
138
+
Explicit[push steps]({{site.baseurl}}/docs/codefresh-yaml/steps/push/) must also change to refer to an external registry:
139
+
140
+
`codefresh.yml`
141
+
{% highlight yaml %}
142
+
{% raw %}
143
+
version: '1.0'
144
+
stages:
145
+
- checkout
146
+
- build
147
+
- push
148
+
steps:
149
+
main_clone:
150
+
title: Cloning main repository...
151
+
type: git-clone
152
+
stage: checkout
153
+
repo: 'codefreshdemo/cf-example-build-and-push'
154
+
revision: 'master'
155
+
git: github
156
+
build_my_app:
157
+
title: Building Node.Js Docker Image
158
+
type: build
159
+
stage: build
160
+
image_name: my-node-js-app
161
+
working_directory: '.'
162
+
tag: 'master'
163
+
dockerfile: Dockerfile
164
+
push_to_my_registry:
165
+
stage: 'push'
166
+
type: push
167
+
title: Pushing to internal registry
168
+
candidate: ${{build_my_app}}
169
+
tag: 'v1.0.0'
170
+
registry: cfcr
171
+
{% endraw %}
172
+
{% endhighlight %}
173
+
174
+
In this pipeline the last step is pushing a docker image to the internal Codefresh. You will need to change the`registry` property to the nane of an external registry.
175
+
176
+
>Note the name`cfcr` shown above is just a convention. You can find the actual name given to the private Codefresh in the[Registry settings screen](https://g.codefresh.io/account-admin/account-conf/integration/registry). From the same screen you can also see the name of your external registry
117
177
118
178
119
179
###Promoting images from the private registry to an external ones.
120
180
121
-
TBD
181
+
Another migration step for this phase is to move all existing images from the private Codefresh registry to the external one. You can use the[Image dashboard](https://g.codefresh.io/images/) to locate and analyze your existing Docker images. You can then migrate Docker images in 3 ways
182
+
183
+
1. If you know the pipeline that created this image, you can simply rerun the pipeline with a new push step
184
+
1. You can promote the image directly from the private Registry to your external one
185
+
1. You can perform mass migration with a migration script
186
+
187
+
The first case is linked with the push steps mentioned in the previous section.
188
+
189
+
If your existing pipeline pushes to cfcr:
190
+
191
+
{% highlight yaml %}
192
+
{% raw %}
193
+
push_to_my_registry:
194
+
stage: 'push'
195
+
type: push
196
+
title: Pushing to internal registry
197
+
candidate: ${{build_my_app}}
198
+
tag: 'v1.0.0'
199
+
registry: cfcr
200
+
{% endraw %}
201
+
{% endhighlight %}
202
+
203
+
then you can simply change the`registry` property to your external registry and re-run the pipeline.
204
+
205
+
{% highlight yaml %}
206
+
{% raw %}
207
+
push_to_my_registry:
208
+
stage: 'push'
209
+
type: push
210
+
title: Pushing to external registry
211
+
candidate: ${{build_my_app}}
212
+
tag: 'v1.0.0'
213
+
registry: my-external-registry
214
+
{% endraw %}
215
+
{% endhighlight %}
216
+
217
+
Note that`my-external-registry` is just the unique name assigned to your registry from the[Registry settings screen](https://g.codefresh.io/account-admin/account-conf/integration/registry).
218
+
219
+
You can also promote images from the[manually from the UI]({{site.baseurl}}/docs/docker-registries/codefresh-registry/#promoting-docker-images)or with a[pipeline]({{site.baseurl}}/docs/docker-registries/working-with-docker-registries/#promoting-docker-images).
220
+
221
+
If you wish to perform migration of Docker images in a batch manner, you can also use the[migration script offered by Codefresh](https://github.com/codefresh-io/cfcr-migration).
222
+
223
+
224
+
122
225
123
226
###Summary of actions and results of migration phase A
124
227
125
-
TBD
228
+
Here is a summary of customer actions at the end of 15th March 2020
229
+
230
+
* You need to evaluate external Docker registry services and connect at least one in your Codefresh account
231
+
* Change Kubernetes deployments and Helm releases to pull images from the external Registry instead of the private one
232
+
* Do not use private Codefresh images in any pipeline (especially freestyle steps). Use images from the external registry only
233
+
* Change all pipeline steps to use specifically the external Docker registry
234
+
* Promote essential images from the internal registry to the external Docker registry