Container Server Cloud Config

On May 26, 2020, according to CoreOS reaching End of Life, container servers in OnApp also reached End of Life. Please contact support or your account manager on amteam@onapp.com for more details and further assistance. 

The cloud-config enables you to customize different OS elements, such as network configuration, user accounts, etc. This file uses the YAML format and is processed after each reboot. Adding a cloud-config when creating a container server is optional, you can later edit or add the cloud-config via OnApp API or UI. 

  • You should not change the cloud-config file inside the container server as such changes will be lost after the server is rebooted.
  • For the full list of items that can be configured in the cloud-config file, refer to CoreOS documentation.

To add/edit the could-config for your container server:

  1. Go to your Control Panel > Cloud > Container Servers menu.
  2. Click the label of the server you want to edit, to show its details screen.
  3. Click the Configuration tab, then click Cloud-Config.
  4. On the page that loads you can add-edit the cloud-config for the container server:
    • You can fill in the cloud-config in the Cloud-Config field
    • You can insert a cloud-config file from your local computer at the File tab by clicking the Choose File button. After the file is uploaded, cloud-config will appear in the Cloud-Config field.
    • You can add a URL to your cloud-config file in the File url field at the File url tab
  5. Click Submit to save changes.
  6. After you edit the cloud config, you need to reboot the container server at Control Panel > CloudContainer Servers > Label > Tools > Reboot Container Server. Changes to the cloud config will not take effect if the server is not rebooted. The reboot should be done via OnApp Control Panel. If the reboot command is issued inside the container server, the changes to the cloud config will not take effect.

Below you can find a cloud config example. This cloud config is added to two container servers and configures communication between these servers by implementing the fleet cluster manager. Users can then create containers with apps on one of the container servers and get tables of those containers on the other container server in the cluster. For more information, refer to CoreOS documentation.

Cloud config example:

#cloud-config
write-files:
  - path: /etc/hosts
    permissions: '0644'   
    content: | 
      master1_IP master1 coreos00
      master2_IP master2 coreos01

coreos:
  etcd2:
    name: master1
    initial-cluster: master1=http://master1_IP:2380,master2=http://master2_IP:2380
    initial-advertise-peer-urls: http://$public_ipv4:2380
    advertise-client-urls: http://$public_ipv4:2379,http://$public_ipv4:4001
    listen-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001 
    listen-peer-urls: http://$public_ipv4:2380,http://$public_ipv4:7001
  fleet:
    public-ip: $public_ipv4
    metadata: "role=master"
  flannel:
    interface: $public_ipv4
  units:
    - name: etcd2.service
      command: start
    - name: fleet.service
      command: start
    - name: flanneld.service
      command: start